From jkrell at elego.de Tue Dec 1 10:34:03 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 1 Dec 2009 10:34:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091201093403.31BC62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/01 10:34:03 Modified files: cm3/m3-sys/m3cc/gcc/gcc/config/i386/: i386-interix.h cm3/m3-sys/m3cc/gcc/config/: mh-interix Log message: merge with Interix; esp. ASM_DECLARE_FUNCTION_NAME so that dlltool can tell data from functions and make import libs properly This lets us link shared, though running doesn't work yet. From jkrell at elego.de Tue Dec 1 10:42:38 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 1 Dec 2009 10:42:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091201094239.018082474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/01 10:42:38 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: I386_INTERIX Interix.common Log message: refactor a little, and twiddle with linking switches From jkrell at elego.de Tue Dec 1 10:46:24 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 1 Dec 2009 10:46:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091201094624.C87242474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/01 10:46:24 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Unix.common Log message: remove some ntdll special casing now that m3-win/ntdll does more itself From jkrell at elego.de Tue Dec 1 10:49:13 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 1 Dec 2009 10:49:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091201094913.28DE02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/01 10:49:13 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Unix.common Log message: for now turn off shared for Interix, pending more testing/debugging/fixing From jkrell at elego.de Tue Dec 1 10:54:46 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 1 Dec 2009 10:54:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091201095446.4FA2E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/01 10:54:46 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Unix.common Log message: cleanup: use new function AdjustShared to encapsulate the Interix check and the defined("install_symbolic_link") check (These config files with older compilers don't support shared, just building an up to date static compiler, and then using that to build stuff shared.) From rcoleburn at elego.de Tue Dec 1 17:55:12 2009 From: rcoleburn at elego.de (Randy Coleburn) Date: Tue, 1 Dec 2009 17:55:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091201165512.EA71F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 09/12/01 17:55:12 Modified files: cm3/m3-tools/cvsup/suplib/src/: m3makefile Log message: add missing "end" statement at line 58 to correct compile-time syntax error. Someone needs to check me on this one. After this change, I don't get any packages built in cvsup on WindowsXP, I suppose due to some prerequiste not being met. But at least I don't get the syntax error. Not sure why the package m3makefile seems to be limited to POSIX platforms at line 31. Everything was building on Windows before.--R.Coleburn Here is the compiler output before my correction: C:\cm3\Sandbox\cm3\m3-tools\cvsup\suplib>cm3 -verbose EVAL ("C:\cm3\bin\cm3.cfg") --- building in NT386 --- cd NT386 LIB_INSTALL is C:\cm3\lib ignoring ..\src\m3overrides EVAL ("m3make.args") rm .M3SHIP rm .M3OVERRIDES "C:\cm3\Sandbox\cm3\m3-tools\cvsup\suplib\NT386\m3make.args", line 5: quake runtime error: C:\cm3\Sandbox\cm3\m3-tools\cvsup\suplib\src\m3makefile, line 263: syntax error: "end" or "else" expected after "if" --procedure-- -line- -file--- include_dir -- 5 C:\cm3\Sandbox\cm3\m3-tools\cvsup\suplib\NT386\m3make.args Fatal Error: package build failed seconds #times operation 0.03 2 removing temporary files 0.03 other --------------------------------------------------- 0.06 TOTAL rm m3make.args cd .. C:\cm3\Sandbox\cm3\m3-tools\cvsup\suplib> From jkrell at elego.de Wed Dec 2 01:56:35 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 2 Dec 2009 1:56:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091202005636.38FF52474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/02 01:56:35 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c m3makefile Removed files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadInterix.c Log message: remove interix stuff for now It wasn't a terrible idea and Interix isn't useless, but it seems you can only get a suspend/resume handle to a thread on the first thread, not anything created with pthread_create, very surprising (also can't getcontext) a few not great options remain: use semaphore/signal but rely on all traced references to always be on stack; fairly viable if you don't optimize, though a little tricky when the references are first created? make/get/set/swapcontext - no, they aren't present sigstack/sigaltstack -- not present stuff in /proc -- yes very promising From jkrell at elego.de Wed Dec 2 02:19:17 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 2 Dec 2009 2:19:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091202011917.AB6C82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/02 02:19:17 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.i3 Log message: fix From wagner at elego.de Wed Dec 2 18:09:27 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 2 Dec 2009 18:09:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091202170927.D5E9D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/12/02 18:09:27 Modified files: cm3/www/: Tag: release_branch_cm3_5_8 download.html news.html cm3/www/releng/: Tag: release_branch_cm3_5_8 update-releng-index.sh Log message: some fixes and additions for RC4 From jkrell at elego.de Thu Dec 3 11:32:14 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 11:32:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203103214.908142474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 11:32:14 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: remove gratuitous use of a traced ref: FreeSlow(untraced me) instead of FreeSlot(traced self) From jkrell at elego.de Thu Dec 3 11:35:41 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 11:35:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203103541.CFD7F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 11:35:41 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: NIL stackPointer when not suspended From jkrell at elego.de Thu Dec 3 11:49:31 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 11:49:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203104932.0A6602474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 11:49:31 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: newlines to try to unhide the important line From jkrell at elego.de Thu Dec 3 11:53:58 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 11:53:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203105358.8BA47CC3B1@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 11:53:58 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: - fix previous change to FreeSlot; it needs both, for the sanity check - inline RunThread in its only caller ThreadBase I see no real distinction between them, and the stack address is found such that the inlining won't break it. From jkrell at elego.de Thu Dec 3 11:56:44 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 11:56:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203105644.24D442474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 11:56:44 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: -CONST debug = FALSE; +VAR DEBUG := RTParams.IsPresent("debugthreads"); to be more like pthreads (though we don't currently print the same stuff) From jkrell at elego.de Thu Dec 3 13:32:44 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 13:32:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203123244.1EDDB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 13:32:44 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: initial activation starts out not suspended (fixes the cm3ide assert stackpointer # NIL) From jkrell at elego.de Thu Dec 3 13:36:42 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 13:36:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203123642.2563B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 13:36:42 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: cm3.cfg Log message: fix warning from cm3ide about EOL not defined (this .cfg file isn't perhaps mainstream, it isn't what a release installs From jkrell at elego.de Thu Dec 3 13:41:22 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 13:41:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203124122.930032474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 13:41:22 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadContext.i3 Log message: add ExtendedRegisters from newer headers, though it doesn't really gain anything and it costs us an extra 512 bytes per thread From jkrell at elego.de Thu Dec 3 13:43:19 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 13:43:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203124319.CD7262474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 13:43:19 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: ThreadWin32__threadIndex => static threadIndex From jkrell at elego.de Thu Dec 3 13:47:22 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 13:47:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203124722.9A25A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 13:47:22 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: structure more like ThreadPThread.m3: ProcessLive ProcessStopped ProcessMe ProcessOther etc. including pushing some processor-dependency into C however this code still knows the sizeof CONTEXT In fact these functions now exist in both and are practically identical. But Win32 print the more useful act.handle instead of act. And win32 is a little different wrt context. From jkrell at elego.de Thu Dec 3 13:55:26 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 13:55:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203125527.245802474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 13:55:26 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.m3 Log message: fix suspendCount of initial thread From jkrell at elego.de Thu Dec 3 14:29:28 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 14:29:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203132928.A6700CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 14:29:28 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: SchedulerPosix.m3 ThreadWin32.i3 ThreadWin32.m3 Log message: begin moving fields from traced to untraced to match pthreads in this diff: waitSema alertable alerted still tbd: waitingOn nextWaiter From jkrell at elego.de Thu Dec 3 19:47:43 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 19:47:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203184744.5AB022474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 19:47:43 Modified files: cm3/m3-libs/m3core/src/thread/Common/: ThreadDebug.i3 Log message: loosen types up completely as I'll be changing some and they don't really matter From jkrell at elego.de Thu Dec 3 20:00:04 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 20:00:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203190004.3C4CE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 20:00:04 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: reduce dependency on cloned headers From jkrell at elego.de Thu Dec 3 20:26:42 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 20:26:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203192642.846A42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 20:26:42 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: m3makefile Log message: make ThreadContext interface private From jkrell at elego.de Thu Dec 3 20:27:58 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 20:27:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203192758.6A727CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 20:27:58 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: reduce but don't eliminate dependency on header cloning, at the cost of an extra heap allocation per thread (up from 2 to 3, but we can probably get it back down by allocation the entire Activation in C (RTSignal.m3 still depends on the header cloning)) From jkrell at elego.de Thu Dec 3 20:42:35 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 20:42:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203194235.545B02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 20:42:35 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: fix leak upon out of memory From jkrell at elego.de Thu Dec 3 20:45:59 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 20:45:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203194600.050382474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 20:45:59 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: calling convention From jkrell at elego.de Thu Dec 3 21:02:37 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 21:02:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203200238.F31D42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 21:02:37 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: add more check for low resources; fix hang in stubgen by stopping scanning stack earlier (a bit of a mystery?) From jkrell at elego.de Thu Dec 3 21:47:59 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 21:47:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203204759.1E07D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 21:47:59 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: all but start threads not suspended it seems nearly impossible to start them running unless we want to use an extra DuplicateHandle for act.handle, in the thread structure more like pthreads specifically add to the list of active threads in the new thread instead of fork structure the try/finally nicer initialize local to nil and try/finally the entire function really fix deadlock where thread can't finish and remove itself from active list because suspendothers already has the lock, and suspendthread..works, but then GetContextAndCheckStack fails because start/end are nil From jkrell at elego.de Thu Dec 3 21:52:20 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 21:52:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203205220.9F4472474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 21:52:20 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: in resume, allow that dying threads maybe aren't suspended -- hm. probably we should just remove from the list earlier? From jkrell at elego.de Thu Dec 3 21:58:09 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 21:58:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203205809.9C60B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 21:58:09 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: further fix assertion From jkrell at elego.de Fri Dec 4 11:41:06 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 4 Dec 2009 11:41:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091204104106.AF5F42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/04 11:41:06 Modified files: cm3/m3-libs/m3core/src/C/Common/: CstdioC.c Log message: a lot more wrappers, and much more mechanical From jkrell at elego.de Sun Dec 6 10:52:38 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 10:52:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206095238.CF2012474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 10:52:38 Modified files: cm3/scripts/examples/: make-juno.sh Log message: cleanup (flushing code before deleting/recreating tree) From jkrell at elego.de Sun Dec 6 10:54:18 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 10:54:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206095418.5D2CACC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 10:54:18 Modified files: cm3/doc/notes/: building-old.txt Log message: some updates I had From jkrell at elego.de Sun Dec 6 11:31:58 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 11:31:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206103158.642F9CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 11:31:57 Modified files: cm3/scripts/python/: pylib.py Log message: build the cross m3cc/m3cg in boot1.py From jkrell at elego.de Sun Dec 6 12:11:50 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 12:11:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206111150.177542474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 12:11:50 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c m3makefile cm3/scripts/python/: pylib.py Log message: fix Apple (abort not declared, stack_grows_down unknown) fix possible problem in FreeBSD fix bootstrapping Apple and FreeBSD that is: restructure elationship of ThreadPThreadC.c, ThreadApple.c, ThreadFreeBSD.c #include the later in the earlier, so more is in scope (so stack_grows_down remains static; #include would have been easy) use pgm_source to insure the files get into the boot archive and hack pylib.py to special case and not compile ThreadApple|FreeBSD.c From jkrell at elego.de Sun Dec 6 12:28:54 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 12:28:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206112854.75D982474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 12:28:54 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UtimeC.c Log message: fix assertions for AMD64_DARWIN where timeval unfortunately contains undeclared padding From jkrell at elego.de Sun Dec 6 12:34:16 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 12:34:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206113417.201022474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 12:34:16 Modified files: cm3/m3-libs/m3core/src/time/POSIX/: DateBsd.m3 DatePosix.m3 Log message: go back to long standing versions without mutex I still think there might be something fishy here like wrt the timezone changing as the process runs From jkrell at elego.de Sun Dec 6 13:13:33 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 13:13:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206121333.E95CA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 13:13:33 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadApple.c ThreadFreeBSD.c ThreadPThreadC.c m3makefile Log message: Try again. Compile the files separately. Add #include stdlib.h and move the assert(stack_grows_down) to ThreadPThreadC.c. Alternative would be to: - remove it altogether - compute it in ThreadApple.c - or rename it ThreadPThread__stack_grows_down (or Thread__stack_grows_down) From jkrell at elego.de Sun Dec 6 13:14:30 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 13:14:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206121430.9EEAE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 13:14:30 Modified files: cm3/scripts/python/: pylib.py Log message: remove ThreadApple.c/ThreadFreeBSD.c hack From jkrell at elego.de Sun Dec 6 13:29:42 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 13:29:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206122942.DB1562474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 13:29:42 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: a little more aggressive handling of EAGAIN and ENOMEM if pthread_create/pthread_mutex_init/pthread_cond_init fail with either, try again right away; if they fail again, sleep(1) and try again; this logic could be put into the Modula-3 as it is portable and such (Posix doesn't allow pthread_create to return ENOMEM though it seems reasonable; also a smaller sleep might be reasonable, and so would sleep/retrying even more, it's a difficult to resolve philosophical/engineering dilemna..) From jkrell at elego.de Sun Dec 6 13:58:54 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 13:58:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206125854.B9F46CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 13:58:54 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.i3 UnixC.c Log message: add wrapper for sleep +<*EXTERNAL Unix__sleep*> PROCEDURE sleep (a: unsigned): unsigned; +unsigned Unix__sleep(unsigned i) { return sleep(i); } From jkrell at elego.de Sun Dec 6 14:06:33 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 14:06:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206130633.752C9CC816@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 14:06:33 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: ProcessPosixCommon.m3 Log message: On Interix in particular, I have seen bash often say something like fork: Resource temporarily unavailable, retry and then it seems to work upon retry. Therefore, put in sleep/retry for fork returning EAGAIN, and we throw in ENOMEM as well, based closely on the bash code, which is very little. (does sleep(0,1,2,4,8),giveup) From jkrell at elego.de Sun Dec 6 14:10:57 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 14:10:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206131057.3B57D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 14:10:57 Modified files: cm3/m3-libs/m3core/src/time/POSIX/: Tag: release_branch_cm3_5_8 DateBsd.m3 Log message: use predeclared MUTEX instead of Thread.Mutex (copied from head) From jkrell at elego.de Sun Dec 6 14:12:15 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 14:12:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206131215.09B93CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 14:12:15 Modified files: cm3/m3-libs/m3core/src/time/POSIX/: Tag: release_branch_cm3_5_8 TimePosixC.c Log message: sync unused file with head From jkrell at elego.de Sun Dec 6 14:21:36 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 14:21:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206132136.BD5AACC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 14:21:36 Added files: cm3/m3-libs/m3core/src/time/POSIX/: DateBsdNoLock.m3 Log message: initial copyunchanged of DateBsd.m3 From jkrell at elego.de Sun Dec 6 14:37:22 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 14:37:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206133722.E9D992474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 14:37:22 Modified files: cm3/m3-libs/m3core/src/time/POSIX/: DateBsd.m3 m3makefile Removed files: cm3/m3-libs/m3core/src/time/POSIX/: DateBsdNoLock.m3 Log message: use grep -v to remove the references to " mu " in DateBsd.m3 when compiling for KernelThreads/pthreads, as their threading library will swap the localtime/asctime/etc. buffers when they swap threads (or switch to a new bank of thread locals, etc.) Unnecessary locks are bad. From jkrell at elego.de Sun Dec 6 14:39:27 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 14:39:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206133927.B7C682474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 14:39:27 Modified files: cm3/m3-libs/m3core/src/time/POSIX/: m3makefile Log message: fix incrementality and remove echo From jkrell at elego.de Sun Dec 6 15:35:53 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 15:35:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206143554.7D24C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 15:35:53 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: print some information when the error occurs From jkrell at elego.de Sun Dec 6 16:18:19 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 16:18:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206151819.8F9882474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 16:18:19 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadPThread.m3 Log message: cover more of the stack for the GC to find references; this seems to significantly reduce the problems, but not eliminate them; the detach often fails still, r=3, and capturing local handle := me.handle and then asserting they match often finds the local handle = NIL From hosking at elego.de Sun Dec 6 20:12:00 2009 From: hosking at elego.de (Antony Hosking) Date: Sun, 6 Dec 2009 20:12:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206191200.3A0DDCC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/06 20:12:00 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Revert to structure like 163. We are seeing the same complaint Jay had commented on in the commit for 170. A race unless we hold activeMu when setting stackbase. From jkrell at elego.de Mon Dec 7 07:42:17 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 7:42:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207064217.CE2EE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 07:42:17 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: slightly reduce critical section and remove unnecessary variable From jkrell at elego.de Mon Dec 7 08:03:41 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 8:03:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207070341.B79972474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 08:03:41 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: remove some derefences of traced references, remove RTIO use I had just put in, NIL the traced references that we aren't allowed to use (which should get optimized away but ok either way) From jkrell at elego.de Mon Dec 7 08:17:17 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 8:17:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207071717.4FFA92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 08:17:17 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c Log message: partial merge from head use pthread_detach_self() C function that does pthread_detach(pthread_self()) instead of relying on act.handle, which should work; hm? some cosmetic commenting drop traced refs by storing NIL, shouldn't make a difference stackbase was already managed roughly like head From jkrell at elego.de Mon Dec 7 08:54:05 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 8:54:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207075405.C293E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 08:54:05 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: Try a bit to deal with low resources in more places: sem_init pthread_attr_init pthread_key_create pthread_setspecific These are all documented as possibly returning one or more of: ENOMEM ENOSPC (sem_init) EAGAIN From jkrell at elego.de Mon Dec 7 08:55:40 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 8:55:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207075540.1EFCE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 08:55:40 Added files: cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadApple.c ThreadFreeBSD.c Log message: new files from head From jkrell at elego.de Mon Dec 7 09:00:56 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 9:00:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207080056.D83B6CC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 09:00:56 Added files: cm3/m3-libs/m3core/src/C/Common/: Tag: release_branch_cm3_5_8 CsignalC.c CstdlibC.c CstringC.c Log message: new files from head, not active in release, may or may not become so From jkrell at elego.de Mon Dec 7 09:48:44 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 9:48:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207084844.F31B62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 09:48:44 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UdirC.c Uexec.c Uin.c Umman.c UnixC.c m3unix.h Log message: mechanize wrappers via preprocessing From jkrell at elego.de Mon Dec 7 09:59:23 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 9:59:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207085923.9EAAC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 09:59:23 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uprocess.c Usignal.c Usocket.c Uugid.c Uuio.c Uutmp.c m3unix.h Log message: mechanize more wrappers From jkrell at elego.de Mon Dec 7 10:07:17 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 10:07:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207090717.4BD0D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 10:07:17 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UdirC.c Upwd.c UstatC.c Uucontext.c Log message: mechanize a few more wrappers From jkrell at elego.de Mon Dec 7 10:11:21 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 10:11:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207091121.4E5882474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 10:11:21 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UdirC.c Uin.c Umman.c Uprocess.c Upwd.c Usignal.c Uugid.c Uuio.c Uutmp.c m3unix.h Log message: put extern "C" in the macros so that the really simple files can be even a few lines shorter (really we could just delete the extern "C" probably, but I still like the idea) From jkrell at elego.de Mon Dec 7 10:15:13 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 10:15:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207091513.C922E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 10:15:13 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uprocess.c Log message: fix typo From jkrell at elego.de Mon Dec 7 11:53:36 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 11:53:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207105336.272B1CC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 11:53:36 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 ThreadPThreadC.c Log message: account for that I moved nulling stackbase to outside a lock -- don't reread it after checking it, just read it once and check it once after that (I don't understand this heap thread state stuff, ok?) From jkrell at elego.de Mon Dec 7 11:57:57 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 11:57:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207105757.EA9D82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 11:57:57 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: whitespace to line up columns; cosmetic to hilight the critical line in RunThread From jkrell at elego.de Mon Dec 7 12:03:03 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 12:03:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207110303.D0D52CC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 12:03:03 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: fill in some LockingLevel comments empirically/transitively so I can see how act.handle is dealt with From jkrell at elego.de Mon Dec 7 12:29:48 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 12:29:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207112948.2032C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 12:29:48 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c Log message: resolve the race setting act.handle by setting it in ThreadBase to pthread_self before adding the thread to the active list; this can happen as far as I can tell before pthread_create actually returns or writes the resulting handle in the creating thread From jkrell at elego.de Mon Dec 7 12:37:53 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 12:37:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207113754.4B19E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 12:37:53 Added files: cm3/m3-libs/m3core/src/: m3core.h Log message: initial copy of m3unix.h From jkrell at elego.de Mon Dec 7 12:38:17 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 12:38:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207113817.9BEF92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 12:38:17 Modified files: cm3/m3-libs/m3core/src/: m3core.h Log message: change #ifdef guard to reflect new name From jkrell at elego.de Mon Dec 7 12:39:30 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 12:39:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207113930.21E73CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 12:39:30 Modified files: cm3/m3-libs/m3core/src/: m3makefile cm3/m3-libs/m3core/src/unix/Common/: m3unix.h Log message: add m3core.h and have m3unix.h just #include it From jkrell at elego.de Mon Dec 7 12:45:05 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 12:45:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207114506.05264CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 12:45:05 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTOSbrk.c RTOSmmap.c cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadApple.c ThreadFreeBSD.c ThreadPThreadC.c cm3/m3-libs/m3core/src/time/POSIX/: DatePosixC.c TimePosixC.c cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c UdirC.c Uexec.c Ugrp.c Uin.c Umman.c Unetdb.c UnixC.c UnixLink.c Uprocess.c Upwd.c Usignal.c Usocket.c UstatC.c UtimeC.c Uucontext.c Uugid.c Uuio.c Uutmp.c Log message: switch from m3unix.h to m3core.h From jkrell at elego.de Mon Dec 7 13:09:10 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 13:09:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207120910.77E922474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 13:09:10 Modified files: cm3/m3-libs/m3core/src/C/Common/: CsignalC.c CstdioC.c CstdlibC.c CstringC.c Log message: use m3core.h's macros for wrappers, at least for functions that don't return void From jkrell at elego.de Mon Dec 7 13:19:19 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 13:19:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207121919.19D282474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 13:19:19 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: a few mechanical wrappers From jkrell at elego.de Mon Dec 7 13:56:00 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 13:56:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207125600.68F97CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 13:56:00 Modified files: cm3/m3-libs/libm3/src/rw/: Tag: release_branch_cm3_5_8 AutoFlushWr.m3 FileWr.m3 Rd.m3 UnsafeWr.i3 Wr.m3 Log message: copy from head (nudged by Peter's mail): have AutoFlush always copy all the fields copying not all of them is a micro optimization and more importantly, hard to know the correctness of some functions Foo where already implemented as LOCK UnsafeFoo this seems like a good pattern; do it more From jay.krell at cornell.edu Mon Dec 7 14:01:39 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 7 Dec 2009 13:01:39 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091207125600.68F97CC812@birch.elegosoft.com> References: <20091207125600.68F97CC812@birch.elegosoft.com> Message-ID: 1) diff attached (cvsweb stinks, textual diffs aren't great either..) 2) "(* We don't call FastSeek here because it fails if wr.child is not seekable, even if n = wr.cur. *)" Maybe that is a bug? It should be ok to seek to the current position in a non-seekable stream? - Jay > Date: Mon, 7 Dec 2009 13:56:00 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/07 13:56:00 > > Modified files: > cm3/m3-libs/libm3/src/rw/: Tag: release_branch_cm3_5_8 > AutoFlushWr.m3 FileWr.m3 Rd.m3 > UnsafeWr.i3 Wr.m3 > > Log message: > copy from head (nudged by Peter's mail): > have AutoFlush always copy all the fields > copying not all of them is a micro optimization and more importantly, hard to know the correctness of > some functions Foo where already implemented as > LOCK > UnsafeFoo > this seems like a good pattern; do it more > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 1.txt URL: From jkrell at elego.de Mon Dec 7 14:46:57 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 14:46:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207134658.5D0812474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 14:46:57 Modified files: cm3/: m3overrides Log message: add some caltech-parser stuff From jkrell at elego.de Mon Dec 7 14:49:17 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 14:49:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207134917.5BA1D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 14:49:17 Modified files: cm3/: m3overrides Log message: add commented out the caltech-parser packages that we don't have From jkrell at elego.de Mon Dec 7 14:51:36 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 14:51:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207135136.5E9F3CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 14:51:36 Modified files: cm3/caltech-parser/: m3overrides cm3/caltech-parser/cit_common/src/: m3overrides cm3/caltech-parser/cit_util/src/: m3overrides cm3/caltech-parser/drawcontext/dcpane/src/: m3overrides cm3/caltech-parser/drawcontext/kgv/src/: m3overrides cm3/caltech-parser/drawcontext/src/: m3overrides cm3/caltech-parser/drawcontext/test/src/: m3overrides cm3/caltech-parser/hack/src/: m3overrides cm3/caltech-parser/m3browserhack/src/: m3overrides cm3/caltech-parser/m3tmplhack/src/: m3overrides cm3/caltech-parser/paneman/kemacs/src/: m3overrides cm3/caltech-parser/paneman/src/: m3overrides cm3/caltech-parser/parserlib/: m3overrides cm3/caltech-parser/parserlib/kext/src/: m3overrides cm3/caltech-parser/parserlib/klex/src/: m3overrides cm3/caltech-parser/parserlib/klexlib/src/: m3overrides cm3/caltech-parser/parserlib/ktok/src/: m3overrides cm3/caltech-parser/parserlib/ktoklib/src/: m3overrides cm3/caltech-parser/parserlib/kyacc/src/: m3overrides cm3/caltech-parser/parserlib/kyacclib/src/: m3overrides cm3/caltech-parser/parserlib/parserlib/src/: m3overrides cm3/caltech-parser/parserlib/parserlib/test/src/: m3overrides cm3/caltech-parser/parserlib/parserlib/test_stdin/src/: m3overrides cm3/caltech-parser/term/src/: m3overrides Log message: just include toplevel m3overrides From jkrell at elego.de Mon Dec 7 15:18:43 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 15:18:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207141843.543BDCC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 15:18:43 Modified files: cm3/: m3overrides Log message: set _NETOBJ_OVERRIDE, _SHAREDOBJ_OVERRIDE From jkrell at elego.de Wed Dec 9 09:45:27 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Dec 2009 9:45:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091209084527.9DA272474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/09 09:45:27 Modified files: cm3/: m3overrides Log message: comment out _NETOBJ_OVERRIDE, _NETOBJ_OVERRIDE until I understand better how this works From jkrell at elego.de Wed Dec 9 09:54:22 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Dec 2009 9:54:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091209085422.88FB02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/09 09:54:22 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: keep alertable = FALSE except in AlertWait, so that LockMutex doesn't have to touch it, as part of removing giant lock from LockMutex / UnlockMutex From jkrell at elego.de Wed Dec 9 09:57:08 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Dec 2009 9:57:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091209085708.389602474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/09 09:57:08 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: go back a version From jkrell at elego.de Wed Dec 9 14:08:56 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Dec 2009 14:08:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091209130856.F274A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/09 14:08:56 Modified files: cm3/m3-libs/m3core/src/runtime/WIN32/: RTOS.m3 Log message: just enter debugger right away, don't waste time and state suspending other threads, the debugger will suspend all and won't care if they are busy in the Modula-3 heap allocator From jkrell at elego.de Wed Dec 9 15:17:47 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Dec 2009 15:17:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091209141747.B76EF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/09 15:17:47 Modified files: cm3/m3-libs/m3core/src/: Tag: release_branch_cm3_5_8 m3makefile Added files: cm3/m3-libs/m3core/src/: Tag: release_branch_cm3_5_8 m3core.h Log message: bring over files from head From jkrell at elego.de Wed Dec 9 15:20:15 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Dec 2009 15:20:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091209142015.206762474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/09 15:20:15 Modified files: cm3/m3-libs/m3core/src/C/Common/: Tag: release_branch_cm3_5_8 CerrnoC.c CsignalC.c CstdioC.c CstdlibC.c CstringC.c m3makefile Log message: bring files from head notice no change to the *3 files, so most of this goes unused when running binaries built against the release *.i3 files, but for binaries from head, there will be some extra exports that might let them work and some existing wrappers are "rewritten" as well From jkrell at elego.de Wed Dec 9 15:26:55 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Dec 2009 15:26:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091209142655.DE4832474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/09 15:26:55 Modified files: cm3/m3-libs/m3core/src/C/Common/: CstdioC.c Log message: remove possibly less portable P_tmpdir -- MSVC stdio.h seems to /sometimes/ though rarely not defined it? From jkrell at elego.de Thu Dec 10 08:09:35 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 8:09:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210070935.674CDCC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 08:09:35 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: greatly mitigate the possible giantLock/heapLock deadlock Another problem was found, so maybe this wasn't really there, maybe. From jkrell at elego.de Thu Dec 10 08:13:34 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 8:13:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210071334.EC9472474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 08:13:34 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: fix extraction of stack pointer from context (fixes hang) From jkrell at elego.de Thu Dec 10 08:38:43 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 8:38:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210073844.06CE62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 08:38:43 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: Fix race condition that I saw "fail", around management of stack bounds and the read, check, read again pattern. Instead just read once and check. (There is an assumption of a certain level of non-optimization here; let's throw in barriers shortly.) From jkrell at elego.de Thu Dec 10 08:44:33 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 8:44:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210074433.9F8FA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 08:44:33 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: move comments for readability From jkrell at elego.de Thu Dec 10 12:23:50 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 12:23:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210112350.C45E62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 12:23:50 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: prepare to remove use of giant lock from LockMutex / UnlockMutex modify slightly alertable so that LockMutex doesn't have to change it From jkrell at elego.de Thu Dec 10 12:26:48 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 12:26:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210112648.61D512474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 12:26:48 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: and then stop writing to alertable in LockMutex (so that giant lock not needed in LockMutex/UnlockMutex) From jkrell at elego.de Thu Dec 10 13:18:48 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 13:18:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210121848.995162474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 13:18:48 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: Change LockMutex into basically just EnterCriticalSection, UnlockMutex into basically just LeaveCriticalSection. No more use of giant lock or Self() in them. This precludes an optimization of condition variables mentioned by Birrel (not shown by him, but easy to understand, but also it was never done here). Before long we'll probably just switch to Java's implementation anyway, which doesn't have a giant lock (if/when I understand it better, or maybe Tony will do this, since it might improve pthreads also and sounds like he wants to). Note this makes LockMutex/UnlockMutex very much resemble the .v0 and .v1 files that were left here. (which I went back and made the code look more like; not maintaining a uint32 "holder" threadi but just a boolean "held", but without the cache and still using C to know about the size of a critical section) remove incorrect lockingLevel comments in the perf code Note that I think perflocking should be moved one line up in LockMutex, but I match pthreads here, and it doesn't really matter From jkrell at elego.de Thu Dec 10 13:26:45 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 13:26:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210122645.5A53E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 13:26:45 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: put back assertion that alertable is false upon LockMutex From jkrell at elego.de Thu Dec 10 13:38:21 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 13:38:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210123821.524022474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 13:38:21 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: move comment for readabilty From jkrell at elego.de Thu Dec 10 16:08:58 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 16:08:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210150858.0B8432474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 16:08:58 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: rename Lock => LockRE for recursive/exclusive so that we might introduce LockE for exclusive From jkrell at elego.de Thu Dec 10 16:21:26 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 16:21:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210152126.9C79CCC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 16:21:26 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadContext.i3 ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: copy from head plus minor changes RTThread vs. ThreadInternal stop vs. limit in parameter names several changes from head: movement of some fields from Thread.T (traced) to Thread.Activation (untraced) LockMutex/UnlockMutex is just EnterCriticalSection/LeaveCriticalSection reads from global slots array are lockless (this is how Self() translates from untraced to traced) stack boundary is accurately known (not tested on Win9x) InitialStackBase removed in favor of something more efficient (not tested on Win9x) hack to verify stack addresses removed (removal of VerifySP function) some x86-isms factored into #ifdefed C the size and the fields of CONTEXT static locks changed back to variables instead of functions (really this could go either way) write into traced objects "immediately" before taking giant lock to greatly mitigate deadlock (what is the right fix here? To merge giantlock and heaplock??) (to check that allocator only uses locks and not conditions, now that locks don't use giantlock?) From jkrell at elego.de Thu Dec 10 16:38:17 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 16:38:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210153817.E80E52474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 16:38:17 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32C.c Log message: Unlock => UnlockRE also typedef CRITICAL_SECTION LockRE_t and push that around From jkrell at elego.de Thu Dec 10 16:39:32 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 16:39:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210153932.38C722474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 16:39:32 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.i3 ThreadWin32C.c Log message: Unlock => UnlockRE From hosking at cs.purdue.edu Thu Dec 10 17:16:08 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 10 Dec 2009 11:16:08 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091210150858.0B8432474001@birch.elegosoft.com> References: <20091210150858.0B8432474001@birch.elegosoft.com> Message-ID: <53223867-4659-46D1-A1E9-4C5760E85EC9@cs.purdue.edu> Umm. Modula-3 locks are *not* recursive... Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 10 Dec 2009, at 16:08, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/10 16:08:58 > > Modified files: > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 > ThreadWin32.m3 > ThreadWin32C.c > > Log message: > rename Lock => LockRE for recursive/exclusive > so that we might introduce LockE for exclusive -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Dec 10 17:20:56 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 10 Dec 2009 16:20:56 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <53223867-4659-46D1-A1E9-4C5760E85EC9@cs.purdue.edu> References: <20091210150858.0B8432474001@birch.elegosoft.com>, <53223867-4659-46D1-A1E9-4C5760E85EC9@cs.purdue.edu> Message-ID: There are internal locks that are -- all the static locks in ThreadWin32. Thread.Mutex is not. Maybe some of them need not be? I have a simple implementation but it fails. - Jay From: hosking at cs.purdue.edu Date: Thu, 10 Dec 2009 11:16:08 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 Umm. Modula-3 locks are *not* recursive... Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 On 10 Dec 2009, at 16:08, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 16:08:58 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: rename Lock => LockRE for recursive/exclusive so that we might introduce LockE for exclusive -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Dec 10 17:23:35 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 10 Dec 2009 11:23:35 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20091210150858.0B8432474001@birch.elegosoft.com>, <53223867-4659-46D1-A1E9-4C5760E85EC9@cs.purdue.edu> Message-ID: On 10 Dec 2009, at 11:20, Jay K wrote: > There are internal locks that are -- all the static locks in ThreadWin32. Perhaps it doesn't matter. > Thread.Mutex is not. > Maybe some of them need not be? > I have a simple implementation but it fails. ? > > - Jay > > > From: hosking at cs.purdue.edu > Date: Thu, 10 Dec 2009 11:16:08 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Umm. Modula-3 locks are *not* recursive... > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 > > > > > On 10 Dec 2009, at 16:08, Jay Krell wrote: > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/10 16:08:58 > > Modified files: > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 > ThreadWin32.m3 > ThreadWin32C.c > > Log message: > rename Lock => LockRE for recursive/exclusive > so that we might introduce LockE for exclusive > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Dec 10 17:53:57 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 10 Dec 2009 16:53:57 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20091210150858.0B8432474001@birch.elegosoft.com>, , <53223867-4659-46D1-A1E9-4C5760E85EC9@cs.purdue.edu>, , Message-ID: Maybe some of them need not be? I have a simple implementation but it fails. ? Attached. Tried to put this in for Thread.Mutex, not the static locks. It is based on the Java code. NewLockE, LockE, UnlockE. typedef struct _LockE_t { /* E = exclusive */ long count; int owner; HANDLE event; } LockE_t; void __cdecl ThreadWin32__DeleteLockE(LockE_t* lock) /* E = exclusive */ { if (lock) { HANDLE event = lock->event; assert(lock->owner == 0); assert(lock->count == -1); if (event) CloseHandle(event); HeapFree(GetProcessHeap(), 0, lock); } } LockE_t* __cdecl ThreadWin32__NewLockE(void) /* E = exclusive */ { HANDLE event; LockE_t* lock = (LockE_t*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*lock)); if (!lock) goto Error; lock->owner = 0; lock->count = -1; if (!(lock->event = CreateEventA(0, 0, 0, 0))) goto Error; return lock; Error: ThreadWin32__DeleteLockE(lock); return NULL; } void __cdecl ThreadWin32__LockE(LockE_t* lock) /* E = exclusive */ { if (InterlockedIncrement(&lock->count) != 0) WaitForSingleObject(lock->event, INFINITE); assert(lock->owner == 0); lock->owner = GetCurrentThreadId(); } void __cdecl ThreadWin32__UnlockE(LockE_t* lock) /* E = exclusive */ { assert(lock->owner == GetCurrentThreadId()); lock->owner = 0; if (InterlockedDecrement(&lock->count) >= 0) SetEvent(lock->event); } - Jay From: hosking at cs.purdue.edu Date: Thu, 10 Dec 2009 11:16:08 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 Umm. Modula-3 locks are *not* recursive... Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 On 10 Dec 2009, at 16:08, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 16:08:58 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: rename Lock => LockRE for recursive/exclusive so that we might introduce LockE for exclusive -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: ThreadWin32C.c URL: From jkrell at elego.de Thu Dec 10 17:56:24 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 17:56:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210165624.BEB752474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 17:56:24 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: BroadcastHeap's caller must already have the heap lock From jkrell at elego.de Thu Dec 10 18:03:04 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 18:03:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210170304.14592CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 18:03:04 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: go back a version From jkrell at elego.de Thu Dec 10 18:12:01 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 18:12:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210171201.4AE7ACC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 18:12:01 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: try again: BroadcastHeap's caller needs to have heap lock already From jay.krell at cornell.edu Thu Dec 10 18:21:10 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 10 Dec 2009 17:21:10 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20091210150858.0B8432474001@birch.elegosoft.com>, , , <53223867-4659-46D1-A1E9-4C5760E85EC9@cs.purdue.edu>, , , , , Message-ID: I think the problem might just be not understanding the Modula-3 object/linkage model. I thought if just change ThreadWin32.m3, I didn't have to recompile/link anything besides m3core.dll. That seems to be wrong though. It seems maybe the sizes of types not exposed in .i3 files are exposed to the object code of clients. ? I'll try again. -Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Thu, 10 Dec 2009 16:53:57 +0000 CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 Maybe some of them need not be? I have a simple implementation but it fails. ? Attached. Tried to put this in for Thread.Mutex, not the static locks. It is based on the Java code. NewLockE, LockE, UnlockE. typedef struct _LockE_t { /* E = exclusive */ long count; int owner; HANDLE event; } LockE_t; void __cdecl ThreadWin32__DeleteLockE(LockE_t* lock) /* E = exclusive */ { if (lock) { HANDLE event = lock->event; assert(lock->owner == 0); assert(lock->count == -1); if (event) CloseHandle(event); HeapFree(GetProcessHeap(), 0, lock); } } LockE_t* __cdecl ThreadWin32__NewLockE(void) /* E = exclusive */ { HANDLE event; LockE_t* lock = (LockE_t*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*lock)); if (!lock) goto Error; lock->owner = 0; lock->count = -1; if (!(lock->event = CreateEventA(0, 0, 0, 0))) goto Error; return lock; Error: ThreadWin32__DeleteLockE(lock); return NULL; } void __cdecl ThreadWin32__LockE(LockE_t* lock) /* E = exclusive */ { if (InterlockedIncrement(&lock->count) != 0) WaitForSingleObject(lock->event, INFINITE); assert(lock->owner == 0); lock->owner = GetCurrentThreadId(); } void __cdecl ThreadWin32__UnlockE(LockE_t* lock) /* E = exclusive */ { assert(lock->owner == GetCurrentThreadId()); lock->owner = 0; if (InterlockedDecrement(&lock->count) >= 0) SetEvent(lock->event); } - Jay From: hosking at cs.purdue.edu Date: Thu, 10 Dec 2009 11:16:08 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 Umm. Modula-3 locks are *not* recursive... Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 On 10 Dec 2009, at 16:08, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 16:08:58 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: rename Lock => LockRE for recursive/exclusive so that we might introduce LockE for exclusive -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Thu Dec 10 18:31:07 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 18:31:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210173107.E7C1ECC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 18:31:07 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: use the smaller exclusive locks based on Java's implementation Note that they are more expensive to initialize because the kernel object is allocated up-front remove writeToForceGcInteractionOutsideOfGiantLock From jkrell at elego.de Fri Dec 11 01:02:02 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 1:02:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211000202.DCA3BCC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 01:02:02 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: fix signed/unsigned mismatch From jkrell at elego.de Fri Dec 11 01:10:18 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 1:10:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211001018.75B342474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 01:10:18 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: reordering and comments (so we might switch some LockRE_t to LockE_t, without adding declarations) From jkrell at elego.de Fri Dec 11 01:13:32 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 1:13:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211001332.CBF16CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 01:13:32 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: a little more reordering From jkrell at elego.de Fri Dec 11 01:31:53 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 1:31:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211003153.845292474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 01:31:53 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: a little more reordering and paranoia From jkrell at elego.de Fri Dec 11 01:33:59 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 1:33:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211003359.E97BA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 01:33:59 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: fix for low memory From jkrell at elego.de Fri Dec 11 01:36:57 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 1:36:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211003658.018C1CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 01:36:57 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: provide LOCKE macro analogous to LOCKRE macro; neither has as much point as in the past when we generated per-lock functions From jkrell at elego.de Fri Dec 11 01:39:40 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 1:39:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211003940.632EE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 01:39:40 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: add volatile From jkrell at elego.de Fri Dec 11 02:02:12 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 2:02:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211010212.9D2612474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 02:02:12 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: fix for low resources (but we should really just move LockE implementation into Modula-3 since we control it enough, will do -- remove a level of indirection, but also lose out on inlined interlocked intrinsics..tradeoff) From jkrell at elego.de Fri Dec 11 02:05:54 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 2:05:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211010554.8545D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 02:05:54 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 ThreadWin32.i3 Log message: use unique opaque types and fix a harmless typo it revealed From jkrell at elego.de Fri Dec 11 02:17:13 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 2:17:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211011713.B77702474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 02:17:13 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: rename some variables for clarity -- too much in this module for such short names I think From jkrell at elego.de Fri Dec 11 02:23:28 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 2:23:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211012328.EBF14CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 02:23:28 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: back to LockRE at least for now They do have nice properties and it is hard to chose. good: They have brief spins multiprocessor and they delay allocating the kernel object until there is contention. So they scale better under brief contention and are much cheaper to create. bad: They are larger. (and we have to add a boolean to avoid the recursion) bad: Prior to XP there were problems under low memory. bad: We are less likely to remove the indirection for them. But we have that in pthreads too. From jkrell at elego.de Fri Dec 11 02:25:22 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 2:25:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211012522.37D662474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 02:25:22 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: #if 0 out LockE code at least for now From jkrell at elego.de Fri Dec 11 02:40:53 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 2:40:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211014053.D63A42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 02:40:53 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: prepare to remove initLock in favor of InterlockedCompareExchange From jkrell at elego.de Fri Dec 11 02:46:43 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 2:46:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211014643.C9EFC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 02:46:43 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: use InterlockedCompareExchangePointer in place of initLock From jkrell at elego.de Fri Dec 11 02:52:20 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 2:52:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211015220.DE0ED2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 02:52:20 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: retry once after short delay under low resources From jkrell at elego.de Fri Dec 11 11:44:57 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 11:44:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211104457.321FC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 11:44:57 Removed files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTThreadStk.m3 Log message: delete unused file From jkrell at elego.de Fri Dec 11 11:45:52 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 11:45:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211104553.ED4272474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 11:45:52 Removed files: cm3/m3-libs/m3core/src/runtime/POSIX/: Tag: release_branch_cm3_5_8 RTThreadStk.m3 Log message: delete unused file From jkrell at elego.de Fri Dec 11 11:46:32 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 11:46:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211104633.01BD72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 11:46:32 Removed files: cm3/m3-libs/m3core/src/runtime/POSIX/: Tag: release_branch_cm3_5_8 RTThread.i3 Log message: delete another unused file From jkrell at elego.de Fri Dec 11 11:50:45 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 11:50:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211105045.5CE6E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 11:50:45 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTAllocator.m3 RTCollector.m3 Log message: restore orphaned comment into position From jkrell at elego.de Fri Dec 11 11:53:45 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 11:53:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211105345.CA2992474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 11:53:45 Added files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTMiscC.c Log message: bring over new file from head From jkrell at elego.de Fri Dec 11 12:02:46 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:02:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211110246.DF50B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:02:46 Modified files: cm3/m3-libs/m3core/src/float/DS3100/: Tag: release_branch_cm3_5_8 FloatMode.m3 cm3/m3-libs/m3core/src/float/IRIX5/: Tag: release_branch_cm3_5_8 FloatMode.m3 cm3/m3-libs/m3core/src/float/VAX/: Tag: release_branch_cm3_5_8 FloatMode.m3 cm3/m3-libs/m3core/src/runtime/NT386/: Tag: release_branch_cm3_5_8 RTSignal.m3 cm3/m3-libs/m3core/src/runtime/WIN32/: Tag: release_branch_cm3_5_8 RTOS.m3 cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTAllocator.m3 RTCollector.m3 RTHeapStats.m3 RTLinker.m3 RTLinkerX.i3 m3makefile cm3/m3-libs/m3core/src/runtime/ex_frame/: Tag: release_branch_cm3_5_8 RTExFrame.m3 RTException.m3 cm3/m3-libs/m3core/src/thread/Common/: Tag: release_branch_cm3_5_8 m3makefile cm3/m3-libs/m3core/src/thread/POSIX/: Tag: release_branch_cm3_5_8 ThreadPosix.m3 cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadPThread.m3 cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 SchedulerPosix.m3 ThreadWin32.m3 Added files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTThread.i3 Removed files: cm3/m3-libs/m3core/src/thread/Common/: Tag: release_branch_cm3_5_8 ThreadInternal.i3 Log message: manually apply pervasiv diff from head: ThreadInternal => RTThread This is one of the largest pieces differing between head and release and making it "difficult" to port changes. From jkrell at elego.de Fri Dec 11 12:10:33 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:10:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211111033.C88DD2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:10:33 Modified files: cm3/m3-libs/m3core/src/float/DS3100/: FloatMode.m3 cm3/m3-libs/m3core/src/float/IRIX5/: FloatMode.m3 cm3/m3-libs/m3core/src/float/VAX/: FloatMode.m3 Log message: ThreadInternal => RTThread From jkrell at elego.de Fri Dec 11 12:12:32 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:12:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211111233.020062474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:12:32 Modified files: cm3/m3-libs/m3core/src/float/DS3100/: Tag: release_branch_cm3_5_8 FloatMode.m3 cm3/m3-libs/m3core/src/float/IRIX5/: Tag: release_branch_cm3_5_8 FloatMode.m3 cm3/m3-libs/m3core/src/float/VAX/: Tag: release_branch_cm3_5_8 FloatMode.m3 Log message: copy from head: change get/set to direct access via an unsafe pointer From jkrell at elego.de Fri Dec 11 12:14:26 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:14:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211111426.0EA142474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:14:26 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadPThreadC.c Log message: port simple race condition fix from head related to stopping a thread before/after it has any traced references From jkrell at elego.de Fri Dec 11 12:18:34 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:18:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211111834.302122474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:18:34 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Tag: release_branch_cm3_5_8 UtimeC.c Log message: port AMD64_DARWIN assertion failure fix from head From jkrell at elego.de Fri Dec 11 12:24:58 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:24:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211112458.506562474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:24:58 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 m3makefile Log message: port from head -- make ThreadContext private -- it is after all the most unportable thing in Win32 let alone Modula-3 libraries! (the MSDN documentation says 'see header files for the fields' or somesuch) From jkrell at elego.de Fri Dec 11 12:29:21 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:29:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211112921.AC0122474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:29:21 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTLinkerX.i3 Log message: copy from head: just a insignificant reordering From jkrell at elego.de Fri Dec 11 12:38:19 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:38:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211113819.C98A32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:38:19 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTCollector.m3 Log message: port from head: just a comment, but it reduces the head vs. release diffs From jkrell at elego.de Fri Dec 11 12:42:57 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:42:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211114257.4EA062474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:42:57 Modified files: cm3/m3-libs/m3core/src/runtime/WIN32/: Tag: release_branch_cm3_5_8 RTOS.m3 Log message: port from head: very small change that makes debugging sometimes much better (break right into debugger, don't waste time trying to suspend threads and dump stacks, the debugger does a much better job of suspending threads and usually (if you have symbols) of dumping stacks) If you aren't using a debugger, then no change. The thing about RestoreHandlers can probably just be removed since in my brief experience the DebugBreak works fine before it. Really it can probably just go like this: If debugger debugbreak ELSE suspend others, maybe dumpstack one of the important parts restore handlers probably can be removed Exit(-1) also important though maybe should be TerminateProcess which is much quicker/cleaner doesn't run all the dllmains though currently I just made the small change of moving the debugbreak much earlier From jkrell at elego.de Fri Dec 11 13:05:58 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 13:05:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211120558.37E0F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 13:05:58 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTThread.i3 cm3/m3-libs/m3core/src/thread/POSIX/: Tag: release_branch_cm3_5_8 ThreadPosix.i3 ThreadPosix.m3 cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadPThread.m3 cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.m3 Log message: port from head: rename parameter in function pointer type from "stop" to "limit" note that there are still "start, stop" pairs, in addition to the "start, limit" pairs From jkrell at elego.de Fri Dec 11 13:14:24 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 13:14:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211121424.EA1432474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 13:14:24 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 SchedulerPosix.m3 ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: copy from head: lengthen some module variable names: inCritical => HeapInCritical do_signal => HeapDoSignal mutex => HeapWaitMutex condition => HeapWaitCondition remove writeToForceGcInteractionOutsideOfGiantLock reorder ThreadWin32C.c some use memory barriers for paranoia replace initLock with InterlockedCompareExchangePointer don't have BroadcastHeap take heap lock, its caller already should (right?); this can go either way, really, since it is a recursive lock..let's see, the pthread version can go either way..let's change the BOOLEAN to an INTEGER so we are sure that writes to it are atomic then we should be ok From jkrell at elego.de Fri Dec 11 13:27:39 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 13:27:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211122739.468902474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 13:27:39 Modified files: cm3/m3-libs/m3core/src/win32/: WinBase.i3 Log message: add InterlockedExchange and InterlockedCompareExchange From jkrell at elego.de Fri Dec 11 13:32:49 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 13:32:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211123249.129672474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 13:32:49 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: make HeapDoSignal definitely thread safe by manipulating it only with Interlocked functions From jkrell at elego.de Fri Dec 11 13:33:34 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 13:33:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211123334.CDB5F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 13:33:34 Modified files: cm3/m3-libs/m3core/src/win32/: Tag: release_branch_cm3_5_8 WinBase.i3 Log message: from head: add InterlockedExchange and InterlockedCompareExchange From jkrell at elego.de Fri Dec 11 13:34:50 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 13:34:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211123450.790CF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 13:34:50 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.m3 Log message: from head: use InterlockedExchange and InterlockedCompareExchange on HeapDoSignal to ensure its thread safety (probably just storing instead of Exchange would do) From jkrell at elego.de Fri Dec 11 13:38:56 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 13:38:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211123856.CE2252474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 13:38:56 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: move comment From jkrell at elego.de Fri Dec 11 13:43:12 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 13:43:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211124312.9B67B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 13:43:12 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: use WinBase.InterlockedIncrement/Decrement (I've gone back and forth on this; cloning Win32 headers just once isn't as bad as n times for FreeBSD/OpenBSD/NetBSD/Solaris/Irix/AIX/OpenVMS/Linux/Tru64/Darwin, and if we do wrap, we can do it over in m3core/win32 like we do in m3core/unix, instead of in the client From jkrell at elego.de Fri Dec 11 14:32:26 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 14:32:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211133226.129582474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 14:32:26 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: safekeeping: unfinished experiment around using one long with bitfields for alert and alerted and interlocked operations I think we can win instead with simply Alert() SetEvent(alertEvent) and dispense with alertable entirely If a thread becomes alertable, it'll just wait on two events. The alert will always stick around until checked. From jkrell at elego.de Fri Dec 11 14:33:02 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 14:33:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211133302.7FE962474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 14:33:02 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: go back a version (undo safekeeping) From hosking at elego.de Fri Dec 11 15:47:03 2009 From: hosking at elego.de (Antony Hosking) Date: Fri, 11 Dec 2009 15:47:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211144703.EF4A62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/11 15:47:03 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: Match comment length. From hosking at elego.de Fri Dec 11 15:57:50 2009 From: hosking at elego.de (Antony Hosking) Date: Fri, 11 Dec 2009 15:57:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211145750.8D48E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/11 15:57:50 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Tidy a little. Why do we not check stackbase=NIL anymore in ProcessOther? From hosking at cs.purdue.edu Fri Dec 11 16:00:35 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 11 Dec 2009 10:00:35 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091211114257.4EA062474001@birch.elegosoft.com> References: <20091211114257.4EA062474001@birch.elegosoft.com> Message-ID: <3A788099-01DB-4DE6-A6D1-4180771C90C7@cs.purdue.edu> We should do the same for POSIX too I think. On 11 Dec 2009, at 12:42, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/11 12:42:57 > > Modified files: > cm3/m3-libs/m3core/src/runtime/WIN32/: Tag: > release_branch_cm3_5_8 > RTOS.m3 > > Log message: > port from head: very small change that makes debugging sometimes much better > (break right into debugger, don't waste time trying to suspend threads > and dump stacks, the debugger does a much better job of suspending > threads and usually (if you have symbols) of dumping stacks) > If you aren't using a debugger, then no change. > > The thing about RestoreHandlers can probably just be removed since > in my brief experience the DebugBreak works fine before it. > > Really it can probably just go like this: > If debugger > debugbreak > ELSE > suspend others, maybe > dumpstack one of the important parts > restore handlers probably can be removed > Exit(-1) also important though maybe should be TerminateProcess which is much quicker/cleaner > doesn't run all the dllmains > > though currently I just made the small change of moving the debugbreak much earlier -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Dec 11 16:01:04 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 11 Dec 2009 10:01:04 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091211120558.37E0F2474001@birch.elegosoft.com> References: <20091211120558.37E0F2474001@birch.elegosoft.com> Message-ID: Where are the start/stop pairs? On 11 Dec 2009, at 13:05, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/11 13:05:58 > > Modified files: > cm3/m3-libs/m3core/src/runtime/common/: Tag: > release_branch_cm3_5_8 > RTThread.i3 > cm3/m3-libs/m3core/src/thread/POSIX/: Tag: > release_branch_cm3_5_8 > ThreadPosix.i3 > ThreadPosix.m3 > cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: > release_branch_cm3_5_8 > ThreadPThread.m3 > cm3/m3-libs/m3core/src/thread/WIN32/: Tag: > release_branch_cm3_5_8 > ThreadWin32.m3 > > Log message: > port from head: rename parameter in function pointer type from "stop" > to "limit" > note that there are still "start, stop" pairs, in addition to the > "start, limit" pairs -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Fri Dec 11 16:44:56 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 16:44:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211154456.D335A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 16:44:56 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: "Rewrite" alerting to use a separate event This cuts out a large use of the giant lock. There is no longer the two booleans alerted and alertable. "alertable" isn't needed, just have Alert set the event. alerted is embodied in the event's state. Atomtic test and clear alerted is provided by WaitForSingleObject and an auto reset event. downsides: Thread is larger -- two booleans (two bytes) replaced by a handle Thread is slower to create -- an extra kernel object. TestAlert is much slower: WaitForSingleObject(timeout = 0) a kernel call instead of reading a boolean (possibly under giant lock, but the giant lock holds do/did all appear brief, judging from the code) We /might/ be able to delay creating the handle? Until someone does an AlertWait or Alert? We might be able to synthesize alerting with Interlocked? Maybe but having two events seems good. possible alternatives: the boolean for alerted could come from elsewhere, in particular the Win32 alerted feature Downside here is I'm not sure how to easily set it on Win9x. On NT it is simply QueueUserAPC (introduced in what version?) Maybe it is by completing arbitrary I/O to an arbitrary handle? upsides: one more large dent toward removing the giant lock and hopefully therefore being much more scalable And we know how to remove it entirely, without dropping pre-Vista support (do like Java, with its tricky counters/tickets system) From jkrell at elego.de Fri Dec 11 16:47:01 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 16:47:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211154701.562682474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 16:47:01 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: shrink a little From jkrell at elego.de Fri Dec 11 16:53:11 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 16:53:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211155311.C412C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 16:53:11 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: go back a version From jkrell at elego.de Fri Dec 11 16:53:42 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 16:53:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211155342.E612A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 16:53:42 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: remove pointless variable From jkrell at elego.de Sat Dec 12 06:46:05 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 6:46:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212054605.4A835CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 06:46:05 Modified files: cm3/m3-libs/m3core/src/win32/: WinBase.c Log message: trim down From jkrell at elego.de Sat Dec 12 07:11:28 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 7:11:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212061128.6D1ED2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 07:11:28 Modified files: cm3/m3-libs/m3core/src/win32/: WinBase.c Log message: prototype, that I probably won't use From jkrell at elego.de Sat Dec 12 07:26:48 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 7:26:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212062649.198DF2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 07:26:48 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: go back to initLock instead of InterlockedCompareExchange for greater toolset/processor/operatingsystem compatibility From jkrell at elego.de Sat Dec 12 07:46:27 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 7:46:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212064628.1E4222474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 07:46:27 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: move #pragmas to under #if 0 since not needed elsewhere From jkrell at elego.de Sat Dec 12 08:11:11 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 8:11:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212071111.A80B72474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 08:11:11 Removed files: cm3/m3-libs/m3core/src/win32/: WinBase.c Log message: remove prototype From jkrell at elego.de Sat Dec 12 09:18:28 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 9:18:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212081828.8CD262474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 09:18:28 Modified files: cm3/m3-libs/m3core/src/win32/: WinNT.i3 Log message: remove a few parens From jkrell at elego.de Sat Dec 12 09:23:08 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 9:23:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212082308.A50CD2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 09:23:08 Added files: cm3/m3-libs/m3core/src/win32/: WinConstants.c Log message: very viable prototype that reduces header cloning; note that current MSDN documentation lists explicit values, probably to aid independent header writers? From jkrell at elego.de Sat Dec 12 09:28:27 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 9:28:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212082827.E2D6E2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 09:28:27 Modified files: cm3/m3-libs/m3core/src/win32/: WinConstants.c Log message: add WinNLS.i3 content From jkrell at elego.de Sat Dec 12 11:27:08 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 11:27:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212102708.948802474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 11:27:08 Modified files: cm3/m3-libs/m3core/src/win32/: WinConstants.c Added files: cm3/m3-libs/m3core/src/win32/: WinUser.pl WinUser.txt Log message: incorporate (voluminous) WinUser.i3 content in a fashion -- fully #ifdefed, as the headers vary a lot through the years From jkrell at elego.de Sat Dec 12 13:26:43 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 13:26:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212122643.33AF12474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 13:26:43 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: fix lockinglevel comments suspend_cnt giant => activeLock "Mu" => "Lock" the name "lock" is used because it is neither the pthread term ("mutex") nor the win32 term ("criticalsection") so therefore we can hopefully agree to use it in some future unified version From jkrell at elego.de Sat Dec 12 13:35:16 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 13:35:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212123517.055272474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 13:35:16 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: eliminate giant lock Use the algorithm from the Java implementation. Adding another lock per condition, since they have the one user and condition lock, but we apparently let folks use multiple locks with the same condition. (Multiple conditions per lock makes sense to me; multiple locks per condition does not.) also eliminate all uses of Self() (like pthreads) Now putting slotLock back in FreeSlot and Self() not so bad, esp. in the interest of unifying with pthreads. Not done yet. (since we no longer call Self, and FreeSlot is rare) From jkrell at elego.de Sat Dec 12 13:57:23 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 13:57:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212125723.D14CA2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 13:57:23 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: remove the abstraction layer cost without removing the abstraction layer (next we'll remove the layer, the experiment proved successful, we can bring it back when we unify pthreads/win32) From jkrell at elego.de Sat Dec 12 15:10:20 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:10:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212141020.968472474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:10:20 Modified files: cm3/m3-libs/m3core/src/win32/: WinNT.i3 Log message: restore historical (3.6) definition of PCRITICAL_SECTION, so that NEW() works with it (I get compile errors otherwise that I don't understand, and the historical definition follows the usual pattern, the contemporary one is wierd to me; if needed, we can replace everything with properly sized integers) From jkrell at elego.de Sat Dec 12 15:13:15 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:13:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212141316.2D6FB2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:13:15 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: restore more like traditional structure where more is done in Modula-3 However still with some interesting differences. - the giant lock is still gone, alert is still its own event :) - CONTEXT is still abstracted into C At least getting the fields; we can consider getting the size from C and then doing the allocation in Modula-3 (Getting CONTEXT right, and not using C, would threaten a LOT of duplication for VERY little platform variation; for the most part, Win32 == Win64 except for SIZE_T, sizeof(void*), ULONG_PTR, DWORD_PTR, INT_PTR, size_t, ptrdiff_t, which are differences easy to deal with, AND CONTEXT, which is difficult; there are also differences a la InterlockedExchange vs. InterlockedExchangePointer) - restore Self() and FreeSlot to being lockful like pthreads (now that we never call Self() internally!) - <* ASSERT BYTESIZE(CRITICAL_SECTION) = sizeof(CRITICAL_SECTION) *> - the static locks are still allocated in C, as our debugging support is very inadequate and this helps tremendously (the assert is still needed for the dynamic locks) Unification with pthreads is made more difficult here, but in my opinion the experimenting was a success and we CAN do such unification. (In particular, I no longer have "LockRE", no longer compute if stack grows down, I'm willing to assume it) Still we are structured like pthreads with ProcessLive, ProcessOther, and the suspend/resume code could be easily moved to C as well. - The relatively new function GetStackBounds is still in C but it could be moved to Modula-3. - assert in BroadcastHeap that we have the lock, so we can try not introducing the InterlockedCompareExchange dependency, for more support across operating system versions RTOS.i3 vaguely implies this is correct. Alternatively we can introduce a tiny lock for this. (Even if this is more dependent on C header cloning, that cloning can be more like m3core/unix where we wrap every function and implement all constants as C variables; we don't absolutely have to invent new interfaces for the Modula-3/C bridging) From jkrell at elego.de Sat Dec 12 15:14:03 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:14:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212141405.CD0D52474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:14:03 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: fix comment From jkrell at elego.de Sat Dec 12 15:15:46 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:15:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212141546.EC2A62474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:15:46 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: comments From jkrell at elego.de Sat Dec 12 15:23:47 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:23:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212142347.E1D442474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:23:47 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: don't bother returning result from SetActivation, since nobody looks at it From jkrell at elego.de Sat Dec 12 15:26:43 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:26:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212142643.B42FE2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:26:43 Modified files: cm3/m3-libs/m3core/src/win32/: Tag: release_branch_cm3_5_8 WinNT.i3 Log message: copy from head: remove some parens, and use sensible 3.6 definition of PRTL_CRITICAL_SECTION; I should check if we're inserting 'barrier' uses unnecessarily here From jkrell at elego.de Sat Dec 12 15:29:39 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:29:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212142939.EBA7F2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:29:39 Modified files: cm3/m3-libs/m3core/src/thread/Common/: ThreadDebug.i3 Log message: change InnerWait parameter from REFANY (self) to ADDRESS (activation); forgot to commit this a while ago and things broken otherwise From jkrell at elego.de Sat Dec 12 15:30:37 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:30:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212143038.DF7532474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:30:37 Modified files: cm3/m3-libs/m3core/src/thread/Common/: Tag: release_branch_cm3_5_8 ThreadDebug.i3 cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: copy from head: no more giant lock, move some code back to Modula-3 from C From jkrell at elego.de Sat Dec 12 15:35:41 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:35:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212143541.49D7F2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:35:41 Modified files: cm3/m3-libs/m3core/src/: m3core.h Log message: whitespace From jkrell at elego.de Sat Dec 12 15:39:48 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:39:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212143949.055542474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:39:48 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTHeapStats.m3 Log message: copy from head: < vs. <= From jkrell at elego.de Sat Dec 12 15:40:44 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:40:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212144045.038B72474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:40:44 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTCollector.m3 Log message: copy from head: NIL check vs. range check From jkrell at elego.de Sat Dec 12 15:48:11 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:48:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212144812.1440B2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:48:11 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c Log message: port race condition fix from head: don't return pthread handle from thread_create instead, in new thread, store pthread_self It isn't clear otherwise if the handle gets stored before it is used. I had seen the pthread_detach call fail previously. From jkrell at elego.de Sat Dec 12 16:16:43 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 16:16:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212151643.E22C92474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 16:16:43 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: We have portable idioms, and now good implementations of them, but still, it seems far more sensible for Join to wait on the thread itself and not a separate condition. (I think even pthreads can do similar -- pthread_join, at least in the non alertable case. One reason historically not to use this, in the Win32 implementation, is the thread cache; if we cache threads, then the threads are never signaled.) The check for multiple joins is now a bit racy, but that's ok, we don't have to always detect it. We could tighten that up if it mattered (with more locking). From jkrell at elego.de Sat Dec 12 16:41:09 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 16:41:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212154109.3F3602474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 16:41:09 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: use my helper function DelHandle to shrink code for readability From jkrell at elego.de Sat Dec 12 16:49:14 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 16:49:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212154915.3BC9C2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 16:49:14 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: some RTIO, but I see the problem -- the change to wait on the thread handle instead of a condition, uses freed memory instead of relying on garbage collection From jkrell at elego.de Sat Dec 12 16:49:59 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 16:49:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212154959.E0ABD2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 16:49:59 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: fix leak from when I was still getting the PCRITICAL_SECTION thing to compile From jkrell at elego.de Sat Dec 12 17:07:01 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 17:07:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212160701.62C2E2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 17:07:01 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: cleanup via RegisterFinalCleanup From jkrell at elego.de Sat Dec 12 17:12:49 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 17:12:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212161249.13F582474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 17:12:49 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: There's actually no window of opportunity for failure here so just do things more directly. Also remove some micro-optimizations. From jkrell at elego.de Sat Dec 12 17:17:59 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 17:17:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212161759.084D22474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 17:17:59 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.m3 Log message: darn a little sloppy this time; previously all the release versions were good; copy from head again: in particular the fix to not leak all the critical sections as well take the Win32-idiomatic join implementation, and using RegisterFinalCleanup to run the cleanup From jkrell at elego.de Sat Dec 12 17:19:17 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 17:19:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212161917.D5C212474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 17:19:17 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: some cleanup: remove the RTIO, alter a comment, alter asserts From jkrell at elego.de Sat Dec 12 17:20:00 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 17:20:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212162000.2235D2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 17:20:00 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.m3 Log message: remove unused imports (from removing the RTIO (matches head again) From jkrell at elego.de Sat Dec 12 17:24:37 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 17:24:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212162437.AC72D2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 17:24:37 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: inline DeleteActivation into its only caller CleanT From jkrell at elego.de Sun Dec 13 01:07:41 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 1:07:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213000742.3BB982474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 01:07:41 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: comments and assertions (comment was leftover from lockless version From jkrell at elego.de Sun Dec 13 01:14:33 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 1:14:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213001433.CEBDE2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 01:14:33 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: whitespace at start/end of pragmas From jkrell at elego.de Sun Dec 13 01:30:01 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 1:30:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213003002.8B7512474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 01:30:01 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: cleanup: save a line on VAR; try to initialize locals at declaration more; always assert wait results should be no semantic change From jkrell at elego.de Sun Dec 13 02:14:57 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 2:14:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213011457.B44362474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 02:14:57 Modified files: cm3/m3-libs/m3core/src/thread/Common/: ThreadDebug.c ThreadDebug.i3 Log message: - don't wrap #includes with extern "C" - always enable it still requires @m3debugthreads though to really kick in - tune the array size down due to always being enabled - add some functions like Pause, XWait, etc. From jkrell at elego.de Sun Dec 13 02:16:59 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 2:16:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213011659.CBF332474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 02:16:59 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: merge Pause and AlertPause into XPause(alertable: BOOLEAN) to share a little code and resemble pthreads as part of this, split TestAlert into TestAlert and XTestAlert TestAlert = XTestAlert(GetActivation()) Fix bug where AlertPause(<=0) does not recieve alerts. Rename InnerWait to XWait to match pthreads. From jkrell at elego.de Sun Dec 13 02:27:14 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 2:27:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213012714.882D52474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 02:27:14 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: should fix it to compile From jkrell at elego.de Sun Dec 13 02:27:29 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 2:27:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213012729.22C282474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 02:27:29 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: should fix it to compile From jkrell at elego.de Sun Dec 13 02:28:05 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 2:28:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213012806.0EFF72474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 02:28:05 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: should fix it to compile From jkrell at elego.de Sun Dec 13 02:38:30 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 2:38:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213013831.4F6722474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 02:38:30 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: safe another line wrt VAR add explicit usual check to AlertJoin that GetActivation() # NIL pass GetActivation to XJoin (or NIL for non-alert version) REMOVE check in Pause that GetActivation() # NIL (debatable, but in fact it doesn't need any thread state, it just converts float seconds to integer milliseconds and calls Sleep) reduce check in XPause then as well (if NOT alertable) add more asserts From jkrell at elego.de Sun Dec 13 03:55:04 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 3:55:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213025505.A68692474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 03:55:04 Modified files: cm3/m3-ui/ui/src/winvbt/: Tag: release_branch_cm3_5_8 WinContext.m3 Log message: copy from head: let's Juno get much further and fix error checks From jkrell at elego.de Sun Dec 13 04:22:50 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 4:22:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213032251.22EFE2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 04:22:50 Modified files: cm3/m3-ui/vbtkit/src/lego/: Tag: release_branch_cm3_5_8 m3makefile Log message: Mentor crashes starting up. Even if I go back a week or a month in the release branch. (I haven't yet tested RC2, RC3, RC4, etc.) If we use the "Posix" scroller stuff, no problem. So do that for now. Probably some problem in the scroller code around locking. There were others recently (even on X) From jkrell at elego.de Sun Dec 13 04:36:39 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 4:36:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213033640.75CF72474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 04:36:39 Modified files: cm3/m3-ui/vbtkit/src/lego/: Tag: release_branch_cm3_5_8 m3makefile cm3/m3-ui/vbtkit/src/lego/WIN32/: Tag: release_branch_cm3_5_8 ScrollerVBTClass.m3 Log message: fix this crash starting up mentor in win32 specific code: *** *** runtime error: *** Attempt to reference an illegal memory location. *** pc = 0x12b16a8 = GetAttributes + 0x1ed in ..\src\lego\WIN32\ScrollerVBTCl ass.m3 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x2e2f670 0x846ced SystemError + 0x66 in ..\src\runtime\NT386\RTSignal.m3 0x2e2f720 0x12b16a8 GetAttributes + 0x1ed in ..\src\lego\WIN32\ScrollerVBTClas s.m3 0x2e2f7f8 0x12e95c8 AddView + 0x101e(!) in ..\src\lego\ViewportVBT.m3 0x2e2f844 0x12e762e Init + 0x30e in ..\src\lego\ViewportVBT.m3 0x2e2f964 0x1234fc7 pViewport + 0x512 in ..\src\FormsVBT.m3 0x2e2f9c4 0x12234b1 Item + 0x48b in ..\src\FormsVBT.m3 0x2e2f9f0 0x124107a OneChild + 0xf8 in ..\src\FormsVBT.m3 0x2e2faf8 0x1227520 pShape + 0x19c in ..\src\FormsVBT.m3 0x2e2fb58 0x12234b1 Item + 0x48b in ..\src\FormsVBT.m3 0x2e2fb84 0x124107a OneChild + 0xf8 in ..\src\FormsVBT.m3 ......... ......... ... more frames ... Really it'd be super nice if we could unfork these two directories. They are mostly the same, except the Posix directory gets more attentin fix this crash starting up mentor in win32 specific code: *** *** runtime error: *** Attempt to reference an illegal memory location. *** pc = 0x12b16a8 = GetAttributes + 0x1ed in ..\src\lego\WIN32\ScrollerVBTCl ass.m3 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x2e2f670 0x846ced SystemError + 0x66 in ..\src\runtime\NT386\RTSignal.m3 0x2e2f720 0x12b16a8 GetAttributes + 0x1ed in ..\src\lego\WIN32\ScrollerVBTClas s.m3 0x2e2f7f8 0x12e95c8 AddView + 0x101e(!) in ..\src\lego\ViewportVBT.m3 0x2e2f844 0x12e762e Init + 0x30e in ..\src\lego\ViewportVBT.m3 0x2e2f964 0x1234fc7 pViewport + 0x512 in ..\src\FormsVBT.m3 0x2e2f9c4 0x12234b1 Item + 0x48b in ..\src\FormsVBT.m3 0x2e2f9f0 0x124107a OneChild + 0xf8 in ..\src\FormsVBT.m3 0x2e2faf8 0x1227520 pShape + 0x19c in ..\src\FormsVBT.m3 0x2e2fb58 0x12234b1 Item + 0x48b in ..\src\FormsVBT.m3 0x2e2fb84 0x124107a OneChild + 0xf8 in ..\src\FormsVBT.m3 ......... ......... ... more frames ... Really it'd be super nice if we could unfork these two directories. They are mostly the same, except the Posix directory gets more attention and bug fixes while the Win32 one languishes. Surely they can share more code? From jkrell at elego.de Sun Dec 13 04:37:34 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 4:37:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213033734.E108E2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 04:37:34 Modified files: cm3/m3-ui/vbtkit/src/lego/: Tag: release_branch_cm3_5_8 m3makefile cm3/m3-ui/vbtkit/src/lego/WIN32/: Tag: release_branch_cm3_5_8 ScrollerVBTClass.m3 Log message: I forgot to mention: I'm really just guessing here. It seems to work. From jkrell at elego.de Sun Dec 13 04:49:24 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 4:49:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213034925.A68022474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 04:49:24 Modified files: cm3/m3-ui/vbtkit/src/lego/: m3makefile cm3/m3-ui/vbtkit/src/lego/WIN32/: ScrollerVBTClass.m3 Log message: copy from release: wild guess that fixes mentor startup crash also works if we just use the Posix version I don't think this is related to m3core churn! From jkrell at elego.de Sun Dec 13 04:54:43 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 4:54:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213035443.62F892474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 04:54:43 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: move GetStackBounds to Modula-3 we assert that we have the size of the C struct correct, though we don't assert about its fields, probably we should From jkrell at elego.de Sun Dec 13 04:55:24 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 4:55:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213035524.E9AC22474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 04:55:24 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: fix AlertJoin, oops From jkrell at elego.de Sun Dec 13 05:40:30 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 5:40:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213044031.7A43B2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 05:40:30 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: state of the art/stake in the ground for cloned header verification maybe/hopefully shorter idioms can be found? From jkrell at elego.de Sun Dec 13 06:52:32 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 6:52:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213055233.582422474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 06:52:32 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: update again from head (copy) From jkrell at elego.de Sun Dec 13 06:54:02 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 6:54:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213055402.A48CF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 06:54:02 Modified files: cm3/m3-libs/m3core/src/thread/Common/: Tag: release_branch_cm3_5_8 ThreadDebug.c ThreadDebug.i3 Log message: update from head (copy) From jkrell at elego.de Sun Dec 13 07:17:10 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 7:17:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213061711.1DD27CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 07:17:10 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: UINT32 not in older headers, use UINT From jkrell at elego.de Sun Dec 13 07:57:49 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 7:57:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213065750.38FA22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 07:57:49 Modified files: cm3/m3-libs/m3core/src/C/Common/: CerrnoC.c CsignalC.c CstdioC.c CstdlibC.c CstringC.c Log message: provide one m3core.lib.sa that should work with both libcmt.lib and msvcrt.lib (ie: suppress __declspec(dllimport) on functions, and #if out data (stdin/out/err)) From jkrell at elego.de Sun Dec 13 09:59:06 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 9:59:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213085906.8322FCC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 09:59:06 Modified files: cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: context.c Added files: cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: tcontext.c Log message: don't waste time saving/restoring signal mask twice, once is enough, add test case from other directory From jkrell at elego.de Sun Dec 13 10:18:09 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 10:18:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213091809.F1CB2CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 10:18:09 Modified files: cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: context.c context.h Log message: use sigsetjmp/siglongjmp/sigjmp_buf instead From jkrell at elego.de Sun Dec 13 10:23:41 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 10:23:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213092341.DAEB7CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 10:23:41 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: use sigsetjmp/siglongjmp/sigjmp_buf From jkrell at elego.de Sun Dec 13 14:03:55 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 14:03:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213130355.AAF102474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 14:03:55 Modified files: cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: config.c context.c context.h tcontext.c Log message: adapt get/set/make/swapcontext for OpenBSD/sparc64 Bonus points that it and OpenBSD/x86 survive various gcc optimizations including -O2 and -O3. From jkrell at elego.de Sun Dec 13 14:27:40 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 14:27:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213132740.A7722CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 14:27:40 Modified files: cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: context.c Log message: very very small tweaks: comments, comment out an unused define, put in & when taking address of function We should probably move all this to m3core\src\thread\POSIX. From jkrell at elego.de Sun Dec 13 14:55:33 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 14:55:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213135533.30CC62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 14:55:33 Modified files: cm3/m3-sys/cm3/src/: m3makefile Log message: fix for m3unix.h => m3core.h From jkrell at elego.de Sun Dec 13 15:11:29 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 15:11:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213141129.877492474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 15:11:29 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTSignalC.c Log message: move the OpenBSD lines ahead of the Sparc lines, so that this compiles for OpenBSD/sparc64 From jkrell at elego.de Sun Dec 13 15:30:19 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 15:30:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213143019.A2242CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 15:30:19 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UtimeC.c Log message: OpenBSD/sparc64 continues the year 2038 bug and has undeclared padding in struct timespec -- adjust assertions for it From jkrell at elego.de Sun Dec 13 15:32:27 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 15:32:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213143227.554982474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 15:32:27 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: add function IsOpenBSD like IsInterix, thin wrapper over TARGET_OS variable, in case it isn't defined From jkrell at elego.de Sun Dec 13 15:34:25 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 15:34:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213143425.4297C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 15:34:25 Modified files: cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: m3makefile Log message: build this for all OpenBSD systems, not just I386_OPENBSD (PPC_OPENBSD and AMD64_OPENBSD probably need repair and then ongoing tinderbox and/or hudson (preferably Hudson) From jkrell at elego.de Sun Dec 13 16:35:58 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 16:35:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213153558.70D8F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 16:35:58 Modified files: cm3/m3-libs/m3core/src/C/Common/: Cstring.i3 CstringC.c Log message: OpenBSD linker rightfully complains (warns) about strcpy and strcat: new "/cm3/pkg/m3core/SPARC64_OPENBSD/libm3core.a" -> linking m3bundle /cm3/pkg/m3core/SPARC64_OPENBSD/libm3core.a(CstringC.o)(.text+0xfc): In function `Cstring__strcpy': /dev2/cm3/m3-libs/m3core/SPARC64_OPENBSD/../src/C/Common/CstringC.c:19: warning: strcpy() is almost always misused, please use strlcpy() /cm3/pkg/m3core/SPARC64_OPENBSD/libm3core.a(CstringC.o)(.text+0x15c): In functio n `Cstring__strcat': /dev2/cm3/m3-libs/m3core/SPARC64_OPENBSD/../src/C/Common/CstringC.c:21: warning: strcat() is almost always misused, please use strlcat() $ so provide only the old style <* extern *> and not a wrapper, so that we don't foist the warning on every Modula-3/OpenBSD user, just anyone actually using these bad functions. From jkrell at elego.de Sun Dec 13 16:45:08 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 16:45:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213154508.C2C0ACC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 16:45:08 Modified files: cm3/m3-libs/m3core/src/: thread.quake Log message: switch SPARC64_OPENBSD to user threads (not quite working, but it is hoped/expected to go well, whereas we've given up for now on OpenBSD pthreads (see I386_OPENBSD) From jkrell at elego.de Sun Dec 13 16:54:35 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 16:54:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213155436.04595CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 16:54:35 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c Log message: OpenBSD only: just include context.h, not context/setjmp/context.h -- that will hopefully fix bootstrap archives, with their flattened structure, assuming we have h_source(context) (this seems to constantly bite me, maybe a different approach needed..well, one thing would be to move the code to m3core/src/thread/POSIX and not go out of out of our way to emulate get/set/swap/makecontext, but instead just fit into the similar abstractions Tony made ? not a big deal, it's only user threads (and OpenBSD) From jkrell at elego.de Sun Dec 13 17:01:33 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 17:01:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213160133.5EBA72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 17:01:33 Modified files: cm3/m3-libs/m3core/src/C/Common/: CstdioC.c Log message: More OpenBSD linker warnings: gcc -g -fPIC -lm -lpthread -o cm3 *.o CstdioC.c.o(.text+0x558): In function `Cstdio__tmpnam': /home/jay/cm3-boot-SPARC64_OPENBSD-1/CstdioC.c:43: warning: tmpnam() possibly us ed unsafely; consider using mkstemp() CstdioC.c.o(.text+0x518): In function `Cstdio__tempnam': /home/jay/cm3-boot-SPARC64_OPENBSD-1/CstdioC.c:41: warning: tempnam() possibly u sed unsafely; consider using mkstemp() These aren't even in the .i3 file. From jkrell at elego.de Sun Dec 13 17:04:32 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 17:04:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213160432.AA7AC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 17:04:32 Modified files: cm3/m3-libs/m3core/src/C/Common/: Tag: release_branch_cm3_5_8 CstdioC.c CstringC.c Log message: remove tempnam, tmpnam, strcpy, strcat to avoid OpenBSD linker warnings (they aren't in the .i3 files; this was for possible improved compat between head and release) From jkrell at elego.de Sun Dec 13 17:21:25 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 17:21:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213162125.F129A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 17:21:25 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: stack needs to e aligned for SPARC64_OPENBSD, else I get a bus error (alignment) trying to read a pointer from a 4-aligned address in NoteStackLocations (I'm not making this up, I actually see it frequently); I don't feel comfortable with the idea that storage might be deemed dead and overlappable so remove the nested scope too From jkrell at elego.de Sun Dec 13 17:39:15 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 17:39:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213163915.EF2B92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 17:39:15 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: NT386.common Log message: support for WinConstants.obj, if we decide to build it inactive since the file doesn't exist (could clash with unrelated?) From hosking at elego.de Sun Dec 13 19:09:34 2009 From: hosking at elego.de (Antony Hosking) Date: Sun, 13 Dec 2009 19:09:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213180934.CE0902474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/13 19:09:34 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Don't test <=0.0 time to pause so that we go ahead and check the alert as needed. From jkrell at elego.de Mon Dec 14 07:54:25 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 7:54:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214065426.448C32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 07:54:25 Modified files: cm3/m3-libs/sysutils/src/POSIX/: SystemPosixC.c Log message: trim this down; maybe remove it? removing it will increase what minimum toolset can be used to build; but we really need to know here if we have user threads or not, I'm seeing a hang on SPARC64_OPENBSD..though I386_OPENBSD works ok? From jkrell at elego.de Mon Dec 14 07:57:19 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 7:57:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214065719.2ED952474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 07:57:19 Modified files: cm3/m3-libs/sysutils/src/POSIX/: SystemPosix.m3 Log message: simpler and should mean same thing From jkrell at elego.de Mon Dec 14 09:09:48 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 9:09:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214080948.88CC62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 09:09:48 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTIO.i3 m3makefile Log message: add PutE, PutF, PutG, PutBytes printf("%e", float), etc. From jkrell at elego.de Mon Dec 14 09:10:09 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 9:10:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214081009.09A0A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 09:10:09 Added files: cm3/m3-libs/m3core/src/runtime/common/: RTIOc.c Log message: forgot t add file From jkrell at elego.de Mon Dec 14 09:12:27 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 9:12:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214081228.0062E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 09:12:27 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTIOc.c Log message: take advantage of #defines From jkrell at elego.de Mon Dec 14 09:18:07 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 9:18:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214081807.76FDA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 09:18:07 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTIOc.c Log message: minor cleanup From jkrell at elego.de Mon Dec 14 09:32:45 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 9:32:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214083245.DFDF62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 09:32:45 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: fix NIL deref From jkrell at elego.de Mon Dec 14 09:53:05 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 9:53:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214085305.7FE112474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 09:53:05 Added files: cm3/m3-sys/m3tests/src/: m3overrides Log message: add missing m3overrides From jkrell at elego.de Mon Dec 14 09:53:32 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 9:53:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214085332.4698B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 09:53:32 Added files: cm3/m3-sys/m3tests/src/p2/p212/: m3overrides Log message: add missing m3overrides From jkrell at elego.de Mon Dec 14 13:59:49 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 13:59:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214125949.381002474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 13:59:49 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: add a comment as to at least one reason _XOPEN_SOURCE is here From jkrell at elego.de Mon Dec 14 14:04:09 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 14:04:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214130409.0B93E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 14:04:09 Modified files: cm3/m3-sys/m3cc/src/: m3makefile Log message: attempting to build cross compilers from non-Solaris to Solaris failed because of -with-ld=/path configure tries to run /path which isn't present on the host building cm3cg remove all -with-ld=/path and -with-as=/path -with-gnu-ld, -with-gnu-as, -without-gnu-ld, -without-gnu-as are fine and left asis. This does affect even native SOLgnu/SOLsun builds but hopefully no actual effect. These parameters probably only affect building native gcc drivers. (And the values I had were good ones, having gone through some of that in the past) From jkrell at elego.de Mon Dec 14 14:40:15 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 14:40:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214134015.9044F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 14:40:15 Modified files: cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTMachine.i3 cm3/m3-libs/m3core/src/unix/: m3makefile Removed files: cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTSignal.m3 Log message: updates so SPARC64_SOLARIS bootstrap can build (possible tangent related to getting SPARC64_OPENBSD to work -- problem apparently with the floating point constants in RTCollector, such that Behind() is always TRUE, even for the first allocation, so access violate trying to garbage collect too early, when self is still NULL) From jkrell at elego.de Mon Dec 14 14:57:30 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 14:57:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214135730.A8B302474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 14:57:30 Added files: cm3/m3-libs/m3core/src/unix/Common/context/sigaltstack/: Makefile config.c context.c context.h m3makefile tcontext.c Log message: working version of http://www.engelschall.com/pw/usenix/2000/pmt-html/ - This should be moved to m3core/src/thread/POSIX - Notice how I switched from virtual timer to real timer, in the test case that mimics m3core/src/thread/POSIX. "This seems to work much better." In particular, if the main thread does while (1) sleep(0) to let things run, nothing runs. The virtual time doesn't run down at all. If I make it a busy wait "while (1) ;" then it does work. Note that Apple seems very down on supplying get/make/set/swapcontext (read the mailing lists). This solution might be preferred? Though it is slower to create a thread here, due to extra gymnastics to establish the initial context. Also still some experiments to try. _setjmp vs. setjmp vs. sigsetjmp. Best is probably sigsetjmp(1). using the same signal in both parts From jkrell at elego.de Mon Dec 14 15:27:07 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 15:27:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214142707.3BB4D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 15:27:07 Modified files: cm3/m3-libs/m3core/src/unix/Common/context/sigaltstack/: context.c context.h tcontext.c Log message: comment about real timer vs. virtual timer use sigsetjmp(0) for bootstrap use sigsetjmp(1) for switching swap errno From jkrell at elego.de Mon Dec 14 16:27:23 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 16:27:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214152723.1CE4F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 16:27:23 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c Log message: stop lying about real vs. virtual timers on Cygwin -- doesn't matter for several reason: cygwin, user threads, can use #ifdef in the now-C code From hosking at elego.de Mon Dec 14 16:33:25 2009 From: hosking at elego.de (Antony Hosking) Date: Mon, 14 Dec 2009 16:33:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214153325.B8D522474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/14 16:33:25 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Fix Jay's "fix". We need the cleanup routine to avoid a space leak. The activation field needs to stay valid long enough for the cleanup routine to do its job. From hosking at cs.purdue.edu Mon Dec 14 16:38:06 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 14 Dec 2009 10:38:06 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091214134015.9044F2474001@birch.elegosoft.com> References: <20091214134015.9044F2474001@birch.elegosoft.com> Message-ID: <5A4A51CF-0063-4E4F-93C7-9B950B55C562@cs.purdue.edu> This suggests an m3cg backend compiler problem for floating point on SPARC64. On 14 Dec 2009, at 14:40, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/14 14:40:15 > > Modified files: > cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTMachine.i3 > cm3/m3-libs/m3core/src/unix/: m3makefile > Removed files: > cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTSignal.m3 > > Log message: > updates so SPARC64_SOLARIS bootstrap can build > (possible tangent related to getting SPARC64_OPENBSD > to work -- problem apparently with the floating point > constants in RTCollector, such that Behind() is > always TRUE, even for the first allocation, so > access violate trying to garbage collect too > early, when self is still NULL) -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Dec 14 16:39:31 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 14 Dec 2009 10:39:31 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091214135730.A8B302474001@birch.elegosoft.com> References: <20091214135730.A8B302474001@birch.elegosoft.com> Message-ID: <641797AB-42E3-4797-99A0-A9123953DFF5@cs.purdue.edu> Main thread should call Yield if you want that behavior, not sleep. On 14 Dec 2009, at 14:57, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/14 14:57:30 > > Added files: > cm3/m3-libs/m3core/src/unix/Common/context/sigaltstack/: > Makefile > config.c > context.c > context.h > m3makefile > tcontext.c > > Log message: > working version of http://www.engelschall.com/pw/usenix/2000/pmt-html/ > - This should be moved to m3core/src/thread/POSIX > - Notice how I switched from virtual timer to real timer, > in the test case that mimics m3core/src/thread/POSIX. > "This seems to work much better." > In particular, if the main thread does while (1) sleep(0) > to let things run, nothing runs. The virtual time doesn't > run down at all. If I make it a busy wait "while (1) ;" then > it does work. > > Note that Apple seems very down on supplying get/make/set/swapcontext (read the mailing lists). > This solution might be preferred? Though it is slower to create a thread here, due to > extra gymnastics to establish the initial context. > > Also still some experiments to try. > _setjmp vs. setjmp vs. sigsetjmp. > Best is probably sigsetjmp(1). > using the same signal in both parts -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Dec 14 16:43:40 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 14 Dec 2009 15:43:40 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <5A4A51CF-0063-4E4F-93C7-9B950B55C562@cs.purdue.edu> References: <20091214134015.9044F2474001@birch.elegosoft.com>, <5A4A51CF-0063-4E4F-93C7-9B950B55C562@cs.purdue.edu> Message-ID: I know I know. I know exactly the code. I rewrote it, at least once. Cross compiling works. Native does not. It must be the threshold variables in RTCollector. I really thought I understood that code. - Jay From: hosking at cs.purdue.edu Date: Mon, 14 Dec 2009 10:38:06 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 This suggests an m3cg backend compiler problem for floating point on SPARC64. On 14 Dec 2009, at 14:40, Jay Krell wrote:CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 14:40:15 Modified files: cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTMachine.i3 cm3/m3-libs/m3core/src/unix/: m3makefile Removed files: cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTSignal.m3 Log message: updates so SPARC64_SOLARIS bootstrap can build (possible tangent related to getting SPARC64_OPENBSD to work -- problem apparently with the floating point constants in RTCollector, such that Behind() is always TRUE, even for the first allocation, so access violate trying to garbage collect too early, when self is still NULL) -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Dec 14 16:46:25 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 14 Dec 2009 10:46:25 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20091214134015.9044F2474001@birch.elegosoft.com>, <5A4A51CF-0063-4E4F-93C7-9B950B55C562@cs.purdue.edu> Message-ID: <45D55E81-8BE6-40DB-BD52-0BAC1027F29D@cs.purdue.edu> On 14 Dec 2009, at 10:43, Jay K wrote: > I know I know. I know exactly the code. I rewrote it, at least once. > Cross compiling works. > Native does not. > It must be the threshold variables in RTCollector. Yeah, I've been bitten by just that scenario in the past -- those are the earliest use of FP in the run-time linker. If they are broken you find out quickly. Can you take a look at the gcc m3cg code for FP? It worked at one point just fine on native Alpha 64-bit, so should not be too hard to fix. > I really thought I understood that code. > > - Jay > > > From: hosking at cs.purdue.edu > Date: Mon, 14 Dec 2009 10:38:06 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > This suggests an m3cg backend compiler problem for floating point on SPARC64. > > On 14 Dec 2009, at 14:40, Jay Krell wrote: > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/14 14:40:15 > > Modified files: > cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTMachine.i3 > cm3/m3-libs/m3core/src/unix/: m3makefile > Removed files: > cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTSignal.m3 > > Log message: > updates so SPARC64_SOLARIS bootstrap can build > (possible tangent related to getting SPARC64_OPENBSD > to work -- problem apparently with the floating point > constants in RTCollector, such that Behind() is > always TRUE, even for the first allocation, so > access violate trying to garbage collect too > early, when self is still NULL) > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Mon Dec 14 16:50:06 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 16:50:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214155006.A108C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 16:50:06 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: fix FreeSlot call From jkrell at elego.de Mon Dec 14 16:57:28 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 16:57:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214155728.969D52474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 16:57:28 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: integrate sigaltstack technique from: see http://www.engelschall.com/pw/usenix/2000/pmt-html/ so now AMD64_DARWIN user threads work (Juno starts up) AMD64_DARWIN 10.5 doesn't support get/set/make/swapcontext getcontext returns -1 and errno=ENOTSUP (does it work on 10.4 or 10.6?) will enable for OpenBSD after testing integrated right into the Modula-3 layer instead of implementing get/set/make/swapcontext (some unneeded generalization remains, will cleanup) From jkrell at elego.de Mon Dec 14 17:08:10 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 17:08:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214160810.C13762474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 17:08:10 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: cleanup: no need for SetContext in this code no need for functions to do extra work within the macros e.g. errno is handled elsewhere signal mask should be too if it isn't no need for sigsetjmp(1) within ProcessLive, sigsetjmp(0) is enough no other need for GetContext, just the sigsetjmp(0) use volatile on local that is used around longjmp add cast from void* so it might compile as C++ (not tested) From jkrell at elego.de Mon Dec 14 17:15:16 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 17:15:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214161516.0B3ED2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 17:15:16 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: use ZeroMemory From hosking at cs.purdue.edu Mon Dec 14 17:21:24 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 14 Dec 2009 11:21:24 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091214155728.969D52474001@birch.elegosoft.com> References: <20091214155728.969D52474001@birch.elegosoft.com> Message-ID: Cool! On 14 Dec 2009, at 16:57, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/14 16:57:28 > > Modified files: > cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c > > Log message: > integrate sigaltstack technique from: > see http://www.engelschall.com/pw/usenix/2000/pmt-html/ > > so now AMD64_DARWIN user threads work (Juno starts up) > AMD64_DARWIN 10.5 doesn't support get/set/make/swapcontext > getcontext returns -1 and errno=ENOTSUP > (does it work on 10.4 or 10.6?) > > will enable for OpenBSD after testing > > integrated right into the Modula-3 layer instead > of implementing get/set/make/swapcontext > (some unneeded generalization remains, will cleanup) -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Dec 14 17:22:39 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 14 Dec 2009 16:22:39 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <45D55E81-8BE6-40DB-BD52-0BAC1027F29D@cs.purdue.edu> References: <20091214134015.9044F2474001@birch.elegosoft.com>, , <5A4A51CF-0063-4E4F-93C7-9B950B55C562@cs.purdue.edu>, , <45D55E81-8BE6-40DB-BD52-0BAC1027F29D@cs.purdue.edu> Message-ID: I assumed Alpha was little endian because it ran NT. Then again, I know, a lot of chips go either way these days (PowerPC little endian for NT and presumably XBox360, big endian for Mac and I think Linux and AIX?) Target.m3: (* big endian *) IF TextUtils.StartsWith(system, "PA") (* MIPS is definitely ambiguous! *) OR TextUtils.StartsWith(system, "MIPS") (* PPC is a little ambiguous? *) OR TextUtils.StartsWith(system, "PPC") OR TextUtils.StartsWith(system, "SPARC") OR TextUtils.StartsWith(system, "SOL") THEN Little_endian := FALSE; END; Anyway it shouldn't be hard to track down. I'll probably divert to SPARC64_SOLARIS first, or maybe PPC64_{LINUX,DARWIN} (iMac G5 arrived recently, though PPC64_AIX hardware has been sitting around...) The code I put in parse.c is definitely wierd, but I really thought it was correct, and it /has/ no survived a fair number of combinations. I do cross builds /almost/ without considering host and target. Er, except you can't cross from 64bit to 32bit..I'll probably fix that pretty soon as it has started hitting me more often... it's just something where the compiler gets confused and does host math with target limitations, where it should do target math. - Jay From: hosking at cs.purdue.edu Date: Mon, 14 Dec 2009 10:46:25 -0500 To: jay.krell at cornell.edu CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 On 14 Dec 2009, at 10:43, Jay K wrote:I know I know. I know exactly the code. I rewrote it, at least once. Cross compiling works. Native does not. It must be the threshold variables in RTCollector. Yeah, I've been bitten by just that scenario in the past -- those are the earliest use of FP in the run-time linker. If they are broken you find out quickly. Can you take a look at the gcc m3cg code for FP? It worked at one point just fine on native Alpha 64-bit, so should not be too hard to fix. I really thought I understood that code. - Jay From: hosking at cs.purdue.edu Date: Mon, 14 Dec 2009 10:38:06 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 This suggests an m3cg backend compiler problem for floating point on SPARC64. On 14 Dec 2009, at 14:40, Jay Krell wrote:CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 14:40:15 Modified files: cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTMachine.i3 cm3/m3-libs/m3core/src/unix/: m3makefile Removed files: cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTSignal.m3 Log message: updates so SPARC64_SOLARIS bootstrap can build (possible tangent related to getting SPARC64_OPENBSD to work -- problem apparently with the floating point constants in RTCollector, such that Behind() is always TRUE, even for the first allocation, so access violate trying to garbage collect too early, when self is still NULL) -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Dec 14 17:47:49 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 14 Dec 2009 11:47:49 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20091214134015.9044F2474001@birch.elegosoft.com>, , <5A4A51CF-0063-4E4F-93C7-9B950B55C562@cs.purdue.edu>, , <45D55E81-8BE6-40DB-BD52-0BAC1027F29D@cs.purdue.edu> Message-ID: Yes, Alpha was little-endian (that was the way of Digital). Big-endian was a west coast phenomenon. ;-) On 14 Dec 2009, at 11:22, Jay K wrote: > I assumed Alpha was little endian because it ran NT. > Then again, I know, a lot of chips go either way these days (PowerPC little endian for NT and presumably XBox360, big endian for Mac and I think Linux and AIX?) > > Target.m3: > > (* big endian *) > > IF TextUtils.StartsWith(system, "PA") > > (* MIPS is definitely ambiguous! *) > OR TextUtils.StartsWith(system, "MIPS") > > (* PPC is a little ambiguous? *) > OR TextUtils.StartsWith(system, "PPC") > > OR TextUtils.StartsWith(system, "SPARC") > OR TextUtils.StartsWith(system, "SOL") THEN > Little_endian := FALSE; > END; > > Anyway it shouldn't be hard to track down. > I'll probably divert to SPARC64_SOLARIS first, or maybe PPC64_{LINUX,DARWIN} (iMac G5 arrived recently, though PPC64_AIX hardware has been sitting around...) > > The code I put in parse.c is definitely wierd, but I really thought it was correct, and it /has/ no survived a fair number of combinations. I do cross builds /almost/ without considering host and target. Er, except you can't cross from 64bit to 32bit..I'll probably fix that pretty soon as it has started hitting me more often... it's just something where the compiler gets confused and does host math with target limitations, where it should do target math. > > - Jay > > From: hosking at cs.purdue.edu > Date: Mon, 14 Dec 2009 10:46:25 -0500 > To: jay.krell at cornell.edu > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > On 14 Dec 2009, at 10:43, Jay K wrote: > > I know I know. I know exactly the code. I rewrote it, at least once. > Cross compiling works. > Native does not. > It must be the threshold variables in RTCollector. > > Yeah, I've been bitten by just that scenario in the past -- those are the earliest use of FP in the run-time linker. If they are broken you find out quickly. Can you take a look at the gcc m3cg code for FP? It worked at one point just fine on native Alpha 64-bit, so should not be too hard to fix. > > I really thought I understood that code. > > - Jay > > > From: hosking at cs.purdue.edu > Date: Mon, 14 Dec 2009 10:38:06 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > This suggests an m3cg backend compiler problem for floating point on SPARC64. > > On 14 Dec 2009, at 14:40, Jay Krell wrote: > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/14 14:40:15 > > Modified files: > cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTMachine.i3 > cm3/m3-libs/m3core/src/unix/: m3makefile > Removed files: > cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTSignal.m3 > > Log message: > updates so SPARC64_SOLARIS bootstrap can build > (possible tangent related to getting SPARC64_OPENBSD > to work -- problem apparently with the floating point > constants in RTCollector, such that Behind() is > always TRUE, even for the first allocation, so > access violate trying to garbage collect too > early, when self is still NULL) > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Mon Dec 14 18:40:29 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 18:40:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214174029.DFC272474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 18:40:29 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: match pthread FreeSlot fix From jkrell at elego.de Mon Dec 14 18:41:10 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 18:41:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214174110.CE37F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 18:41:10 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: match pthread FreeSlot style (t => self) From jkrell at elego.de Mon Dec 14 18:42:33 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 18:42:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214174233.9DF652474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 18:42:33 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: and then no null check in CleanT either From jkrell at elego.de Mon Dec 14 18:45:26 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 18:45:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214174526.4AF062474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 18:45:26 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.m3 Log message: FreeSlot/CleanT fixes from head From jkrell at elego.de Mon Dec 14 18:46:44 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 18:46:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214174644.6AF192474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 18:46:44 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.m3 Log message: rename CleanT to CleanThread to match Posix From jkrell at elego.de Mon Dec 14 18:48:23 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 18:48:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214174823.46F7A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 18:48:23 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: rename CleanT to CleanThread to match Posix From jkrell at elego.de Mon Dec 14 18:53:06 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 18:53:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214175306.3BABB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 18:53:06 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: remove obvious NIL deref from FreeSlot From hosking at elego.de Mon Dec 14 18:56:16 2009 From: hosking at elego.de (Antony Hosking) Date: Mon, 14 Dec 2009 18:56:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214175616.7BD632474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/14 18:56:16 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: No need for VAR param. From jkrell at elego.de Mon Dec 14 19:17:08 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:17:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214181708.8204A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:17:08 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: fix leak of activation when even RegisterFinalCleanup is out of memory From jkrell at elego.de Mon Dec 14 19:19:20 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:19:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214181920.7FADA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:19:20 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: rely on RegisterFinalCleanup to do the cleanup in the partial success case, unless it is out of memory, in which case fix the leak of the activation From jkrell at elego.de Mon Dec 14 19:26:46 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:26:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214182648.1177C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:26:46 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: go back a version; I want to fix this differently; waiting for gc to come around and use RegisterFinalCleanup seems too slow when we know resources low From jkrell at elego.de Mon Dec 14 19:31:42 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:31:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214183144.AA9052474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:31:42 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: fix leak of activation under low memory, such as even RegisterFinalCleanup failing From jkrell at elego.de Mon Dec 14 19:32:03 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:32:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214183204.25D262474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:32:03 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: slightly nicer? From jkrell at elego.de Mon Dec 14 19:35:58 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:35:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214183558.5262C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:35:58 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: fix leaks under low resources, structured like pthread but then even cleaner (will update pthread) From jkrell at elego.de Mon Dec 14 19:37:19 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:37:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214183719.790862474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:37:19 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: once register is done, can leave the try/finally From jkrell at elego.de Mon Dec 14 19:38:24 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:38:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214183824.B2EC92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:38:24 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: slightly better structure -- more in the try/finally From jkrell at elego.de Mon Dec 14 19:55:23 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:55:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214185523.392AA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:55:23 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: allow for RegisterFinalCleanup running out of memory From jkrell at elego.de Mon Dec 14 20:06:21 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 20:06:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214190621.07F4F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 20:06:21 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: ungeneralize InitMutex since we don't use it for anything else, such as conditions From hosking at elego.de Mon Dec 14 20:24:46 2009 From: hosking at elego.de (Antony Hosking) Date: Mon, 14 Dec 2009 20:24:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214192446.A74F12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/14 20:24:46 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Let's just let the cleanup handler do the cleanup as needed. From hosking at elego.de Mon Dec 14 20:29:09 2009 From: hosking at elego.de (Antony Hosking) Date: Mon, 14 Dec 2009 20:29:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214192909.22F522474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/14 20:29:09 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Perhaps closer to what Jay wants: cleanup early if memory tight. From jkrell at elego.de Tue Dec 15 00:09:45 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:09:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214230945.E9D9F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:09:45 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: fix leak in InitMutex if RegisterFinalCleanup runs out of memory. Note that this requires locking heap while initLock held, which is hopefully ok. We can't store back the mutex and have it be used until we are sure we'll be able to clean it up. (Which also means we can't share the provided Clean function) It would help if RegisterFinalCleanup provided some sort of two phase operation where the space could be reserved first and then the values either filled in later or the space given up. That way we could probably unnest the locks. Consider that shortly. It seems difficult though esp. to provide "space given up" unless maybe that is considered rare and the space just wasted for that case (at least if it is no longer the last entry in the array). From jkrell at elego.de Tue Dec 15 00:13:50 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:13:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214231350.BA8A42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:13:50 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: modify comment slightly From jkrell at elego.de Tue Dec 15 00:17:19 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:17:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214231719.160562474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:17:19 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: also need to exit initLock if RegisterFinalCleanup raises From jkrell at elego.de Tue Dec 15 00:18:00 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:18:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214231800.6600A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:18:00 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: oops -- double unlock in error path From jkrell at elego.de Tue Dec 15 00:19:54 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:19:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214231954.19D8E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:19:54 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: unlock initMu even if RegisterFinalCleanup raises (I think that's what it does upon out of memory even though it is untraced) From jkrell at elego.de Tue Dec 15 00:27:46 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:27:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214232746.884A22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:27:46 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: structure better From jkrell at elego.de Tue Dec 15 00:30:19 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:30:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214233019.F3BF42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:30:19 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: structure better (as was just done for pthread) From jkrell at elego.de Tue Dec 15 00:33:36 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:33:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214233336.BA56E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:33:36 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: and structure InitCondition like InitMutex in avoiding leak if RegisterFinalCleanup raises From jkrell at elego.de Tue Dec 15 00:37:09 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:37:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214233709.C83E02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:37:09 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: InitCondition can use one boolean instead of two pointers for 'cleanup' From jkrell at elego.de Tue Dec 15 11:42:48 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 11:42:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215104248.3F7532474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 11:42:48 Added files: cm3/m3-sys/m3tests/src/p2/p213/: MscTryFinally.i3 MscTryFinally.m3 MscTryFinallyC.c Log message: add test case to show if __try/__finally runs when a Modula-3 except goes by; I'm pretty sure we have a bug here but many attempts to reproduce it fails, so for now, there is no bug (really: it may be some odd/old combination of compiler/libraries that nobody uses, but apparently it's absent with current tools) From jkrell at elego.de Tue Dec 15 11:43:49 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 11:43:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215104349.DD9232474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 11:43:49 Modified files: cm3/m3-sys/m3tests/src/p2/p213/: MscTryFinally.i3 MscTryFinally.m3 MscTryFinallyC.c m3makefile Log message: update, fix newlines From jkrell at elego.de Tue Dec 15 11:49:30 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 11:49:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215104930.841262474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 11:49:30 Modified files: cm3/m3-sys/m3tests/src/p2/p213/: m3makefile Removed files: cm3/m3-sys/m3tests/src/p2/p213/: MscTryFinally.i3 MscTryFinally.m3 MscTryFinallyC.c Log message: oops, this slot was already taken, go back to a day ago hah! race condition occured with a test case for semaphores! From jkrell at elego.de Tue Dec 15 11:57:06 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 11:57:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215105706.579EF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 11:57:06 Added files: cm3/m3-sys/m3tests/src/p2/p224/: Main.m3 m3makefile stderr.build stderr.pgm stdout.build stdout.pgm Log message: copy p213 to p224 in preparation for bringing p213 - p223 over from release branch (!) From jkrell at elego.de Tue Dec 15 12:04:02 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 12:04:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215110402.590672474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 12:04:02 Modified files: cm3/m3-sys/m3tests/src/p2/p213/: Main.m3 m3makefile stdout.pgm Added files: cm3/m3-sys/m3tests/src/p2/p214/: m3makefile stderr.build stderr.pgm stdout.build stdout.pgm cm3/m3-sys/m3tests/src/p2/p215/: m3makefile stderr.build stderr.pgm stdout.build stdout.pgm cm3/m3-sys/m3tests/src/p2/p216/: m3makefile stderr.build stderr.pgm stdout.build stdout.pgm cm3/m3-sys/m3tests/src/p2/p217/: m3makefile stderr.build stdout.build cm3/m3-sys/m3tests/src/p2/p218/: m3makefile stderr.build stdout.build cm3/m3-sys/m3tests/src/p2/p219/: m3makefile stderr.build stdout.build cm3/m3-sys/m3tests/src/p2/p220/: m3makefile stderr.build stdout.build cm3/m3-sys/m3tests/src/p2/p221/: m3makefile stderr.build stdout.build cm3/m3-sys/m3tests/src/p2/p222/: m3makefile stderr.build stdout.build cm3/m3-sys/m3tests/src/p2/p223/: m3makefile stderr.build stdout.build Log message: bring over tests from release branch From jkrell at elego.de Tue Dec 15 12:17:54 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 12:17:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215111754.68F3E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 12:17:54 Added files: cm3/m3-sys/m3tests/src/p2/p225/: Main.m3 finally.c finally.i3 m3makefile stderr.build stderr.pgm stdout.build stdout.pgm Log message: add test of __try/__finally with a Modula-3 exception From jkrell at elego.de Tue Dec 15 12:33:23 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 12:33:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215113323.ACACD2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 12:33:23 Added files: cm3/m3-sys/m3tests/src/p2/p216/: Main.m3 cm3/m3-sys/m3tests/src/p2/p217/: Main.m3 cm3/m3-sys/m3tests/src/p2/p218/: Main.m3 cm3/m3-sys/m3tests/src/p2/p219/: Main.m3 cm3/m3-sys/m3tests/src/p2/p220/: Main.m3 cm3/m3-sys/m3tests/src/p2/p221/: Main.m3 cm3/m3-sys/m3tests/src/p2/p222/: Main.m3 cm3/m3-sys/m3tests/src/p2/p223/: Main.m3 Log message: bring over files from release branch I missed before From jkrell at elego.de Tue Dec 15 12:49:47 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 12:49:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215114947.9B35D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 12:49:47 Modified files: cm3/m3-sys/m3tests/src/: Test.common m3makefile Log message: merge with release: add 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223 their supporting infrastructure change previous 223 to 224 add 225 for __try/__finally From jkrell at elego.de Tue Dec 15 12:54:31 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 12:54:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215115431.56A9F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 12:54:31 Added files: cm3/m3-sys/m3tests/src/p2/p214/: Main.m3 cm3/m3-sys/m3tests/src/p2/p215/: Main.m3 Log message: somehow missed these From jkrell at elego.de Tue Dec 15 12:56:06 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 12:56:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215115606.75A952474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 12:56:06 Added files: cm3/m3-sys/m3tests/src/p2/p224/: Tag: release_branch_cm3_5_8 Main.m3 m3makefile stderr.build stderr.pgm stdout.build stdout.pgm cm3/m3-sys/m3tests/src/p2/p225/: Tag: release_branch_cm3_5_8 Main.m3 finally.c finally.i3 m3makefile stderr.build stderr.pgm stdout.build stdout.pgm Log message: bring over new files from head From jkrell at elego.de Tue Dec 15 13:03:06 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 13:03:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215120306.DEEF72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 13:03:06 Modified files: cm3/m3-sys/m3tests/src/: m3makefile Log message: fix slash issue broken in merge; only affects test results on Windows From jkrell at elego.de Tue Dec 15 15:10:14 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 15:10:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215141015.0508A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 15:10:14 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTLinker.m3 Log message: trace branches the .i3 file implies they aren't nul terminated, so make a local copy use a separate function to avoid the stack bloat in the untraced case and check the global traceInit around a bunch of trace calls (should do that more) From jkrell at elego.de Tue Dec 15 15:16:21 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 15:16:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215141621.A613C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 15:16:21 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTLinker.m3 Log message: move code into separate function TraceType From hosking at elego.de Tue Dec 15 16:06:44 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 15 Dec 2009 16:06:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215150647.3300D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/15 16:06:44 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTLinker.m3 Log message: Let's use RTIO.PutChars instead of copying over the characters ... From jkrell at elego.de Tue Dec 15 17:39:18 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 17:39:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215163918.E7DAE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 17:39:18 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Tag: release_branch_cm3_5_8 NT386.common Log message: fix bug where hand.obj doesn't always get shipped and then e.g. the Juno splashscreen is messed up (it's deeper than that though when it occurs, various set operations are broken) only people building m3core would see this, sometimes From jkrell at elego.de Tue Dec 15 18:24:21 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 18:24:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215172421.8AAC12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 18:24:21 Modified files: cm3/m3-ui/bicycle/src/: m3makefile cm3/m3-ui/cmvbt/src/: m3makefile cm3/m3-ui/codeview/src/: m3makefile cm3/m3-ui/formsedit/src/: m3makefile cm3/m3-ui/formsvbt/src/: m3makefile cm3/m3-ui/images/src/: m3makefile cm3/m3-ui/mg/src/: m3makefile cm3/m3-ui/mgkit/src/: m3makefile cm3/m3-ui/ui/test/EyesVBT/src/: m3makefile cm3/m3-ui/vbtkit/src/: m3makefile cm3/m3-ui/videovbt/src/: m3makefile cm3/m3-ui/webvbt/src/: m3makefile cm3/m3-ui/webvbt/src/hyperpage/src/: m3makefile cm3/m3-ui/zeus/src/: m3makefile Log message: This should fix Win32 mentor in head erroring out with duplicate brands. But is not in release. -if HasGui() +if not HasGui() build_standalone() end From jkrell at elego.de Tue Dec 15 18:28:32 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 18:28:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215172832.127F32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 18:28:32 Modified files: cm3/m3-ui/formsedit/src/: m3makefile Log message: fix HasGui() From jkrell at elego.de Tue Dec 15 19:00:29 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 19:00:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215180029.5412C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 19:00:29 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 RTHeapRep.i3 cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: restructure RegisterFinalCleanup into two phase Reserve/Commit in order to avoid holding initLock and heapLock at the same time and having to worry about lock order, deadlock etc. Reserve raises an exception under low memory (as Register did) and Commit does not. From hosking at elego.de Tue Dec 15 20:52:09 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 15 Dec 2009 20:52:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215195209.49DAE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/15 20:52:09 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 RTHeapRep.i3 Log message: Revert previous gratuitous change. There is no deadlock issue here with RTHeapLock. Let's be really clear when we can fail due to a thrown exception. From hosking at elego.de Tue Dec 15 20:52:40 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 15 Dec 2009 20:52:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215195240.952DB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/15 20:52:40 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: Match ThreadPThread.m3. From jkrell at elego.de Wed Dec 16 08:39:50 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 8:39:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216073950.ED5282474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 08:39:50 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: some improvements from http://www.cs.wustl.edu/~schmidt/win32-cv-1.html - no need to acquire/release external mutex in loop - ResetEvent outside criticalsection From jkrell at elego.de Wed Dec 16 08:41:29 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 8:41:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216074129.3382A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 08:41:29 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: remove outdated/pointless comment and pointless assert From jkrell at elego.de Wed Dec 16 08:58:17 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 8:58:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216075817.473A42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 08:58:17 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: fix leak of activation when RegisterFinalCleanup is out of memory From jkrell at elego.de Wed Dec 16 09:55:15 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 9:55:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216085515.97CCA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 09:55:15 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: if we fail, but another thread succeeded, then don't raise From jkrell at elego.de Wed Dec 16 10:16:10 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 10:16:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216091610.42F352474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 10:16:10 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: add ActState for unification with pthread From jkrell at elego.de Wed Dec 16 10:26:34 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 10:26:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216092635.054652474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 10:26:34 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: assert that the counters suspendCount and suspend_cnt are always 0 or 1; that is, that they can be booleans as they are in pthreads From jkrell at elego.de Wed Dec 16 10:46:08 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 10:46:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216094609.63F242474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 10:46:08 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: fix: CleanUp => Cleanup From jkrell at elego.de Wed Dec 16 13:16:54 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 13:16:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216121654.2CBB82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 13:16:54 Modified files: cm3/m3-libs/m3core/src/C/LINUXLIBC6/: Csetjmp.i3 Log message: remove dependency on platform-specific Usignal.sigset_t From jkrell at elego.de Wed Dec 16 13:19:59 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 13:19:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216121959.0F3E62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 13:19:59 Modified files: cm3/m3-libs/m3core/src/unix/: m3makefile cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c m3makefile cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: m3makefile Removed files: cm3/m3-libs/m3core/src/unix/Common/: Uucontext.c Uucontext.h Uucontext.i3 Log message: stop using much lingering platform-specific stuff specifically Usignal, Uucontext on all platforms except SOLgnu/SOLsun (SOLgnu/SOLsun RTMachine.i3 want Uucontext) remove all Uucontext stuff (the code that needs it is all in C, again, except for SOLgnu/SOLsun) Some portability and Modula-3 is possible here but we weren't using it. switch OpenBSD/x86 and OpenBSD/sparc64 to sigaltstack/sigsetjmp based user threads instead of poking around in the setjmp buffer unix/* is dead except for *ommon*, solaris*, WIN32 From jkrell at elego.de Wed Dec 16 13:21:36 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 13:21:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216122136.BE2662474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 13:21:36 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: forgot this: switch OpenBSD to sigaltstack/sigsetjmp user threads From jkrell at elego.de Wed Dec 16 13:26:18 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 13:26:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216122619.0D2412474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 13:26:18 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Log message: remove out of date comment From jkrell at elego.de Wed Dec 16 14:51:24 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 14:51:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216135125.999A72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 14:51:24 Removed files: cm3/m3-lectern/lectern/src/: writev.c Log message: remove unused file From jkrell at elego.de Wed Dec 16 16:04:53 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 16:04:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216150453.A99582474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 16:04:53 Added files: cm3/m3-libs/m3core/src/thread/PTHREAD/: test_interix.c Log message: working demonstration of 'direct' suspend/resume pthreads with Interix and getting the registers of the suspended thread, using the /proc mechanism From jkrell at elego.de Wed Dec 16 16:05:13 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 16:05:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216150513.282922474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 16:05:13 Modified files: cm3/m3-sys/m3cc/src/: platforms.quake Log message: add PPC64_LINUX and PPC64_DARWIN, I at least can build cm3cg for each easy but haven't set up the iMac G5 yet.. From jkrell at elego.de Wed Dec 16 16:44:00 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 16:44:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216154401.01ACF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 16:44:00 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: test_interix.c Log message: fix newlines From jkrell at elego.de Wed Dec 16 17:12:17 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 17:12:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216161217.DF3492474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 17:12:17 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadFreeBSD.c ThreadPThreadC.c Log message: fix presumed FreeBSD break I caused assert(stack_grows_down) in ThreadPThreadC.c and not ThreadFreeBSD.c because it isn't available there From hosking at elego.de Wed Dec 16 17:26:31 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 16 Dec 2009 17:26:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216162632.065A02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/16 17:26:31 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Let's tidy things up even more... From rodney at elego.de Thu Dec 17 22:48:43 2009 From: rodney at elego.de (Rodney M. Bates) Date: Thu, 17 Dec 2009 22:48:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091217214844.792CE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 09/12/17 22:48:43 Modified files: cm3/doc/reference/complete/: m3-defn-complete.tex Log message: Better documentation of WIDECHAR and wide TEXT literals, and hex escapes in CHAR/WIDECHAR/TEXT literals. Derived files still need to be regenerated. From jkrell at elego.de Fri Dec 18 09:23:54 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 9:23:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218082354.DBC142474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 09:23:54 Added files: cm3/m3-libs/m3core/src/thread/PTHREAD/: interix_context_on_signal_stack.c Log message: a program to demonstrate that the context is indeed saved on the signal stack, so nothing special needed (except for having a single parameter signal handler and null context or such) From jkrell at elego.de Fri Dec 18 09:25:01 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 9:25:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218082501.2D8EECC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 09:25:01 Added files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadInterix.c Log message: prototype based on test_interix, will probably be abandoned From jkrell at elego.de Fri Dec 18 09:26:54 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 9:26:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218082654.38E6C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 09:26:54 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadApple.c ThreadFreeBSD.c ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c Log message: viable prototype for Interix that does direct suspend/resume via /proc From jkrell at elego.de Fri Dec 18 09:27:46 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 9:27:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218082748.535FE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 09:27:46 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadApple.c ThreadFreeBSD.c ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c Log message: go back a version From jkrell at elego.de Fri Dec 18 10:06:43 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 10:06:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218090643.4710F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 10:06:43 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: interix_context_on_signal_stack.c Log message: demonstrate finding the context at runtime by searching the stack for the flags and segment registers From jkrell at elego.de Fri Dec 18 10:38:35 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 10:38:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218093835.170BFCC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 10:38:35 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTLinker.m3 Log message: lift traceInit check out of three or four function calls per type (integrated backend doesn't inline) From jkrell at elego.de Fri Dec 18 10:41:31 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 10:41:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218094131.753A42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 10:41:31 Modified files: cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: Tag: release_branch_cm3_5_8 RTMachine.i3 Log message: copy from head -- remove unused import of Uucontext, so that Uucontext can be deleted From hosking at cs.purdue.edu Fri Dec 18 15:57:15 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 18 Dec 2009 09:57:15 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091218093835.170BFCC815@birch.elegosoft.com> References: <20091218093835.170BFCC815@birch.elegosoft.com> Message-ID: <564EAC8A-AF5C-4179-B2B6-6A750B52A8E0@cs.purdue.edu> Jay, This is an example of what I like to call premature optimization. Do you know for sure that the extra checks are costing that much? -- Tony On 18 Dec 2009, at 10:38, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/18 10:38:35 > > Modified files: > cm3/m3-libs/m3core/src/runtime/common/: RTLinker.m3 > > Log message: > lift traceInit check out of three or four function calls per type (integrated backend doesn't inline) -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Fri Dec 18 19:39:46 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 19:39:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218183946.46BEF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 19:39:46 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: initial support for cas/casp on 16bit and 32bit parameters for now it generates out of line function calls and requires a modern compiler The functions are statically linked into the caller. From jkrell at elego.de Fri Dec 18 19:40:41 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 19:40:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218184041.1686B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 19:40:41 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: initial support for cas/casp on 16bit and 32bit parameters for now it generates out of line function calls and requires a modern compiler From jkrell at elego.de Fri Dec 18 19:52:18 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 19:52:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218185218.8F8F82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 19:52:18 Added files: cm3/m3-sys/m3tests/src/p2/p226/: Main.m3 m3makefile stderr.build stderr.pgm stdout.build stdout.pgm Log message: initial support for cas/casp on 16bit and 32bit parameters for now it generates out of line function calls and requires a modern compiler From jkrell at elego.de Sun Dec 20 11:57:57 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 11:57:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220105757.EC65D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 11:57:57 Modified files: cm3/m3-libs/m3core/src/: Tag: release_branch_cm3_5_8 m3core.h Log message: copy from head: whitespace only From jkrell at elego.de Sun Dec 20 12:01:03 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 12:01:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220110103.B03B7CC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 12:01:03 Modified files: cm3/m3-libs/m3core/src/: Tag: release_branch_cm3_5_8 thread.quake Log message: copy from head: SPARC64_OPENBSD uses user threads From jkrell at elego.de Sun Dec 20 12:05:47 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 12:05:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220110547.93E56CC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 12:05:47 Modified files: cm3/m3-libs/m3core/src/C/Common/: CstdioC.c Log message: remove #if 0 'unsecure' functions tempnam and tmpnam (poor naming here too..) From jkrell at elego.de Sun Dec 20 12:09:32 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 12:09:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220110933.541502474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 12:09:32 Modified files: cm3/m3-libs/m3core/src/C/Common/: CstringC.c Log message: remove #if 0 'unsecure' functions strcpy, strcat From jkrell at elego.de Sun Dec 20 12:13:22 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 12:13:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220111323.16380CC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 12:13:22 Modified files: cm3/m3-libs/m3core/src/C/Common/: Tag: release_branch_cm3_5_8 CerrnoC.c Csignal.i3 CsignalC.c CstdioC.c Cstdlib.i3 CstdlibC.c Cstring.i3 CstringC.c Log message: copy from head: use wrappers, be compatible with msvcrt.lib and libcmt.lib on Windows From jkrell at elego.de Sun Dec 20 12:26:18 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 12:26:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220112618.A49B62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 12:26:18 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32C.c Log message: copy from head: change UINT32 to UINT for compatibility with more header versions From jkrell at elego.de Sun Dec 20 13:44:58 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 13:44:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220124458.772402474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 13:44:58 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTCollector.m3 Log message: copy from head: shorten comment by 2 characters From jkrell at elego.de Sun Dec 20 13:45:50 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 13:45:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220124550.B1092CC818@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 13:45:50 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTLinker.m3 Log message: copy from head: brand tracing in @M3tracelinker From jkrell at elego.de Sun Dec 20 13:46:51 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 13:46:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220124651.82661CC818@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 13:46:51 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: Tag: release_branch_cm3_5_8 RTSignalC.c Log message: copy from head: move OpenBSD lines up so that OpenBSD/sparc64 uses them instead of the Sparc lines From jkrell at elego.de Sun Dec 20 13:48:01 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 13:48:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220124801.5A6FECC818@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 13:48:01 Modified files: cm3/m3-libs/m3core/src/C/LINUXLIBC6/: Tag: release_branch_cm3_5_8 Csetjmp.i3 Log message: copy from head: eliminate dependency on Usignal From jkrell at elego.de Sun Dec 20 13:50:42 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 13:50:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220125043.0A953CC81A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 13:50:42 Added files: cm3/m3-libs/m3core/src/win32/: Tag: release_branch_cm3_5_8 WinConstants.c WinUser.pl WinUser.txt Log message: new inactive files from head From jkrell at elego.de Sun Dec 20 13:53:16 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 13:53:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220125316.B4783CC81A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 13:53:16 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: remove cas/casp support (compiler crashes if you use them) From jkrell at elego.de Sun Dec 20 14:03:33 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 14:03:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220130334.4040FCC818@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 14:03:33 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Tag: release_branch_cm3_5_8 UdirC.c Uexec.c Uin.c Umman.c Uprocess.c Usignal.c Uugid.c Uuio.c Uutmp.c Log message: copy from head: m3unix.h => m3core.h; use macros for mechanical wrappers From jkrell at elego.de Sun Dec 20 14:07:33 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 14:07:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220130733.5DF78CC81A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 14:07:33 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: Tag: release_branch_cm3_5_8 RTOSbrk.c RTOSmmap.c Log message: copy from head: m3unix.h => m3core.h From jkrell at elego.de Sun Dec 20 14:11:51 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 14:11:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220131151.7645ECC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 14:11:51 Modified files: cm3/m3-sys/cm3/src/: Tag: release_branch_cm3_5_8 m3makefile Log message: copy from head: change / to SL and also mention m3core.h note that usually now we use / instead of SL, but for some directories it might still be good to use SL for case of bootstrapping with older m3core, it might (if the paths are just passed through to the underlying functtions though, it doesn't matter) From jkrell at elego.de Sun Dec 20 14:15:37 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 14:15:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220131537.911BFCC818@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 14:15:37 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: remove Win32 cas/casp functions From jkrell at elego.de Sun Dec 20 15:20:18 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 15:20:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220142018.75A4E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 15:20:18 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: remove cas/casp support From jkrell at elego.de Sun Dec 20 15:22:07 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 15:22:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220142207.7C6E2CC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 15:22:07 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: remove cas/casp support From jkrell at elego.de Sun Dec 20 16:49:36 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 16:49:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220154937.B670ECC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 16:49:36 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: use memcmp in place of set_ne or set_eq From jkrell at elego.de Sun Dec 20 17:10:16 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 17:10:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220161016.4BD112474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 17:10:16 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: put in explicit calling conventions (so that user can alter the default in their compiler command line without breaking things) use memcmp for set_ne and set_eq (really belongs in parse.c to avoid the extra call) From jkrell at elego.de Sun Dec 20 17:11:22 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 17:11:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220161122.43BED2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 17:11:22 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: comments about m3back calling memcmp directly but gcc not From jkrell at elego.de Sun Dec 20 17:11:44 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 17:11:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220161144.4AAF72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 17:11:44 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: comments about m3back calling memcmp directly but gcc not (in the right place) From jkrell at elego.de Mon Dec 21 05:51:10 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 5:51:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221045110.D37B6CC818@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 05:51:10 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Tag: release_branch_cm3_5_8 Usysdep.i3 cm3/m3-libs/m3core/src/unix/darwin-common/: Tag: release_branch_cm3_5_8 Usysdep.i3 cm3/m3-libs/m3core/src/unix/freebsd-common/: Tag: release_branch_cm3_5_8 Usysdep.i3 cm3/m3-libs/m3core/src/unix/hpux-common/: Tag: release_branch_cm3_5_8 Usysdep.i3 cm3/m3-libs/m3core/src/unix/netbsd-common/: Tag: release_branch_cm3_5_8 Usysdep.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Tag: release_branch_cm3_5_8 Usysdep.i3 cm3/m3-libs/m3core/src/unix/solaris-common/: Tag: release_branch_cm3_5_8 Usysdep.i3 Log message: partial merge from head: int32_t => int From jkrell at elego.de Mon Dec 21 06:05:13 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 6:05:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221050513.DCBAECC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 06:05:13 Modified files: cm3/m3-libs/m3core/src/: Tag: release_branch_cm3_5_8 m3core.h cm3/m3-libs/m3core/src/unix/Common/: Tag: release_branch_cm3_5_8 m3unix.h Log message: partial merge from head: have m3unix.h just #include m3core.h m3core.h in release doesn't yet assume certain time type equivalences From jkrell at elego.de Mon Dec 21 06:26:20 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 6:26:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221052620.7A32E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 06:26:20 Modified files: cm3/m3-libs/m3core/src/: Tag: release_branch_cm3_5_8 m3core.h Log message: partial merge from head: change #ifdef guard and provide Interix socklen_t From jkrell at elego.de Mon Dec 21 06:35:34 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 6:35:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221053534.B4EC3CC818@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 06:35:34 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadFreeBSD.c Log message: merge from head: m3unix.h => m3core.h; #if 0 assert(stack_grows_down) From jkrell at elego.de Mon Dec 21 06:36:59 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 6:36:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221053659.58490CC818@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 06:36:59 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadApple.c Log message: from head: m3unix.h => m3core.h From jkrell at elego.de Mon Dec 21 07:08:50 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 7:08:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221060851.6C34DCC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 07:08:50 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: Tag: release_branch_cm3_5_8 hand.c Log message: from head: add explicit calling conventions for NT386 and use memcmp in set_ne and set_eq From jkrell at elego.de Mon Dec 21 07:12:32 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 7:12:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221061232.C5B73CC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 07:12:32 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: put #includes outside extern "C" extern "C" is each header's decision/responsibility From jkrell at elego.de Mon Dec 21 07:16:38 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 7:16:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221061638.B718F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 07:16:38 Modified files: cm3/m3-libs/m3core/src/win32/: Tag: release_branch_cm3_5_8 m3makefile Log message: remove $Id$, it shows up in diffs From jkrell at elego.de Mon Dec 21 08:41:24 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 8:41:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221074124.E72FCCC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 08:41:24 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Tag: release_branch_cm3_5_8 Ugrp.c Unetdb.c UnixLink.c Upwd.c Usocket.c UstatC.c Log message: from head: m3unix.h => m3core.h; "more mechanical wrappers via macros" From jkrell at elego.de Mon Dec 21 15:36:58 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 15:36:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221143658.6DF05CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 15:36:58 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: add missing return type (caught by C++ compiler) From jkrell at elego.de Mon Dec 21 15:40:05 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 15:40:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221144005.F2E8FCC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 15:40:05 Modified files: cm3/m3-libs/m3core/src/C/Common/: CstringC.c Log message: remove some consts for C++ compilation From jkrell at elego.de Mon Dec 21 15:43:54 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 15:43:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221144354.735A22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 15:43:54 Modified files: cm3/m3-libs/m3core/src/Csupport/little-endian/: dtoa.c cm3/m3-libs/m3core/src/Csupport/big-endian/: dtoa.c Log message: don't use old style function definitions in C++ From jkrell at elego.de Mon Dec 21 15:57:56 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 15:57:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221145756.B50322474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 15:57:56 Modified files: cm3/m3-libs/m3core/src/C/Common/: CstringC.c Log message: add back const, and then more, for C++ compilation this is because the non-const overloads are inline and mklib decides it wants to export them the right fix here is that mklib should ignore anything that starts with a question mark, as well as some other things it is exporting unnecessarily From jkrell at elego.de Mon Dec 21 15:59:05 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 15:59:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221145905.D36462474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 15:59:05 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: remove setjmp/longjmp abstraction, until such time as we do merge with pthread code From jkrell at elego.de Mon Dec 21 16:00:09 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 16:00:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221150009.725422474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 16:00:09 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: interix_context_on_signal_stack.c Log message: whitespace only From jkrell at elego.de Mon Dec 21 16:00:40 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 16:00:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221150040.B051E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 16:00:40 Modified files: cm3/m3-libs/m3core/src/Csupport/libgcc/: libgcc.c cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: RTStackC.c cm3/m3-libs/m3core/src/runtime/DS3100/: RTStackC.c cm3/m3-libs/m3core/src/runtime/POSIX/: RTOSbrk.c RTOSmmap.c cm3/m3-libs/m3core/src/runtime/SOLgnu/: RTStackC.c cm3/m3-libs/m3core/src/runtime/SOLsun/: RTStackC.c cm3/m3-libs/m3core/src/runtime/WIN32/: RTOSc.c cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: add mising #ifdef cplusplus extern "C" { } From jkrell at elego.de Tue Dec 22 11:36:34 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 11:36:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222103634.7C9F62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 11:36:34 Modified files: cm3/m3-libs/m3core/src/C/Common/: Tag: release_branch_cm3_5_8 CstringC.c cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: Tag: release_branch_cm3_5_8 RTStackC.c cm3/m3-libs/m3core/src/runtime/DS3100/: Tag: release_branch_cm3_5_8 RTStackC.c cm3/m3-libs/m3core/src/runtime/POSIX/: Tag: release_branch_cm3_5_8 RTOSbrk.c RTOSmmap.c cm3/m3-libs/m3core/src/runtime/SOLgnu/: Tag: release_branch_cm3_5_8 RTStackC.c cm3/m3-libs/m3core/src/runtime/SOLsun/: Tag: release_branch_cm3_5_8 RTStackC.c cm3/m3-libs/m3core/src/runtime/WIN32/: Tag: release_branch_cm3_5_8 RTOSc.c cm3/m3-libs/m3core/src/runtime/ex_frame/: Tag: release_branch_cm3_5_8 RTStackC.c Log message: copy from head: fixes for C++ compilation: const, extern C, explicit return type, ANSI style functions (20 years..) From jkrell at elego.de Tue Dec 22 11:38:47 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 11:38:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222103847.AA0602474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 11:38:47 Modified files: cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: RTStackC.c cm3/m3-libs/m3core/src/runtime/DS3100/: RTStackC.c Log message: add return types to functions (void) From jkrell at elego.de Tue Dec 22 11:39:45 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 11:39:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222103945.5A6F12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 11:39:45 Modified files: cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: Tag: release_branch_cm3_5_8 RTStackC.c cm3/m3-libs/m3core/src/runtime/DS3100/: Tag: release_branch_cm3_5_8 RTStackC.c Log message: copy from head: add return types to functions (void) From jkrell at elego.de Tue Dec 22 11:41:10 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 11:41:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222104110.EE4CECC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 11:41:10 Modified files: cm3/m3-libs/m3core/src/win32/: Tag: release_branch_cm3_5_8 m3makefile Log message: from head: remove $Id$ From jkrell at elego.de Tue Dec 22 11:41:42 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 11:41:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222104142.2F114CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 11:41:42 Modified files: cm3/m3-libs/m3core/src/win32/: Tag: release_branch_cm3_5_8 m3makefile Log message: oops: remove $Id$ From jkrell at elego.de Tue Dec 22 11:42:09 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 11:42:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222104209.405AECC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 11:42:09 Modified files: cm3/m3-libs/m3core/src/win32/: m3makefile Log message: from release: remove $Id$ From jkrell at elego.de Tue Dec 22 11:43:56 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 11:43:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222104356.84AE72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 11:43:56 Modified files: cm3/m3-libs/m3core/src/Csupport/big-endian/: Tag: release_branch_cm3_5_8 dtoa.c cm3/m3-libs/m3core/src/Csupport/libgcc/: Tag: release_branch_cm3_5_8 libgcc.c cm3/m3-libs/m3core/src/Csupport/little-endian/: Tag: release_branch_cm3_5_8 dtoa.c Log message: from head: fixes in case anyone wants to compile as C++ extern C, "new" (20 year old) function style From jkrell at elego.de Tue Dec 22 11:52:50 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 11:52:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222105250.F028E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 11:52:50 Modified files: cm3/m3-libs/m3core/src/runtime/WIN32/: RTOSc.c cm3/m3-libs/m3core/src/runtime/common/: RTIOc.c RTLinkerC.c RTMiscC.c RTUntracedMemoryC.c Log message: win32 only: always optimize (such small functions), explicit calling conventions, be compatible with libcmt.lib From jkrell at elego.de Tue Dec 22 12:18:32 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 12:18:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222111835.A4272CC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 12:18:32 Modified files: cm3/m3-sys/m3cc/src/: m3makefile Log message: This should fix cross compilers for SPARC64_SOLARIS -- configure doesn't ferry enough around so need to set gcc_cv_as_sparc_register_op in environment. From jkrell at elego.de Tue Dec 22 18:08:18 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:08:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222170818.BD6FB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:08:18 Modified files: cm3/m3-libs/m3core/src/runtime/WIN32/: Tag: release_branch_cm3_5_8 RTOSc.c Log message: forgot this earlier: from head: calling conventions, optimize, libcmt.lib compat From jkrell at elego.de Tue Dec 22 18:08:46 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:08:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222170846.916A02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:08:46 Removed files: cm3/m3-libs/m3core/src/runtime/AMD64_DARWIN/: Tag: release_branch_cm3_5_8 RTMachineC.c RTSignal.m3 cm3/m3-libs/m3core/src/runtime/FreeBSD/: Tag: release_branch_cm3_5_8 _fpsetjmp.s cm3/m3-libs/m3core/src/runtime/FreeBSD2/: Tag: release_branch_cm3_5_8 _fpsetjmp.s cm3/m3-libs/m3core/src/runtime/FreeBSD3/: Tag: release_branch_cm3_5_8 _fpsetjmp.s cm3/m3-libs/m3core/src/runtime/FreeBSD4/: Tag: release_branch_cm3_5_8 _fpsetjmp.s cm3/m3-libs/m3core/src/runtime/I386_DARWIN/: Tag: release_branch_cm3_5_8 RTMachineC.c RTSignal.m3 cm3/m3-libs/m3core/src/runtime/LINUXLIBC6/: Tag: release_branch_cm3_5_8 RTSignal.m3 cm3/m3-libs/m3core/src/runtime/PPC_DARWIN/: Tag: release_branch_cm3_5_8 RTMachineC.c RTSignal.m3 cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: Tag: release_branch_cm3_5_8 RTSignal.m3 Log message: from head: delete some dead files From jkrell at elego.de Tue Dec 22 18:13:53 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:13:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222171354.08A572474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:13:53 Modified files: cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: Tag: release_branch_cm3_5_8 config.c context.c context.h Added files: cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: Tag: release_branch_cm3_5_8 tcontext.c Log message: copy from head: use sigsetjmp instead of setjmp openbsd/sparc64 support we'll stop using this code shortly anyway From jkrell at elego.de Tue Dec 22 18:16:26 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:16:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222171627.004B32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:16:26 Added files: cm3/m3-libs/m3core/src/unix/Common/context/sigaltstack/: Tag: release_branch_cm3_5_8 Makefile config.c context.c m3makefile tcontext.c Log message: copy new files from head, though we may just delete them they aren't used but provide a nice standalone way to test the underlying user thread code/mechanism From jkrell at elego.de Tue Dec 22 18:16:53 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:16:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222171653.608B52474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:16:53 Added files: cm3/m3-libs/m3core/src/unix/Common/context/sigaltstack/: Tag: release_branch_cm3_5_8 context.h Log message: another file here that was somehow missed From jkrell at elego.de Tue Dec 22 18:19:27 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:19:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222171927.EBE39CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:19:27 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTMiscC.c Log message: copy from head: calling convention We should Word.RoundUp Word.RoundUpPowerOf2 and inlining that? From jkrell at elego.de Tue Dec 22 18:22:15 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:22:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222172215.396D12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:22:15 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTLinkerC.c Log message: copy from head: calling convention and optimize small stuff From jkrell at elego.de Tue Dec 22 18:27:56 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:27:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222172756.F254D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:27:56 Modified files: cm3/m3-libs/m3core/src/time/POSIX/: Tag: release_branch_cm3_5_8 TimePosixC.c Log message: copy from head: m3unix.h to m3core.h From jkrell at elego.de Tue Dec 22 18:32:32 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:32:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222173233.03DE3CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:32:32 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTMisc.i3 RTMisc.m3 Log message: copy from head: equate RTMisc.Align(ADDRESS) == RTMisc.Upper(INTEGER) through linking instead of function call + loophole remove dependency on cloned (or then wrapped) headers From jkrell at elego.de Tue Dec 22 18:35:37 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:35:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222173537.D4C5C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:35:37 Removed files: cm3/m3-libs/m3core/src/runtime/ARM_DARWIN/: Tag: release_branch_cm3_5_8 RTMachineC.c cm3/m3-libs/m3core/src/runtime/NetBSD2_i386/: Tag: release_branch_cm3_5_8 _fpsetjmp.s Log message: delete more dead files (as in head) From jkrell at elego.de Tue Dec 22 18:36:33 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:36:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222173633.AE36B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:36:33 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 m3makefile Log message: forgot this: partial merge from head: compile RTMiscC.c (not copying head because I didn't test the RTIO floating point support) From jkrell at elego.de Tue Dec 22 18:39:22 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:39:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222173922.C0A022474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:39:22 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32C.c Log message: copy from head: remove setjmp abstraction and just handle IA64 and use regular setjmp (the only one Windows head, there's no signal mask, though this code could be used with Cygwin, hm) From jkrell at elego.de Tue Dec 22 18:50:24 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:50:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222175026.C779D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:50:24 Modified files: cm3/m3-libs/sysutils/src/: SystemC.c Log message: C++ compat, calling convention, optimize From jkrell at elego.de Tue Dec 22 18:51:25 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:51:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222175125.C98102474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:51:25 Modified files: cm3/m3-libs/m3core/src/C/Common/: CerrnoC.c Log message: C++ compat, calling convention, optimize, libcmt.lib compat From jkrell at elego.de Tue Dec 22 18:58:08 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:58:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222175809.D6C9C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:58:08 Modified files: cm3/m3-libs/m3core/src/runtime/AIX386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/novm/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/AMD64_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/AP3000/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ARM/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ARM_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/DS3100/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD3/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD4/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/HP300/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/HPPA/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/I386_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IBMR2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IBMRT/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IRIX5/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUX/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUXELF/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUXLIBC6/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/NEXT/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/NT386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/NT386GNU/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/NetBSD2_i386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/OKI/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/OS2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/PPC_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SEQUENT/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SOLgnu/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SOLsun/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SPARC/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SUN3/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SUN386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/UMAX/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/VAX/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/common/: RTHeapRep.i3 RTMachine.i3 Log message: AdrPerHeapPage = BytesPerHeapPage; (* addresses per page *) LogAdrPerHeapPage = LogBytesPerHeapPage; always, would move them to comon place but there is only one use, so remove them and change the use (which could probably be further smushed, but at least it isn't per-target) ("all machines are byte-addressable"?) BytesPerHeapPage = 8192 tempting too to make common but I stuck in 64K on NT, maybe we can just use that. From jkrell at elego.de Tue Dec 22 19:03:46 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 19:03:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222180346.D00FBCC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 19:03:46 Modified files: cm3/m3-libs/m3core/src/runtime/FreeBSD/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD3/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD4/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/NetBSD2_i386/: RTMachine.i3 Log message: Change the few remaining BytesPerHeapPage = 4096, LogBytesPerHeapPage = 12 to BytesPerHeapPage = 8192, LogBytesPerHeapPage = 13. These aren't actually machine page sizes any longer. They were when we had virtual memory assisted garbage collection. It is more of an allocation granularity. Now all platforms use 8K except for NT386, which uses 64K since that is what VirtualAlloc allocates in. Perhaps we can just use 64K everywhere? From jkrell at elego.de Tue Dec 22 19:09:49 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 19:09:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222180949.AF383CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 19:09:49 Modified files: cm3/m3-libs/m3core/src/runtime/AIX386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/novm/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/AMD64_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/AP3000/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ARM/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/DS3100/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD3/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD4/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/HPPA/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/I386_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IBMR2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IBMRT/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IRIX5/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUX/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUXELF/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUXLIBC6/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/NetBSD2_i386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/OKI/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/OS2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/PPC_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SPARC/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SUN386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/VAX/: RTMachine.i3 Log message: generally PointerAlignment = BYTESIZE(INTEGER) (or ADDRESS) except I guess 68K machines? Also NT386* is marked as 1, but my quick experiment shows it is also BYTESIZE(INTEGER), will look into that more later From jkrell at elego.de Tue Dec 22 19:19:32 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 19:19:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222181932.48B552474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 19:19:32 Removed files: cm3/m3-libs/m3core/src/runtime/AIX386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/AMD64_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/AP3000/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ARM/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ARM_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD3/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD4/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/HPPA/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/I386_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IBMR2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IBMRT/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IRIX5/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUX/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUXELF/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUXLIBC6/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/NetBSD2_i386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/OKI/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/OS2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/PPC_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SEQUENT/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SPARC/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SUN386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/VAX/: RTMachine.i3 Log message: delete all these semantically identical RTMachine.i3 files common/m3makefile will use common/RTMachine.i3 when platform/RTMachine.i3 doesn't exist, and it is semantically equivalent to all of them keep the following: ALPHA, SPARC: frameinfo and has_stack_walker NT*: alignment=1 (which I suspect is wrong but ok) HP300, Sun3, Umax: 68K machines? (fairly obsolete but I M68K_MAC maybe? :) ) From jkrell at elego.de Tue Dec 22 19:23:04 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 19:23:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222182304.8BD14CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 19:23:04 Modified files: cm3/m3-libs/m3core/src/runtime/AIX386/: m3makefile cm3/m3-libs/m3core/src/runtime/AMD64_DARWIN/: m3makefile cm3/m3-libs/m3core/src/runtime/AP3000/: m3makefile cm3/m3-libs/m3core/src/runtime/ARM/: m3makefile cm3/m3-libs/m3core/src/runtime/ARM_DARWIN/: m3makefile cm3/m3-libs/m3core/src/runtime/FreeBSD/: m3makefile cm3/m3-libs/m3core/src/runtime/FreeBSD2/: m3makefile cm3/m3-libs/m3core/src/runtime/FreeBSD3/: m3makefile cm3/m3-libs/m3core/src/runtime/FreeBSD4/: m3makefile cm3/m3-libs/m3core/src/runtime/HPPA/: m3makefile cm3/m3-libs/m3core/src/runtime/I386_DARWIN/: m3makefile cm3/m3-libs/m3core/src/runtime/IBMR2/: m3makefile cm3/m3-libs/m3core/src/runtime/IBMRT/: m3makefile cm3/m3-libs/m3core/src/runtime/IRIX5/: m3makefile cm3/m3-libs/m3core/src/runtime/LINUX/: m3makefile cm3/m3-libs/m3core/src/runtime/LINUXELF/: m3makefile cm3/m3-libs/m3core/src/runtime/LINUXLIBC6/: m3makefile cm3/m3-libs/m3core/src/runtime/NetBSD2_i386/: m3makefile cm3/m3-libs/m3core/src/runtime/OKI/: m3makefile cm3/m3-libs/m3core/src/runtime/OS2/: m3makefile cm3/m3-libs/m3core/src/runtime/PPC_DARWIN/: m3makefile cm3/m3-libs/m3core/src/runtime/SEQUENT/: m3makefile cm3/m3-libs/m3core/src/runtime/SPARC/: m3makefile cm3/m3-libs/m3core/src/runtime/SUN386/: m3makefile cm3/m3-libs/m3core/src/runtime/VAX/: m3makefile Log message: forgot to delete RTMachine from m3makefiles From jkrell at elego.de Tue Dec 22 19:27:20 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 19:27:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222182720.79B302474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 19:27:20 Removed files: cm3/m3-libs/m3core/src/runtime/AMD64_DARWIN/: m3makefile cm3/m3-libs/m3core/src/runtime/I386_DARWIN/: m3makefile cm3/m3-libs/m3core/src/runtime/LINUXLIBC6/: m3makefile cm3/m3-libs/m3core/src/runtime/PPC_DARWIN/: m3makefile Log message: delete empty m3makefile (more to do here: FreeBSD4, NetBSD2_i386, they should be empty but aren't) From dabenavidesd at yahoo.es Wed Dec 23 04:42:24 2009 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 23 Dec 2009 03:42:24 +0000 (GMT) Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091221150040.B051E2474001@birch.elegosoft.com> Message-ID: <770199.13762.qm@web23608.mail.ird.yahoo.com> Hi all: forgive my ignorance about the actual changes going on below copied M3commit message of Monday, December 21, 16:00:40 but what is this to have gcc code inside the compiler libs, I recommend to check the strict rules about this before performing such changes, Is there any problem getting gcc code inside the runtime libraries, even if this only used in level C code, this gets more C dependences in non-M3 code we are not able to guarantee, better UNSAFE than totally unmarked unsafe again. If this is not the case, and just a piece of m3cc related code I don't disqualify it yet. Thanks in advance --- El lun, 21/12/09, Jay Krell escribi?: > De: Jay Krell > Asunto: [M3commit] CVS Update: cm3 > Para: m3commit at elegosoft.com > Fecha: lunes, 21 de diciembre, 2009 11:00 > CVSROOT: /usr/cvs > Changes by: > jkrell at birch. 09/12/21 16:00:40 > > Modified files: > cm3/m3-libs/m3core/src/Csupport/libgcc/: > libgcc.c > > cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: RTStackC.c > cm3/m3-libs/m3core/src/runtime/DS3100/: > RTStackC.c > cm3/m3-libs/m3core/src/runtime/POSIX/: > RTOSbrk.c RTOSmmap.c > cm3/m3-libs/m3core/src/runtime/SOLgnu/: > RTStackC.c > cm3/m3-libs/m3core/src/runtime/SOLsun/: > RTStackC.c > cm3/m3-libs/m3core/src/runtime/WIN32/: > RTOSc.c > > cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c > > Log message: > add mising #ifdef cplusplus extern "C" { > } > > From dabenavidesd at yahoo.es Wed Dec 23 05:47:27 2009 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 23 Dec 2009 04:47:27 +0000 (GMT) Subject: [M3commit] [M3devel] CVS Update: cm3 In-Reply-To: <770199.13762.qm@web23608.mail.ird.yahoo.com> Message-ID: <468779.46976.qm@web23608.mail.ird.yahoo.com> Hi again: I recall to have said about a virtualization infrastructure future framework for CM3 reusing existing work made by DEC and SPIN, if we manage to get the system running as a separate process in a given processor we will be definitely getting source code level compability between UNIX implementations by means of a huge historical system like DEC UNIX and a good balance on terms of security in the Modula-3 runtime protection of foreign code. If there is no case of having user level DEC Unix server running in a host processor we can still emulate like they did and/or have a M3 Unix server inside the kernel like they planed to do. In perspective SPINE (spin development) developed a embedded system in NT kernel without touching host system processor but the actual network interface card internal processor featuring several M3 applications running on it. This would be a potential place for higher optimization in the CM3 system as we wouldn't have the usual architecture M3 guest-per system but a M3 host per system given the opportunities for it Hope this helps in something, thanks in advance --- El mar, 22/12/09, Daniel Alejandro Benavides D. escribi?: > De: Daniel Alejandro Benavides D. > Asunto: Re: [M3devel] [M3commit] CVS Update: cm3 > Para: m3commit at elegosoft.com, jkrell at elego.de > CC: m3devel at elegosoft.com > Fecha: martes, 22 de diciembre, 2009 22:42 > Hi all: > forgive my ignorance about the actual changes going on > below copied M3commit message of Monday, December 21, > 16:00:40 but what is this to have gcc code inside the > compiler libs, I recommend to check the strict rules about > this before performing such changes, Is there any problem > getting gcc code inside the runtime libraries, even if this > only used in level C code, this gets more C dependences in > non-M3 code we are not able to guarantee, better UNSAFE than > totally unmarked unsafe again. If this is not the case, and > just a piece of m3cc related code I don't disqualify it > yet. > Thanks in advance > > --- El lun, 21/12/09, Jay Krell > escribi?: > > > De: Jay Krell > > Asunto: [M3commit] CVS Update: cm3 > > Para: m3commit at elegosoft.com > > Fecha: lunes, 21 de diciembre, 2009 11:00 > > CVSROOT: /usr/cvs > > Changes by: > > jkrell at birch. 09/12/21 16:00:40 > > > > Modified files: > > > cm3/m3-libs/m3core/src/Csupport/libgcc/: > > libgcc.c > > > > cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: RTStackC.c > > > > cm3/m3-libs/m3core/src/runtime/DS3100/: > > RTStackC.c > > > cm3/m3-libs/m3core/src/runtime/POSIX/: > > RTOSbrk.c RTOSmmap.c > > > cm3/m3-libs/m3core/src/runtime/SOLgnu/: > > RTStackC.c > > > cm3/m3-libs/m3core/src/runtime/SOLsun/: > > RTStackC.c > > > cm3/m3-libs/m3core/src/runtime/WIN32/: > > RTOSc.c > > > > cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c > > > > Log message: > > add mising #ifdef cplusplus > extern "C" { > > } > > > > > > > > From jay.krell at cornell.edu Wed Dec 23 11:15:51 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 23 Dec 2009 10:15:51 +0000 Subject: [M3commit] libgcc.c In-Reply-To: <770199.13762.qm@web23608.mail.ird.yahoo.com> References: <20091221150040.B051E2474001@birch.elegosoft.com>, <770199.13762.qm@web23608.mail.ird.yahoo.com> Message-ID: Daniel, please look at the file. If you write the following sorts of Modula-3 code: PROCEDURE Add64(a,b: LONGINT):LONGINT= RETURN a + b; END Add64; PROCEDURE Mult64(a,b: LONGINT):LONGINT= RETURN a * b; END Mult64; PROCEDURE Div64(a,b: LONGINT):LONGINT= RETURN a / b; END Div64; Or the following sorts of C code: long long add64(long long a, long long b) { return a + b; } long long mult64(long long a, long long b) { return a * b; } long long div64(long long a, long long b) { return a / b; } fanything that does these operations, not just functions that /only/ do them, on some architectures (esp. 32 bit ones), the backend (or C compiler) will emit function calls. If gcc is the compiler/linker, it always throws libgcc.a or such, and the functions are resolved. Any C code has this property. libgcc.a is liberally licensed. Again, any C code possibly links in this code. On systems where m3cg is the backend but gcc is not the compiler/linker, e.g. SOLsun, you don't get libgcc.a, but you still get these function calls. Therefore, on a platform like SOLsun, the solution is write functions very much like the above, but with names that match what the backend emits. In fact, what might occur is Sun CC emits function calls to functions with yet other names. That's awfully inefficient (two function calls to do a multiply) but it does work. It might be good if we could teach m3cg about the function names used by other compilers/runtimes. But it's also probably only a problem on 32bit platforms and they are the past. Apparently there is some doubt as to if these functions are needed on 64bit platforms, as you can see in the comments (at least in the original). - Jay > Date: Wed, 23 Dec 2009 03:42:24 +0000 > From: dabenavidesd at yahoo.es > To: m3commit at elegosoft.com; jkrell at elego.de > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] [M3commit] CVS Update: cm3 > > Hi all: > forgive my ignorance about the actual changes going on below copied M3commit message of Monday, December 21, 16:00:40 but what is this to have gcc code inside the compiler libs, I recommend to check the strict rules about this before performing such changes, Is there any problem getting gcc code inside the runtime libraries, even if this only used in level C code, this gets more C dependences in non-M3 code we are not able to guarantee, better UNSAFE than totally unmarked unsafe again. If this is not the case, and just a piece of m3cc related code I don't disqualify it yet. > Thanks in advance > > --- El lun, 21/12/09, Jay Krell escribi?: > > > De: Jay Krell > > Asunto: [M3commit] CVS Update: cm3 > > Para: m3commit at elegosoft.com > > Fecha: lunes, 21 de diciembre, 2009 11:00 > > CVSROOT: /usr/cvs > > Changes by: > > jkrell at birch. 09/12/21 16:00:40 > > > > Modified files: > > cm3/m3-libs/m3core/src/Csupport/libgcc/: > > libgcc.c > > > > cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: RTStackC.c > > cm3/m3-libs/m3core/src/runtime/DS3100/: > > RTStackC.c > > cm3/m3-libs/m3core/src/runtime/POSIX/: > > RTOSbrk.c RTOSmmap.c > > cm3/m3-libs/m3core/src/runtime/SOLgnu/: > > RTStackC.c > > cm3/m3-libs/m3core/src/runtime/SOLsun/: > > RTStackC.c > > cm3/m3-libs/m3core/src/runtime/WIN32/: > > RTOSc.c > > > > cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c > > > > Log message: > > add mising #ifdef cplusplus extern "C" { > > } > > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Wed Dec 23 18:59:13 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 23 Dec 2009 18:59:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223175913.2ACF3CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/23 18:59:13 Modified files: cm3/m3-libs/m3core/src/C/Common/: Tag: release_branch_cm3_5_8 CerrnoC.c Log message: from head: calling convention From jkrell at elego.de Wed Dec 23 19:00:40 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 23 Dec 2009 19:00:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223180040.705D7CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/23 19:00:40 Modified files: cm3/m3-libs/sysutils/src/POSIX/: Tag: release_branch_cm3_5_8 SystemPosixC.c Log message: from head: remove lots of #includes From jkrell at elego.de Wed Dec 23 19:01:50 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 23 Dec 2009 19:01:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223180151.7FBDCCC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/23 19:01:50 Modified files: cm3/m3-libs/sysutils/src/: Tag: release_branch_cm3_5_8 SystemC.c Log message: from head: optimize, calling convention, Interix needs #define _REENTRANT From hosking at elego.de Wed Dec 23 22:37:02 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 22:37:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223213702.9BCF2CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 22:37:02 Modified files: cm3/m3-libs/m3core/src/word/: Long.i3 Long.m3 Word.i3 Word.m3 m3makefile Added files: cm3/m3-libs/m3core/src/word/: Word.ig Word.mg Removed files: cm3/m3-libs/m3core/src/word/: GenWord.ig GenWord.mg Log message: Move GenWord.ig and GenWord.mg to Word.ig and Word.mg. From hosking at elego.de Wed Dec 23 22:43:37 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 22:43:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223214337.31D18CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 22:43:37 Modified files: cm3/m3-libs/m3core/src/: m3makefile cm3/m3-libs/m3core/src/float/Common/: Extended.m3 LongReal.m3 Real.m3 cm3/m3-libs/m3core/src/float/IEEE/: Extended.i3 LongReal.i3 Real.i3 cm3/m3-libs/m3core/src/float/VAX/: Extended.i3 LongReal.i3 Real.i3 Added files: cm3/m3-libs/m3core/src/types/: ASCII.i3 ASCII.m3 Boolean.i3 Boolean.m3 COPYRIGHT-CMASS Char.i3 Char.m3 Int32.i3 Int32.m3 Int64.i3 Int64.m3 Integer.i3 Integer.m3 Longint.i3 Longint.m3 Refany.i3 Refany.m3 Unicode.i3 Unicode.m3 WideChar.i3 WideChar.m3 m3makefile Removed files: cm3/m3-libs/libm3/src/types/: ASCII.i3 ASCII.m3 Boolean.i3 Boolean.m3 COPYRIGHT-CMASS Char.i3 Char.m3 Int32.i3 Int32.m3 Int64.i3 Int64.m3 Integer.i3 Integer.m3 Longint.i3 Longint.m3 LongrealType.i3 LongrealType.m3 RealType.i3 RealType.m3 Refany.i3 Refany.m3 Unicode.i3 Unicode.m3 WideChar.i3 WideChar.m3 m3makefile Log message: Move libm3/src/types into m3core. Note that LongrealType and RealType have been folded into m3core/src/float. Clients will need adjustment. From hosking at elego.de Wed Dec 23 23:04:03 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 23:04:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223220403.80E792474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 23:04:03 Modified files: cm3/caltech-parser/cit_util/src/: m3makefile Log message: Fix renames. From hosking at elego.de Wed Dec 23 23:05:06 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 23:05:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223220506.1A322CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 23:05:06 Modified files: cm3/m3-demo/mentor/src/binpack/: RealList.i3 RealList.m3 m3makefile Log message: Fix renames for RealType=>Real and LongrealType=>LongReal. From hosking at elego.de Wed Dec 23 23:06:12 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 23:06:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223220612.AFB69CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 23:06:12 Modified files: cm3/m3-libs/arithmetic/src/basictypes/float/: m3makefile Removed files: cm3/m3-libs/arithmetic/src/basictypes/float/: ExtendedType.i3 ExtendedType.m3 Log message: Fix renames for RealType=>Real, LongrealType=>LongReal, ExtendedType=>Extended. From hosking at elego.de Wed Dec 23 23:07:00 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 23:07:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223220700.07726CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 23:07:00 Modified files: cm3/m3-libs/sortedtableextras/src/: RedBlackTbl.ig SkipListTbl.ig Log message: RealType=>Real. From hosking at elego.de Wed Dec 23 23:07:36 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 23:07:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223220736.799BCCC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 23:07:36 Modified files: cm3/m3-libs/synthesizer/src/: m3makefile Log message: LongrealType=>LongReal. From hosking at elego.de Wed Dec 23 23:13:16 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 23:13:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223221316.A05C62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 23:13:16 Modified files: cm3/m3-libs/m3core/src/types/: m3makefile Added files: cm3/m3-libs/m3core/src/types/: Address.i3 Address.m3 Log message: Add an Address type. From hosking at elego.de Wed Dec 23 23:39:13 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 23:39:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223223914.03AD02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 23:39:13 Added files: cm3/m3-libs/m3core/src/atomic/: Atomic.ig AtomicAddress.i3 AtomicBoolean.i3 AtomicChar.i3 AtomicInteger.i3 AtomicLongint.i3 AtomicRefany.i3 AtomicWideChar.i3 AtomicWord.i3 Log message: Working up the Atomic interface. Comments welcome. No implementation yet, so don't try using these... you'll get linkage errors. But they do compile. ;-) From jkrell at elego.de Thu Dec 24 16:10:28 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 24 Dec 2009 16:10:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091224151028.79086CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/24 16:10:28 Added files: cm3/m3-libs/m3core/src/atomic/: atomic.tmpl m3makefile Log message: Let it compile. Note that none of the *.i3 files are used here, identical copies are generated in the build directory. From hosking at elego.de Thu Dec 24 16:41:54 2009 From: hosking at elego.de (Antony Hosking) Date: Thu, 24 Dec 2009 16:41:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091224154154.274DD2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/24 16:41:54 Modified files: cm3/m3-libs/m3core/src/atomic/: m3makefile Log message: It's not a module (yet). From hosking at elego.de Thu Dec 24 16:50:16 2009 From: hosking at elego.de (Antony Hosking) Date: Thu, 24 Dec 2009 16:50:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091224155016.661982474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/24 16:50:16 Modified files: cm3/m3-libs/m3core/src/atomic/: m3makefile Removed files: cm3/m3-libs/m3core/src/atomic/: atomic.tmpl Log message: These will be compiler builtins like Word, so we shouldn't anticipate expanding more than exactly these interfaces. Remove the template file to discourage (impure) thoughts that we might. From rcoleburn at elego.de Tue Dec 29 19:22:50 2009 From: rcoleburn at elego.de (Randy Coleburn) Date: Tue, 29 Dec 2009 19:22:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091229182250.CC8702474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 09/12/29 19:22:50 Modified files: cm3/m3-libs/m3core/src/runtime/WIN32/: RTOSc.c Log message: convert from MAC to UNIX format so Microsoft C++ compiler on Windows will process the file. From rcoleburn at elego.de Tue Dec 29 19:24:32 2009 From: rcoleburn at elego.de (Randy Coleburn) Date: Tue, 29 Dec 2009 19:24:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091229182432.E5A222474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 09/12/29 19:24:32 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTIOc.c RTLinkerC.c Log message: convert from MAC to UNIX format so Microsoft C++ compiler on Windows will process the file. From rcoleburn at elego.de Wed Dec 30 01:00:21 2009 From: rcoleburn at elego.de (Randy Coleburn) Date: Wed, 30 Dec 2009 1:00:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091230000021.6DA362474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 09/12/30 01:00:21 Modified files: cm3/m3-libs/libm3/src/: m3makefile Log message: repair broken build process by commenting out the inclusion of "Types" folder because this folder is not in the source tree right now. From jkrell at elego.de Wed Dec 30 13:41:06 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Dec 2009 13:41:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091230124106.32C60CC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/30 13:41:06 Modified files: cm3/m3-libs/libm3/src/uid/POSIX/: getMID.c Log message: repair how the variable sized structs are walked demonstrate working code to get MAC addresses on Mac OS X, and perhaps other systems still to be worked into the real code but this is good From jkrell at elego.de Wed Dec 30 13:53:28 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Dec 2009 13:53:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091230125329.165C6CC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/30 13:53:28 Modified files: cm3/m3-libs/libm3/src/uid/POSIX/: getMID.c Log message: It sounds like this will work on Net/Free/OpenBSd as well. An option for pre-10.3 Mac OS X would be good too. From jkrell at elego.de Wed Dec 30 14:06:54 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Dec 2009 14:06:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091230130654.78F432474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/30 14:06:54 Added files: cm3/m3-libs/libm3/src/uid/POSIX/: GetPrimaryMACAddress.c Log message: initial copy of Apple sample code from: http://developer.apple.com/mac/library/samplecode/GetPrimaryMACAddress/ I expect this will work on older systems as well. Note that to compile/link it, you need to specify -framework IOKit -framework CoreFoundation I'll add that to the Darwin config files shortly. From jkrell at elego.de Wed Dec 30 14:08:14 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Dec 2009 14:08:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091230130814.5698E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/30 14:08:14 Modified files: cm3/m3-libs/libm3/src/uid/POSIX/: getMID.c Log message: remove redundant #include From jkrell at elego.de Wed Dec 30 14:13:30 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Dec 2009 14:13:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091230131330.7F0AA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/30 14:13:30 Modified files: cm3/m3-libs/libm3/src/uid/POSIX/: getMID.c Log message: remove volatile that was from when I wanted to look in the debugger but wasn't yet doing anything else From jkrell at elego.de Wed Dec 30 15:40:06 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Dec 2009 15:40:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091230144007.081152474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/30 15:40:06 Modified files: cm3/m3-libs/m3core/src/word/: Long.i3 Long.m3 Word.i3 Word.m3 m3makefile Added files: cm3/m3-libs/m3core/src/word/: GenWord.ig GenWord.mg Removed files: cm3/m3-libs/m3core/src/word/: Word.ig Word.mg Log message: go back to GenWord the other front end (Olivetti m3-tk) doesn't understand INTERFACE Word = Word(WordRep) END Word. but it does't understand INTERFACE Word = GenWord(WordRep) END Word. From jkrell at elego.de Wed Dec 30 15:49:43 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Dec 2009 15:49:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091230144944.1EAB52474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/30 15:49:43 Modified files: cm3/caltech-parser/cit_util/src/: m3makefile Log message: fix: LongReal => Longreal, in the local name, not the m3core name From jkrell at elego.de Tue Dec 1 10:34:03 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 1 Dec 2009 10:34:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091201093403.31BC62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/01 10:34:03 Modified files: cm3/m3-sys/m3cc/gcc/gcc/config/i386/: i386-interix.h cm3/m3-sys/m3cc/gcc/config/: mh-interix Log message: merge with Interix; esp. ASM_DECLARE_FUNCTION_NAME so that dlltool can tell data from functions and make import libs properly This lets us link shared, though running doesn't work yet. From jkrell at elego.de Tue Dec 1 10:42:38 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 1 Dec 2009 10:42:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091201094239.018082474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/01 10:42:38 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: I386_INTERIX Interix.common Log message: refactor a little, and twiddle with linking switches From jkrell at elego.de Tue Dec 1 10:46:24 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 1 Dec 2009 10:46:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091201094624.C87242474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/01 10:46:24 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Unix.common Log message: remove some ntdll special casing now that m3-win/ntdll does more itself From jkrell at elego.de Tue Dec 1 10:49:13 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 1 Dec 2009 10:49:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091201094913.28DE02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/01 10:49:13 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Unix.common Log message: for now turn off shared for Interix, pending more testing/debugging/fixing From jkrell at elego.de Tue Dec 1 10:54:46 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 1 Dec 2009 10:54:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091201095446.4FA2E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/01 10:54:46 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Unix.common Log message: cleanup: use new function AdjustShared to encapsulate the Interix check and the defined("install_symbolic_link") check (These config files with older compilers don't support shared, just building an up to date static compiler, and then using that to build stuff shared.) From rcoleburn at elego.de Tue Dec 1 17:55:12 2009 From: rcoleburn at elego.de (Randy Coleburn) Date: Tue, 1 Dec 2009 17:55:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091201165512.EA71F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 09/12/01 17:55:12 Modified files: cm3/m3-tools/cvsup/suplib/src/: m3makefile Log message: add missing "end" statement at line 58 to correct compile-time syntax error. Someone needs to check me on this one. After this change, I don't get any packages built in cvsup on WindowsXP, I suppose due to some prerequiste not being met. But at least I don't get the syntax error. Not sure why the package m3makefile seems to be limited to POSIX platforms at line 31. Everything was building on Windows before.--R.Coleburn Here is the compiler output before my correction: C:\cm3\Sandbox\cm3\m3-tools\cvsup\suplib>cm3 -verbose EVAL ("C:\cm3\bin\cm3.cfg") --- building in NT386 --- cd NT386 LIB_INSTALL is C:\cm3\lib ignoring ..\src\m3overrides EVAL ("m3make.args") rm .M3SHIP rm .M3OVERRIDES "C:\cm3\Sandbox\cm3\m3-tools\cvsup\suplib\NT386\m3make.args", line 5: quake runtime error: C:\cm3\Sandbox\cm3\m3-tools\cvsup\suplib\src\m3makefile, line 263: syntax error: "end" or "else" expected after "if" --procedure-- -line- -file--- include_dir -- 5 C:\cm3\Sandbox\cm3\m3-tools\cvsup\suplib\NT386\m3make.args Fatal Error: package build failed seconds #times operation 0.03 2 removing temporary files 0.03 other --------------------------------------------------- 0.06 TOTAL rm m3make.args cd .. C:\cm3\Sandbox\cm3\m3-tools\cvsup\suplib> From jkrell at elego.de Wed Dec 2 01:56:35 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 2 Dec 2009 1:56:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091202005636.38FF52474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/02 01:56:35 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c m3makefile Removed files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadInterix.c Log message: remove interix stuff for now It wasn't a terrible idea and Interix isn't useless, but it seems you can only get a suspend/resume handle to a thread on the first thread, not anything created with pthread_create, very surprising (also can't getcontext) a few not great options remain: use semaphore/signal but rely on all traced references to always be on stack; fairly viable if you don't optimize, though a little tricky when the references are first created? make/get/set/swapcontext - no, they aren't present sigstack/sigaltstack -- not present stuff in /proc -- yes very promising From jkrell at elego.de Wed Dec 2 02:19:17 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 2 Dec 2009 2:19:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091202011917.AB6C82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/02 02:19:17 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.i3 Log message: fix From wagner at elego.de Wed Dec 2 18:09:27 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 2 Dec 2009 18:09:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091202170927.D5E9D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/12/02 18:09:27 Modified files: cm3/www/: Tag: release_branch_cm3_5_8 download.html news.html cm3/www/releng/: Tag: release_branch_cm3_5_8 update-releng-index.sh Log message: some fixes and additions for RC4 From jkrell at elego.de Thu Dec 3 11:32:14 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 11:32:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203103214.908142474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 11:32:14 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: remove gratuitous use of a traced ref: FreeSlow(untraced me) instead of FreeSlot(traced self) From jkrell at elego.de Thu Dec 3 11:35:41 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 11:35:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203103541.CFD7F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 11:35:41 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: NIL stackPointer when not suspended From jkrell at elego.de Thu Dec 3 11:49:31 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 11:49:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203104932.0A6602474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 11:49:31 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: newlines to try to unhide the important line From jkrell at elego.de Thu Dec 3 11:53:58 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 11:53:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203105358.8BA47CC3B1@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 11:53:58 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: - fix previous change to FreeSlot; it needs both, for the sanity check - inline RunThread in its only caller ThreadBase I see no real distinction between them, and the stack address is found such that the inlining won't break it. From jkrell at elego.de Thu Dec 3 11:56:44 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 11:56:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203105644.24D442474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 11:56:44 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: -CONST debug = FALSE; +VAR DEBUG := RTParams.IsPresent("debugthreads"); to be more like pthreads (though we don't currently print the same stuff) From jkrell at elego.de Thu Dec 3 13:32:44 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 13:32:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203123244.1EDDB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 13:32:44 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: initial activation starts out not suspended (fixes the cm3ide assert stackpointer # NIL) From jkrell at elego.de Thu Dec 3 13:36:42 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 13:36:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203123642.2563B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 13:36:42 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: cm3.cfg Log message: fix warning from cm3ide about EOL not defined (this .cfg file isn't perhaps mainstream, it isn't what a release installs From jkrell at elego.de Thu Dec 3 13:41:22 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 13:41:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203124122.930032474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 13:41:22 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadContext.i3 Log message: add ExtendedRegisters from newer headers, though it doesn't really gain anything and it costs us an extra 512 bytes per thread From jkrell at elego.de Thu Dec 3 13:43:19 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 13:43:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203124319.CD7262474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 13:43:19 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: ThreadWin32__threadIndex => static threadIndex From jkrell at elego.de Thu Dec 3 13:47:22 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 13:47:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203124722.9A25A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 13:47:22 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: structure more like ThreadPThread.m3: ProcessLive ProcessStopped ProcessMe ProcessOther etc. including pushing some processor-dependency into C however this code still knows the sizeof CONTEXT In fact these functions now exist in both and are practically identical. But Win32 print the more useful act.handle instead of act. And win32 is a little different wrt context. From jkrell at elego.de Thu Dec 3 13:55:26 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 13:55:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203125527.245802474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 13:55:26 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.m3 Log message: fix suspendCount of initial thread From jkrell at elego.de Thu Dec 3 14:29:28 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 14:29:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203132928.A6700CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 14:29:28 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: SchedulerPosix.m3 ThreadWin32.i3 ThreadWin32.m3 Log message: begin moving fields from traced to untraced to match pthreads in this diff: waitSema alertable alerted still tbd: waitingOn nextWaiter From jkrell at elego.de Thu Dec 3 19:47:43 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 19:47:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203184744.5AB022474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 19:47:43 Modified files: cm3/m3-libs/m3core/src/thread/Common/: ThreadDebug.i3 Log message: loosen types up completely as I'll be changing some and they don't really matter From jkrell at elego.de Thu Dec 3 20:00:04 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 20:00:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203190004.3C4CE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 20:00:04 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: reduce dependency on cloned headers From jkrell at elego.de Thu Dec 3 20:26:42 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 20:26:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203192642.846A42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 20:26:42 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: m3makefile Log message: make ThreadContext interface private From jkrell at elego.de Thu Dec 3 20:27:58 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 20:27:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203192758.6A727CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 20:27:58 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: reduce but don't eliminate dependency on header cloning, at the cost of an extra heap allocation per thread (up from 2 to 3, but we can probably get it back down by allocation the entire Activation in C (RTSignal.m3 still depends on the header cloning)) From jkrell at elego.de Thu Dec 3 20:42:35 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 20:42:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203194235.545B02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 20:42:35 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: fix leak upon out of memory From jkrell at elego.de Thu Dec 3 20:45:59 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 20:45:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203194600.050382474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 20:45:59 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: calling convention From jkrell at elego.de Thu Dec 3 21:02:37 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 21:02:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203200238.F31D42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 21:02:37 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: add more check for low resources; fix hang in stubgen by stopping scanning stack earlier (a bit of a mystery?) From jkrell at elego.de Thu Dec 3 21:47:59 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 21:47:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203204759.1E07D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 21:47:59 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: all but start threads not suspended it seems nearly impossible to start them running unless we want to use an extra DuplicateHandle for act.handle, in the thread structure more like pthreads specifically add to the list of active threads in the new thread instead of fork structure the try/finally nicer initialize local to nil and try/finally the entire function really fix deadlock where thread can't finish and remove itself from active list because suspendothers already has the lock, and suspendthread..works, but then GetContextAndCheckStack fails because start/end are nil From jkrell at elego.de Thu Dec 3 21:52:20 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 21:52:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203205220.9F4472474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 21:52:20 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: in resume, allow that dying threads maybe aren't suspended -- hm. probably we should just remove from the list earlier? From jkrell at elego.de Thu Dec 3 21:58:09 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 21:58:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203205809.9C60B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 21:58:09 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: further fix assertion From jkrell at elego.de Fri Dec 4 11:41:06 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 4 Dec 2009 11:41:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091204104106.AF5F42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/04 11:41:06 Modified files: cm3/m3-libs/m3core/src/C/Common/: CstdioC.c Log message: a lot more wrappers, and much more mechanical From jkrell at elego.de Sun Dec 6 10:52:38 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 10:52:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206095238.CF2012474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 10:52:38 Modified files: cm3/scripts/examples/: make-juno.sh Log message: cleanup (flushing code before deleting/recreating tree) From jkrell at elego.de Sun Dec 6 10:54:18 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 10:54:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206095418.5D2CACC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 10:54:18 Modified files: cm3/doc/notes/: building-old.txt Log message: some updates I had From jkrell at elego.de Sun Dec 6 11:31:58 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 11:31:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206103158.642F9CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 11:31:57 Modified files: cm3/scripts/python/: pylib.py Log message: build the cross m3cc/m3cg in boot1.py From jkrell at elego.de Sun Dec 6 12:11:50 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 12:11:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206111150.177542474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 12:11:50 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c m3makefile cm3/scripts/python/: pylib.py Log message: fix Apple (abort not declared, stack_grows_down unknown) fix possible problem in FreeBSD fix bootstrapping Apple and FreeBSD that is: restructure elationship of ThreadPThreadC.c, ThreadApple.c, ThreadFreeBSD.c #include the later in the earlier, so more is in scope (so stack_grows_down remains static; #include would have been easy) use pgm_source to insure the files get into the boot archive and hack pylib.py to special case and not compile ThreadApple|FreeBSD.c From jkrell at elego.de Sun Dec 6 12:28:54 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 12:28:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206112854.75D982474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 12:28:54 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UtimeC.c Log message: fix assertions for AMD64_DARWIN where timeval unfortunately contains undeclared padding From jkrell at elego.de Sun Dec 6 12:34:16 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 12:34:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206113417.201022474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 12:34:16 Modified files: cm3/m3-libs/m3core/src/time/POSIX/: DateBsd.m3 DatePosix.m3 Log message: go back to long standing versions without mutex I still think there might be something fishy here like wrt the timezone changing as the process runs From jkrell at elego.de Sun Dec 6 13:13:33 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 13:13:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206121333.E95CA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 13:13:33 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadApple.c ThreadFreeBSD.c ThreadPThreadC.c m3makefile Log message: Try again. Compile the files separately. Add #include stdlib.h and move the assert(stack_grows_down) to ThreadPThreadC.c. Alternative would be to: - remove it altogether - compute it in ThreadApple.c - or rename it ThreadPThread__stack_grows_down (or Thread__stack_grows_down) From jkrell at elego.de Sun Dec 6 13:14:30 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 13:14:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206121430.9EEAE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 13:14:30 Modified files: cm3/scripts/python/: pylib.py Log message: remove ThreadApple.c/ThreadFreeBSD.c hack From jkrell at elego.de Sun Dec 6 13:29:42 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 13:29:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206122942.DB1562474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 13:29:42 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: a little more aggressive handling of EAGAIN and ENOMEM if pthread_create/pthread_mutex_init/pthread_cond_init fail with either, try again right away; if they fail again, sleep(1) and try again; this logic could be put into the Modula-3 as it is portable and such (Posix doesn't allow pthread_create to return ENOMEM though it seems reasonable; also a smaller sleep might be reasonable, and so would sleep/retrying even more, it's a difficult to resolve philosophical/engineering dilemna..) From jkrell at elego.de Sun Dec 6 13:58:54 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 13:58:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206125854.B9F46CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 13:58:54 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.i3 UnixC.c Log message: add wrapper for sleep +<*EXTERNAL Unix__sleep*> PROCEDURE sleep (a: unsigned): unsigned; +unsigned Unix__sleep(unsigned i) { return sleep(i); } From jkrell at elego.de Sun Dec 6 14:06:33 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 14:06:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206130633.752C9CC816@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 14:06:33 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: ProcessPosixCommon.m3 Log message: On Interix in particular, I have seen bash often say something like fork: Resource temporarily unavailable, retry and then it seems to work upon retry. Therefore, put in sleep/retry for fork returning EAGAIN, and we throw in ENOMEM as well, based closely on the bash code, which is very little. (does sleep(0,1,2,4,8),giveup) From jkrell at elego.de Sun Dec 6 14:10:57 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 14:10:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206131057.3B57D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 14:10:57 Modified files: cm3/m3-libs/m3core/src/time/POSIX/: Tag: release_branch_cm3_5_8 DateBsd.m3 Log message: use predeclared MUTEX instead of Thread.Mutex (copied from head) From jkrell at elego.de Sun Dec 6 14:12:15 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 14:12:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206131215.09B93CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 14:12:15 Modified files: cm3/m3-libs/m3core/src/time/POSIX/: Tag: release_branch_cm3_5_8 TimePosixC.c Log message: sync unused file with head From jkrell at elego.de Sun Dec 6 14:21:36 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 14:21:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206132136.BD5AACC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 14:21:36 Added files: cm3/m3-libs/m3core/src/time/POSIX/: DateBsdNoLock.m3 Log message: initial copyunchanged of DateBsd.m3 From jkrell at elego.de Sun Dec 6 14:37:22 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 14:37:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206133722.E9D992474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 14:37:22 Modified files: cm3/m3-libs/m3core/src/time/POSIX/: DateBsd.m3 m3makefile Removed files: cm3/m3-libs/m3core/src/time/POSIX/: DateBsdNoLock.m3 Log message: use grep -v to remove the references to " mu " in DateBsd.m3 when compiling for KernelThreads/pthreads, as their threading library will swap the localtime/asctime/etc. buffers when they swap threads (or switch to a new bank of thread locals, etc.) Unnecessary locks are bad. From jkrell at elego.de Sun Dec 6 14:39:27 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 14:39:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206133927.B7C682474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 14:39:27 Modified files: cm3/m3-libs/m3core/src/time/POSIX/: m3makefile Log message: fix incrementality and remove echo From jkrell at elego.de Sun Dec 6 15:35:53 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 15:35:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206143554.7D24C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 15:35:53 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: print some information when the error occurs From jkrell at elego.de Sun Dec 6 16:18:19 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 16:18:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206151819.8F9882474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 16:18:19 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadPThread.m3 Log message: cover more of the stack for the GC to find references; this seems to significantly reduce the problems, but not eliminate them; the detach often fails still, r=3, and capturing local handle := me.handle and then asserting they match often finds the local handle = NIL From hosking at elego.de Sun Dec 6 20:12:00 2009 From: hosking at elego.de (Antony Hosking) Date: Sun, 6 Dec 2009 20:12:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206191200.3A0DDCC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/06 20:12:00 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Revert to structure like 163. We are seeing the same complaint Jay had commented on in the commit for 170. A race unless we hold activeMu when setting stackbase. From jkrell at elego.de Mon Dec 7 07:42:17 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 7:42:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207064217.CE2EE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 07:42:17 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: slightly reduce critical section and remove unnecessary variable From jkrell at elego.de Mon Dec 7 08:03:41 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 8:03:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207070341.B79972474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 08:03:41 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: remove some derefences of traced references, remove RTIO use I had just put in, NIL the traced references that we aren't allowed to use (which should get optimized away but ok either way) From jkrell at elego.de Mon Dec 7 08:17:17 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 8:17:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207071717.4FFA92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 08:17:17 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c Log message: partial merge from head use pthread_detach_self() C function that does pthread_detach(pthread_self()) instead of relying on act.handle, which should work; hm? some cosmetic commenting drop traced refs by storing NIL, shouldn't make a difference stackbase was already managed roughly like head From jkrell at elego.de Mon Dec 7 08:54:05 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 8:54:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207075405.C293E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 08:54:05 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: Try a bit to deal with low resources in more places: sem_init pthread_attr_init pthread_key_create pthread_setspecific These are all documented as possibly returning one or more of: ENOMEM ENOSPC (sem_init) EAGAIN From jkrell at elego.de Mon Dec 7 08:55:40 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 8:55:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207075540.1EFCE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 08:55:40 Added files: cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadApple.c ThreadFreeBSD.c Log message: new files from head From jkrell at elego.de Mon Dec 7 09:00:56 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 9:00:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207080056.D83B6CC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 09:00:56 Added files: cm3/m3-libs/m3core/src/C/Common/: Tag: release_branch_cm3_5_8 CsignalC.c CstdlibC.c CstringC.c Log message: new files from head, not active in release, may or may not become so From jkrell at elego.de Mon Dec 7 09:48:44 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 9:48:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207084844.F31B62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 09:48:44 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UdirC.c Uexec.c Uin.c Umman.c UnixC.c m3unix.h Log message: mechanize wrappers via preprocessing From jkrell at elego.de Mon Dec 7 09:59:23 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 9:59:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207085923.9EAAC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 09:59:23 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uprocess.c Usignal.c Usocket.c Uugid.c Uuio.c Uutmp.c m3unix.h Log message: mechanize more wrappers From jkrell at elego.de Mon Dec 7 10:07:17 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 10:07:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207090717.4BD0D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 10:07:17 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UdirC.c Upwd.c UstatC.c Uucontext.c Log message: mechanize a few more wrappers From jkrell at elego.de Mon Dec 7 10:11:21 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 10:11:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207091121.4E5882474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 10:11:21 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UdirC.c Uin.c Umman.c Uprocess.c Upwd.c Usignal.c Uugid.c Uuio.c Uutmp.c m3unix.h Log message: put extern "C" in the macros so that the really simple files can be even a few lines shorter (really we could just delete the extern "C" probably, but I still like the idea) From jkrell at elego.de Mon Dec 7 10:15:13 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 10:15:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207091513.C922E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 10:15:13 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uprocess.c Log message: fix typo From jkrell at elego.de Mon Dec 7 11:53:36 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 11:53:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207105336.272B1CC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 11:53:36 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 ThreadPThreadC.c Log message: account for that I moved nulling stackbase to outside a lock -- don't reread it after checking it, just read it once and check it once after that (I don't understand this heap thread state stuff, ok?) From jkrell at elego.de Mon Dec 7 11:57:57 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 11:57:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207105757.EA9D82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 11:57:57 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: whitespace to line up columns; cosmetic to hilight the critical line in RunThread From jkrell at elego.de Mon Dec 7 12:03:03 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 12:03:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207110303.D0D52CC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 12:03:03 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: fill in some LockingLevel comments empirically/transitively so I can see how act.handle is dealt with From jkrell at elego.de Mon Dec 7 12:29:48 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 12:29:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207112948.2032C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 12:29:48 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c Log message: resolve the race setting act.handle by setting it in ThreadBase to pthread_self before adding the thread to the active list; this can happen as far as I can tell before pthread_create actually returns or writes the resulting handle in the creating thread From jkrell at elego.de Mon Dec 7 12:37:53 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 12:37:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207113754.4B19E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 12:37:53 Added files: cm3/m3-libs/m3core/src/: m3core.h Log message: initial copy of m3unix.h From jkrell at elego.de Mon Dec 7 12:38:17 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 12:38:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207113817.9BEF92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 12:38:17 Modified files: cm3/m3-libs/m3core/src/: m3core.h Log message: change #ifdef guard to reflect new name From jkrell at elego.de Mon Dec 7 12:39:30 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 12:39:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207113930.21E73CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 12:39:30 Modified files: cm3/m3-libs/m3core/src/: m3makefile cm3/m3-libs/m3core/src/unix/Common/: m3unix.h Log message: add m3core.h and have m3unix.h just #include it From jkrell at elego.de Mon Dec 7 12:45:05 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 12:45:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207114506.05264CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 12:45:05 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTOSbrk.c RTOSmmap.c cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadApple.c ThreadFreeBSD.c ThreadPThreadC.c cm3/m3-libs/m3core/src/time/POSIX/: DatePosixC.c TimePosixC.c cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c UdirC.c Uexec.c Ugrp.c Uin.c Umman.c Unetdb.c UnixC.c UnixLink.c Uprocess.c Upwd.c Usignal.c Usocket.c UstatC.c UtimeC.c Uucontext.c Uugid.c Uuio.c Uutmp.c Log message: switch from m3unix.h to m3core.h From jkrell at elego.de Mon Dec 7 13:09:10 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 13:09:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207120910.77E922474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 13:09:10 Modified files: cm3/m3-libs/m3core/src/C/Common/: CsignalC.c CstdioC.c CstdlibC.c CstringC.c Log message: use m3core.h's macros for wrappers, at least for functions that don't return void From jkrell at elego.de Mon Dec 7 13:19:19 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 13:19:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207121919.19D282474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 13:19:19 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: a few mechanical wrappers From jkrell at elego.de Mon Dec 7 13:56:00 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 13:56:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207125600.68F97CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 13:56:00 Modified files: cm3/m3-libs/libm3/src/rw/: Tag: release_branch_cm3_5_8 AutoFlushWr.m3 FileWr.m3 Rd.m3 UnsafeWr.i3 Wr.m3 Log message: copy from head (nudged by Peter's mail): have AutoFlush always copy all the fields copying not all of them is a micro optimization and more importantly, hard to know the correctness of some functions Foo where already implemented as LOCK UnsafeFoo this seems like a good pattern; do it more From jay.krell at cornell.edu Mon Dec 7 14:01:39 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 7 Dec 2009 13:01:39 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091207125600.68F97CC812@birch.elegosoft.com> References: <20091207125600.68F97CC812@birch.elegosoft.com> Message-ID: 1) diff attached (cvsweb stinks, textual diffs aren't great either..) 2) "(* We don't call FastSeek here because it fails if wr.child is not seekable, even if n = wr.cur. *)" Maybe that is a bug? It should be ok to seek to the current position in a non-seekable stream? - Jay > Date: Mon, 7 Dec 2009 13:56:00 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/07 13:56:00 > > Modified files: > cm3/m3-libs/libm3/src/rw/: Tag: release_branch_cm3_5_8 > AutoFlushWr.m3 FileWr.m3 Rd.m3 > UnsafeWr.i3 Wr.m3 > > Log message: > copy from head (nudged by Peter's mail): > have AutoFlush always copy all the fields > copying not all of them is a micro optimization and more importantly, hard to know the correctness of > some functions Foo where already implemented as > LOCK > UnsafeFoo > this seems like a good pattern; do it more > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 1.txt URL: From jkrell at elego.de Mon Dec 7 14:46:57 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 14:46:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207134658.5D0812474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 14:46:57 Modified files: cm3/: m3overrides Log message: add some caltech-parser stuff From jkrell at elego.de Mon Dec 7 14:49:17 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 14:49:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207134917.5BA1D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 14:49:17 Modified files: cm3/: m3overrides Log message: add commented out the caltech-parser packages that we don't have From jkrell at elego.de Mon Dec 7 14:51:36 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 14:51:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207135136.5E9F3CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 14:51:36 Modified files: cm3/caltech-parser/: m3overrides cm3/caltech-parser/cit_common/src/: m3overrides cm3/caltech-parser/cit_util/src/: m3overrides cm3/caltech-parser/drawcontext/dcpane/src/: m3overrides cm3/caltech-parser/drawcontext/kgv/src/: m3overrides cm3/caltech-parser/drawcontext/src/: m3overrides cm3/caltech-parser/drawcontext/test/src/: m3overrides cm3/caltech-parser/hack/src/: m3overrides cm3/caltech-parser/m3browserhack/src/: m3overrides cm3/caltech-parser/m3tmplhack/src/: m3overrides cm3/caltech-parser/paneman/kemacs/src/: m3overrides cm3/caltech-parser/paneman/src/: m3overrides cm3/caltech-parser/parserlib/: m3overrides cm3/caltech-parser/parserlib/kext/src/: m3overrides cm3/caltech-parser/parserlib/klex/src/: m3overrides cm3/caltech-parser/parserlib/klexlib/src/: m3overrides cm3/caltech-parser/parserlib/ktok/src/: m3overrides cm3/caltech-parser/parserlib/ktoklib/src/: m3overrides cm3/caltech-parser/parserlib/kyacc/src/: m3overrides cm3/caltech-parser/parserlib/kyacclib/src/: m3overrides cm3/caltech-parser/parserlib/parserlib/src/: m3overrides cm3/caltech-parser/parserlib/parserlib/test/src/: m3overrides cm3/caltech-parser/parserlib/parserlib/test_stdin/src/: m3overrides cm3/caltech-parser/term/src/: m3overrides Log message: just include toplevel m3overrides From jkrell at elego.de Mon Dec 7 15:18:43 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 15:18:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207141843.543BDCC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 15:18:43 Modified files: cm3/: m3overrides Log message: set _NETOBJ_OVERRIDE, _SHAREDOBJ_OVERRIDE From jkrell at elego.de Wed Dec 9 09:45:27 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Dec 2009 9:45:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091209084527.9DA272474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/09 09:45:27 Modified files: cm3/: m3overrides Log message: comment out _NETOBJ_OVERRIDE, _NETOBJ_OVERRIDE until I understand better how this works From jkrell at elego.de Wed Dec 9 09:54:22 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Dec 2009 9:54:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091209085422.88FB02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/09 09:54:22 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: keep alertable = FALSE except in AlertWait, so that LockMutex doesn't have to touch it, as part of removing giant lock from LockMutex / UnlockMutex From jkrell at elego.de Wed Dec 9 09:57:08 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Dec 2009 9:57:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091209085708.389602474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/09 09:57:08 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: go back a version From jkrell at elego.de Wed Dec 9 14:08:56 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Dec 2009 14:08:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091209130856.F274A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/09 14:08:56 Modified files: cm3/m3-libs/m3core/src/runtime/WIN32/: RTOS.m3 Log message: just enter debugger right away, don't waste time and state suspending other threads, the debugger will suspend all and won't care if they are busy in the Modula-3 heap allocator From jkrell at elego.de Wed Dec 9 15:17:47 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Dec 2009 15:17:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091209141747.B76EF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/09 15:17:47 Modified files: cm3/m3-libs/m3core/src/: Tag: release_branch_cm3_5_8 m3makefile Added files: cm3/m3-libs/m3core/src/: Tag: release_branch_cm3_5_8 m3core.h Log message: bring over files from head From jkrell at elego.de Wed Dec 9 15:20:15 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Dec 2009 15:20:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091209142015.206762474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/09 15:20:15 Modified files: cm3/m3-libs/m3core/src/C/Common/: Tag: release_branch_cm3_5_8 CerrnoC.c CsignalC.c CstdioC.c CstdlibC.c CstringC.c m3makefile Log message: bring files from head notice no change to the *3 files, so most of this goes unused when running binaries built against the release *.i3 files, but for binaries from head, there will be some extra exports that might let them work and some existing wrappers are "rewritten" as well From jkrell at elego.de Wed Dec 9 15:26:55 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Dec 2009 15:26:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091209142655.DE4832474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/09 15:26:55 Modified files: cm3/m3-libs/m3core/src/C/Common/: CstdioC.c Log message: remove possibly less portable P_tmpdir -- MSVC stdio.h seems to /sometimes/ though rarely not defined it? From jkrell at elego.de Thu Dec 10 08:09:35 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 8:09:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210070935.674CDCC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 08:09:35 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: greatly mitigate the possible giantLock/heapLock deadlock Another problem was found, so maybe this wasn't really there, maybe. From jkrell at elego.de Thu Dec 10 08:13:34 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 8:13:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210071334.EC9472474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 08:13:34 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: fix extraction of stack pointer from context (fixes hang) From jkrell at elego.de Thu Dec 10 08:38:43 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 8:38:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210073844.06CE62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 08:38:43 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: Fix race condition that I saw "fail", around management of stack bounds and the read, check, read again pattern. Instead just read once and check. (There is an assumption of a certain level of non-optimization here; let's throw in barriers shortly.) From jkrell at elego.de Thu Dec 10 08:44:33 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 8:44:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210074433.9F8FA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 08:44:33 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: move comments for readability From jkrell at elego.de Thu Dec 10 12:23:50 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 12:23:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210112350.C45E62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 12:23:50 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: prepare to remove use of giant lock from LockMutex / UnlockMutex modify slightly alertable so that LockMutex doesn't have to change it From jkrell at elego.de Thu Dec 10 12:26:48 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 12:26:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210112648.61D512474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 12:26:48 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: and then stop writing to alertable in LockMutex (so that giant lock not needed in LockMutex/UnlockMutex) From jkrell at elego.de Thu Dec 10 13:18:48 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 13:18:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210121848.995162474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 13:18:48 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: Change LockMutex into basically just EnterCriticalSection, UnlockMutex into basically just LeaveCriticalSection. No more use of giant lock or Self() in them. This precludes an optimization of condition variables mentioned by Birrel (not shown by him, but easy to understand, but also it was never done here). Before long we'll probably just switch to Java's implementation anyway, which doesn't have a giant lock (if/when I understand it better, or maybe Tony will do this, since it might improve pthreads also and sounds like he wants to). Note this makes LockMutex/UnlockMutex very much resemble the .v0 and .v1 files that were left here. (which I went back and made the code look more like; not maintaining a uint32 "holder" threadi but just a boolean "held", but without the cache and still using C to know about the size of a critical section) remove incorrect lockingLevel comments in the perf code Note that I think perflocking should be moved one line up in LockMutex, but I match pthreads here, and it doesn't really matter From jkrell at elego.de Thu Dec 10 13:26:45 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 13:26:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210122645.5A53E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 13:26:45 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: put back assertion that alertable is false upon LockMutex From jkrell at elego.de Thu Dec 10 13:38:21 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 13:38:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210123821.524022474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 13:38:21 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: move comment for readabilty From jkrell at elego.de Thu Dec 10 16:08:58 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 16:08:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210150858.0B8432474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 16:08:58 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: rename Lock => LockRE for recursive/exclusive so that we might introduce LockE for exclusive From jkrell at elego.de Thu Dec 10 16:21:26 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 16:21:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210152126.9C79CCC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 16:21:26 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadContext.i3 ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: copy from head plus minor changes RTThread vs. ThreadInternal stop vs. limit in parameter names several changes from head: movement of some fields from Thread.T (traced) to Thread.Activation (untraced) LockMutex/UnlockMutex is just EnterCriticalSection/LeaveCriticalSection reads from global slots array are lockless (this is how Self() translates from untraced to traced) stack boundary is accurately known (not tested on Win9x) InitialStackBase removed in favor of something more efficient (not tested on Win9x) hack to verify stack addresses removed (removal of VerifySP function) some x86-isms factored into #ifdefed C the size and the fields of CONTEXT static locks changed back to variables instead of functions (really this could go either way) write into traced objects "immediately" before taking giant lock to greatly mitigate deadlock (what is the right fix here? To merge giantlock and heaplock??) (to check that allocator only uses locks and not conditions, now that locks don't use giantlock?) From jkrell at elego.de Thu Dec 10 16:38:17 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 16:38:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210153817.E80E52474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 16:38:17 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32C.c Log message: Unlock => UnlockRE also typedef CRITICAL_SECTION LockRE_t and push that around From jkrell at elego.de Thu Dec 10 16:39:32 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 16:39:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210153932.38C722474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 16:39:32 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.i3 ThreadWin32C.c Log message: Unlock => UnlockRE From hosking at cs.purdue.edu Thu Dec 10 17:16:08 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 10 Dec 2009 11:16:08 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091210150858.0B8432474001@birch.elegosoft.com> References: <20091210150858.0B8432474001@birch.elegosoft.com> Message-ID: <53223867-4659-46D1-A1E9-4C5760E85EC9@cs.purdue.edu> Umm. Modula-3 locks are *not* recursive... Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 10 Dec 2009, at 16:08, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/10 16:08:58 > > Modified files: > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 > ThreadWin32.m3 > ThreadWin32C.c > > Log message: > rename Lock => LockRE for recursive/exclusive > so that we might introduce LockE for exclusive -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Dec 10 17:20:56 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 10 Dec 2009 16:20:56 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <53223867-4659-46D1-A1E9-4C5760E85EC9@cs.purdue.edu> References: <20091210150858.0B8432474001@birch.elegosoft.com>, <53223867-4659-46D1-A1E9-4C5760E85EC9@cs.purdue.edu> Message-ID: There are internal locks that are -- all the static locks in ThreadWin32. Thread.Mutex is not. Maybe some of them need not be? I have a simple implementation but it fails. - Jay From: hosking at cs.purdue.edu Date: Thu, 10 Dec 2009 11:16:08 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 Umm. Modula-3 locks are *not* recursive... Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 On 10 Dec 2009, at 16:08, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 16:08:58 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: rename Lock => LockRE for recursive/exclusive so that we might introduce LockE for exclusive -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Dec 10 17:23:35 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 10 Dec 2009 11:23:35 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20091210150858.0B8432474001@birch.elegosoft.com>, <53223867-4659-46D1-A1E9-4C5760E85EC9@cs.purdue.edu> Message-ID: On 10 Dec 2009, at 11:20, Jay K wrote: > There are internal locks that are -- all the static locks in ThreadWin32. Perhaps it doesn't matter. > Thread.Mutex is not. > Maybe some of them need not be? > I have a simple implementation but it fails. ? > > - Jay > > > From: hosking at cs.purdue.edu > Date: Thu, 10 Dec 2009 11:16:08 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Umm. Modula-3 locks are *not* recursive... > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 > > > > > On 10 Dec 2009, at 16:08, Jay Krell wrote: > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/10 16:08:58 > > Modified files: > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 > ThreadWin32.m3 > ThreadWin32C.c > > Log message: > rename Lock => LockRE for recursive/exclusive > so that we might introduce LockE for exclusive > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Dec 10 17:53:57 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 10 Dec 2009 16:53:57 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20091210150858.0B8432474001@birch.elegosoft.com>, , <53223867-4659-46D1-A1E9-4C5760E85EC9@cs.purdue.edu>, , Message-ID: Maybe some of them need not be? I have a simple implementation but it fails. ? Attached. Tried to put this in for Thread.Mutex, not the static locks. It is based on the Java code. NewLockE, LockE, UnlockE. typedef struct _LockE_t { /* E = exclusive */ long count; int owner; HANDLE event; } LockE_t; void __cdecl ThreadWin32__DeleteLockE(LockE_t* lock) /* E = exclusive */ { if (lock) { HANDLE event = lock->event; assert(lock->owner == 0); assert(lock->count == -1); if (event) CloseHandle(event); HeapFree(GetProcessHeap(), 0, lock); } } LockE_t* __cdecl ThreadWin32__NewLockE(void) /* E = exclusive */ { HANDLE event; LockE_t* lock = (LockE_t*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*lock)); if (!lock) goto Error; lock->owner = 0; lock->count = -1; if (!(lock->event = CreateEventA(0, 0, 0, 0))) goto Error; return lock; Error: ThreadWin32__DeleteLockE(lock); return NULL; } void __cdecl ThreadWin32__LockE(LockE_t* lock) /* E = exclusive */ { if (InterlockedIncrement(&lock->count) != 0) WaitForSingleObject(lock->event, INFINITE); assert(lock->owner == 0); lock->owner = GetCurrentThreadId(); } void __cdecl ThreadWin32__UnlockE(LockE_t* lock) /* E = exclusive */ { assert(lock->owner == GetCurrentThreadId()); lock->owner = 0; if (InterlockedDecrement(&lock->count) >= 0) SetEvent(lock->event); } - Jay From: hosking at cs.purdue.edu Date: Thu, 10 Dec 2009 11:16:08 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 Umm. Modula-3 locks are *not* recursive... Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 On 10 Dec 2009, at 16:08, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 16:08:58 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: rename Lock => LockRE for recursive/exclusive so that we might introduce LockE for exclusive -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: ThreadWin32C.c URL: From jkrell at elego.de Thu Dec 10 17:56:24 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 17:56:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210165624.BEB752474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 17:56:24 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: BroadcastHeap's caller must already have the heap lock From jkrell at elego.de Thu Dec 10 18:03:04 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 18:03:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210170304.14592CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 18:03:04 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: go back a version From jkrell at elego.de Thu Dec 10 18:12:01 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 18:12:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210171201.4AE7ACC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 18:12:01 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: try again: BroadcastHeap's caller needs to have heap lock already From jay.krell at cornell.edu Thu Dec 10 18:21:10 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 10 Dec 2009 17:21:10 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20091210150858.0B8432474001@birch.elegosoft.com>, , , <53223867-4659-46D1-A1E9-4C5760E85EC9@cs.purdue.edu>, , , , , Message-ID: I think the problem might just be not understanding the Modula-3 object/linkage model. I thought if just change ThreadWin32.m3, I didn't have to recompile/link anything besides m3core.dll. That seems to be wrong though. It seems maybe the sizes of types not exposed in .i3 files are exposed to the object code of clients. ? I'll try again. -Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Thu, 10 Dec 2009 16:53:57 +0000 CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 Maybe some of them need not be? I have a simple implementation but it fails. ? Attached. Tried to put this in for Thread.Mutex, not the static locks. It is based on the Java code. NewLockE, LockE, UnlockE. typedef struct _LockE_t { /* E = exclusive */ long count; int owner; HANDLE event; } LockE_t; void __cdecl ThreadWin32__DeleteLockE(LockE_t* lock) /* E = exclusive */ { if (lock) { HANDLE event = lock->event; assert(lock->owner == 0); assert(lock->count == -1); if (event) CloseHandle(event); HeapFree(GetProcessHeap(), 0, lock); } } LockE_t* __cdecl ThreadWin32__NewLockE(void) /* E = exclusive */ { HANDLE event; LockE_t* lock = (LockE_t*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*lock)); if (!lock) goto Error; lock->owner = 0; lock->count = -1; if (!(lock->event = CreateEventA(0, 0, 0, 0))) goto Error; return lock; Error: ThreadWin32__DeleteLockE(lock); return NULL; } void __cdecl ThreadWin32__LockE(LockE_t* lock) /* E = exclusive */ { if (InterlockedIncrement(&lock->count) != 0) WaitForSingleObject(lock->event, INFINITE); assert(lock->owner == 0); lock->owner = GetCurrentThreadId(); } void __cdecl ThreadWin32__UnlockE(LockE_t* lock) /* E = exclusive */ { assert(lock->owner == GetCurrentThreadId()); lock->owner = 0; if (InterlockedDecrement(&lock->count) >= 0) SetEvent(lock->event); } - Jay From: hosking at cs.purdue.edu Date: Thu, 10 Dec 2009 11:16:08 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 Umm. Modula-3 locks are *not* recursive... Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 On 10 Dec 2009, at 16:08, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 16:08:58 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: rename Lock => LockRE for recursive/exclusive so that we might introduce LockE for exclusive -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Thu Dec 10 18:31:07 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 18:31:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210173107.E7C1ECC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 18:31:07 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: use the smaller exclusive locks based on Java's implementation Note that they are more expensive to initialize because the kernel object is allocated up-front remove writeToForceGcInteractionOutsideOfGiantLock From jkrell at elego.de Fri Dec 11 01:02:02 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 1:02:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211000202.DCA3BCC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 01:02:02 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: fix signed/unsigned mismatch From jkrell at elego.de Fri Dec 11 01:10:18 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 1:10:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211001018.75B342474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 01:10:18 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: reordering and comments (so we might switch some LockRE_t to LockE_t, without adding declarations) From jkrell at elego.de Fri Dec 11 01:13:32 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 1:13:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211001332.CBF16CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 01:13:32 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: a little more reordering From jkrell at elego.de Fri Dec 11 01:31:53 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 1:31:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211003153.845292474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 01:31:53 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: a little more reordering and paranoia From jkrell at elego.de Fri Dec 11 01:33:59 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 1:33:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211003359.E97BA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 01:33:59 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: fix for low memory From jkrell at elego.de Fri Dec 11 01:36:57 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 1:36:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211003658.018C1CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 01:36:57 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: provide LOCKE macro analogous to LOCKRE macro; neither has as much point as in the past when we generated per-lock functions From jkrell at elego.de Fri Dec 11 01:39:40 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 1:39:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211003940.632EE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 01:39:40 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: add volatile From jkrell at elego.de Fri Dec 11 02:02:12 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 2:02:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211010212.9D2612474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 02:02:12 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: fix for low resources (but we should really just move LockE implementation into Modula-3 since we control it enough, will do -- remove a level of indirection, but also lose out on inlined interlocked intrinsics..tradeoff) From jkrell at elego.de Fri Dec 11 02:05:54 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 2:05:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211010554.8545D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 02:05:54 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 ThreadWin32.i3 Log message: use unique opaque types and fix a harmless typo it revealed From jkrell at elego.de Fri Dec 11 02:17:13 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 2:17:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211011713.B77702474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 02:17:13 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: rename some variables for clarity -- too much in this module for such short names I think From jkrell at elego.de Fri Dec 11 02:23:28 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 2:23:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211012328.EBF14CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 02:23:28 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: back to LockRE at least for now They do have nice properties and it is hard to chose. good: They have brief spins multiprocessor and they delay allocating the kernel object until there is contention. So they scale better under brief contention and are much cheaper to create. bad: They are larger. (and we have to add a boolean to avoid the recursion) bad: Prior to XP there were problems under low memory. bad: We are less likely to remove the indirection for them. But we have that in pthreads too. From jkrell at elego.de Fri Dec 11 02:25:22 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 2:25:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211012522.37D662474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 02:25:22 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: #if 0 out LockE code at least for now From jkrell at elego.de Fri Dec 11 02:40:53 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 2:40:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211014053.D63A42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 02:40:53 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: prepare to remove initLock in favor of InterlockedCompareExchange From jkrell at elego.de Fri Dec 11 02:46:43 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 2:46:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211014643.C9EFC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 02:46:43 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: use InterlockedCompareExchangePointer in place of initLock From jkrell at elego.de Fri Dec 11 02:52:20 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 2:52:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211015220.DE0ED2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 02:52:20 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: retry once after short delay under low resources From jkrell at elego.de Fri Dec 11 11:44:57 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 11:44:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211104457.321FC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 11:44:57 Removed files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTThreadStk.m3 Log message: delete unused file From jkrell at elego.de Fri Dec 11 11:45:52 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 11:45:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211104553.ED4272474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 11:45:52 Removed files: cm3/m3-libs/m3core/src/runtime/POSIX/: Tag: release_branch_cm3_5_8 RTThreadStk.m3 Log message: delete unused file From jkrell at elego.de Fri Dec 11 11:46:32 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 11:46:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211104633.01BD72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 11:46:32 Removed files: cm3/m3-libs/m3core/src/runtime/POSIX/: Tag: release_branch_cm3_5_8 RTThread.i3 Log message: delete another unused file From jkrell at elego.de Fri Dec 11 11:50:45 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 11:50:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211105045.5CE6E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 11:50:45 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTAllocator.m3 RTCollector.m3 Log message: restore orphaned comment into position From jkrell at elego.de Fri Dec 11 11:53:45 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 11:53:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211105345.CA2992474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 11:53:45 Added files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTMiscC.c Log message: bring over new file from head From jkrell at elego.de Fri Dec 11 12:02:46 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:02:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211110246.DF50B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:02:46 Modified files: cm3/m3-libs/m3core/src/float/DS3100/: Tag: release_branch_cm3_5_8 FloatMode.m3 cm3/m3-libs/m3core/src/float/IRIX5/: Tag: release_branch_cm3_5_8 FloatMode.m3 cm3/m3-libs/m3core/src/float/VAX/: Tag: release_branch_cm3_5_8 FloatMode.m3 cm3/m3-libs/m3core/src/runtime/NT386/: Tag: release_branch_cm3_5_8 RTSignal.m3 cm3/m3-libs/m3core/src/runtime/WIN32/: Tag: release_branch_cm3_5_8 RTOS.m3 cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTAllocator.m3 RTCollector.m3 RTHeapStats.m3 RTLinker.m3 RTLinkerX.i3 m3makefile cm3/m3-libs/m3core/src/runtime/ex_frame/: Tag: release_branch_cm3_5_8 RTExFrame.m3 RTException.m3 cm3/m3-libs/m3core/src/thread/Common/: Tag: release_branch_cm3_5_8 m3makefile cm3/m3-libs/m3core/src/thread/POSIX/: Tag: release_branch_cm3_5_8 ThreadPosix.m3 cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadPThread.m3 cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 SchedulerPosix.m3 ThreadWin32.m3 Added files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTThread.i3 Removed files: cm3/m3-libs/m3core/src/thread/Common/: Tag: release_branch_cm3_5_8 ThreadInternal.i3 Log message: manually apply pervasiv diff from head: ThreadInternal => RTThread This is one of the largest pieces differing between head and release and making it "difficult" to port changes. From jkrell at elego.de Fri Dec 11 12:10:33 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:10:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211111033.C88DD2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:10:33 Modified files: cm3/m3-libs/m3core/src/float/DS3100/: FloatMode.m3 cm3/m3-libs/m3core/src/float/IRIX5/: FloatMode.m3 cm3/m3-libs/m3core/src/float/VAX/: FloatMode.m3 Log message: ThreadInternal => RTThread From jkrell at elego.de Fri Dec 11 12:12:32 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:12:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211111233.020062474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:12:32 Modified files: cm3/m3-libs/m3core/src/float/DS3100/: Tag: release_branch_cm3_5_8 FloatMode.m3 cm3/m3-libs/m3core/src/float/IRIX5/: Tag: release_branch_cm3_5_8 FloatMode.m3 cm3/m3-libs/m3core/src/float/VAX/: Tag: release_branch_cm3_5_8 FloatMode.m3 Log message: copy from head: change get/set to direct access via an unsafe pointer From jkrell at elego.de Fri Dec 11 12:14:26 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:14:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211111426.0EA142474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:14:26 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadPThreadC.c Log message: port simple race condition fix from head related to stopping a thread before/after it has any traced references From jkrell at elego.de Fri Dec 11 12:18:34 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:18:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211111834.302122474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:18:34 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Tag: release_branch_cm3_5_8 UtimeC.c Log message: port AMD64_DARWIN assertion failure fix from head From jkrell at elego.de Fri Dec 11 12:24:58 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:24:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211112458.506562474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:24:58 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 m3makefile Log message: port from head -- make ThreadContext private -- it is after all the most unportable thing in Win32 let alone Modula-3 libraries! (the MSDN documentation says 'see header files for the fields' or somesuch) From jkrell at elego.de Fri Dec 11 12:29:21 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:29:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211112921.AC0122474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:29:21 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTLinkerX.i3 Log message: copy from head: just a insignificant reordering From jkrell at elego.de Fri Dec 11 12:38:19 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:38:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211113819.C98A32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:38:19 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTCollector.m3 Log message: port from head: just a comment, but it reduces the head vs. release diffs From jkrell at elego.de Fri Dec 11 12:42:57 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:42:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211114257.4EA062474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:42:57 Modified files: cm3/m3-libs/m3core/src/runtime/WIN32/: Tag: release_branch_cm3_5_8 RTOS.m3 Log message: port from head: very small change that makes debugging sometimes much better (break right into debugger, don't waste time trying to suspend threads and dump stacks, the debugger does a much better job of suspending threads and usually (if you have symbols) of dumping stacks) If you aren't using a debugger, then no change. The thing about RestoreHandlers can probably just be removed since in my brief experience the DebugBreak works fine before it. Really it can probably just go like this: If debugger debugbreak ELSE suspend others, maybe dumpstack one of the important parts restore handlers probably can be removed Exit(-1) also important though maybe should be TerminateProcess which is much quicker/cleaner doesn't run all the dllmains though currently I just made the small change of moving the debugbreak much earlier From jkrell at elego.de Fri Dec 11 13:05:58 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 13:05:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211120558.37E0F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 13:05:58 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTThread.i3 cm3/m3-libs/m3core/src/thread/POSIX/: Tag: release_branch_cm3_5_8 ThreadPosix.i3 ThreadPosix.m3 cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadPThread.m3 cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.m3 Log message: port from head: rename parameter in function pointer type from "stop" to "limit" note that there are still "start, stop" pairs, in addition to the "start, limit" pairs From jkrell at elego.de Fri Dec 11 13:14:24 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 13:14:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211121424.EA1432474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 13:14:24 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 SchedulerPosix.m3 ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: copy from head: lengthen some module variable names: inCritical => HeapInCritical do_signal => HeapDoSignal mutex => HeapWaitMutex condition => HeapWaitCondition remove writeToForceGcInteractionOutsideOfGiantLock reorder ThreadWin32C.c some use memory barriers for paranoia replace initLock with InterlockedCompareExchangePointer don't have BroadcastHeap take heap lock, its caller already should (right?); this can go either way, really, since it is a recursive lock..let's see, the pthread version can go either way..let's change the BOOLEAN to an INTEGER so we are sure that writes to it are atomic then we should be ok From jkrell at elego.de Fri Dec 11 13:27:39 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 13:27:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211122739.468902474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 13:27:39 Modified files: cm3/m3-libs/m3core/src/win32/: WinBase.i3 Log message: add InterlockedExchange and InterlockedCompareExchange From jkrell at elego.de Fri Dec 11 13:32:49 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 13:32:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211123249.129672474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 13:32:49 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: make HeapDoSignal definitely thread safe by manipulating it only with Interlocked functions From jkrell at elego.de Fri Dec 11 13:33:34 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 13:33:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211123334.CDB5F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 13:33:34 Modified files: cm3/m3-libs/m3core/src/win32/: Tag: release_branch_cm3_5_8 WinBase.i3 Log message: from head: add InterlockedExchange and InterlockedCompareExchange From jkrell at elego.de Fri Dec 11 13:34:50 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 13:34:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211123450.790CF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 13:34:50 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.m3 Log message: from head: use InterlockedExchange and InterlockedCompareExchange on HeapDoSignal to ensure its thread safety (probably just storing instead of Exchange would do) From jkrell at elego.de Fri Dec 11 13:38:56 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 13:38:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211123856.CE2252474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 13:38:56 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: move comment From jkrell at elego.de Fri Dec 11 13:43:12 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 13:43:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211124312.9B67B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 13:43:12 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: use WinBase.InterlockedIncrement/Decrement (I've gone back and forth on this; cloning Win32 headers just once isn't as bad as n times for FreeBSD/OpenBSD/NetBSD/Solaris/Irix/AIX/OpenVMS/Linux/Tru64/Darwin, and if we do wrap, we can do it over in m3core/win32 like we do in m3core/unix, instead of in the client From jkrell at elego.de Fri Dec 11 14:32:26 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 14:32:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211133226.129582474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 14:32:26 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: safekeeping: unfinished experiment around using one long with bitfields for alert and alerted and interlocked operations I think we can win instead with simply Alert() SetEvent(alertEvent) and dispense with alertable entirely If a thread becomes alertable, it'll just wait on two events. The alert will always stick around until checked. From jkrell at elego.de Fri Dec 11 14:33:02 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 14:33:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211133302.7FE962474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 14:33:02 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: go back a version (undo safekeeping) From hosking at elego.de Fri Dec 11 15:47:03 2009 From: hosking at elego.de (Antony Hosking) Date: Fri, 11 Dec 2009 15:47:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211144703.EF4A62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/11 15:47:03 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: Match comment length. From hosking at elego.de Fri Dec 11 15:57:50 2009 From: hosking at elego.de (Antony Hosking) Date: Fri, 11 Dec 2009 15:57:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211145750.8D48E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/11 15:57:50 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Tidy a little. Why do we not check stackbase=NIL anymore in ProcessOther? From hosking at cs.purdue.edu Fri Dec 11 16:00:35 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 11 Dec 2009 10:00:35 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091211114257.4EA062474001@birch.elegosoft.com> References: <20091211114257.4EA062474001@birch.elegosoft.com> Message-ID: <3A788099-01DB-4DE6-A6D1-4180771C90C7@cs.purdue.edu> We should do the same for POSIX too I think. On 11 Dec 2009, at 12:42, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/11 12:42:57 > > Modified files: > cm3/m3-libs/m3core/src/runtime/WIN32/: Tag: > release_branch_cm3_5_8 > RTOS.m3 > > Log message: > port from head: very small change that makes debugging sometimes much better > (break right into debugger, don't waste time trying to suspend threads > and dump stacks, the debugger does a much better job of suspending > threads and usually (if you have symbols) of dumping stacks) > If you aren't using a debugger, then no change. > > The thing about RestoreHandlers can probably just be removed since > in my brief experience the DebugBreak works fine before it. > > Really it can probably just go like this: > If debugger > debugbreak > ELSE > suspend others, maybe > dumpstack one of the important parts > restore handlers probably can be removed > Exit(-1) also important though maybe should be TerminateProcess which is much quicker/cleaner > doesn't run all the dllmains > > though currently I just made the small change of moving the debugbreak much earlier -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Dec 11 16:01:04 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 11 Dec 2009 10:01:04 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091211120558.37E0F2474001@birch.elegosoft.com> References: <20091211120558.37E0F2474001@birch.elegosoft.com> Message-ID: Where are the start/stop pairs? On 11 Dec 2009, at 13:05, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/11 13:05:58 > > Modified files: > cm3/m3-libs/m3core/src/runtime/common/: Tag: > release_branch_cm3_5_8 > RTThread.i3 > cm3/m3-libs/m3core/src/thread/POSIX/: Tag: > release_branch_cm3_5_8 > ThreadPosix.i3 > ThreadPosix.m3 > cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: > release_branch_cm3_5_8 > ThreadPThread.m3 > cm3/m3-libs/m3core/src/thread/WIN32/: Tag: > release_branch_cm3_5_8 > ThreadWin32.m3 > > Log message: > port from head: rename parameter in function pointer type from "stop" > to "limit" > note that there are still "start, stop" pairs, in addition to the > "start, limit" pairs -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Fri Dec 11 16:44:56 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 16:44:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211154456.D335A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 16:44:56 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: "Rewrite" alerting to use a separate event This cuts out a large use of the giant lock. There is no longer the two booleans alerted and alertable. "alertable" isn't needed, just have Alert set the event. alerted is embodied in the event's state. Atomtic test and clear alerted is provided by WaitForSingleObject and an auto reset event. downsides: Thread is larger -- two booleans (two bytes) replaced by a handle Thread is slower to create -- an extra kernel object. TestAlert is much slower: WaitForSingleObject(timeout = 0) a kernel call instead of reading a boolean (possibly under giant lock, but the giant lock holds do/did all appear brief, judging from the code) We /might/ be able to delay creating the handle? Until someone does an AlertWait or Alert? We might be able to synthesize alerting with Interlocked? Maybe but having two events seems good. possible alternatives: the boolean for alerted could come from elsewhere, in particular the Win32 alerted feature Downside here is I'm not sure how to easily set it on Win9x. On NT it is simply QueueUserAPC (introduced in what version?) Maybe it is by completing arbitrary I/O to an arbitrary handle? upsides: one more large dent toward removing the giant lock and hopefully therefore being much more scalable And we know how to remove it entirely, without dropping pre-Vista support (do like Java, with its tricky counters/tickets system) From jkrell at elego.de Fri Dec 11 16:47:01 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 16:47:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211154701.562682474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 16:47:01 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: shrink a little From jkrell at elego.de Fri Dec 11 16:53:11 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 16:53:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211155311.C412C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 16:53:11 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: go back a version From jkrell at elego.de Fri Dec 11 16:53:42 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 16:53:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211155342.E612A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 16:53:42 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: remove pointless variable From jkrell at elego.de Sat Dec 12 06:46:05 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 6:46:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212054605.4A835CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 06:46:05 Modified files: cm3/m3-libs/m3core/src/win32/: WinBase.c Log message: trim down From jkrell at elego.de Sat Dec 12 07:11:28 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 7:11:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212061128.6D1ED2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 07:11:28 Modified files: cm3/m3-libs/m3core/src/win32/: WinBase.c Log message: prototype, that I probably won't use From jkrell at elego.de Sat Dec 12 07:26:48 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 7:26:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212062649.198DF2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 07:26:48 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: go back to initLock instead of InterlockedCompareExchange for greater toolset/processor/operatingsystem compatibility From jkrell at elego.de Sat Dec 12 07:46:27 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 7:46:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212064628.1E4222474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 07:46:27 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: move #pragmas to under #if 0 since not needed elsewhere From jkrell at elego.de Sat Dec 12 08:11:11 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 8:11:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212071111.A80B72474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 08:11:11 Removed files: cm3/m3-libs/m3core/src/win32/: WinBase.c Log message: remove prototype From jkrell at elego.de Sat Dec 12 09:18:28 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 9:18:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212081828.8CD262474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 09:18:28 Modified files: cm3/m3-libs/m3core/src/win32/: WinNT.i3 Log message: remove a few parens From jkrell at elego.de Sat Dec 12 09:23:08 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 9:23:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212082308.A50CD2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 09:23:08 Added files: cm3/m3-libs/m3core/src/win32/: WinConstants.c Log message: very viable prototype that reduces header cloning; note that current MSDN documentation lists explicit values, probably to aid independent header writers? From jkrell at elego.de Sat Dec 12 09:28:27 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 9:28:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212082827.E2D6E2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 09:28:27 Modified files: cm3/m3-libs/m3core/src/win32/: WinConstants.c Log message: add WinNLS.i3 content From jkrell at elego.de Sat Dec 12 11:27:08 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 11:27:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212102708.948802474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 11:27:08 Modified files: cm3/m3-libs/m3core/src/win32/: WinConstants.c Added files: cm3/m3-libs/m3core/src/win32/: WinUser.pl WinUser.txt Log message: incorporate (voluminous) WinUser.i3 content in a fashion -- fully #ifdefed, as the headers vary a lot through the years From jkrell at elego.de Sat Dec 12 13:26:43 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 13:26:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212122643.33AF12474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 13:26:43 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: fix lockinglevel comments suspend_cnt giant => activeLock "Mu" => "Lock" the name "lock" is used because it is neither the pthread term ("mutex") nor the win32 term ("criticalsection") so therefore we can hopefully agree to use it in some future unified version From jkrell at elego.de Sat Dec 12 13:35:16 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 13:35:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212123517.055272474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 13:35:16 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: eliminate giant lock Use the algorithm from the Java implementation. Adding another lock per condition, since they have the one user and condition lock, but we apparently let folks use multiple locks with the same condition. (Multiple conditions per lock makes sense to me; multiple locks per condition does not.) also eliminate all uses of Self() (like pthreads) Now putting slotLock back in FreeSlot and Self() not so bad, esp. in the interest of unifying with pthreads. Not done yet. (since we no longer call Self, and FreeSlot is rare) From jkrell at elego.de Sat Dec 12 13:57:23 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 13:57:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212125723.D14CA2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 13:57:23 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: remove the abstraction layer cost without removing the abstraction layer (next we'll remove the layer, the experiment proved successful, we can bring it back when we unify pthreads/win32) From jkrell at elego.de Sat Dec 12 15:10:20 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:10:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212141020.968472474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:10:20 Modified files: cm3/m3-libs/m3core/src/win32/: WinNT.i3 Log message: restore historical (3.6) definition of PCRITICAL_SECTION, so that NEW() works with it (I get compile errors otherwise that I don't understand, and the historical definition follows the usual pattern, the contemporary one is wierd to me; if needed, we can replace everything with properly sized integers) From jkrell at elego.de Sat Dec 12 15:13:15 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:13:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212141316.2D6FB2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:13:15 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: restore more like traditional structure where more is done in Modula-3 However still with some interesting differences. - the giant lock is still gone, alert is still its own event :) - CONTEXT is still abstracted into C At least getting the fields; we can consider getting the size from C and then doing the allocation in Modula-3 (Getting CONTEXT right, and not using C, would threaten a LOT of duplication for VERY little platform variation; for the most part, Win32 == Win64 except for SIZE_T, sizeof(void*), ULONG_PTR, DWORD_PTR, INT_PTR, size_t, ptrdiff_t, which are differences easy to deal with, AND CONTEXT, which is difficult; there are also differences a la InterlockedExchange vs. InterlockedExchangePointer) - restore Self() and FreeSlot to being lockful like pthreads (now that we never call Self() internally!) - <* ASSERT BYTESIZE(CRITICAL_SECTION) = sizeof(CRITICAL_SECTION) *> - the static locks are still allocated in C, as our debugging support is very inadequate and this helps tremendously (the assert is still needed for the dynamic locks) Unification with pthreads is made more difficult here, but in my opinion the experimenting was a success and we CAN do such unification. (In particular, I no longer have "LockRE", no longer compute if stack grows down, I'm willing to assume it) Still we are structured like pthreads with ProcessLive, ProcessOther, and the suspend/resume code could be easily moved to C as well. - The relatively new function GetStackBounds is still in C but it could be moved to Modula-3. - assert in BroadcastHeap that we have the lock, so we can try not introducing the InterlockedCompareExchange dependency, for more support across operating system versions RTOS.i3 vaguely implies this is correct. Alternatively we can introduce a tiny lock for this. (Even if this is more dependent on C header cloning, that cloning can be more like m3core/unix where we wrap every function and implement all constants as C variables; we don't absolutely have to invent new interfaces for the Modula-3/C bridging) From jkrell at elego.de Sat Dec 12 15:14:03 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:14:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212141405.CD0D52474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:14:03 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: fix comment From jkrell at elego.de Sat Dec 12 15:15:46 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:15:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212141546.EC2A62474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:15:46 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: comments From jkrell at elego.de Sat Dec 12 15:23:47 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:23:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212142347.E1D442474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:23:47 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: don't bother returning result from SetActivation, since nobody looks at it From jkrell at elego.de Sat Dec 12 15:26:43 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:26:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212142643.B42FE2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:26:43 Modified files: cm3/m3-libs/m3core/src/win32/: Tag: release_branch_cm3_5_8 WinNT.i3 Log message: copy from head: remove some parens, and use sensible 3.6 definition of PRTL_CRITICAL_SECTION; I should check if we're inserting 'barrier' uses unnecessarily here From jkrell at elego.de Sat Dec 12 15:29:39 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:29:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212142939.EBA7F2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:29:39 Modified files: cm3/m3-libs/m3core/src/thread/Common/: ThreadDebug.i3 Log message: change InnerWait parameter from REFANY (self) to ADDRESS (activation); forgot to commit this a while ago and things broken otherwise From jkrell at elego.de Sat Dec 12 15:30:37 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:30:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212143038.DF7532474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:30:37 Modified files: cm3/m3-libs/m3core/src/thread/Common/: Tag: release_branch_cm3_5_8 ThreadDebug.i3 cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: copy from head: no more giant lock, move some code back to Modula-3 from C From jkrell at elego.de Sat Dec 12 15:35:41 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:35:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212143541.49D7F2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:35:41 Modified files: cm3/m3-libs/m3core/src/: m3core.h Log message: whitespace From jkrell at elego.de Sat Dec 12 15:39:48 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:39:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212143949.055542474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:39:48 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTHeapStats.m3 Log message: copy from head: < vs. <= From jkrell at elego.de Sat Dec 12 15:40:44 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:40:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212144045.038B72474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:40:44 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTCollector.m3 Log message: copy from head: NIL check vs. range check From jkrell at elego.de Sat Dec 12 15:48:11 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:48:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212144812.1440B2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:48:11 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c Log message: port race condition fix from head: don't return pthread handle from thread_create instead, in new thread, store pthread_self It isn't clear otherwise if the handle gets stored before it is used. I had seen the pthread_detach call fail previously. From jkrell at elego.de Sat Dec 12 16:16:43 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 16:16:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212151643.E22C92474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 16:16:43 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: We have portable idioms, and now good implementations of them, but still, it seems far more sensible for Join to wait on the thread itself and not a separate condition. (I think even pthreads can do similar -- pthread_join, at least in the non alertable case. One reason historically not to use this, in the Win32 implementation, is the thread cache; if we cache threads, then the threads are never signaled.) The check for multiple joins is now a bit racy, but that's ok, we don't have to always detect it. We could tighten that up if it mattered (with more locking). From jkrell at elego.de Sat Dec 12 16:41:09 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 16:41:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212154109.3F3602474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 16:41:09 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: use my helper function DelHandle to shrink code for readability From jkrell at elego.de Sat Dec 12 16:49:14 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 16:49:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212154915.3BC9C2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 16:49:14 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: some RTIO, but I see the problem -- the change to wait on the thread handle instead of a condition, uses freed memory instead of relying on garbage collection From jkrell at elego.de Sat Dec 12 16:49:59 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 16:49:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212154959.E0ABD2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 16:49:59 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: fix leak from when I was still getting the PCRITICAL_SECTION thing to compile From jkrell at elego.de Sat Dec 12 17:07:01 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 17:07:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212160701.62C2E2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 17:07:01 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: cleanup via RegisterFinalCleanup From jkrell at elego.de Sat Dec 12 17:12:49 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 17:12:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212161249.13F582474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 17:12:49 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: There's actually no window of opportunity for failure here so just do things more directly. Also remove some micro-optimizations. From jkrell at elego.de Sat Dec 12 17:17:59 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 17:17:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212161759.084D22474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 17:17:59 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.m3 Log message: darn a little sloppy this time; previously all the release versions were good; copy from head again: in particular the fix to not leak all the critical sections as well take the Win32-idiomatic join implementation, and using RegisterFinalCleanup to run the cleanup From jkrell at elego.de Sat Dec 12 17:19:17 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 17:19:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212161917.D5C212474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 17:19:17 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: some cleanup: remove the RTIO, alter a comment, alter asserts From jkrell at elego.de Sat Dec 12 17:20:00 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 17:20:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212162000.2235D2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 17:20:00 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.m3 Log message: remove unused imports (from removing the RTIO (matches head again) From jkrell at elego.de Sat Dec 12 17:24:37 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 17:24:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212162437.AC72D2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 17:24:37 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: inline DeleteActivation into its only caller CleanT From jkrell at elego.de Sun Dec 13 01:07:41 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 1:07:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213000742.3BB982474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 01:07:41 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: comments and assertions (comment was leftover from lockless version From jkrell at elego.de Sun Dec 13 01:14:33 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 1:14:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213001433.CEBDE2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 01:14:33 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: whitespace at start/end of pragmas From jkrell at elego.de Sun Dec 13 01:30:01 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 1:30:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213003002.8B7512474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 01:30:01 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: cleanup: save a line on VAR; try to initialize locals at declaration more; always assert wait results should be no semantic change From jkrell at elego.de Sun Dec 13 02:14:57 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 2:14:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213011457.B44362474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 02:14:57 Modified files: cm3/m3-libs/m3core/src/thread/Common/: ThreadDebug.c ThreadDebug.i3 Log message: - don't wrap #includes with extern "C" - always enable it still requires @m3debugthreads though to really kick in - tune the array size down due to always being enabled - add some functions like Pause, XWait, etc. From jkrell at elego.de Sun Dec 13 02:16:59 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 2:16:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213011659.CBF332474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 02:16:59 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: merge Pause and AlertPause into XPause(alertable: BOOLEAN) to share a little code and resemble pthreads as part of this, split TestAlert into TestAlert and XTestAlert TestAlert = XTestAlert(GetActivation()) Fix bug where AlertPause(<=0) does not recieve alerts. Rename InnerWait to XWait to match pthreads. From jkrell at elego.de Sun Dec 13 02:27:14 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 2:27:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213012714.882D52474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 02:27:14 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: should fix it to compile From jkrell at elego.de Sun Dec 13 02:27:29 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 2:27:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213012729.22C282474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 02:27:29 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: should fix it to compile From jkrell at elego.de Sun Dec 13 02:28:05 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 2:28:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213012806.0EFF72474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 02:28:05 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: should fix it to compile From jkrell at elego.de Sun Dec 13 02:38:30 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 2:38:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213013831.4F6722474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 02:38:30 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: safe another line wrt VAR add explicit usual check to AlertJoin that GetActivation() # NIL pass GetActivation to XJoin (or NIL for non-alert version) REMOVE check in Pause that GetActivation() # NIL (debatable, but in fact it doesn't need any thread state, it just converts float seconds to integer milliseconds and calls Sleep) reduce check in XPause then as well (if NOT alertable) add more asserts From jkrell at elego.de Sun Dec 13 03:55:04 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 3:55:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213025505.A68692474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 03:55:04 Modified files: cm3/m3-ui/ui/src/winvbt/: Tag: release_branch_cm3_5_8 WinContext.m3 Log message: copy from head: let's Juno get much further and fix error checks From jkrell at elego.de Sun Dec 13 04:22:50 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 4:22:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213032251.22EFE2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 04:22:50 Modified files: cm3/m3-ui/vbtkit/src/lego/: Tag: release_branch_cm3_5_8 m3makefile Log message: Mentor crashes starting up. Even if I go back a week or a month in the release branch. (I haven't yet tested RC2, RC3, RC4, etc.) If we use the "Posix" scroller stuff, no problem. So do that for now. Probably some problem in the scroller code around locking. There were others recently (even on X) From jkrell at elego.de Sun Dec 13 04:36:39 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 4:36:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213033640.75CF72474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 04:36:39 Modified files: cm3/m3-ui/vbtkit/src/lego/: Tag: release_branch_cm3_5_8 m3makefile cm3/m3-ui/vbtkit/src/lego/WIN32/: Tag: release_branch_cm3_5_8 ScrollerVBTClass.m3 Log message: fix this crash starting up mentor in win32 specific code: *** *** runtime error: *** Attempt to reference an illegal memory location. *** pc = 0x12b16a8 = GetAttributes + 0x1ed in ..\src\lego\WIN32\ScrollerVBTCl ass.m3 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x2e2f670 0x846ced SystemError + 0x66 in ..\src\runtime\NT386\RTSignal.m3 0x2e2f720 0x12b16a8 GetAttributes + 0x1ed in ..\src\lego\WIN32\ScrollerVBTClas s.m3 0x2e2f7f8 0x12e95c8 AddView + 0x101e(!) in ..\src\lego\ViewportVBT.m3 0x2e2f844 0x12e762e Init + 0x30e in ..\src\lego\ViewportVBT.m3 0x2e2f964 0x1234fc7 pViewport + 0x512 in ..\src\FormsVBT.m3 0x2e2f9c4 0x12234b1 Item + 0x48b in ..\src\FormsVBT.m3 0x2e2f9f0 0x124107a OneChild + 0xf8 in ..\src\FormsVBT.m3 0x2e2faf8 0x1227520 pShape + 0x19c in ..\src\FormsVBT.m3 0x2e2fb58 0x12234b1 Item + 0x48b in ..\src\FormsVBT.m3 0x2e2fb84 0x124107a OneChild + 0xf8 in ..\src\FormsVBT.m3 ......... ......... ... more frames ... Really it'd be super nice if we could unfork these two directories. They are mostly the same, except the Posix directory gets more attentin fix this crash starting up mentor in win32 specific code: *** *** runtime error: *** Attempt to reference an illegal memory location. *** pc = 0x12b16a8 = GetAttributes + 0x1ed in ..\src\lego\WIN32\ScrollerVBTCl ass.m3 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x2e2f670 0x846ced SystemError + 0x66 in ..\src\runtime\NT386\RTSignal.m3 0x2e2f720 0x12b16a8 GetAttributes + 0x1ed in ..\src\lego\WIN32\ScrollerVBTClas s.m3 0x2e2f7f8 0x12e95c8 AddView + 0x101e(!) in ..\src\lego\ViewportVBT.m3 0x2e2f844 0x12e762e Init + 0x30e in ..\src\lego\ViewportVBT.m3 0x2e2f964 0x1234fc7 pViewport + 0x512 in ..\src\FormsVBT.m3 0x2e2f9c4 0x12234b1 Item + 0x48b in ..\src\FormsVBT.m3 0x2e2f9f0 0x124107a OneChild + 0xf8 in ..\src\FormsVBT.m3 0x2e2faf8 0x1227520 pShape + 0x19c in ..\src\FormsVBT.m3 0x2e2fb58 0x12234b1 Item + 0x48b in ..\src\FormsVBT.m3 0x2e2fb84 0x124107a OneChild + 0xf8 in ..\src\FormsVBT.m3 ......... ......... ... more frames ... Really it'd be super nice if we could unfork these two directories. They are mostly the same, except the Posix directory gets more attention and bug fixes while the Win32 one languishes. Surely they can share more code? From jkrell at elego.de Sun Dec 13 04:37:34 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 4:37:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213033734.E108E2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 04:37:34 Modified files: cm3/m3-ui/vbtkit/src/lego/: Tag: release_branch_cm3_5_8 m3makefile cm3/m3-ui/vbtkit/src/lego/WIN32/: Tag: release_branch_cm3_5_8 ScrollerVBTClass.m3 Log message: I forgot to mention: I'm really just guessing here. It seems to work. From jkrell at elego.de Sun Dec 13 04:49:24 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 4:49:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213034925.A68022474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 04:49:24 Modified files: cm3/m3-ui/vbtkit/src/lego/: m3makefile cm3/m3-ui/vbtkit/src/lego/WIN32/: ScrollerVBTClass.m3 Log message: copy from release: wild guess that fixes mentor startup crash also works if we just use the Posix version I don't think this is related to m3core churn! From jkrell at elego.de Sun Dec 13 04:54:43 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 4:54:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213035443.62F892474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 04:54:43 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: move GetStackBounds to Modula-3 we assert that we have the size of the C struct correct, though we don't assert about its fields, probably we should From jkrell at elego.de Sun Dec 13 04:55:24 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 4:55:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213035524.E9AC22474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 04:55:24 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: fix AlertJoin, oops From jkrell at elego.de Sun Dec 13 05:40:30 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 5:40:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213044031.7A43B2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 05:40:30 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: state of the art/stake in the ground for cloned header verification maybe/hopefully shorter idioms can be found? From jkrell at elego.de Sun Dec 13 06:52:32 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 6:52:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213055233.582422474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 06:52:32 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: update again from head (copy) From jkrell at elego.de Sun Dec 13 06:54:02 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 6:54:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213055402.A48CF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 06:54:02 Modified files: cm3/m3-libs/m3core/src/thread/Common/: Tag: release_branch_cm3_5_8 ThreadDebug.c ThreadDebug.i3 Log message: update from head (copy) From jkrell at elego.de Sun Dec 13 07:17:10 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 7:17:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213061711.1DD27CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 07:17:10 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: UINT32 not in older headers, use UINT From jkrell at elego.de Sun Dec 13 07:57:49 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 7:57:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213065750.38FA22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 07:57:49 Modified files: cm3/m3-libs/m3core/src/C/Common/: CerrnoC.c CsignalC.c CstdioC.c CstdlibC.c CstringC.c Log message: provide one m3core.lib.sa that should work with both libcmt.lib and msvcrt.lib (ie: suppress __declspec(dllimport) on functions, and #if out data (stdin/out/err)) From jkrell at elego.de Sun Dec 13 09:59:06 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 9:59:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213085906.8322FCC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 09:59:06 Modified files: cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: context.c Added files: cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: tcontext.c Log message: don't waste time saving/restoring signal mask twice, once is enough, add test case from other directory From jkrell at elego.de Sun Dec 13 10:18:09 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 10:18:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213091809.F1CB2CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 10:18:09 Modified files: cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: context.c context.h Log message: use sigsetjmp/siglongjmp/sigjmp_buf instead From jkrell at elego.de Sun Dec 13 10:23:41 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 10:23:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213092341.DAEB7CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 10:23:41 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: use sigsetjmp/siglongjmp/sigjmp_buf From jkrell at elego.de Sun Dec 13 14:03:55 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 14:03:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213130355.AAF102474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 14:03:55 Modified files: cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: config.c context.c context.h tcontext.c Log message: adapt get/set/make/swapcontext for OpenBSD/sparc64 Bonus points that it and OpenBSD/x86 survive various gcc optimizations including -O2 and -O3. From jkrell at elego.de Sun Dec 13 14:27:40 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 14:27:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213132740.A7722CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 14:27:40 Modified files: cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: context.c Log message: very very small tweaks: comments, comment out an unused define, put in & when taking address of function We should probably move all this to m3core\src\thread\POSIX. From jkrell at elego.de Sun Dec 13 14:55:33 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 14:55:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213135533.30CC62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 14:55:33 Modified files: cm3/m3-sys/cm3/src/: m3makefile Log message: fix for m3unix.h => m3core.h From jkrell at elego.de Sun Dec 13 15:11:29 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 15:11:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213141129.877492474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 15:11:29 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTSignalC.c Log message: move the OpenBSD lines ahead of the Sparc lines, so that this compiles for OpenBSD/sparc64 From jkrell at elego.de Sun Dec 13 15:30:19 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 15:30:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213143019.A2242CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 15:30:19 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UtimeC.c Log message: OpenBSD/sparc64 continues the year 2038 bug and has undeclared padding in struct timespec -- adjust assertions for it From jkrell at elego.de Sun Dec 13 15:32:27 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 15:32:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213143227.554982474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 15:32:27 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: add function IsOpenBSD like IsInterix, thin wrapper over TARGET_OS variable, in case it isn't defined From jkrell at elego.de Sun Dec 13 15:34:25 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 15:34:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213143425.4297C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 15:34:25 Modified files: cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: m3makefile Log message: build this for all OpenBSD systems, not just I386_OPENBSD (PPC_OPENBSD and AMD64_OPENBSD probably need repair and then ongoing tinderbox and/or hudson (preferably Hudson) From jkrell at elego.de Sun Dec 13 16:35:58 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 16:35:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213153558.70D8F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 16:35:58 Modified files: cm3/m3-libs/m3core/src/C/Common/: Cstring.i3 CstringC.c Log message: OpenBSD linker rightfully complains (warns) about strcpy and strcat: new "/cm3/pkg/m3core/SPARC64_OPENBSD/libm3core.a" -> linking m3bundle /cm3/pkg/m3core/SPARC64_OPENBSD/libm3core.a(CstringC.o)(.text+0xfc): In function `Cstring__strcpy': /dev2/cm3/m3-libs/m3core/SPARC64_OPENBSD/../src/C/Common/CstringC.c:19: warning: strcpy() is almost always misused, please use strlcpy() /cm3/pkg/m3core/SPARC64_OPENBSD/libm3core.a(CstringC.o)(.text+0x15c): In functio n `Cstring__strcat': /dev2/cm3/m3-libs/m3core/SPARC64_OPENBSD/../src/C/Common/CstringC.c:21: warning: strcat() is almost always misused, please use strlcat() $ so provide only the old style <* extern *> and not a wrapper, so that we don't foist the warning on every Modula-3/OpenBSD user, just anyone actually using these bad functions. From jkrell at elego.de Sun Dec 13 16:45:08 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 16:45:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213154508.C2C0ACC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 16:45:08 Modified files: cm3/m3-libs/m3core/src/: thread.quake Log message: switch SPARC64_OPENBSD to user threads (not quite working, but it is hoped/expected to go well, whereas we've given up for now on OpenBSD pthreads (see I386_OPENBSD) From jkrell at elego.de Sun Dec 13 16:54:35 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 16:54:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213155436.04595CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 16:54:35 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c Log message: OpenBSD only: just include context.h, not context/setjmp/context.h -- that will hopefully fix bootstrap archives, with their flattened structure, assuming we have h_source(context) (this seems to constantly bite me, maybe a different approach needed..well, one thing would be to move the code to m3core/src/thread/POSIX and not go out of out of our way to emulate get/set/swap/makecontext, but instead just fit into the similar abstractions Tony made ? not a big deal, it's only user threads (and OpenBSD) From jkrell at elego.de Sun Dec 13 17:01:33 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 17:01:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213160133.5EBA72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 17:01:33 Modified files: cm3/m3-libs/m3core/src/C/Common/: CstdioC.c Log message: More OpenBSD linker warnings: gcc -g -fPIC -lm -lpthread -o cm3 *.o CstdioC.c.o(.text+0x558): In function `Cstdio__tmpnam': /home/jay/cm3-boot-SPARC64_OPENBSD-1/CstdioC.c:43: warning: tmpnam() possibly us ed unsafely; consider using mkstemp() CstdioC.c.o(.text+0x518): In function `Cstdio__tempnam': /home/jay/cm3-boot-SPARC64_OPENBSD-1/CstdioC.c:41: warning: tempnam() possibly u sed unsafely; consider using mkstemp() These aren't even in the .i3 file. From jkrell at elego.de Sun Dec 13 17:04:32 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 17:04:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213160432.AA7AC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 17:04:32 Modified files: cm3/m3-libs/m3core/src/C/Common/: Tag: release_branch_cm3_5_8 CstdioC.c CstringC.c Log message: remove tempnam, tmpnam, strcpy, strcat to avoid OpenBSD linker warnings (they aren't in the .i3 files; this was for possible improved compat between head and release) From jkrell at elego.de Sun Dec 13 17:21:25 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 17:21:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213162125.F129A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 17:21:25 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: stack needs to e aligned for SPARC64_OPENBSD, else I get a bus error (alignment) trying to read a pointer from a 4-aligned address in NoteStackLocations (I'm not making this up, I actually see it frequently); I don't feel comfortable with the idea that storage might be deemed dead and overlappable so remove the nested scope too From jkrell at elego.de Sun Dec 13 17:39:15 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 17:39:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213163915.EF2B92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 17:39:15 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: NT386.common Log message: support for WinConstants.obj, if we decide to build it inactive since the file doesn't exist (could clash with unrelated?) From hosking at elego.de Sun Dec 13 19:09:34 2009 From: hosking at elego.de (Antony Hosking) Date: Sun, 13 Dec 2009 19:09:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213180934.CE0902474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/13 19:09:34 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Don't test <=0.0 time to pause so that we go ahead and check the alert as needed. From jkrell at elego.de Mon Dec 14 07:54:25 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 7:54:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214065426.448C32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 07:54:25 Modified files: cm3/m3-libs/sysutils/src/POSIX/: SystemPosixC.c Log message: trim this down; maybe remove it? removing it will increase what minimum toolset can be used to build; but we really need to know here if we have user threads or not, I'm seeing a hang on SPARC64_OPENBSD..though I386_OPENBSD works ok? From jkrell at elego.de Mon Dec 14 07:57:19 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 7:57:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214065719.2ED952474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 07:57:19 Modified files: cm3/m3-libs/sysutils/src/POSIX/: SystemPosix.m3 Log message: simpler and should mean same thing From jkrell at elego.de Mon Dec 14 09:09:48 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 9:09:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214080948.88CC62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 09:09:48 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTIO.i3 m3makefile Log message: add PutE, PutF, PutG, PutBytes printf("%e", float), etc. From jkrell at elego.de Mon Dec 14 09:10:09 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 9:10:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214081009.09A0A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 09:10:09 Added files: cm3/m3-libs/m3core/src/runtime/common/: RTIOc.c Log message: forgot t add file From jkrell at elego.de Mon Dec 14 09:12:27 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 9:12:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214081228.0062E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 09:12:27 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTIOc.c Log message: take advantage of #defines From jkrell at elego.de Mon Dec 14 09:18:07 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 9:18:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214081807.76FDA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 09:18:07 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTIOc.c Log message: minor cleanup From jkrell at elego.de Mon Dec 14 09:32:45 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 9:32:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214083245.DFDF62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 09:32:45 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: fix NIL deref From jkrell at elego.de Mon Dec 14 09:53:05 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 9:53:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214085305.7FE112474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 09:53:05 Added files: cm3/m3-sys/m3tests/src/: m3overrides Log message: add missing m3overrides From jkrell at elego.de Mon Dec 14 09:53:32 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 9:53:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214085332.4698B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 09:53:32 Added files: cm3/m3-sys/m3tests/src/p2/p212/: m3overrides Log message: add missing m3overrides From jkrell at elego.de Mon Dec 14 13:59:49 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 13:59:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214125949.381002474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 13:59:49 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: add a comment as to at least one reason _XOPEN_SOURCE is here From jkrell at elego.de Mon Dec 14 14:04:09 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 14:04:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214130409.0B93E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 14:04:09 Modified files: cm3/m3-sys/m3cc/src/: m3makefile Log message: attempting to build cross compilers from non-Solaris to Solaris failed because of -with-ld=/path configure tries to run /path which isn't present on the host building cm3cg remove all -with-ld=/path and -with-as=/path -with-gnu-ld, -with-gnu-as, -without-gnu-ld, -without-gnu-as are fine and left asis. This does affect even native SOLgnu/SOLsun builds but hopefully no actual effect. These parameters probably only affect building native gcc drivers. (And the values I had were good ones, having gone through some of that in the past) From jkrell at elego.de Mon Dec 14 14:40:15 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 14:40:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214134015.9044F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 14:40:15 Modified files: cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTMachine.i3 cm3/m3-libs/m3core/src/unix/: m3makefile Removed files: cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTSignal.m3 Log message: updates so SPARC64_SOLARIS bootstrap can build (possible tangent related to getting SPARC64_OPENBSD to work -- problem apparently with the floating point constants in RTCollector, such that Behind() is always TRUE, even for the first allocation, so access violate trying to garbage collect too early, when self is still NULL) From jkrell at elego.de Mon Dec 14 14:57:30 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 14:57:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214135730.A8B302474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 14:57:30 Added files: cm3/m3-libs/m3core/src/unix/Common/context/sigaltstack/: Makefile config.c context.c context.h m3makefile tcontext.c Log message: working version of http://www.engelschall.com/pw/usenix/2000/pmt-html/ - This should be moved to m3core/src/thread/POSIX - Notice how I switched from virtual timer to real timer, in the test case that mimics m3core/src/thread/POSIX. "This seems to work much better." In particular, if the main thread does while (1) sleep(0) to let things run, nothing runs. The virtual time doesn't run down at all. If I make it a busy wait "while (1) ;" then it does work. Note that Apple seems very down on supplying get/make/set/swapcontext (read the mailing lists). This solution might be preferred? Though it is slower to create a thread here, due to extra gymnastics to establish the initial context. Also still some experiments to try. _setjmp vs. setjmp vs. sigsetjmp. Best is probably sigsetjmp(1). using the same signal in both parts From jkrell at elego.de Mon Dec 14 15:27:07 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 15:27:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214142707.3BB4D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 15:27:07 Modified files: cm3/m3-libs/m3core/src/unix/Common/context/sigaltstack/: context.c context.h tcontext.c Log message: comment about real timer vs. virtual timer use sigsetjmp(0) for bootstrap use sigsetjmp(1) for switching swap errno From jkrell at elego.de Mon Dec 14 16:27:23 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 16:27:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214152723.1CE4F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 16:27:23 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c Log message: stop lying about real vs. virtual timers on Cygwin -- doesn't matter for several reason: cygwin, user threads, can use #ifdef in the now-C code From hosking at elego.de Mon Dec 14 16:33:25 2009 From: hosking at elego.de (Antony Hosking) Date: Mon, 14 Dec 2009 16:33:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214153325.B8D522474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/14 16:33:25 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Fix Jay's "fix". We need the cleanup routine to avoid a space leak. The activation field needs to stay valid long enough for the cleanup routine to do its job. From hosking at cs.purdue.edu Mon Dec 14 16:38:06 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 14 Dec 2009 10:38:06 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091214134015.9044F2474001@birch.elegosoft.com> References: <20091214134015.9044F2474001@birch.elegosoft.com> Message-ID: <5A4A51CF-0063-4E4F-93C7-9B950B55C562@cs.purdue.edu> This suggests an m3cg backend compiler problem for floating point on SPARC64. On 14 Dec 2009, at 14:40, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/14 14:40:15 > > Modified files: > cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTMachine.i3 > cm3/m3-libs/m3core/src/unix/: m3makefile > Removed files: > cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTSignal.m3 > > Log message: > updates so SPARC64_SOLARIS bootstrap can build > (possible tangent related to getting SPARC64_OPENBSD > to work -- problem apparently with the floating point > constants in RTCollector, such that Behind() is > always TRUE, even for the first allocation, so > access violate trying to garbage collect too > early, when self is still NULL) -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Dec 14 16:39:31 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 14 Dec 2009 10:39:31 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091214135730.A8B302474001@birch.elegosoft.com> References: <20091214135730.A8B302474001@birch.elegosoft.com> Message-ID: <641797AB-42E3-4797-99A0-A9123953DFF5@cs.purdue.edu> Main thread should call Yield if you want that behavior, not sleep. On 14 Dec 2009, at 14:57, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/14 14:57:30 > > Added files: > cm3/m3-libs/m3core/src/unix/Common/context/sigaltstack/: > Makefile > config.c > context.c > context.h > m3makefile > tcontext.c > > Log message: > working version of http://www.engelschall.com/pw/usenix/2000/pmt-html/ > - This should be moved to m3core/src/thread/POSIX > - Notice how I switched from virtual timer to real timer, > in the test case that mimics m3core/src/thread/POSIX. > "This seems to work much better." > In particular, if the main thread does while (1) sleep(0) > to let things run, nothing runs. The virtual time doesn't > run down at all. If I make it a busy wait "while (1) ;" then > it does work. > > Note that Apple seems very down on supplying get/make/set/swapcontext (read the mailing lists). > This solution might be preferred? Though it is slower to create a thread here, due to > extra gymnastics to establish the initial context. > > Also still some experiments to try. > _setjmp vs. setjmp vs. sigsetjmp. > Best is probably sigsetjmp(1). > using the same signal in both parts -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Dec 14 16:43:40 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 14 Dec 2009 15:43:40 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <5A4A51CF-0063-4E4F-93C7-9B950B55C562@cs.purdue.edu> References: <20091214134015.9044F2474001@birch.elegosoft.com>, <5A4A51CF-0063-4E4F-93C7-9B950B55C562@cs.purdue.edu> Message-ID: I know I know. I know exactly the code. I rewrote it, at least once. Cross compiling works. Native does not. It must be the threshold variables in RTCollector. I really thought I understood that code. - Jay From: hosking at cs.purdue.edu Date: Mon, 14 Dec 2009 10:38:06 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 This suggests an m3cg backend compiler problem for floating point on SPARC64. On 14 Dec 2009, at 14:40, Jay Krell wrote:CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 14:40:15 Modified files: cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTMachine.i3 cm3/m3-libs/m3core/src/unix/: m3makefile Removed files: cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTSignal.m3 Log message: updates so SPARC64_SOLARIS bootstrap can build (possible tangent related to getting SPARC64_OPENBSD to work -- problem apparently with the floating point constants in RTCollector, such that Behind() is always TRUE, even for the first allocation, so access violate trying to garbage collect too early, when self is still NULL) -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Dec 14 16:46:25 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 14 Dec 2009 10:46:25 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20091214134015.9044F2474001@birch.elegosoft.com>, <5A4A51CF-0063-4E4F-93C7-9B950B55C562@cs.purdue.edu> Message-ID: <45D55E81-8BE6-40DB-BD52-0BAC1027F29D@cs.purdue.edu> On 14 Dec 2009, at 10:43, Jay K wrote: > I know I know. I know exactly the code. I rewrote it, at least once. > Cross compiling works. > Native does not. > It must be the threshold variables in RTCollector. Yeah, I've been bitten by just that scenario in the past -- those are the earliest use of FP in the run-time linker. If they are broken you find out quickly. Can you take a look at the gcc m3cg code for FP? It worked at one point just fine on native Alpha 64-bit, so should not be too hard to fix. > I really thought I understood that code. > > - Jay > > > From: hosking at cs.purdue.edu > Date: Mon, 14 Dec 2009 10:38:06 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > This suggests an m3cg backend compiler problem for floating point on SPARC64. > > On 14 Dec 2009, at 14:40, Jay Krell wrote: > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/14 14:40:15 > > Modified files: > cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTMachine.i3 > cm3/m3-libs/m3core/src/unix/: m3makefile > Removed files: > cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTSignal.m3 > > Log message: > updates so SPARC64_SOLARIS bootstrap can build > (possible tangent related to getting SPARC64_OPENBSD > to work -- problem apparently with the floating point > constants in RTCollector, such that Behind() is > always TRUE, even for the first allocation, so > access violate trying to garbage collect too > early, when self is still NULL) > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Mon Dec 14 16:50:06 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 16:50:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214155006.A108C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 16:50:06 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: fix FreeSlot call From jkrell at elego.de Mon Dec 14 16:57:28 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 16:57:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214155728.969D52474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 16:57:28 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: integrate sigaltstack technique from: see http://www.engelschall.com/pw/usenix/2000/pmt-html/ so now AMD64_DARWIN user threads work (Juno starts up) AMD64_DARWIN 10.5 doesn't support get/set/make/swapcontext getcontext returns -1 and errno=ENOTSUP (does it work on 10.4 or 10.6?) will enable for OpenBSD after testing integrated right into the Modula-3 layer instead of implementing get/set/make/swapcontext (some unneeded generalization remains, will cleanup) From jkrell at elego.de Mon Dec 14 17:08:10 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 17:08:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214160810.C13762474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 17:08:10 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: cleanup: no need for SetContext in this code no need for functions to do extra work within the macros e.g. errno is handled elsewhere signal mask should be too if it isn't no need for sigsetjmp(1) within ProcessLive, sigsetjmp(0) is enough no other need for GetContext, just the sigsetjmp(0) use volatile on local that is used around longjmp add cast from void* so it might compile as C++ (not tested) From jkrell at elego.de Mon Dec 14 17:15:16 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 17:15:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214161516.0B3ED2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 17:15:16 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: use ZeroMemory From hosking at cs.purdue.edu Mon Dec 14 17:21:24 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 14 Dec 2009 11:21:24 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091214155728.969D52474001@birch.elegosoft.com> References: <20091214155728.969D52474001@birch.elegosoft.com> Message-ID: Cool! On 14 Dec 2009, at 16:57, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/14 16:57:28 > > Modified files: > cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c > > Log message: > integrate sigaltstack technique from: > see http://www.engelschall.com/pw/usenix/2000/pmt-html/ > > so now AMD64_DARWIN user threads work (Juno starts up) > AMD64_DARWIN 10.5 doesn't support get/set/make/swapcontext > getcontext returns -1 and errno=ENOTSUP > (does it work on 10.4 or 10.6?) > > will enable for OpenBSD after testing > > integrated right into the Modula-3 layer instead > of implementing get/set/make/swapcontext > (some unneeded generalization remains, will cleanup) -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Dec 14 17:22:39 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 14 Dec 2009 16:22:39 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <45D55E81-8BE6-40DB-BD52-0BAC1027F29D@cs.purdue.edu> References: <20091214134015.9044F2474001@birch.elegosoft.com>, , <5A4A51CF-0063-4E4F-93C7-9B950B55C562@cs.purdue.edu>, , <45D55E81-8BE6-40DB-BD52-0BAC1027F29D@cs.purdue.edu> Message-ID: I assumed Alpha was little endian because it ran NT. Then again, I know, a lot of chips go either way these days (PowerPC little endian for NT and presumably XBox360, big endian for Mac and I think Linux and AIX?) Target.m3: (* big endian *) IF TextUtils.StartsWith(system, "PA") (* MIPS is definitely ambiguous! *) OR TextUtils.StartsWith(system, "MIPS") (* PPC is a little ambiguous? *) OR TextUtils.StartsWith(system, "PPC") OR TextUtils.StartsWith(system, "SPARC") OR TextUtils.StartsWith(system, "SOL") THEN Little_endian := FALSE; END; Anyway it shouldn't be hard to track down. I'll probably divert to SPARC64_SOLARIS first, or maybe PPC64_{LINUX,DARWIN} (iMac G5 arrived recently, though PPC64_AIX hardware has been sitting around...) The code I put in parse.c is definitely wierd, but I really thought it was correct, and it /has/ no survived a fair number of combinations. I do cross builds /almost/ without considering host and target. Er, except you can't cross from 64bit to 32bit..I'll probably fix that pretty soon as it has started hitting me more often... it's just something where the compiler gets confused and does host math with target limitations, where it should do target math. - Jay From: hosking at cs.purdue.edu Date: Mon, 14 Dec 2009 10:46:25 -0500 To: jay.krell at cornell.edu CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 On 14 Dec 2009, at 10:43, Jay K wrote:I know I know. I know exactly the code. I rewrote it, at least once. Cross compiling works. Native does not. It must be the threshold variables in RTCollector. Yeah, I've been bitten by just that scenario in the past -- those are the earliest use of FP in the run-time linker. If they are broken you find out quickly. Can you take a look at the gcc m3cg code for FP? It worked at one point just fine on native Alpha 64-bit, so should not be too hard to fix. I really thought I understood that code. - Jay From: hosking at cs.purdue.edu Date: Mon, 14 Dec 2009 10:38:06 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 This suggests an m3cg backend compiler problem for floating point on SPARC64. On 14 Dec 2009, at 14:40, Jay Krell wrote:CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 14:40:15 Modified files: cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTMachine.i3 cm3/m3-libs/m3core/src/unix/: m3makefile Removed files: cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTSignal.m3 Log message: updates so SPARC64_SOLARIS bootstrap can build (possible tangent related to getting SPARC64_OPENBSD to work -- problem apparently with the floating point constants in RTCollector, such that Behind() is always TRUE, even for the first allocation, so access violate trying to garbage collect too early, when self is still NULL) -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Dec 14 17:47:49 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 14 Dec 2009 11:47:49 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20091214134015.9044F2474001@birch.elegosoft.com>, , <5A4A51CF-0063-4E4F-93C7-9B950B55C562@cs.purdue.edu>, , <45D55E81-8BE6-40DB-BD52-0BAC1027F29D@cs.purdue.edu> Message-ID: Yes, Alpha was little-endian (that was the way of Digital). Big-endian was a west coast phenomenon. ;-) On 14 Dec 2009, at 11:22, Jay K wrote: > I assumed Alpha was little endian because it ran NT. > Then again, I know, a lot of chips go either way these days (PowerPC little endian for NT and presumably XBox360, big endian for Mac and I think Linux and AIX?) > > Target.m3: > > (* big endian *) > > IF TextUtils.StartsWith(system, "PA") > > (* MIPS is definitely ambiguous! *) > OR TextUtils.StartsWith(system, "MIPS") > > (* PPC is a little ambiguous? *) > OR TextUtils.StartsWith(system, "PPC") > > OR TextUtils.StartsWith(system, "SPARC") > OR TextUtils.StartsWith(system, "SOL") THEN > Little_endian := FALSE; > END; > > Anyway it shouldn't be hard to track down. > I'll probably divert to SPARC64_SOLARIS first, or maybe PPC64_{LINUX,DARWIN} (iMac G5 arrived recently, though PPC64_AIX hardware has been sitting around...) > > The code I put in parse.c is definitely wierd, but I really thought it was correct, and it /has/ no survived a fair number of combinations. I do cross builds /almost/ without considering host and target. Er, except you can't cross from 64bit to 32bit..I'll probably fix that pretty soon as it has started hitting me more often... it's just something where the compiler gets confused and does host math with target limitations, where it should do target math. > > - Jay > > From: hosking at cs.purdue.edu > Date: Mon, 14 Dec 2009 10:46:25 -0500 > To: jay.krell at cornell.edu > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > On 14 Dec 2009, at 10:43, Jay K wrote: > > I know I know. I know exactly the code. I rewrote it, at least once. > Cross compiling works. > Native does not. > It must be the threshold variables in RTCollector. > > Yeah, I've been bitten by just that scenario in the past -- those are the earliest use of FP in the run-time linker. If they are broken you find out quickly. Can you take a look at the gcc m3cg code for FP? It worked at one point just fine on native Alpha 64-bit, so should not be too hard to fix. > > I really thought I understood that code. > > - Jay > > > From: hosking at cs.purdue.edu > Date: Mon, 14 Dec 2009 10:38:06 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > This suggests an m3cg backend compiler problem for floating point on SPARC64. > > On 14 Dec 2009, at 14:40, Jay Krell wrote: > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/14 14:40:15 > > Modified files: > cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTMachine.i3 > cm3/m3-libs/m3core/src/unix/: m3makefile > Removed files: > cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTSignal.m3 > > Log message: > updates so SPARC64_SOLARIS bootstrap can build > (possible tangent related to getting SPARC64_OPENBSD > to work -- problem apparently with the floating point > constants in RTCollector, such that Behind() is > always TRUE, even for the first allocation, so > access violate trying to garbage collect too > early, when self is still NULL) > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Mon Dec 14 18:40:29 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 18:40:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214174029.DFC272474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 18:40:29 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: match pthread FreeSlot fix From jkrell at elego.de Mon Dec 14 18:41:10 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 18:41:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214174110.CE37F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 18:41:10 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: match pthread FreeSlot style (t => self) From jkrell at elego.de Mon Dec 14 18:42:33 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 18:42:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214174233.9DF652474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 18:42:33 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: and then no null check in CleanT either From jkrell at elego.de Mon Dec 14 18:45:26 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 18:45:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214174526.4AF062474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 18:45:26 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.m3 Log message: FreeSlot/CleanT fixes from head From jkrell at elego.de Mon Dec 14 18:46:44 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 18:46:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214174644.6AF192474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 18:46:44 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.m3 Log message: rename CleanT to CleanThread to match Posix From jkrell at elego.de Mon Dec 14 18:48:23 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 18:48:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214174823.46F7A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 18:48:23 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: rename CleanT to CleanThread to match Posix From jkrell at elego.de Mon Dec 14 18:53:06 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 18:53:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214175306.3BABB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 18:53:06 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: remove obvious NIL deref from FreeSlot From hosking at elego.de Mon Dec 14 18:56:16 2009 From: hosking at elego.de (Antony Hosking) Date: Mon, 14 Dec 2009 18:56:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214175616.7BD632474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/14 18:56:16 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: No need for VAR param. From jkrell at elego.de Mon Dec 14 19:17:08 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:17:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214181708.8204A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:17:08 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: fix leak of activation when even RegisterFinalCleanup is out of memory From jkrell at elego.de Mon Dec 14 19:19:20 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:19:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214181920.7FADA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:19:20 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: rely on RegisterFinalCleanup to do the cleanup in the partial success case, unless it is out of memory, in which case fix the leak of the activation From jkrell at elego.de Mon Dec 14 19:26:46 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:26:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214182648.1177C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:26:46 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: go back a version; I want to fix this differently; waiting for gc to come around and use RegisterFinalCleanup seems too slow when we know resources low From jkrell at elego.de Mon Dec 14 19:31:42 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:31:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214183144.AA9052474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:31:42 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: fix leak of activation under low memory, such as even RegisterFinalCleanup failing From jkrell at elego.de Mon Dec 14 19:32:03 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:32:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214183204.25D262474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:32:03 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: slightly nicer? From jkrell at elego.de Mon Dec 14 19:35:58 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:35:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214183558.5262C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:35:58 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: fix leaks under low resources, structured like pthread but then even cleaner (will update pthread) From jkrell at elego.de Mon Dec 14 19:37:19 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:37:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214183719.790862474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:37:19 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: once register is done, can leave the try/finally From jkrell at elego.de Mon Dec 14 19:38:24 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:38:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214183824.B2EC92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:38:24 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: slightly better structure -- more in the try/finally From jkrell at elego.de Mon Dec 14 19:55:23 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:55:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214185523.392AA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:55:23 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: allow for RegisterFinalCleanup running out of memory From jkrell at elego.de Mon Dec 14 20:06:21 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 20:06:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214190621.07F4F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 20:06:21 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: ungeneralize InitMutex since we don't use it for anything else, such as conditions From hosking at elego.de Mon Dec 14 20:24:46 2009 From: hosking at elego.de (Antony Hosking) Date: Mon, 14 Dec 2009 20:24:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214192446.A74F12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/14 20:24:46 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Let's just let the cleanup handler do the cleanup as needed. From hosking at elego.de Mon Dec 14 20:29:09 2009 From: hosking at elego.de (Antony Hosking) Date: Mon, 14 Dec 2009 20:29:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214192909.22F522474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/14 20:29:09 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Perhaps closer to what Jay wants: cleanup early if memory tight. From jkrell at elego.de Tue Dec 15 00:09:45 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:09:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214230945.E9D9F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:09:45 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: fix leak in InitMutex if RegisterFinalCleanup runs out of memory. Note that this requires locking heap while initLock held, which is hopefully ok. We can't store back the mutex and have it be used until we are sure we'll be able to clean it up. (Which also means we can't share the provided Clean function) It would help if RegisterFinalCleanup provided some sort of two phase operation where the space could be reserved first and then the values either filled in later or the space given up. That way we could probably unnest the locks. Consider that shortly. It seems difficult though esp. to provide "space given up" unless maybe that is considered rare and the space just wasted for that case (at least if it is no longer the last entry in the array). From jkrell at elego.de Tue Dec 15 00:13:50 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:13:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214231350.BA8A42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:13:50 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: modify comment slightly From jkrell at elego.de Tue Dec 15 00:17:19 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:17:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214231719.160562474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:17:19 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: also need to exit initLock if RegisterFinalCleanup raises From jkrell at elego.de Tue Dec 15 00:18:00 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:18:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214231800.6600A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:18:00 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: oops -- double unlock in error path From jkrell at elego.de Tue Dec 15 00:19:54 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:19:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214231954.19D8E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:19:54 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: unlock initMu even if RegisterFinalCleanup raises (I think that's what it does upon out of memory even though it is untraced) From jkrell at elego.de Tue Dec 15 00:27:46 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:27:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214232746.884A22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:27:46 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: structure better From jkrell at elego.de Tue Dec 15 00:30:19 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:30:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214233019.F3BF42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:30:19 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: structure better (as was just done for pthread) From jkrell at elego.de Tue Dec 15 00:33:36 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:33:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214233336.BA56E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:33:36 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: and structure InitCondition like InitMutex in avoiding leak if RegisterFinalCleanup raises From jkrell at elego.de Tue Dec 15 00:37:09 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:37:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214233709.C83E02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:37:09 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: InitCondition can use one boolean instead of two pointers for 'cleanup' From jkrell at elego.de Tue Dec 15 11:42:48 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 11:42:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215104248.3F7532474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 11:42:48 Added files: cm3/m3-sys/m3tests/src/p2/p213/: MscTryFinally.i3 MscTryFinally.m3 MscTryFinallyC.c Log message: add test case to show if __try/__finally runs when a Modula-3 except goes by; I'm pretty sure we have a bug here but many attempts to reproduce it fails, so for now, there is no bug (really: it may be some odd/old combination of compiler/libraries that nobody uses, but apparently it's absent with current tools) From jkrell at elego.de Tue Dec 15 11:43:49 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 11:43:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215104349.DD9232474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 11:43:49 Modified files: cm3/m3-sys/m3tests/src/p2/p213/: MscTryFinally.i3 MscTryFinally.m3 MscTryFinallyC.c m3makefile Log message: update, fix newlines From jkrell at elego.de Tue Dec 15 11:49:30 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 11:49:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215104930.841262474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 11:49:30 Modified files: cm3/m3-sys/m3tests/src/p2/p213/: m3makefile Removed files: cm3/m3-sys/m3tests/src/p2/p213/: MscTryFinally.i3 MscTryFinally.m3 MscTryFinallyC.c Log message: oops, this slot was already taken, go back to a day ago hah! race condition occured with a test case for semaphores! From jkrell at elego.de Tue Dec 15 11:57:06 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 11:57:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215105706.579EF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 11:57:06 Added files: cm3/m3-sys/m3tests/src/p2/p224/: Main.m3 m3makefile stderr.build stderr.pgm stdout.build stdout.pgm Log message: copy p213 to p224 in preparation for bringing p213 - p223 over from release branch (!) From jkrell at elego.de Tue Dec 15 12:04:02 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 12:04:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215110402.590672474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 12:04:02 Modified files: cm3/m3-sys/m3tests/src/p2/p213/: Main.m3 m3makefile stdout.pgm Added files: cm3/m3-sys/m3tests/src/p2/p214/: m3makefile stderr.build stderr.pgm stdout.build stdout.pgm cm3/m3-sys/m3tests/src/p2/p215/: m3makefile stderr.build stderr.pgm stdout.build stdout.pgm cm3/m3-sys/m3tests/src/p2/p216/: m3makefile stderr.build stderr.pgm stdout.build stdout.pgm cm3/m3-sys/m3tests/src/p2/p217/: m3makefile stderr.build stdout.build cm3/m3-sys/m3tests/src/p2/p218/: m3makefile stderr.build stdout.build cm3/m3-sys/m3tests/src/p2/p219/: m3makefile stderr.build stdout.build cm3/m3-sys/m3tests/src/p2/p220/: m3makefile stderr.build stdout.build cm3/m3-sys/m3tests/src/p2/p221/: m3makefile stderr.build stdout.build cm3/m3-sys/m3tests/src/p2/p222/: m3makefile stderr.build stdout.build cm3/m3-sys/m3tests/src/p2/p223/: m3makefile stderr.build stdout.build Log message: bring over tests from release branch From jkrell at elego.de Tue Dec 15 12:17:54 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 12:17:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215111754.68F3E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 12:17:54 Added files: cm3/m3-sys/m3tests/src/p2/p225/: Main.m3 finally.c finally.i3 m3makefile stderr.build stderr.pgm stdout.build stdout.pgm Log message: add test of __try/__finally with a Modula-3 exception From jkrell at elego.de Tue Dec 15 12:33:23 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 12:33:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215113323.ACACD2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 12:33:23 Added files: cm3/m3-sys/m3tests/src/p2/p216/: Main.m3 cm3/m3-sys/m3tests/src/p2/p217/: Main.m3 cm3/m3-sys/m3tests/src/p2/p218/: Main.m3 cm3/m3-sys/m3tests/src/p2/p219/: Main.m3 cm3/m3-sys/m3tests/src/p2/p220/: Main.m3 cm3/m3-sys/m3tests/src/p2/p221/: Main.m3 cm3/m3-sys/m3tests/src/p2/p222/: Main.m3 cm3/m3-sys/m3tests/src/p2/p223/: Main.m3 Log message: bring over files from release branch I missed before From jkrell at elego.de Tue Dec 15 12:49:47 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 12:49:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215114947.9B35D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 12:49:47 Modified files: cm3/m3-sys/m3tests/src/: Test.common m3makefile Log message: merge with release: add 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223 their supporting infrastructure change previous 223 to 224 add 225 for __try/__finally From jkrell at elego.de Tue Dec 15 12:54:31 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 12:54:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215115431.56A9F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 12:54:31 Added files: cm3/m3-sys/m3tests/src/p2/p214/: Main.m3 cm3/m3-sys/m3tests/src/p2/p215/: Main.m3 Log message: somehow missed these From jkrell at elego.de Tue Dec 15 12:56:06 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 12:56:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215115606.75A952474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 12:56:06 Added files: cm3/m3-sys/m3tests/src/p2/p224/: Tag: release_branch_cm3_5_8 Main.m3 m3makefile stderr.build stderr.pgm stdout.build stdout.pgm cm3/m3-sys/m3tests/src/p2/p225/: Tag: release_branch_cm3_5_8 Main.m3 finally.c finally.i3 m3makefile stderr.build stderr.pgm stdout.build stdout.pgm Log message: bring over new files from head From jkrell at elego.de Tue Dec 15 13:03:06 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 13:03:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215120306.DEEF72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 13:03:06 Modified files: cm3/m3-sys/m3tests/src/: m3makefile Log message: fix slash issue broken in merge; only affects test results on Windows From jkrell at elego.de Tue Dec 15 15:10:14 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 15:10:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215141015.0508A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 15:10:14 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTLinker.m3 Log message: trace branches the .i3 file implies they aren't nul terminated, so make a local copy use a separate function to avoid the stack bloat in the untraced case and check the global traceInit around a bunch of trace calls (should do that more) From jkrell at elego.de Tue Dec 15 15:16:21 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 15:16:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215141621.A613C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 15:16:21 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTLinker.m3 Log message: move code into separate function TraceType From hosking at elego.de Tue Dec 15 16:06:44 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 15 Dec 2009 16:06:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215150647.3300D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/15 16:06:44 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTLinker.m3 Log message: Let's use RTIO.PutChars instead of copying over the characters ... From jkrell at elego.de Tue Dec 15 17:39:18 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 17:39:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215163918.E7DAE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 17:39:18 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Tag: release_branch_cm3_5_8 NT386.common Log message: fix bug where hand.obj doesn't always get shipped and then e.g. the Juno splashscreen is messed up (it's deeper than that though when it occurs, various set operations are broken) only people building m3core would see this, sometimes From jkrell at elego.de Tue Dec 15 18:24:21 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 18:24:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215172421.8AAC12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 18:24:21 Modified files: cm3/m3-ui/bicycle/src/: m3makefile cm3/m3-ui/cmvbt/src/: m3makefile cm3/m3-ui/codeview/src/: m3makefile cm3/m3-ui/formsedit/src/: m3makefile cm3/m3-ui/formsvbt/src/: m3makefile cm3/m3-ui/images/src/: m3makefile cm3/m3-ui/mg/src/: m3makefile cm3/m3-ui/mgkit/src/: m3makefile cm3/m3-ui/ui/test/EyesVBT/src/: m3makefile cm3/m3-ui/vbtkit/src/: m3makefile cm3/m3-ui/videovbt/src/: m3makefile cm3/m3-ui/webvbt/src/: m3makefile cm3/m3-ui/webvbt/src/hyperpage/src/: m3makefile cm3/m3-ui/zeus/src/: m3makefile Log message: This should fix Win32 mentor in head erroring out with duplicate brands. But is not in release. -if HasGui() +if not HasGui() build_standalone() end From jkrell at elego.de Tue Dec 15 18:28:32 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 18:28:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215172832.127F32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 18:28:32 Modified files: cm3/m3-ui/formsedit/src/: m3makefile Log message: fix HasGui() From jkrell at elego.de Tue Dec 15 19:00:29 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 19:00:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215180029.5412C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 19:00:29 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 RTHeapRep.i3 cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: restructure RegisterFinalCleanup into two phase Reserve/Commit in order to avoid holding initLock and heapLock at the same time and having to worry about lock order, deadlock etc. Reserve raises an exception under low memory (as Register did) and Commit does not. From hosking at elego.de Tue Dec 15 20:52:09 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 15 Dec 2009 20:52:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215195209.49DAE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/15 20:52:09 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 RTHeapRep.i3 Log message: Revert previous gratuitous change. There is no deadlock issue here with RTHeapLock. Let's be really clear when we can fail due to a thrown exception. From hosking at elego.de Tue Dec 15 20:52:40 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 15 Dec 2009 20:52:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215195240.952DB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/15 20:52:40 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: Match ThreadPThread.m3. From jkrell at elego.de Wed Dec 16 08:39:50 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 8:39:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216073950.ED5282474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 08:39:50 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: some improvements from http://www.cs.wustl.edu/~schmidt/win32-cv-1.html - no need to acquire/release external mutex in loop - ResetEvent outside criticalsection From jkrell at elego.de Wed Dec 16 08:41:29 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 8:41:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216074129.3382A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 08:41:29 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: remove outdated/pointless comment and pointless assert From jkrell at elego.de Wed Dec 16 08:58:17 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 8:58:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216075817.473A42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 08:58:17 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: fix leak of activation when RegisterFinalCleanup is out of memory From jkrell at elego.de Wed Dec 16 09:55:15 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 9:55:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216085515.97CCA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 09:55:15 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: if we fail, but another thread succeeded, then don't raise From jkrell at elego.de Wed Dec 16 10:16:10 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 10:16:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216091610.42F352474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 10:16:10 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: add ActState for unification with pthread From jkrell at elego.de Wed Dec 16 10:26:34 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 10:26:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216092635.054652474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 10:26:34 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: assert that the counters suspendCount and suspend_cnt are always 0 or 1; that is, that they can be booleans as they are in pthreads From jkrell at elego.de Wed Dec 16 10:46:08 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 10:46:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216094609.63F242474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 10:46:08 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: fix: CleanUp => Cleanup From jkrell at elego.de Wed Dec 16 13:16:54 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 13:16:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216121654.2CBB82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 13:16:54 Modified files: cm3/m3-libs/m3core/src/C/LINUXLIBC6/: Csetjmp.i3 Log message: remove dependency on platform-specific Usignal.sigset_t From jkrell at elego.de Wed Dec 16 13:19:59 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 13:19:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216121959.0F3E62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 13:19:59 Modified files: cm3/m3-libs/m3core/src/unix/: m3makefile cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c m3makefile cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: m3makefile Removed files: cm3/m3-libs/m3core/src/unix/Common/: Uucontext.c Uucontext.h Uucontext.i3 Log message: stop using much lingering platform-specific stuff specifically Usignal, Uucontext on all platforms except SOLgnu/SOLsun (SOLgnu/SOLsun RTMachine.i3 want Uucontext) remove all Uucontext stuff (the code that needs it is all in C, again, except for SOLgnu/SOLsun) Some portability and Modula-3 is possible here but we weren't using it. switch OpenBSD/x86 and OpenBSD/sparc64 to sigaltstack/sigsetjmp based user threads instead of poking around in the setjmp buffer unix/* is dead except for *ommon*, solaris*, WIN32 From jkrell at elego.de Wed Dec 16 13:21:36 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 13:21:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216122136.BE2662474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 13:21:36 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: forgot this: switch OpenBSD to sigaltstack/sigsetjmp user threads From jkrell at elego.de Wed Dec 16 13:26:18 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 13:26:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216122619.0D2412474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 13:26:18 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Log message: remove out of date comment From jkrell at elego.de Wed Dec 16 14:51:24 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 14:51:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216135125.999A72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 14:51:24 Removed files: cm3/m3-lectern/lectern/src/: writev.c Log message: remove unused file From jkrell at elego.de Wed Dec 16 16:04:53 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 16:04:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216150453.A99582474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 16:04:53 Added files: cm3/m3-libs/m3core/src/thread/PTHREAD/: test_interix.c Log message: working demonstration of 'direct' suspend/resume pthreads with Interix and getting the registers of the suspended thread, using the /proc mechanism From jkrell at elego.de Wed Dec 16 16:05:13 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 16:05:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216150513.282922474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 16:05:13 Modified files: cm3/m3-sys/m3cc/src/: platforms.quake Log message: add PPC64_LINUX and PPC64_DARWIN, I at least can build cm3cg for each easy but haven't set up the iMac G5 yet.. From jkrell at elego.de Wed Dec 16 16:44:00 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 16:44:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216154401.01ACF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 16:44:00 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: test_interix.c Log message: fix newlines From jkrell at elego.de Wed Dec 16 17:12:17 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 17:12:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216161217.DF3492474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 17:12:17 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadFreeBSD.c ThreadPThreadC.c Log message: fix presumed FreeBSD break I caused assert(stack_grows_down) in ThreadPThreadC.c and not ThreadFreeBSD.c because it isn't available there From hosking at elego.de Wed Dec 16 17:26:31 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 16 Dec 2009 17:26:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216162632.065A02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/16 17:26:31 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Let's tidy things up even more... From rodney at elego.de Thu Dec 17 22:48:43 2009 From: rodney at elego.de (Rodney M. Bates) Date: Thu, 17 Dec 2009 22:48:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091217214844.792CE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 09/12/17 22:48:43 Modified files: cm3/doc/reference/complete/: m3-defn-complete.tex Log message: Better documentation of WIDECHAR and wide TEXT literals, and hex escapes in CHAR/WIDECHAR/TEXT literals. Derived files still need to be regenerated. From jkrell at elego.de Fri Dec 18 09:23:54 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 9:23:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218082354.DBC142474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 09:23:54 Added files: cm3/m3-libs/m3core/src/thread/PTHREAD/: interix_context_on_signal_stack.c Log message: a program to demonstrate that the context is indeed saved on the signal stack, so nothing special needed (except for having a single parameter signal handler and null context or such) From jkrell at elego.de Fri Dec 18 09:25:01 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 9:25:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218082501.2D8EECC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 09:25:01 Added files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadInterix.c Log message: prototype based on test_interix, will probably be abandoned From jkrell at elego.de Fri Dec 18 09:26:54 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 9:26:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218082654.38E6C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 09:26:54 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadApple.c ThreadFreeBSD.c ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c Log message: viable prototype for Interix that does direct suspend/resume via /proc From jkrell at elego.de Fri Dec 18 09:27:46 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 9:27:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218082748.535FE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 09:27:46 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadApple.c ThreadFreeBSD.c ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c Log message: go back a version From jkrell at elego.de Fri Dec 18 10:06:43 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 10:06:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218090643.4710F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 10:06:43 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: interix_context_on_signal_stack.c Log message: demonstrate finding the context at runtime by searching the stack for the flags and segment registers From jkrell at elego.de Fri Dec 18 10:38:35 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 10:38:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218093835.170BFCC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 10:38:35 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTLinker.m3 Log message: lift traceInit check out of three or four function calls per type (integrated backend doesn't inline) From jkrell at elego.de Fri Dec 18 10:41:31 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 10:41:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218094131.753A42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 10:41:31 Modified files: cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: Tag: release_branch_cm3_5_8 RTMachine.i3 Log message: copy from head -- remove unused import of Uucontext, so that Uucontext can be deleted From hosking at cs.purdue.edu Fri Dec 18 15:57:15 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 18 Dec 2009 09:57:15 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091218093835.170BFCC815@birch.elegosoft.com> References: <20091218093835.170BFCC815@birch.elegosoft.com> Message-ID: <564EAC8A-AF5C-4179-B2B6-6A750B52A8E0@cs.purdue.edu> Jay, This is an example of what I like to call premature optimization. Do you know for sure that the extra checks are costing that much? -- Tony On 18 Dec 2009, at 10:38, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/18 10:38:35 > > Modified files: > cm3/m3-libs/m3core/src/runtime/common/: RTLinker.m3 > > Log message: > lift traceInit check out of three or four function calls per type (integrated backend doesn't inline) -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Fri Dec 18 19:39:46 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 19:39:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218183946.46BEF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 19:39:46 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: initial support for cas/casp on 16bit and 32bit parameters for now it generates out of line function calls and requires a modern compiler The functions are statically linked into the caller. From jkrell at elego.de Fri Dec 18 19:40:41 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 19:40:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218184041.1686B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 19:40:41 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: initial support for cas/casp on 16bit and 32bit parameters for now it generates out of line function calls and requires a modern compiler From jkrell at elego.de Fri Dec 18 19:52:18 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 19:52:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218185218.8F8F82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 19:52:18 Added files: cm3/m3-sys/m3tests/src/p2/p226/: Main.m3 m3makefile stderr.build stderr.pgm stdout.build stdout.pgm Log message: initial support for cas/casp on 16bit and 32bit parameters for now it generates out of line function calls and requires a modern compiler From jkrell at elego.de Sun Dec 20 11:57:57 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 11:57:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220105757.EC65D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 11:57:57 Modified files: cm3/m3-libs/m3core/src/: Tag: release_branch_cm3_5_8 m3core.h Log message: copy from head: whitespace only From jkrell at elego.de Sun Dec 20 12:01:03 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 12:01:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220110103.B03B7CC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 12:01:03 Modified files: cm3/m3-libs/m3core/src/: Tag: release_branch_cm3_5_8 thread.quake Log message: copy from head: SPARC64_OPENBSD uses user threads From jkrell at elego.de Sun Dec 20 12:05:47 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 12:05:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220110547.93E56CC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 12:05:47 Modified files: cm3/m3-libs/m3core/src/C/Common/: CstdioC.c Log message: remove #if 0 'unsecure' functions tempnam and tmpnam (poor naming here too..) From jkrell at elego.de Sun Dec 20 12:09:32 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 12:09:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220110933.541502474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 12:09:32 Modified files: cm3/m3-libs/m3core/src/C/Common/: CstringC.c Log message: remove #if 0 'unsecure' functions strcpy, strcat From jkrell at elego.de Sun Dec 20 12:13:22 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 12:13:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220111323.16380CC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 12:13:22 Modified files: cm3/m3-libs/m3core/src/C/Common/: Tag: release_branch_cm3_5_8 CerrnoC.c Csignal.i3 CsignalC.c CstdioC.c Cstdlib.i3 CstdlibC.c Cstring.i3 CstringC.c Log message: copy from head: use wrappers, be compatible with msvcrt.lib and libcmt.lib on Windows From jkrell at elego.de Sun Dec 20 12:26:18 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 12:26:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220112618.A49B62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 12:26:18 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32C.c Log message: copy from head: change UINT32 to UINT for compatibility with more header versions From jkrell at elego.de Sun Dec 20 13:44:58 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 13:44:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220124458.772402474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 13:44:58 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTCollector.m3 Log message: copy from head: shorten comment by 2 characters From jkrell at elego.de Sun Dec 20 13:45:50 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 13:45:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220124550.B1092CC818@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 13:45:50 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTLinker.m3 Log message: copy from head: brand tracing in @M3tracelinker From jkrell at elego.de Sun Dec 20 13:46:51 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 13:46:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220124651.82661CC818@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 13:46:51 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: Tag: release_branch_cm3_5_8 RTSignalC.c Log message: copy from head: move OpenBSD lines up so that OpenBSD/sparc64 uses them instead of the Sparc lines From jkrell at elego.de Sun Dec 20 13:48:01 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 13:48:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220124801.5A6FECC818@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 13:48:01 Modified files: cm3/m3-libs/m3core/src/C/LINUXLIBC6/: Tag: release_branch_cm3_5_8 Csetjmp.i3 Log message: copy from head: eliminate dependency on Usignal From jkrell at elego.de Sun Dec 20 13:50:42 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 13:50:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220125043.0A953CC81A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 13:50:42 Added files: cm3/m3-libs/m3core/src/win32/: Tag: release_branch_cm3_5_8 WinConstants.c WinUser.pl WinUser.txt Log message: new inactive files from head From jkrell at elego.de Sun Dec 20 13:53:16 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 13:53:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220125316.B4783CC81A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 13:53:16 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: remove cas/casp support (compiler crashes if you use them) From jkrell at elego.de Sun Dec 20 14:03:33 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 14:03:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220130334.4040FCC818@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 14:03:33 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Tag: release_branch_cm3_5_8 UdirC.c Uexec.c Uin.c Umman.c Uprocess.c Usignal.c Uugid.c Uuio.c Uutmp.c Log message: copy from head: m3unix.h => m3core.h; use macros for mechanical wrappers From jkrell at elego.de Sun Dec 20 14:07:33 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 14:07:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220130733.5DF78CC81A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 14:07:33 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: Tag: release_branch_cm3_5_8 RTOSbrk.c RTOSmmap.c Log message: copy from head: m3unix.h => m3core.h From jkrell at elego.de Sun Dec 20 14:11:51 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 14:11:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220131151.7645ECC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 14:11:51 Modified files: cm3/m3-sys/cm3/src/: Tag: release_branch_cm3_5_8 m3makefile Log message: copy from head: change / to SL and also mention m3core.h note that usually now we use / instead of SL, but for some directories it might still be good to use SL for case of bootstrapping with older m3core, it might (if the paths are just passed through to the underlying functtions though, it doesn't matter) From jkrell at elego.de Sun Dec 20 14:15:37 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 14:15:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220131537.911BFCC818@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 14:15:37 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: remove Win32 cas/casp functions From jkrell at elego.de Sun Dec 20 15:20:18 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 15:20:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220142018.75A4E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 15:20:18 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: remove cas/casp support From jkrell at elego.de Sun Dec 20 15:22:07 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 15:22:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220142207.7C6E2CC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 15:22:07 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: remove cas/casp support From jkrell at elego.de Sun Dec 20 16:49:36 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 16:49:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220154937.B670ECC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 16:49:36 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: use memcmp in place of set_ne or set_eq From jkrell at elego.de Sun Dec 20 17:10:16 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 17:10:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220161016.4BD112474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 17:10:16 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: put in explicit calling conventions (so that user can alter the default in their compiler command line without breaking things) use memcmp for set_ne and set_eq (really belongs in parse.c to avoid the extra call) From jkrell at elego.de Sun Dec 20 17:11:22 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 17:11:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220161122.43BED2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 17:11:22 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: comments about m3back calling memcmp directly but gcc not From jkrell at elego.de Sun Dec 20 17:11:44 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 17:11:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220161144.4AAF72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 17:11:44 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: comments about m3back calling memcmp directly but gcc not (in the right place) From jkrell at elego.de Mon Dec 21 05:51:10 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 5:51:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221045110.D37B6CC818@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 05:51:10 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Tag: release_branch_cm3_5_8 Usysdep.i3 cm3/m3-libs/m3core/src/unix/darwin-common/: Tag: release_branch_cm3_5_8 Usysdep.i3 cm3/m3-libs/m3core/src/unix/freebsd-common/: Tag: release_branch_cm3_5_8 Usysdep.i3 cm3/m3-libs/m3core/src/unix/hpux-common/: Tag: release_branch_cm3_5_8 Usysdep.i3 cm3/m3-libs/m3core/src/unix/netbsd-common/: Tag: release_branch_cm3_5_8 Usysdep.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Tag: release_branch_cm3_5_8 Usysdep.i3 cm3/m3-libs/m3core/src/unix/solaris-common/: Tag: release_branch_cm3_5_8 Usysdep.i3 Log message: partial merge from head: int32_t => int From jkrell at elego.de Mon Dec 21 06:05:13 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 6:05:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221050513.DCBAECC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 06:05:13 Modified files: cm3/m3-libs/m3core/src/: Tag: release_branch_cm3_5_8 m3core.h cm3/m3-libs/m3core/src/unix/Common/: Tag: release_branch_cm3_5_8 m3unix.h Log message: partial merge from head: have m3unix.h just #include m3core.h m3core.h in release doesn't yet assume certain time type equivalences From jkrell at elego.de Mon Dec 21 06:26:20 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 6:26:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221052620.7A32E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 06:26:20 Modified files: cm3/m3-libs/m3core/src/: Tag: release_branch_cm3_5_8 m3core.h Log message: partial merge from head: change #ifdef guard and provide Interix socklen_t From jkrell at elego.de Mon Dec 21 06:35:34 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 6:35:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221053534.B4EC3CC818@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 06:35:34 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadFreeBSD.c Log message: merge from head: m3unix.h => m3core.h; #if 0 assert(stack_grows_down) From jkrell at elego.de Mon Dec 21 06:36:59 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 6:36:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221053659.58490CC818@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 06:36:59 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadApple.c Log message: from head: m3unix.h => m3core.h From jkrell at elego.de Mon Dec 21 07:08:50 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 7:08:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221060851.6C34DCC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 07:08:50 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: Tag: release_branch_cm3_5_8 hand.c Log message: from head: add explicit calling conventions for NT386 and use memcmp in set_ne and set_eq From jkrell at elego.de Mon Dec 21 07:12:32 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 7:12:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221061232.C5B73CC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 07:12:32 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: put #includes outside extern "C" extern "C" is each header's decision/responsibility From jkrell at elego.de Mon Dec 21 07:16:38 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 7:16:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221061638.B718F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 07:16:38 Modified files: cm3/m3-libs/m3core/src/win32/: Tag: release_branch_cm3_5_8 m3makefile Log message: remove $Id$, it shows up in diffs From jkrell at elego.de Mon Dec 21 08:41:24 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 8:41:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221074124.E72FCCC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 08:41:24 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Tag: release_branch_cm3_5_8 Ugrp.c Unetdb.c UnixLink.c Upwd.c Usocket.c UstatC.c Log message: from head: m3unix.h => m3core.h; "more mechanical wrappers via macros" From jkrell at elego.de Mon Dec 21 15:36:58 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 15:36:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221143658.6DF05CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 15:36:58 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: add missing return type (caught by C++ compiler) From jkrell at elego.de Mon Dec 21 15:40:05 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 15:40:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221144005.F2E8FCC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 15:40:05 Modified files: cm3/m3-libs/m3core/src/C/Common/: CstringC.c Log message: remove some consts for C++ compilation From jkrell at elego.de Mon Dec 21 15:43:54 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 15:43:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221144354.735A22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 15:43:54 Modified files: cm3/m3-libs/m3core/src/Csupport/little-endian/: dtoa.c cm3/m3-libs/m3core/src/Csupport/big-endian/: dtoa.c Log message: don't use old style function definitions in C++ From jkrell at elego.de Mon Dec 21 15:57:56 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 15:57:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221145756.B50322474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 15:57:56 Modified files: cm3/m3-libs/m3core/src/C/Common/: CstringC.c Log message: add back const, and then more, for C++ compilation this is because the non-const overloads are inline and mklib decides it wants to export them the right fix here is that mklib should ignore anything that starts with a question mark, as well as some other things it is exporting unnecessarily From jkrell at elego.de Mon Dec 21 15:59:05 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 15:59:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221145905.D36462474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 15:59:05 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: remove setjmp/longjmp abstraction, until such time as we do merge with pthread code From jkrell at elego.de Mon Dec 21 16:00:09 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 16:00:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221150009.725422474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 16:00:09 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: interix_context_on_signal_stack.c Log message: whitespace only From jkrell at elego.de Mon Dec 21 16:00:40 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 16:00:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221150040.B051E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 16:00:40 Modified files: cm3/m3-libs/m3core/src/Csupport/libgcc/: libgcc.c cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: RTStackC.c cm3/m3-libs/m3core/src/runtime/DS3100/: RTStackC.c cm3/m3-libs/m3core/src/runtime/POSIX/: RTOSbrk.c RTOSmmap.c cm3/m3-libs/m3core/src/runtime/SOLgnu/: RTStackC.c cm3/m3-libs/m3core/src/runtime/SOLsun/: RTStackC.c cm3/m3-libs/m3core/src/runtime/WIN32/: RTOSc.c cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: add mising #ifdef cplusplus extern "C" { } From jkrell at elego.de Tue Dec 22 11:36:34 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 11:36:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222103634.7C9F62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 11:36:34 Modified files: cm3/m3-libs/m3core/src/C/Common/: Tag: release_branch_cm3_5_8 CstringC.c cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: Tag: release_branch_cm3_5_8 RTStackC.c cm3/m3-libs/m3core/src/runtime/DS3100/: Tag: release_branch_cm3_5_8 RTStackC.c cm3/m3-libs/m3core/src/runtime/POSIX/: Tag: release_branch_cm3_5_8 RTOSbrk.c RTOSmmap.c cm3/m3-libs/m3core/src/runtime/SOLgnu/: Tag: release_branch_cm3_5_8 RTStackC.c cm3/m3-libs/m3core/src/runtime/SOLsun/: Tag: release_branch_cm3_5_8 RTStackC.c cm3/m3-libs/m3core/src/runtime/WIN32/: Tag: release_branch_cm3_5_8 RTOSc.c cm3/m3-libs/m3core/src/runtime/ex_frame/: Tag: release_branch_cm3_5_8 RTStackC.c Log message: copy from head: fixes for C++ compilation: const, extern C, explicit return type, ANSI style functions (20 years..) From jkrell at elego.de Tue Dec 22 11:38:47 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 11:38:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222103847.AA0602474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 11:38:47 Modified files: cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: RTStackC.c cm3/m3-libs/m3core/src/runtime/DS3100/: RTStackC.c Log message: add return types to functions (void) From jkrell at elego.de Tue Dec 22 11:39:45 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 11:39:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222103945.5A6F12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 11:39:45 Modified files: cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: Tag: release_branch_cm3_5_8 RTStackC.c cm3/m3-libs/m3core/src/runtime/DS3100/: Tag: release_branch_cm3_5_8 RTStackC.c Log message: copy from head: add return types to functions (void) From jkrell at elego.de Tue Dec 22 11:41:10 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 11:41:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222104110.EE4CECC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 11:41:10 Modified files: cm3/m3-libs/m3core/src/win32/: Tag: release_branch_cm3_5_8 m3makefile Log message: from head: remove $Id$ From jkrell at elego.de Tue Dec 22 11:41:42 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 11:41:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222104142.2F114CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 11:41:42 Modified files: cm3/m3-libs/m3core/src/win32/: Tag: release_branch_cm3_5_8 m3makefile Log message: oops: remove $Id$ From jkrell at elego.de Tue Dec 22 11:42:09 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 11:42:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222104209.405AECC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 11:42:09 Modified files: cm3/m3-libs/m3core/src/win32/: m3makefile Log message: from release: remove $Id$ From jkrell at elego.de Tue Dec 22 11:43:56 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 11:43:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222104356.84AE72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 11:43:56 Modified files: cm3/m3-libs/m3core/src/Csupport/big-endian/: Tag: release_branch_cm3_5_8 dtoa.c cm3/m3-libs/m3core/src/Csupport/libgcc/: Tag: release_branch_cm3_5_8 libgcc.c cm3/m3-libs/m3core/src/Csupport/little-endian/: Tag: release_branch_cm3_5_8 dtoa.c Log message: from head: fixes in case anyone wants to compile as C++ extern C, "new" (20 year old) function style From jkrell at elego.de Tue Dec 22 11:52:50 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 11:52:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222105250.F028E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 11:52:50 Modified files: cm3/m3-libs/m3core/src/runtime/WIN32/: RTOSc.c cm3/m3-libs/m3core/src/runtime/common/: RTIOc.c RTLinkerC.c RTMiscC.c RTUntracedMemoryC.c Log message: win32 only: always optimize (such small functions), explicit calling conventions, be compatible with libcmt.lib From jkrell at elego.de Tue Dec 22 12:18:32 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 12:18:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222111835.A4272CC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 12:18:32 Modified files: cm3/m3-sys/m3cc/src/: m3makefile Log message: This should fix cross compilers for SPARC64_SOLARIS -- configure doesn't ferry enough around so need to set gcc_cv_as_sparc_register_op in environment. From jkrell at elego.de Tue Dec 22 18:08:18 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:08:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222170818.BD6FB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:08:18 Modified files: cm3/m3-libs/m3core/src/runtime/WIN32/: Tag: release_branch_cm3_5_8 RTOSc.c Log message: forgot this earlier: from head: calling conventions, optimize, libcmt.lib compat From jkrell at elego.de Tue Dec 22 18:08:46 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:08:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222170846.916A02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:08:46 Removed files: cm3/m3-libs/m3core/src/runtime/AMD64_DARWIN/: Tag: release_branch_cm3_5_8 RTMachineC.c RTSignal.m3 cm3/m3-libs/m3core/src/runtime/FreeBSD/: Tag: release_branch_cm3_5_8 _fpsetjmp.s cm3/m3-libs/m3core/src/runtime/FreeBSD2/: Tag: release_branch_cm3_5_8 _fpsetjmp.s cm3/m3-libs/m3core/src/runtime/FreeBSD3/: Tag: release_branch_cm3_5_8 _fpsetjmp.s cm3/m3-libs/m3core/src/runtime/FreeBSD4/: Tag: release_branch_cm3_5_8 _fpsetjmp.s cm3/m3-libs/m3core/src/runtime/I386_DARWIN/: Tag: release_branch_cm3_5_8 RTMachineC.c RTSignal.m3 cm3/m3-libs/m3core/src/runtime/LINUXLIBC6/: Tag: release_branch_cm3_5_8 RTSignal.m3 cm3/m3-libs/m3core/src/runtime/PPC_DARWIN/: Tag: release_branch_cm3_5_8 RTMachineC.c RTSignal.m3 cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: Tag: release_branch_cm3_5_8 RTSignal.m3 Log message: from head: delete some dead files From jkrell at elego.de Tue Dec 22 18:13:53 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:13:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222171354.08A572474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:13:53 Modified files: cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: Tag: release_branch_cm3_5_8 config.c context.c context.h Added files: cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: Tag: release_branch_cm3_5_8 tcontext.c Log message: copy from head: use sigsetjmp instead of setjmp openbsd/sparc64 support we'll stop using this code shortly anyway From jkrell at elego.de Tue Dec 22 18:16:26 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:16:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222171627.004B32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:16:26 Added files: cm3/m3-libs/m3core/src/unix/Common/context/sigaltstack/: Tag: release_branch_cm3_5_8 Makefile config.c context.c m3makefile tcontext.c Log message: copy new files from head, though we may just delete them they aren't used but provide a nice standalone way to test the underlying user thread code/mechanism From jkrell at elego.de Tue Dec 22 18:16:53 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:16:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222171653.608B52474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:16:53 Added files: cm3/m3-libs/m3core/src/unix/Common/context/sigaltstack/: Tag: release_branch_cm3_5_8 context.h Log message: another file here that was somehow missed From jkrell at elego.de Tue Dec 22 18:19:27 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:19:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222171927.EBE39CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:19:27 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTMiscC.c Log message: copy from head: calling convention We should Word.RoundUp Word.RoundUpPowerOf2 and inlining that? From jkrell at elego.de Tue Dec 22 18:22:15 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:22:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222172215.396D12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:22:15 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTLinkerC.c Log message: copy from head: calling convention and optimize small stuff From jkrell at elego.de Tue Dec 22 18:27:56 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:27:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222172756.F254D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:27:56 Modified files: cm3/m3-libs/m3core/src/time/POSIX/: Tag: release_branch_cm3_5_8 TimePosixC.c Log message: copy from head: m3unix.h to m3core.h From jkrell at elego.de Tue Dec 22 18:32:32 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:32:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222173233.03DE3CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:32:32 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTMisc.i3 RTMisc.m3 Log message: copy from head: equate RTMisc.Align(ADDRESS) == RTMisc.Upper(INTEGER) through linking instead of function call + loophole remove dependency on cloned (or then wrapped) headers From jkrell at elego.de Tue Dec 22 18:35:37 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:35:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222173537.D4C5C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:35:37 Removed files: cm3/m3-libs/m3core/src/runtime/ARM_DARWIN/: Tag: release_branch_cm3_5_8 RTMachineC.c cm3/m3-libs/m3core/src/runtime/NetBSD2_i386/: Tag: release_branch_cm3_5_8 _fpsetjmp.s Log message: delete more dead files (as in head) From jkrell at elego.de Tue Dec 22 18:36:33 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:36:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222173633.AE36B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:36:33 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 m3makefile Log message: forgot this: partial merge from head: compile RTMiscC.c (not copying head because I didn't test the RTIO floating point support) From jkrell at elego.de Tue Dec 22 18:39:22 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:39:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222173922.C0A022474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:39:22 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32C.c Log message: copy from head: remove setjmp abstraction and just handle IA64 and use regular setjmp (the only one Windows head, there's no signal mask, though this code could be used with Cygwin, hm) From jkrell at elego.de Tue Dec 22 18:50:24 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:50:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222175026.C779D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:50:24 Modified files: cm3/m3-libs/sysutils/src/: SystemC.c Log message: C++ compat, calling convention, optimize From jkrell at elego.de Tue Dec 22 18:51:25 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:51:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222175125.C98102474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:51:25 Modified files: cm3/m3-libs/m3core/src/C/Common/: CerrnoC.c Log message: C++ compat, calling convention, optimize, libcmt.lib compat From jkrell at elego.de Tue Dec 22 18:58:08 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:58:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222175809.D6C9C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:58:08 Modified files: cm3/m3-libs/m3core/src/runtime/AIX386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/novm/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/AMD64_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/AP3000/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ARM/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ARM_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/DS3100/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD3/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD4/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/HP300/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/HPPA/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/I386_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IBMR2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IBMRT/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IRIX5/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUX/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUXELF/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUXLIBC6/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/NEXT/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/NT386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/NT386GNU/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/NetBSD2_i386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/OKI/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/OS2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/PPC_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SEQUENT/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SOLgnu/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SOLsun/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SPARC/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SUN3/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SUN386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/UMAX/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/VAX/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/common/: RTHeapRep.i3 RTMachine.i3 Log message: AdrPerHeapPage = BytesPerHeapPage; (* addresses per page *) LogAdrPerHeapPage = LogBytesPerHeapPage; always, would move them to comon place but there is only one use, so remove them and change the use (which could probably be further smushed, but at least it isn't per-target) ("all machines are byte-addressable"?) BytesPerHeapPage = 8192 tempting too to make common but I stuck in 64K on NT, maybe we can just use that. From jkrell at elego.de Tue Dec 22 19:03:46 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 19:03:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222180346.D00FBCC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 19:03:46 Modified files: cm3/m3-libs/m3core/src/runtime/FreeBSD/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD3/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD4/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/NetBSD2_i386/: RTMachine.i3 Log message: Change the few remaining BytesPerHeapPage = 4096, LogBytesPerHeapPage = 12 to BytesPerHeapPage = 8192, LogBytesPerHeapPage = 13. These aren't actually machine page sizes any longer. They were when we had virtual memory assisted garbage collection. It is more of an allocation granularity. Now all platforms use 8K except for NT386, which uses 64K since that is what VirtualAlloc allocates in. Perhaps we can just use 64K everywhere? From jkrell at elego.de Tue Dec 22 19:09:49 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 19:09:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222180949.AF383CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 19:09:49 Modified files: cm3/m3-libs/m3core/src/runtime/AIX386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/novm/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/AMD64_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/AP3000/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ARM/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/DS3100/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD3/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD4/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/HPPA/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/I386_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IBMR2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IBMRT/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IRIX5/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUX/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUXELF/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUXLIBC6/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/NetBSD2_i386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/OKI/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/OS2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/PPC_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SPARC/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SUN386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/VAX/: RTMachine.i3 Log message: generally PointerAlignment = BYTESIZE(INTEGER) (or ADDRESS) except I guess 68K machines? Also NT386* is marked as 1, but my quick experiment shows it is also BYTESIZE(INTEGER), will look into that more later From jkrell at elego.de Tue Dec 22 19:19:32 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 19:19:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222181932.48B552474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 19:19:32 Removed files: cm3/m3-libs/m3core/src/runtime/AIX386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/AMD64_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/AP3000/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ARM/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ARM_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD3/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD4/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/HPPA/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/I386_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IBMR2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IBMRT/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IRIX5/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUX/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUXELF/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUXLIBC6/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/NetBSD2_i386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/OKI/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/OS2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/PPC_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SEQUENT/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SPARC/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SUN386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/VAX/: RTMachine.i3 Log message: delete all these semantically identical RTMachine.i3 files common/m3makefile will use common/RTMachine.i3 when platform/RTMachine.i3 doesn't exist, and it is semantically equivalent to all of them keep the following: ALPHA, SPARC: frameinfo and has_stack_walker NT*: alignment=1 (which I suspect is wrong but ok) HP300, Sun3, Umax: 68K machines? (fairly obsolete but I M68K_MAC maybe? :) ) From jkrell at elego.de Tue Dec 22 19:23:04 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 19:23:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222182304.8BD14CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 19:23:04 Modified files: cm3/m3-libs/m3core/src/runtime/AIX386/: m3makefile cm3/m3-libs/m3core/src/runtime/AMD64_DARWIN/: m3makefile cm3/m3-libs/m3core/src/runtime/AP3000/: m3makefile cm3/m3-libs/m3core/src/runtime/ARM/: m3makefile cm3/m3-libs/m3core/src/runtime/ARM_DARWIN/: m3makefile cm3/m3-libs/m3core/src/runtime/FreeBSD/: m3makefile cm3/m3-libs/m3core/src/runtime/FreeBSD2/: m3makefile cm3/m3-libs/m3core/src/runtime/FreeBSD3/: m3makefile cm3/m3-libs/m3core/src/runtime/FreeBSD4/: m3makefile cm3/m3-libs/m3core/src/runtime/HPPA/: m3makefile cm3/m3-libs/m3core/src/runtime/I386_DARWIN/: m3makefile cm3/m3-libs/m3core/src/runtime/IBMR2/: m3makefile cm3/m3-libs/m3core/src/runtime/IBMRT/: m3makefile cm3/m3-libs/m3core/src/runtime/IRIX5/: m3makefile cm3/m3-libs/m3core/src/runtime/LINUX/: m3makefile cm3/m3-libs/m3core/src/runtime/LINUXELF/: m3makefile cm3/m3-libs/m3core/src/runtime/LINUXLIBC6/: m3makefile cm3/m3-libs/m3core/src/runtime/NetBSD2_i386/: m3makefile cm3/m3-libs/m3core/src/runtime/OKI/: m3makefile cm3/m3-libs/m3core/src/runtime/OS2/: m3makefile cm3/m3-libs/m3core/src/runtime/PPC_DARWIN/: m3makefile cm3/m3-libs/m3core/src/runtime/SEQUENT/: m3makefile cm3/m3-libs/m3core/src/runtime/SPARC/: m3makefile cm3/m3-libs/m3core/src/runtime/SUN386/: m3makefile cm3/m3-libs/m3core/src/runtime/VAX/: m3makefile Log message: forgot to delete RTMachine from m3makefiles From jkrell at elego.de Tue Dec 22 19:27:20 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 19:27:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222182720.79B302474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 19:27:20 Removed files: cm3/m3-libs/m3core/src/runtime/AMD64_DARWIN/: m3makefile cm3/m3-libs/m3core/src/runtime/I386_DARWIN/: m3makefile cm3/m3-libs/m3core/src/runtime/LINUXLIBC6/: m3makefile cm3/m3-libs/m3core/src/runtime/PPC_DARWIN/: m3makefile Log message: delete empty m3makefile (more to do here: FreeBSD4, NetBSD2_i386, they should be empty but aren't) From dabenavidesd at yahoo.es Wed Dec 23 04:42:24 2009 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 23 Dec 2009 03:42:24 +0000 (GMT) Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091221150040.B051E2474001@birch.elegosoft.com> Message-ID: <770199.13762.qm@web23608.mail.ird.yahoo.com> Hi all: forgive my ignorance about the actual changes going on below copied M3commit message of Monday, December 21, 16:00:40 but what is this to have gcc code inside the compiler libs, I recommend to check the strict rules about this before performing such changes, Is there any problem getting gcc code inside the runtime libraries, even if this only used in level C code, this gets more C dependences in non-M3 code we are not able to guarantee, better UNSAFE than totally unmarked unsafe again. If this is not the case, and just a piece of m3cc related code I don't disqualify it yet. Thanks in advance --- El lun, 21/12/09, Jay Krell escribi?: > De: Jay Krell > Asunto: [M3commit] CVS Update: cm3 > Para: m3commit at elegosoft.com > Fecha: lunes, 21 de diciembre, 2009 11:00 > CVSROOT: /usr/cvs > Changes by: > jkrell at birch. 09/12/21 16:00:40 > > Modified files: > cm3/m3-libs/m3core/src/Csupport/libgcc/: > libgcc.c > > cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: RTStackC.c > cm3/m3-libs/m3core/src/runtime/DS3100/: > RTStackC.c > cm3/m3-libs/m3core/src/runtime/POSIX/: > RTOSbrk.c RTOSmmap.c > cm3/m3-libs/m3core/src/runtime/SOLgnu/: > RTStackC.c > cm3/m3-libs/m3core/src/runtime/SOLsun/: > RTStackC.c > cm3/m3-libs/m3core/src/runtime/WIN32/: > RTOSc.c > > cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c > > Log message: > add mising #ifdef cplusplus extern "C" { > } > > From dabenavidesd at yahoo.es Wed Dec 23 05:47:27 2009 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 23 Dec 2009 04:47:27 +0000 (GMT) Subject: [M3commit] [M3devel] CVS Update: cm3 In-Reply-To: <770199.13762.qm@web23608.mail.ird.yahoo.com> Message-ID: <468779.46976.qm@web23608.mail.ird.yahoo.com> Hi again: I recall to have said about a virtualization infrastructure future framework for CM3 reusing existing work made by DEC and SPIN, if we manage to get the system running as a separate process in a given processor we will be definitely getting source code level compability between UNIX implementations by means of a huge historical system like DEC UNIX and a good balance on terms of security in the Modula-3 runtime protection of foreign code. If there is no case of having user level DEC Unix server running in a host processor we can still emulate like they did and/or have a M3 Unix server inside the kernel like they planed to do. In perspective SPINE (spin development) developed a embedded system in NT kernel without touching host system processor but the actual network interface card internal processor featuring several M3 applications running on it. This would be a potential place for higher optimization in the CM3 system as we wouldn't have the usual architecture M3 guest-per system but a M3 host per system given the opportunities for it Hope this helps in something, thanks in advance --- El mar, 22/12/09, Daniel Alejandro Benavides D. escribi?: > De: Daniel Alejandro Benavides D. > Asunto: Re: [M3devel] [M3commit] CVS Update: cm3 > Para: m3commit at elegosoft.com, jkrell at elego.de > CC: m3devel at elegosoft.com > Fecha: martes, 22 de diciembre, 2009 22:42 > Hi all: > forgive my ignorance about the actual changes going on > below copied M3commit message of Monday, December 21, > 16:00:40 but what is this to have gcc code inside the > compiler libs, I recommend to check the strict rules about > this before performing such changes, Is there any problem > getting gcc code inside the runtime libraries, even if this > only used in level C code, this gets more C dependences in > non-M3 code we are not able to guarantee, better UNSAFE than > totally unmarked unsafe again. If this is not the case, and > just a piece of m3cc related code I don't disqualify it > yet. > Thanks in advance > > --- El lun, 21/12/09, Jay Krell > escribi?: > > > De: Jay Krell > > Asunto: [M3commit] CVS Update: cm3 > > Para: m3commit at elegosoft.com > > Fecha: lunes, 21 de diciembre, 2009 11:00 > > CVSROOT: /usr/cvs > > Changes by: > > jkrell at birch. 09/12/21 16:00:40 > > > > Modified files: > > > cm3/m3-libs/m3core/src/Csupport/libgcc/: > > libgcc.c > > > > cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: RTStackC.c > > > > cm3/m3-libs/m3core/src/runtime/DS3100/: > > RTStackC.c > > > cm3/m3-libs/m3core/src/runtime/POSIX/: > > RTOSbrk.c RTOSmmap.c > > > cm3/m3-libs/m3core/src/runtime/SOLgnu/: > > RTStackC.c > > > cm3/m3-libs/m3core/src/runtime/SOLsun/: > > RTStackC.c > > > cm3/m3-libs/m3core/src/runtime/WIN32/: > > RTOSc.c > > > > cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c > > > > Log message: > > add mising #ifdef cplusplus > extern "C" { > > } > > > > > > > > From jay.krell at cornell.edu Wed Dec 23 11:15:51 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 23 Dec 2009 10:15:51 +0000 Subject: [M3commit] libgcc.c In-Reply-To: <770199.13762.qm@web23608.mail.ird.yahoo.com> References: <20091221150040.B051E2474001@birch.elegosoft.com>, <770199.13762.qm@web23608.mail.ird.yahoo.com> Message-ID: Daniel, please look at the file. If you write the following sorts of Modula-3 code: PROCEDURE Add64(a,b: LONGINT):LONGINT= RETURN a + b; END Add64; PROCEDURE Mult64(a,b: LONGINT):LONGINT= RETURN a * b; END Mult64; PROCEDURE Div64(a,b: LONGINT):LONGINT= RETURN a / b; END Div64; Or the following sorts of C code: long long add64(long long a, long long b) { return a + b; } long long mult64(long long a, long long b) { return a * b; } long long div64(long long a, long long b) { return a / b; } fanything that does these operations, not just functions that /only/ do them, on some architectures (esp. 32 bit ones), the backend (or C compiler) will emit function calls. If gcc is the compiler/linker, it always throws libgcc.a or such, and the functions are resolved. Any C code has this property. libgcc.a is liberally licensed. Again, any C code possibly links in this code. On systems where m3cg is the backend but gcc is not the compiler/linker, e.g. SOLsun, you don't get libgcc.a, but you still get these function calls. Therefore, on a platform like SOLsun, the solution is write functions very much like the above, but with names that match what the backend emits. In fact, what might occur is Sun CC emits function calls to functions with yet other names. That's awfully inefficient (two function calls to do a multiply) but it does work. It might be good if we could teach m3cg about the function names used by other compilers/runtimes. But it's also probably only a problem on 32bit platforms and they are the past. Apparently there is some doubt as to if these functions are needed on 64bit platforms, as you can see in the comments (at least in the original). - Jay > Date: Wed, 23 Dec 2009 03:42:24 +0000 > From: dabenavidesd at yahoo.es > To: m3commit at elegosoft.com; jkrell at elego.de > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] [M3commit] CVS Update: cm3 > > Hi all: > forgive my ignorance about the actual changes going on below copied M3commit message of Monday, December 21, 16:00:40 but what is this to have gcc code inside the compiler libs, I recommend to check the strict rules about this before performing such changes, Is there any problem getting gcc code inside the runtime libraries, even if this only used in level C code, this gets more C dependences in non-M3 code we are not able to guarantee, better UNSAFE than totally unmarked unsafe again. If this is not the case, and just a piece of m3cc related code I don't disqualify it yet. > Thanks in advance > > --- El lun, 21/12/09, Jay Krell escribi?: > > > De: Jay Krell > > Asunto: [M3commit] CVS Update: cm3 > > Para: m3commit at elegosoft.com > > Fecha: lunes, 21 de diciembre, 2009 11:00 > > CVSROOT: /usr/cvs > > Changes by: > > jkrell at birch. 09/12/21 16:00:40 > > > > Modified files: > > cm3/m3-libs/m3core/src/Csupport/libgcc/: > > libgcc.c > > > > cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: RTStackC.c > > cm3/m3-libs/m3core/src/runtime/DS3100/: > > RTStackC.c > > cm3/m3-libs/m3core/src/runtime/POSIX/: > > RTOSbrk.c RTOSmmap.c > > cm3/m3-libs/m3core/src/runtime/SOLgnu/: > > RTStackC.c > > cm3/m3-libs/m3core/src/runtime/SOLsun/: > > RTStackC.c > > cm3/m3-libs/m3core/src/runtime/WIN32/: > > RTOSc.c > > > > cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c > > > > Log message: > > add mising #ifdef cplusplus extern "C" { > > } > > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Wed Dec 23 18:59:13 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 23 Dec 2009 18:59:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223175913.2ACF3CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/23 18:59:13 Modified files: cm3/m3-libs/m3core/src/C/Common/: Tag: release_branch_cm3_5_8 CerrnoC.c Log message: from head: calling convention From jkrell at elego.de Wed Dec 23 19:00:40 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 23 Dec 2009 19:00:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223180040.705D7CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/23 19:00:40 Modified files: cm3/m3-libs/sysutils/src/POSIX/: Tag: release_branch_cm3_5_8 SystemPosixC.c Log message: from head: remove lots of #includes From jkrell at elego.de Wed Dec 23 19:01:50 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 23 Dec 2009 19:01:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223180151.7FBDCCC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/23 19:01:50 Modified files: cm3/m3-libs/sysutils/src/: Tag: release_branch_cm3_5_8 SystemC.c Log message: from head: optimize, calling convention, Interix needs #define _REENTRANT From hosking at elego.de Wed Dec 23 22:37:02 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 22:37:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223213702.9BCF2CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 22:37:02 Modified files: cm3/m3-libs/m3core/src/word/: Long.i3 Long.m3 Word.i3 Word.m3 m3makefile Added files: cm3/m3-libs/m3core/src/word/: Word.ig Word.mg Removed files: cm3/m3-libs/m3core/src/word/: GenWord.ig GenWord.mg Log message: Move GenWord.ig and GenWord.mg to Word.ig and Word.mg. From hosking at elego.de Wed Dec 23 22:43:37 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 22:43:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223214337.31D18CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 22:43:37 Modified files: cm3/m3-libs/m3core/src/: m3makefile cm3/m3-libs/m3core/src/float/Common/: Extended.m3 LongReal.m3 Real.m3 cm3/m3-libs/m3core/src/float/IEEE/: Extended.i3 LongReal.i3 Real.i3 cm3/m3-libs/m3core/src/float/VAX/: Extended.i3 LongReal.i3 Real.i3 Added files: cm3/m3-libs/m3core/src/types/: ASCII.i3 ASCII.m3 Boolean.i3 Boolean.m3 COPYRIGHT-CMASS Char.i3 Char.m3 Int32.i3 Int32.m3 Int64.i3 Int64.m3 Integer.i3 Integer.m3 Longint.i3 Longint.m3 Refany.i3 Refany.m3 Unicode.i3 Unicode.m3 WideChar.i3 WideChar.m3 m3makefile Removed files: cm3/m3-libs/libm3/src/types/: ASCII.i3 ASCII.m3 Boolean.i3 Boolean.m3 COPYRIGHT-CMASS Char.i3 Char.m3 Int32.i3 Int32.m3 Int64.i3 Int64.m3 Integer.i3 Integer.m3 Longint.i3 Longint.m3 LongrealType.i3 LongrealType.m3 RealType.i3 RealType.m3 Refany.i3 Refany.m3 Unicode.i3 Unicode.m3 WideChar.i3 WideChar.m3 m3makefile Log message: Move libm3/src/types into m3core. Note that LongrealType and RealType have been folded into m3core/src/float. Clients will need adjustment. From hosking at elego.de Wed Dec 23 23:04:03 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 23:04:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223220403.80E792474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 23:04:03 Modified files: cm3/caltech-parser/cit_util/src/: m3makefile Log message: Fix renames. From hosking at elego.de Wed Dec 23 23:05:06 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 23:05:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223220506.1A322CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 23:05:06 Modified files: cm3/m3-demo/mentor/src/binpack/: RealList.i3 RealList.m3 m3makefile Log message: Fix renames for RealType=>Real and LongrealType=>LongReal. From hosking at elego.de Wed Dec 23 23:06:12 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 23:06:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223220612.AFB69CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 23:06:12 Modified files: cm3/m3-libs/arithmetic/src/basictypes/float/: m3makefile Removed files: cm3/m3-libs/arithmetic/src/basictypes/float/: ExtendedType.i3 ExtendedType.m3 Log message: Fix renames for RealType=>Real, LongrealType=>LongReal, ExtendedType=>Extended. From hosking at elego.de Wed Dec 23 23:07:00 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 23:07:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223220700.07726CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 23:07:00 Modified files: cm3/m3-libs/sortedtableextras/src/: RedBlackTbl.ig SkipListTbl.ig Log message: RealType=>Real. From hosking at elego.de Wed Dec 23 23:07:36 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 23:07:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223220736.799BCCC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 23:07:36 Modified files: cm3/m3-libs/synthesizer/src/: m3makefile Log message: LongrealType=>LongReal. From hosking at elego.de Wed Dec 23 23:13:16 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 23:13:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223221316.A05C62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 23:13:16 Modified files: cm3/m3-libs/m3core/src/types/: m3makefile Added files: cm3/m3-libs/m3core/src/types/: Address.i3 Address.m3 Log message: Add an Address type. From hosking at elego.de Wed Dec 23 23:39:13 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 23:39:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223223914.03AD02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 23:39:13 Added files: cm3/m3-libs/m3core/src/atomic/: Atomic.ig AtomicAddress.i3 AtomicBoolean.i3 AtomicChar.i3 AtomicInteger.i3 AtomicLongint.i3 AtomicRefany.i3 AtomicWideChar.i3 AtomicWord.i3 Log message: Working up the Atomic interface. Comments welcome. No implementation yet, so don't try using these... you'll get linkage errors. But they do compile. ;-) From jkrell at elego.de Thu Dec 24 16:10:28 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 24 Dec 2009 16:10:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091224151028.79086CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/24 16:10:28 Added files: cm3/m3-libs/m3core/src/atomic/: atomic.tmpl m3makefile Log message: Let it compile. Note that none of the *.i3 files are used here, identical copies are generated in the build directory. From hosking at elego.de Thu Dec 24 16:41:54 2009 From: hosking at elego.de (Antony Hosking) Date: Thu, 24 Dec 2009 16:41:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091224154154.274DD2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/24 16:41:54 Modified files: cm3/m3-libs/m3core/src/atomic/: m3makefile Log message: It's not a module (yet). From hosking at elego.de Thu Dec 24 16:50:16 2009 From: hosking at elego.de (Antony Hosking) Date: Thu, 24 Dec 2009 16:50:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091224155016.661982474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/24 16:50:16 Modified files: cm3/m3-libs/m3core/src/atomic/: m3makefile Removed files: cm3/m3-libs/m3core/src/atomic/: atomic.tmpl Log message: These will be compiler builtins like Word, so we shouldn't anticipate expanding more than exactly these interfaces. Remove the template file to discourage (impure) thoughts that we might. From rcoleburn at elego.de Tue Dec 29 19:22:50 2009 From: rcoleburn at elego.de (Randy Coleburn) Date: Tue, 29 Dec 2009 19:22:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091229182250.CC8702474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 09/12/29 19:22:50 Modified files: cm3/m3-libs/m3core/src/runtime/WIN32/: RTOSc.c Log message: convert from MAC to UNIX format so Microsoft C++ compiler on Windows will process the file. From rcoleburn at elego.de Tue Dec 29 19:24:32 2009 From: rcoleburn at elego.de (Randy Coleburn) Date: Tue, 29 Dec 2009 19:24:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091229182432.E5A222474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 09/12/29 19:24:32 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTIOc.c RTLinkerC.c Log message: convert from MAC to UNIX format so Microsoft C++ compiler on Windows will process the file. From rcoleburn at elego.de Wed Dec 30 01:00:21 2009 From: rcoleburn at elego.de (Randy Coleburn) Date: Wed, 30 Dec 2009 1:00:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091230000021.6DA362474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 09/12/30 01:00:21 Modified files: cm3/m3-libs/libm3/src/: m3makefile Log message: repair broken build process by commenting out the inclusion of "Types" folder because this folder is not in the source tree right now. From jkrell at elego.de Wed Dec 30 13:41:06 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Dec 2009 13:41:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091230124106.32C60CC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/30 13:41:06 Modified files: cm3/m3-libs/libm3/src/uid/POSIX/: getMID.c Log message: repair how the variable sized structs are walked demonstrate working code to get MAC addresses on Mac OS X, and perhaps other systems still to be worked into the real code but this is good From jkrell at elego.de Wed Dec 30 13:53:28 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Dec 2009 13:53:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091230125329.165C6CC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/30 13:53:28 Modified files: cm3/m3-libs/libm3/src/uid/POSIX/: getMID.c Log message: It sounds like this will work on Net/Free/OpenBSd as well. An option for pre-10.3 Mac OS X would be good too. From jkrell at elego.de Wed Dec 30 14:06:54 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Dec 2009 14:06:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091230130654.78F432474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/30 14:06:54 Added files: cm3/m3-libs/libm3/src/uid/POSIX/: GetPrimaryMACAddress.c Log message: initial copy of Apple sample code from: http://developer.apple.com/mac/library/samplecode/GetPrimaryMACAddress/ I expect this will work on older systems as well. Note that to compile/link it, you need to specify -framework IOKit -framework CoreFoundation I'll add that to the Darwin config files shortly. From jkrell at elego.de Wed Dec 30 14:08:14 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Dec 2009 14:08:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091230130814.5698E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/30 14:08:14 Modified files: cm3/m3-libs/libm3/src/uid/POSIX/: getMID.c Log message: remove redundant #include From jkrell at elego.de Wed Dec 30 14:13:30 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Dec 2009 14:13:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091230131330.7F0AA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/30 14:13:30 Modified files: cm3/m3-libs/libm3/src/uid/POSIX/: getMID.c Log message: remove volatile that was from when I wanted to look in the debugger but wasn't yet doing anything else From jkrell at elego.de Wed Dec 30 15:40:06 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Dec 2009 15:40:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091230144007.081152474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/30 15:40:06 Modified files: cm3/m3-libs/m3core/src/word/: Long.i3 Long.m3 Word.i3 Word.m3 m3makefile Added files: cm3/m3-libs/m3core/src/word/: GenWord.ig GenWord.mg Removed files: cm3/m3-libs/m3core/src/word/: Word.ig Word.mg Log message: go back to GenWord the other front end (Olivetti m3-tk) doesn't understand INTERFACE Word = Word(WordRep) END Word. but it does't understand INTERFACE Word = GenWord(WordRep) END Word. From jkrell at elego.de Wed Dec 30 15:49:43 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Dec 2009 15:49:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091230144944.1EAB52474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/30 15:49:43 Modified files: cm3/caltech-parser/cit_util/src/: m3makefile Log message: fix: LongReal => Longreal, in the local name, not the m3core name From jkrell at elego.de Tue Dec 1 10:34:03 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 1 Dec 2009 10:34:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091201093403.31BC62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/01 10:34:03 Modified files: cm3/m3-sys/m3cc/gcc/gcc/config/i386/: i386-interix.h cm3/m3-sys/m3cc/gcc/config/: mh-interix Log message: merge with Interix; esp. ASM_DECLARE_FUNCTION_NAME so that dlltool can tell data from functions and make import libs properly This lets us link shared, though running doesn't work yet. From jkrell at elego.de Tue Dec 1 10:42:38 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 1 Dec 2009 10:42:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091201094239.018082474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/01 10:42:38 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: I386_INTERIX Interix.common Log message: refactor a little, and twiddle with linking switches From jkrell at elego.de Tue Dec 1 10:46:24 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 1 Dec 2009 10:46:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091201094624.C87242474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/01 10:46:24 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Unix.common Log message: remove some ntdll special casing now that m3-win/ntdll does more itself From jkrell at elego.de Tue Dec 1 10:49:13 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 1 Dec 2009 10:49:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091201094913.28DE02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/01 10:49:13 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Unix.common Log message: for now turn off shared for Interix, pending more testing/debugging/fixing From jkrell at elego.de Tue Dec 1 10:54:46 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 1 Dec 2009 10:54:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091201095446.4FA2E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/01 10:54:46 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Unix.common Log message: cleanup: use new function AdjustShared to encapsulate the Interix check and the defined("install_symbolic_link") check (These config files with older compilers don't support shared, just building an up to date static compiler, and then using that to build stuff shared.) From rcoleburn at elego.de Tue Dec 1 17:55:12 2009 From: rcoleburn at elego.de (Randy Coleburn) Date: Tue, 1 Dec 2009 17:55:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091201165512.EA71F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 09/12/01 17:55:12 Modified files: cm3/m3-tools/cvsup/suplib/src/: m3makefile Log message: add missing "end" statement at line 58 to correct compile-time syntax error. Someone needs to check me on this one. After this change, I don't get any packages built in cvsup on WindowsXP, I suppose due to some prerequiste not being met. But at least I don't get the syntax error. Not sure why the package m3makefile seems to be limited to POSIX platforms at line 31. Everything was building on Windows before.--R.Coleburn Here is the compiler output before my correction: C:\cm3\Sandbox\cm3\m3-tools\cvsup\suplib>cm3 -verbose EVAL ("C:\cm3\bin\cm3.cfg") --- building in NT386 --- cd NT386 LIB_INSTALL is C:\cm3\lib ignoring ..\src\m3overrides EVAL ("m3make.args") rm .M3SHIP rm .M3OVERRIDES "C:\cm3\Sandbox\cm3\m3-tools\cvsup\suplib\NT386\m3make.args", line 5: quake runtime error: C:\cm3\Sandbox\cm3\m3-tools\cvsup\suplib\src\m3makefile, line 263: syntax error: "end" or "else" expected after "if" --procedure-- -line- -file--- include_dir -- 5 C:\cm3\Sandbox\cm3\m3-tools\cvsup\suplib\NT386\m3make.args Fatal Error: package build failed seconds #times operation 0.03 2 removing temporary files 0.03 other --------------------------------------------------- 0.06 TOTAL rm m3make.args cd .. C:\cm3\Sandbox\cm3\m3-tools\cvsup\suplib> From jkrell at elego.de Wed Dec 2 01:56:35 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 2 Dec 2009 1:56:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091202005636.38FF52474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/02 01:56:35 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c m3makefile Removed files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadInterix.c Log message: remove interix stuff for now It wasn't a terrible idea and Interix isn't useless, but it seems you can only get a suspend/resume handle to a thread on the first thread, not anything created with pthread_create, very surprising (also can't getcontext) a few not great options remain: use semaphore/signal but rely on all traced references to always be on stack; fairly viable if you don't optimize, though a little tricky when the references are first created? make/get/set/swapcontext - no, they aren't present sigstack/sigaltstack -- not present stuff in /proc -- yes very promising From jkrell at elego.de Wed Dec 2 02:19:17 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 2 Dec 2009 2:19:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091202011917.AB6C82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/02 02:19:17 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.i3 Log message: fix From wagner at elego.de Wed Dec 2 18:09:27 2009 From: wagner at elego.de (Olaf Wagner) Date: Wed, 2 Dec 2009 18:09:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091202170927.D5E9D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 09/12/02 18:09:27 Modified files: cm3/www/: Tag: release_branch_cm3_5_8 download.html news.html cm3/www/releng/: Tag: release_branch_cm3_5_8 update-releng-index.sh Log message: some fixes and additions for RC4 From jkrell at elego.de Thu Dec 3 11:32:14 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 11:32:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203103214.908142474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 11:32:14 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: remove gratuitous use of a traced ref: FreeSlow(untraced me) instead of FreeSlot(traced self) From jkrell at elego.de Thu Dec 3 11:35:41 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 11:35:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203103541.CFD7F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 11:35:41 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: NIL stackPointer when not suspended From jkrell at elego.de Thu Dec 3 11:49:31 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 11:49:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203104932.0A6602474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 11:49:31 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: newlines to try to unhide the important line From jkrell at elego.de Thu Dec 3 11:53:58 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 11:53:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203105358.8BA47CC3B1@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 11:53:58 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: - fix previous change to FreeSlot; it needs both, for the sanity check - inline RunThread in its only caller ThreadBase I see no real distinction between them, and the stack address is found such that the inlining won't break it. From jkrell at elego.de Thu Dec 3 11:56:44 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 11:56:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203105644.24D442474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 11:56:44 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: -CONST debug = FALSE; +VAR DEBUG := RTParams.IsPresent("debugthreads"); to be more like pthreads (though we don't currently print the same stuff) From jkrell at elego.de Thu Dec 3 13:32:44 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 13:32:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203123244.1EDDB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 13:32:44 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: initial activation starts out not suspended (fixes the cm3ide assert stackpointer # NIL) From jkrell at elego.de Thu Dec 3 13:36:42 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 13:36:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203123642.2563B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 13:36:42 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: cm3.cfg Log message: fix warning from cm3ide about EOL not defined (this .cfg file isn't perhaps mainstream, it isn't what a release installs From jkrell at elego.de Thu Dec 3 13:41:22 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 13:41:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203124122.930032474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 13:41:22 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadContext.i3 Log message: add ExtendedRegisters from newer headers, though it doesn't really gain anything and it costs us an extra 512 bytes per thread From jkrell at elego.de Thu Dec 3 13:43:19 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 13:43:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203124319.CD7262474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 13:43:19 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: ThreadWin32__threadIndex => static threadIndex From jkrell at elego.de Thu Dec 3 13:47:22 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 13:47:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203124722.9A25A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 13:47:22 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: structure more like ThreadPThread.m3: ProcessLive ProcessStopped ProcessMe ProcessOther etc. including pushing some processor-dependency into C however this code still knows the sizeof CONTEXT In fact these functions now exist in both and are practically identical. But Win32 print the more useful act.handle instead of act. And win32 is a little different wrt context. From jkrell at elego.de Thu Dec 3 13:55:26 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 13:55:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203125527.245802474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 13:55:26 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.m3 Log message: fix suspendCount of initial thread From jkrell at elego.de Thu Dec 3 14:29:28 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 14:29:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203132928.A6700CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 14:29:28 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: SchedulerPosix.m3 ThreadWin32.i3 ThreadWin32.m3 Log message: begin moving fields from traced to untraced to match pthreads in this diff: waitSema alertable alerted still tbd: waitingOn nextWaiter From jkrell at elego.de Thu Dec 3 19:47:43 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 19:47:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203184744.5AB022474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 19:47:43 Modified files: cm3/m3-libs/m3core/src/thread/Common/: ThreadDebug.i3 Log message: loosen types up completely as I'll be changing some and they don't really matter From jkrell at elego.de Thu Dec 3 20:00:04 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 20:00:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203190004.3C4CE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 20:00:04 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: reduce dependency on cloned headers From jkrell at elego.de Thu Dec 3 20:26:42 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 20:26:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203192642.846A42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 20:26:42 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: m3makefile Log message: make ThreadContext interface private From jkrell at elego.de Thu Dec 3 20:27:58 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 20:27:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203192758.6A727CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 20:27:58 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: reduce but don't eliminate dependency on header cloning, at the cost of an extra heap allocation per thread (up from 2 to 3, but we can probably get it back down by allocation the entire Activation in C (RTSignal.m3 still depends on the header cloning)) From jkrell at elego.de Thu Dec 3 20:42:35 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 20:42:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203194235.545B02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 20:42:35 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: fix leak upon out of memory From jkrell at elego.de Thu Dec 3 20:45:59 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 20:45:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203194600.050382474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 20:45:59 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: calling convention From jkrell at elego.de Thu Dec 3 21:02:37 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 21:02:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203200238.F31D42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 21:02:37 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: add more check for low resources; fix hang in stubgen by stopping scanning stack earlier (a bit of a mystery?) From jkrell at elego.de Thu Dec 3 21:47:59 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 21:47:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203204759.1E07D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 21:47:59 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: all but start threads not suspended it seems nearly impossible to start them running unless we want to use an extra DuplicateHandle for act.handle, in the thread structure more like pthreads specifically add to the list of active threads in the new thread instead of fork structure the try/finally nicer initialize local to nil and try/finally the entire function really fix deadlock where thread can't finish and remove itself from active list because suspendothers already has the lock, and suspendthread..works, but then GetContextAndCheckStack fails because start/end are nil From jkrell at elego.de Thu Dec 3 21:52:20 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 21:52:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203205220.9F4472474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 21:52:20 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: in resume, allow that dying threads maybe aren't suspended -- hm. probably we should just remove from the list earlier? From jkrell at elego.de Thu Dec 3 21:58:09 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 3 Dec 2009 21:58:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091203205809.9C60B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/03 21:58:09 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: further fix assertion From jkrell at elego.de Fri Dec 4 11:41:06 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 4 Dec 2009 11:41:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091204104106.AF5F42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/04 11:41:06 Modified files: cm3/m3-libs/m3core/src/C/Common/: CstdioC.c Log message: a lot more wrappers, and much more mechanical From jkrell at elego.de Sun Dec 6 10:52:38 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 10:52:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206095238.CF2012474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 10:52:38 Modified files: cm3/scripts/examples/: make-juno.sh Log message: cleanup (flushing code before deleting/recreating tree) From jkrell at elego.de Sun Dec 6 10:54:18 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 10:54:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206095418.5D2CACC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 10:54:18 Modified files: cm3/doc/notes/: building-old.txt Log message: some updates I had From jkrell at elego.de Sun Dec 6 11:31:58 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 11:31:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206103158.642F9CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 11:31:57 Modified files: cm3/scripts/python/: pylib.py Log message: build the cross m3cc/m3cg in boot1.py From jkrell at elego.de Sun Dec 6 12:11:50 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 12:11:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206111150.177542474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 12:11:50 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c m3makefile cm3/scripts/python/: pylib.py Log message: fix Apple (abort not declared, stack_grows_down unknown) fix possible problem in FreeBSD fix bootstrapping Apple and FreeBSD that is: restructure elationship of ThreadPThreadC.c, ThreadApple.c, ThreadFreeBSD.c #include the later in the earlier, so more is in scope (so stack_grows_down remains static; #include would have been easy) use pgm_source to insure the files get into the boot archive and hack pylib.py to special case and not compile ThreadApple|FreeBSD.c From jkrell at elego.de Sun Dec 6 12:28:54 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 12:28:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206112854.75D982474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 12:28:54 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UtimeC.c Log message: fix assertions for AMD64_DARWIN where timeval unfortunately contains undeclared padding From jkrell at elego.de Sun Dec 6 12:34:16 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 12:34:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206113417.201022474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 12:34:16 Modified files: cm3/m3-libs/m3core/src/time/POSIX/: DateBsd.m3 DatePosix.m3 Log message: go back to long standing versions without mutex I still think there might be something fishy here like wrt the timezone changing as the process runs From jkrell at elego.de Sun Dec 6 13:13:33 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 13:13:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206121333.E95CA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 13:13:33 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadApple.c ThreadFreeBSD.c ThreadPThreadC.c m3makefile Log message: Try again. Compile the files separately. Add #include stdlib.h and move the assert(stack_grows_down) to ThreadPThreadC.c. Alternative would be to: - remove it altogether - compute it in ThreadApple.c - or rename it ThreadPThread__stack_grows_down (or Thread__stack_grows_down) From jkrell at elego.de Sun Dec 6 13:14:30 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 13:14:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206121430.9EEAE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 13:14:30 Modified files: cm3/scripts/python/: pylib.py Log message: remove ThreadApple.c/ThreadFreeBSD.c hack From jkrell at elego.de Sun Dec 6 13:29:42 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 13:29:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206122942.DB1562474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 13:29:42 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: a little more aggressive handling of EAGAIN and ENOMEM if pthread_create/pthread_mutex_init/pthread_cond_init fail with either, try again right away; if they fail again, sleep(1) and try again; this logic could be put into the Modula-3 as it is portable and such (Posix doesn't allow pthread_create to return ENOMEM though it seems reasonable; also a smaller sleep might be reasonable, and so would sleep/retrying even more, it's a difficult to resolve philosophical/engineering dilemna..) From jkrell at elego.de Sun Dec 6 13:58:54 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 13:58:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206125854.B9F46CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 13:58:54 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.i3 UnixC.c Log message: add wrapper for sleep +<*EXTERNAL Unix__sleep*> PROCEDURE sleep (a: unsigned): unsigned; +unsigned Unix__sleep(unsigned i) { return sleep(i); } From jkrell at elego.de Sun Dec 6 14:06:33 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 14:06:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206130633.752C9CC816@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 14:06:33 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: ProcessPosixCommon.m3 Log message: On Interix in particular, I have seen bash often say something like fork: Resource temporarily unavailable, retry and then it seems to work upon retry. Therefore, put in sleep/retry for fork returning EAGAIN, and we throw in ENOMEM as well, based closely on the bash code, which is very little. (does sleep(0,1,2,4,8),giveup) From jkrell at elego.de Sun Dec 6 14:10:57 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 14:10:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206131057.3B57D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 14:10:57 Modified files: cm3/m3-libs/m3core/src/time/POSIX/: Tag: release_branch_cm3_5_8 DateBsd.m3 Log message: use predeclared MUTEX instead of Thread.Mutex (copied from head) From jkrell at elego.de Sun Dec 6 14:12:15 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 14:12:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206131215.09B93CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 14:12:15 Modified files: cm3/m3-libs/m3core/src/time/POSIX/: Tag: release_branch_cm3_5_8 TimePosixC.c Log message: sync unused file with head From jkrell at elego.de Sun Dec 6 14:21:36 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 14:21:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206132136.BD5AACC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 14:21:36 Added files: cm3/m3-libs/m3core/src/time/POSIX/: DateBsdNoLock.m3 Log message: initial copyunchanged of DateBsd.m3 From jkrell at elego.de Sun Dec 6 14:37:22 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 14:37:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206133722.E9D992474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 14:37:22 Modified files: cm3/m3-libs/m3core/src/time/POSIX/: DateBsd.m3 m3makefile Removed files: cm3/m3-libs/m3core/src/time/POSIX/: DateBsdNoLock.m3 Log message: use grep -v to remove the references to " mu " in DateBsd.m3 when compiling for KernelThreads/pthreads, as their threading library will swap the localtime/asctime/etc. buffers when they swap threads (or switch to a new bank of thread locals, etc.) Unnecessary locks are bad. From jkrell at elego.de Sun Dec 6 14:39:27 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 14:39:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206133927.B7C682474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 14:39:27 Modified files: cm3/m3-libs/m3core/src/time/POSIX/: m3makefile Log message: fix incrementality and remove echo From jkrell at elego.de Sun Dec 6 15:35:53 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 15:35:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206143554.7D24C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 15:35:53 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: print some information when the error occurs From jkrell at elego.de Sun Dec 6 16:18:19 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 6 Dec 2009 16:18:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206151819.8F9882474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/06 16:18:19 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadPThread.m3 Log message: cover more of the stack for the GC to find references; this seems to significantly reduce the problems, but not eliminate them; the detach often fails still, r=3, and capturing local handle := me.handle and then asserting they match often finds the local handle = NIL From hosking at elego.de Sun Dec 6 20:12:00 2009 From: hosking at elego.de (Antony Hosking) Date: Sun, 6 Dec 2009 20:12:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091206191200.3A0DDCC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/06 20:12:00 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Revert to structure like 163. We are seeing the same complaint Jay had commented on in the commit for 170. A race unless we hold activeMu when setting stackbase. From jkrell at elego.de Mon Dec 7 07:42:17 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 7:42:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207064217.CE2EE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 07:42:17 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: slightly reduce critical section and remove unnecessary variable From jkrell at elego.de Mon Dec 7 08:03:41 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 8:03:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207070341.B79972474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 08:03:41 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: remove some derefences of traced references, remove RTIO use I had just put in, NIL the traced references that we aren't allowed to use (which should get optimized away but ok either way) From jkrell at elego.de Mon Dec 7 08:17:17 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 8:17:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207071717.4FFA92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 08:17:17 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c Log message: partial merge from head use pthread_detach_self() C function that does pthread_detach(pthread_self()) instead of relying on act.handle, which should work; hm? some cosmetic commenting drop traced refs by storing NIL, shouldn't make a difference stackbase was already managed roughly like head From jkrell at elego.de Mon Dec 7 08:54:05 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 8:54:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207075405.C293E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 08:54:05 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: Try a bit to deal with low resources in more places: sem_init pthread_attr_init pthread_key_create pthread_setspecific These are all documented as possibly returning one or more of: ENOMEM ENOSPC (sem_init) EAGAIN From jkrell at elego.de Mon Dec 7 08:55:40 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 8:55:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207075540.1EFCE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 08:55:40 Added files: cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadApple.c ThreadFreeBSD.c Log message: new files from head From jkrell at elego.de Mon Dec 7 09:00:56 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 9:00:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207080056.D83B6CC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 09:00:56 Added files: cm3/m3-libs/m3core/src/C/Common/: Tag: release_branch_cm3_5_8 CsignalC.c CstdlibC.c CstringC.c Log message: new files from head, not active in release, may or may not become so From jkrell at elego.de Mon Dec 7 09:48:44 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 9:48:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207084844.F31B62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 09:48:44 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UdirC.c Uexec.c Uin.c Umman.c UnixC.c m3unix.h Log message: mechanize wrappers via preprocessing From jkrell at elego.de Mon Dec 7 09:59:23 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 9:59:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207085923.9EAAC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 09:59:23 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uprocess.c Usignal.c Usocket.c Uugid.c Uuio.c Uutmp.c m3unix.h Log message: mechanize more wrappers From jkrell at elego.de Mon Dec 7 10:07:17 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 10:07:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207090717.4BD0D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 10:07:17 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UdirC.c Upwd.c UstatC.c Uucontext.c Log message: mechanize a few more wrappers From jkrell at elego.de Mon Dec 7 10:11:21 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 10:11:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207091121.4E5882474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 10:11:21 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UdirC.c Uin.c Umman.c Uprocess.c Upwd.c Usignal.c Uugid.c Uuio.c Uutmp.c m3unix.h Log message: put extern "C" in the macros so that the really simple files can be even a few lines shorter (really we could just delete the extern "C" probably, but I still like the idea) From jkrell at elego.de Mon Dec 7 10:15:13 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 10:15:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207091513.C922E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 10:15:13 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uprocess.c Log message: fix typo From jkrell at elego.de Mon Dec 7 11:53:36 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 11:53:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207105336.272B1CC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 11:53:36 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 ThreadPThreadC.c Log message: account for that I moved nulling stackbase to outside a lock -- don't reread it after checking it, just read it once and check it once after that (I don't understand this heap thread state stuff, ok?) From jkrell at elego.de Mon Dec 7 11:57:57 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 11:57:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207105757.EA9D82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 11:57:57 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: whitespace to line up columns; cosmetic to hilight the critical line in RunThread From jkrell at elego.de Mon Dec 7 12:03:03 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 12:03:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207110303.D0D52CC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 12:03:03 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: fill in some LockingLevel comments empirically/transitively so I can see how act.handle is dealt with From jkrell at elego.de Mon Dec 7 12:29:48 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 12:29:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207112948.2032C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 12:29:48 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c Log message: resolve the race setting act.handle by setting it in ThreadBase to pthread_self before adding the thread to the active list; this can happen as far as I can tell before pthread_create actually returns or writes the resulting handle in the creating thread From jkrell at elego.de Mon Dec 7 12:37:53 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 12:37:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207113754.4B19E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 12:37:53 Added files: cm3/m3-libs/m3core/src/: m3core.h Log message: initial copy of m3unix.h From jkrell at elego.de Mon Dec 7 12:38:17 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 12:38:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207113817.9BEF92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 12:38:17 Modified files: cm3/m3-libs/m3core/src/: m3core.h Log message: change #ifdef guard to reflect new name From jkrell at elego.de Mon Dec 7 12:39:30 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 12:39:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207113930.21E73CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 12:39:30 Modified files: cm3/m3-libs/m3core/src/: m3makefile cm3/m3-libs/m3core/src/unix/Common/: m3unix.h Log message: add m3core.h and have m3unix.h just #include it From jkrell at elego.de Mon Dec 7 12:45:05 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 12:45:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207114506.05264CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 12:45:05 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTOSbrk.c RTOSmmap.c cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadApple.c ThreadFreeBSD.c ThreadPThreadC.c cm3/m3-libs/m3core/src/time/POSIX/: DatePosixC.c TimePosixC.c cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c UdirC.c Uexec.c Ugrp.c Uin.c Umman.c Unetdb.c UnixC.c UnixLink.c Uprocess.c Upwd.c Usignal.c Usocket.c UstatC.c UtimeC.c Uucontext.c Uugid.c Uuio.c Uutmp.c Log message: switch from m3unix.h to m3core.h From jkrell at elego.de Mon Dec 7 13:09:10 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 13:09:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207120910.77E922474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 13:09:10 Modified files: cm3/m3-libs/m3core/src/C/Common/: CsignalC.c CstdioC.c CstdlibC.c CstringC.c Log message: use m3core.h's macros for wrappers, at least for functions that don't return void From jkrell at elego.de Mon Dec 7 13:19:19 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 13:19:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207121919.19D282474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 13:19:19 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: a few mechanical wrappers From jkrell at elego.de Mon Dec 7 13:56:00 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 13:56:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207125600.68F97CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 13:56:00 Modified files: cm3/m3-libs/libm3/src/rw/: Tag: release_branch_cm3_5_8 AutoFlushWr.m3 FileWr.m3 Rd.m3 UnsafeWr.i3 Wr.m3 Log message: copy from head (nudged by Peter's mail): have AutoFlush always copy all the fields copying not all of them is a micro optimization and more importantly, hard to know the correctness of some functions Foo where already implemented as LOCK UnsafeFoo this seems like a good pattern; do it more From jay.krell at cornell.edu Mon Dec 7 14:01:39 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 7 Dec 2009 13:01:39 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091207125600.68F97CC812@birch.elegosoft.com> References: <20091207125600.68F97CC812@birch.elegosoft.com> Message-ID: 1) diff attached (cvsweb stinks, textual diffs aren't great either..) 2) "(* We don't call FastSeek here because it fails if wr.child is not seekable, even if n = wr.cur. *)" Maybe that is a bug? It should be ok to seek to the current position in a non-seekable stream? - Jay > Date: Mon, 7 Dec 2009 13:56:00 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/07 13:56:00 > > Modified files: > cm3/m3-libs/libm3/src/rw/: Tag: release_branch_cm3_5_8 > AutoFlushWr.m3 FileWr.m3 Rd.m3 > UnsafeWr.i3 Wr.m3 > > Log message: > copy from head (nudged by Peter's mail): > have AutoFlush always copy all the fields > copying not all of them is a micro optimization and more importantly, hard to know the correctness of > some functions Foo where already implemented as > LOCK > UnsafeFoo > this seems like a good pattern; do it more > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 1.txt URL: From jkrell at elego.de Mon Dec 7 14:46:57 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 14:46:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207134658.5D0812474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 14:46:57 Modified files: cm3/: m3overrides Log message: add some caltech-parser stuff From jkrell at elego.de Mon Dec 7 14:49:17 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 14:49:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207134917.5BA1D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 14:49:17 Modified files: cm3/: m3overrides Log message: add commented out the caltech-parser packages that we don't have From jkrell at elego.de Mon Dec 7 14:51:36 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 14:51:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207135136.5E9F3CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 14:51:36 Modified files: cm3/caltech-parser/: m3overrides cm3/caltech-parser/cit_common/src/: m3overrides cm3/caltech-parser/cit_util/src/: m3overrides cm3/caltech-parser/drawcontext/dcpane/src/: m3overrides cm3/caltech-parser/drawcontext/kgv/src/: m3overrides cm3/caltech-parser/drawcontext/src/: m3overrides cm3/caltech-parser/drawcontext/test/src/: m3overrides cm3/caltech-parser/hack/src/: m3overrides cm3/caltech-parser/m3browserhack/src/: m3overrides cm3/caltech-parser/m3tmplhack/src/: m3overrides cm3/caltech-parser/paneman/kemacs/src/: m3overrides cm3/caltech-parser/paneman/src/: m3overrides cm3/caltech-parser/parserlib/: m3overrides cm3/caltech-parser/parserlib/kext/src/: m3overrides cm3/caltech-parser/parserlib/klex/src/: m3overrides cm3/caltech-parser/parserlib/klexlib/src/: m3overrides cm3/caltech-parser/parserlib/ktok/src/: m3overrides cm3/caltech-parser/parserlib/ktoklib/src/: m3overrides cm3/caltech-parser/parserlib/kyacc/src/: m3overrides cm3/caltech-parser/parserlib/kyacclib/src/: m3overrides cm3/caltech-parser/parserlib/parserlib/src/: m3overrides cm3/caltech-parser/parserlib/parserlib/test/src/: m3overrides cm3/caltech-parser/parserlib/parserlib/test_stdin/src/: m3overrides cm3/caltech-parser/term/src/: m3overrides Log message: just include toplevel m3overrides From jkrell at elego.de Mon Dec 7 15:18:43 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 7 Dec 2009 15:18:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091207141843.543BDCC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/07 15:18:43 Modified files: cm3/: m3overrides Log message: set _NETOBJ_OVERRIDE, _SHAREDOBJ_OVERRIDE From jkrell at elego.de Wed Dec 9 09:45:27 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Dec 2009 9:45:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091209084527.9DA272474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/09 09:45:27 Modified files: cm3/: m3overrides Log message: comment out _NETOBJ_OVERRIDE, _NETOBJ_OVERRIDE until I understand better how this works From jkrell at elego.de Wed Dec 9 09:54:22 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Dec 2009 9:54:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091209085422.88FB02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/09 09:54:22 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: keep alertable = FALSE except in AlertWait, so that LockMutex doesn't have to touch it, as part of removing giant lock from LockMutex / UnlockMutex From jkrell at elego.de Wed Dec 9 09:57:08 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Dec 2009 9:57:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091209085708.389602474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/09 09:57:08 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: go back a version From jkrell at elego.de Wed Dec 9 14:08:56 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Dec 2009 14:08:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091209130856.F274A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/09 14:08:56 Modified files: cm3/m3-libs/m3core/src/runtime/WIN32/: RTOS.m3 Log message: just enter debugger right away, don't waste time and state suspending other threads, the debugger will suspend all and won't care if they are busy in the Modula-3 heap allocator From jkrell at elego.de Wed Dec 9 15:17:47 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Dec 2009 15:17:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091209141747.B76EF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/09 15:17:47 Modified files: cm3/m3-libs/m3core/src/: Tag: release_branch_cm3_5_8 m3makefile Added files: cm3/m3-libs/m3core/src/: Tag: release_branch_cm3_5_8 m3core.h Log message: bring over files from head From jkrell at elego.de Wed Dec 9 15:20:15 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Dec 2009 15:20:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091209142015.206762474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/09 15:20:15 Modified files: cm3/m3-libs/m3core/src/C/Common/: Tag: release_branch_cm3_5_8 CerrnoC.c CsignalC.c CstdioC.c CstdlibC.c CstringC.c m3makefile Log message: bring files from head notice no change to the *3 files, so most of this goes unused when running binaries built against the release *.i3 files, but for binaries from head, there will be some extra exports that might let them work and some existing wrappers are "rewritten" as well From jkrell at elego.de Wed Dec 9 15:26:55 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Dec 2009 15:26:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091209142655.DE4832474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/09 15:26:55 Modified files: cm3/m3-libs/m3core/src/C/Common/: CstdioC.c Log message: remove possibly less portable P_tmpdir -- MSVC stdio.h seems to /sometimes/ though rarely not defined it? From jkrell at elego.de Thu Dec 10 08:09:35 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 8:09:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210070935.674CDCC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 08:09:35 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: greatly mitigate the possible giantLock/heapLock deadlock Another problem was found, so maybe this wasn't really there, maybe. From jkrell at elego.de Thu Dec 10 08:13:34 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 8:13:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210071334.EC9472474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 08:13:34 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: fix extraction of stack pointer from context (fixes hang) From jkrell at elego.de Thu Dec 10 08:38:43 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 8:38:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210073844.06CE62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 08:38:43 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: Fix race condition that I saw "fail", around management of stack bounds and the read, check, read again pattern. Instead just read once and check. (There is an assumption of a certain level of non-optimization here; let's throw in barriers shortly.) From jkrell at elego.de Thu Dec 10 08:44:33 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 8:44:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210074433.9F8FA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 08:44:33 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: move comments for readability From jkrell at elego.de Thu Dec 10 12:23:50 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 12:23:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210112350.C45E62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 12:23:50 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: prepare to remove use of giant lock from LockMutex / UnlockMutex modify slightly alertable so that LockMutex doesn't have to change it From jkrell at elego.de Thu Dec 10 12:26:48 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 12:26:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210112648.61D512474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 12:26:48 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: and then stop writing to alertable in LockMutex (so that giant lock not needed in LockMutex/UnlockMutex) From jkrell at elego.de Thu Dec 10 13:18:48 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 13:18:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210121848.995162474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 13:18:48 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: Change LockMutex into basically just EnterCriticalSection, UnlockMutex into basically just LeaveCriticalSection. No more use of giant lock or Self() in them. This precludes an optimization of condition variables mentioned by Birrel (not shown by him, but easy to understand, but also it was never done here). Before long we'll probably just switch to Java's implementation anyway, which doesn't have a giant lock (if/when I understand it better, or maybe Tony will do this, since it might improve pthreads also and sounds like he wants to). Note this makes LockMutex/UnlockMutex very much resemble the .v0 and .v1 files that were left here. (which I went back and made the code look more like; not maintaining a uint32 "holder" threadi but just a boolean "held", but without the cache and still using C to know about the size of a critical section) remove incorrect lockingLevel comments in the perf code Note that I think perflocking should be moved one line up in LockMutex, but I match pthreads here, and it doesn't really matter From jkrell at elego.de Thu Dec 10 13:26:45 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 13:26:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210122645.5A53E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 13:26:45 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: put back assertion that alertable is false upon LockMutex From jkrell at elego.de Thu Dec 10 13:38:21 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 13:38:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210123821.524022474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 13:38:21 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: move comment for readabilty From jkrell at elego.de Thu Dec 10 16:08:58 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 16:08:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210150858.0B8432474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 16:08:58 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: rename Lock => LockRE for recursive/exclusive so that we might introduce LockE for exclusive From jkrell at elego.de Thu Dec 10 16:21:26 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 16:21:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210152126.9C79CCC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 16:21:26 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadContext.i3 ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: copy from head plus minor changes RTThread vs. ThreadInternal stop vs. limit in parameter names several changes from head: movement of some fields from Thread.T (traced) to Thread.Activation (untraced) LockMutex/UnlockMutex is just EnterCriticalSection/LeaveCriticalSection reads from global slots array are lockless (this is how Self() translates from untraced to traced) stack boundary is accurately known (not tested on Win9x) InitialStackBase removed in favor of something more efficient (not tested on Win9x) hack to verify stack addresses removed (removal of VerifySP function) some x86-isms factored into #ifdefed C the size and the fields of CONTEXT static locks changed back to variables instead of functions (really this could go either way) write into traced objects "immediately" before taking giant lock to greatly mitigate deadlock (what is the right fix here? To merge giantlock and heaplock??) (to check that allocator only uses locks and not conditions, now that locks don't use giantlock?) From jkrell at elego.de Thu Dec 10 16:38:17 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 16:38:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210153817.E80E52474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 16:38:17 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32C.c Log message: Unlock => UnlockRE also typedef CRITICAL_SECTION LockRE_t and push that around From jkrell at elego.de Thu Dec 10 16:39:32 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 16:39:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210153932.38C722474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 16:39:32 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.i3 ThreadWin32C.c Log message: Unlock => UnlockRE From hosking at cs.purdue.edu Thu Dec 10 17:16:08 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 10 Dec 2009 11:16:08 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091210150858.0B8432474001@birch.elegosoft.com> References: <20091210150858.0B8432474001@birch.elegosoft.com> Message-ID: <53223867-4659-46D1-A1E9-4C5760E85EC9@cs.purdue.edu> Umm. Modula-3 locks are *not* recursive... Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 10 Dec 2009, at 16:08, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/10 16:08:58 > > Modified files: > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 > ThreadWin32.m3 > ThreadWin32C.c > > Log message: > rename Lock => LockRE for recursive/exclusive > so that we might introduce LockE for exclusive -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Dec 10 17:20:56 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 10 Dec 2009 16:20:56 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <53223867-4659-46D1-A1E9-4C5760E85EC9@cs.purdue.edu> References: <20091210150858.0B8432474001@birch.elegosoft.com>, <53223867-4659-46D1-A1E9-4C5760E85EC9@cs.purdue.edu> Message-ID: There are internal locks that are -- all the static locks in ThreadWin32. Thread.Mutex is not. Maybe some of them need not be? I have a simple implementation but it fails. - Jay From: hosking at cs.purdue.edu Date: Thu, 10 Dec 2009 11:16:08 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 Umm. Modula-3 locks are *not* recursive... Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 On 10 Dec 2009, at 16:08, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 16:08:58 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: rename Lock => LockRE for recursive/exclusive so that we might introduce LockE for exclusive -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Dec 10 17:23:35 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 10 Dec 2009 11:23:35 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20091210150858.0B8432474001@birch.elegosoft.com>, <53223867-4659-46D1-A1E9-4C5760E85EC9@cs.purdue.edu> Message-ID: On 10 Dec 2009, at 11:20, Jay K wrote: > There are internal locks that are -- all the static locks in ThreadWin32. Perhaps it doesn't matter. > Thread.Mutex is not. > Maybe some of them need not be? > I have a simple implementation but it fails. ? > > - Jay > > > From: hosking at cs.purdue.edu > Date: Thu, 10 Dec 2009 11:16:08 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Umm. Modula-3 locks are *not* recursive... > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 > > > > > On 10 Dec 2009, at 16:08, Jay Krell wrote: > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/10 16:08:58 > > Modified files: > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 > ThreadWin32.m3 > ThreadWin32C.c > > Log message: > rename Lock => LockRE for recursive/exclusive > so that we might introduce LockE for exclusive > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Dec 10 17:53:57 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 10 Dec 2009 16:53:57 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20091210150858.0B8432474001@birch.elegosoft.com>, , <53223867-4659-46D1-A1E9-4C5760E85EC9@cs.purdue.edu>, , Message-ID: Maybe some of them need not be? I have a simple implementation but it fails. ? Attached. Tried to put this in for Thread.Mutex, not the static locks. It is based on the Java code. NewLockE, LockE, UnlockE. typedef struct _LockE_t { /* E = exclusive */ long count; int owner; HANDLE event; } LockE_t; void __cdecl ThreadWin32__DeleteLockE(LockE_t* lock) /* E = exclusive */ { if (lock) { HANDLE event = lock->event; assert(lock->owner == 0); assert(lock->count == -1); if (event) CloseHandle(event); HeapFree(GetProcessHeap(), 0, lock); } } LockE_t* __cdecl ThreadWin32__NewLockE(void) /* E = exclusive */ { HANDLE event; LockE_t* lock = (LockE_t*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*lock)); if (!lock) goto Error; lock->owner = 0; lock->count = -1; if (!(lock->event = CreateEventA(0, 0, 0, 0))) goto Error; return lock; Error: ThreadWin32__DeleteLockE(lock); return NULL; } void __cdecl ThreadWin32__LockE(LockE_t* lock) /* E = exclusive */ { if (InterlockedIncrement(&lock->count) != 0) WaitForSingleObject(lock->event, INFINITE); assert(lock->owner == 0); lock->owner = GetCurrentThreadId(); } void __cdecl ThreadWin32__UnlockE(LockE_t* lock) /* E = exclusive */ { assert(lock->owner == GetCurrentThreadId()); lock->owner = 0; if (InterlockedDecrement(&lock->count) >= 0) SetEvent(lock->event); } - Jay From: hosking at cs.purdue.edu Date: Thu, 10 Dec 2009 11:16:08 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 Umm. Modula-3 locks are *not* recursive... Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 On 10 Dec 2009, at 16:08, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 16:08:58 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: rename Lock => LockRE for recursive/exclusive so that we might introduce LockE for exclusive -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: ThreadWin32C.c URL: From jkrell at elego.de Thu Dec 10 17:56:24 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 17:56:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210165624.BEB752474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 17:56:24 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: BroadcastHeap's caller must already have the heap lock From jkrell at elego.de Thu Dec 10 18:03:04 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 18:03:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210170304.14592CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 18:03:04 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: go back a version From jkrell at elego.de Thu Dec 10 18:12:01 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 18:12:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210171201.4AE7ACC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 18:12:01 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: try again: BroadcastHeap's caller needs to have heap lock already From jay.krell at cornell.edu Thu Dec 10 18:21:10 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 10 Dec 2009 17:21:10 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20091210150858.0B8432474001@birch.elegosoft.com>, , , <53223867-4659-46D1-A1E9-4C5760E85EC9@cs.purdue.edu>, , , , , Message-ID: I think the problem might just be not understanding the Modula-3 object/linkage model. I thought if just change ThreadWin32.m3, I didn't have to recompile/link anything besides m3core.dll. That seems to be wrong though. It seems maybe the sizes of types not exposed in .i3 files are exposed to the object code of clients. ? I'll try again. -Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Thu, 10 Dec 2009 16:53:57 +0000 CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 Maybe some of them need not be? I have a simple implementation but it fails. ? Attached. Tried to put this in for Thread.Mutex, not the static locks. It is based on the Java code. NewLockE, LockE, UnlockE. typedef struct _LockE_t { /* E = exclusive */ long count; int owner; HANDLE event; } LockE_t; void __cdecl ThreadWin32__DeleteLockE(LockE_t* lock) /* E = exclusive */ { if (lock) { HANDLE event = lock->event; assert(lock->owner == 0); assert(lock->count == -1); if (event) CloseHandle(event); HeapFree(GetProcessHeap(), 0, lock); } } LockE_t* __cdecl ThreadWin32__NewLockE(void) /* E = exclusive */ { HANDLE event; LockE_t* lock = (LockE_t*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*lock)); if (!lock) goto Error; lock->owner = 0; lock->count = -1; if (!(lock->event = CreateEventA(0, 0, 0, 0))) goto Error; return lock; Error: ThreadWin32__DeleteLockE(lock); return NULL; } void __cdecl ThreadWin32__LockE(LockE_t* lock) /* E = exclusive */ { if (InterlockedIncrement(&lock->count) != 0) WaitForSingleObject(lock->event, INFINITE); assert(lock->owner == 0); lock->owner = GetCurrentThreadId(); } void __cdecl ThreadWin32__UnlockE(LockE_t* lock) /* E = exclusive */ { assert(lock->owner == GetCurrentThreadId()); lock->owner = 0; if (InterlockedDecrement(&lock->count) >= 0) SetEvent(lock->event); } - Jay From: hosking at cs.purdue.edu Date: Thu, 10 Dec 2009 11:16:08 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 Umm. Modula-3 locks are *not* recursive... Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 On 10 Dec 2009, at 16:08, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 16:08:58 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: rename Lock => LockRE for recursive/exclusive so that we might introduce LockE for exclusive -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Thu Dec 10 18:31:07 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 10 Dec 2009 18:31:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091210173107.E7C1ECC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/10 18:31:07 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: use the smaller exclusive locks based on Java's implementation Note that they are more expensive to initialize because the kernel object is allocated up-front remove writeToForceGcInteractionOutsideOfGiantLock From jkrell at elego.de Fri Dec 11 01:02:02 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 1:02:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211000202.DCA3BCC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 01:02:02 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: fix signed/unsigned mismatch From jkrell at elego.de Fri Dec 11 01:10:18 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 1:10:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211001018.75B342474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 01:10:18 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: reordering and comments (so we might switch some LockRE_t to LockE_t, without adding declarations) From jkrell at elego.de Fri Dec 11 01:13:32 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 1:13:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211001332.CBF16CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 01:13:32 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: a little more reordering From jkrell at elego.de Fri Dec 11 01:31:53 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 1:31:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211003153.845292474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 01:31:53 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: a little more reordering and paranoia From jkrell at elego.de Fri Dec 11 01:33:59 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 1:33:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211003359.E97BA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 01:33:59 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: fix for low memory From jkrell at elego.de Fri Dec 11 01:36:57 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 1:36:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211003658.018C1CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 01:36:57 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: provide LOCKE macro analogous to LOCKRE macro; neither has as much point as in the past when we generated per-lock functions From jkrell at elego.de Fri Dec 11 01:39:40 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 1:39:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211003940.632EE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 01:39:40 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: add volatile From jkrell at elego.de Fri Dec 11 02:02:12 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 2:02:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211010212.9D2612474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 02:02:12 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: fix for low resources (but we should really just move LockE implementation into Modula-3 since we control it enough, will do -- remove a level of indirection, but also lose out on inlined interlocked intrinsics..tradeoff) From jkrell at elego.de Fri Dec 11 02:05:54 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 2:05:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211010554.8545D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 02:05:54 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 ThreadWin32.i3 Log message: use unique opaque types and fix a harmless typo it revealed From jkrell at elego.de Fri Dec 11 02:17:13 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 2:17:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211011713.B77702474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 02:17:13 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: rename some variables for clarity -- too much in this module for such short names I think From jkrell at elego.de Fri Dec 11 02:23:28 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 2:23:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211012328.EBF14CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 02:23:28 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: back to LockRE at least for now They do have nice properties and it is hard to chose. good: They have brief spins multiprocessor and they delay allocating the kernel object until there is contention. So they scale better under brief contention and are much cheaper to create. bad: They are larger. (and we have to add a boolean to avoid the recursion) bad: Prior to XP there were problems under low memory. bad: We are less likely to remove the indirection for them. But we have that in pthreads too. From jkrell at elego.de Fri Dec 11 02:25:22 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 2:25:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211012522.37D662474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 02:25:22 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: #if 0 out LockE code at least for now From jkrell at elego.de Fri Dec 11 02:40:53 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 2:40:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211014053.D63A42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 02:40:53 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: prepare to remove initLock in favor of InterlockedCompareExchange From jkrell at elego.de Fri Dec 11 02:46:43 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 2:46:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211014643.C9EFC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 02:46:43 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: use InterlockedCompareExchangePointer in place of initLock From jkrell at elego.de Fri Dec 11 02:52:20 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 2:52:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211015220.DE0ED2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 02:52:20 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: retry once after short delay under low resources From jkrell at elego.de Fri Dec 11 11:44:57 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 11:44:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211104457.321FC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 11:44:57 Removed files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTThreadStk.m3 Log message: delete unused file From jkrell at elego.de Fri Dec 11 11:45:52 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 11:45:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211104553.ED4272474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 11:45:52 Removed files: cm3/m3-libs/m3core/src/runtime/POSIX/: Tag: release_branch_cm3_5_8 RTThreadStk.m3 Log message: delete unused file From jkrell at elego.de Fri Dec 11 11:46:32 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 11:46:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211104633.01BD72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 11:46:32 Removed files: cm3/m3-libs/m3core/src/runtime/POSIX/: Tag: release_branch_cm3_5_8 RTThread.i3 Log message: delete another unused file From jkrell at elego.de Fri Dec 11 11:50:45 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 11:50:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211105045.5CE6E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 11:50:45 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTAllocator.m3 RTCollector.m3 Log message: restore orphaned comment into position From jkrell at elego.de Fri Dec 11 11:53:45 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 11:53:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211105345.CA2992474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 11:53:45 Added files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTMiscC.c Log message: bring over new file from head From jkrell at elego.de Fri Dec 11 12:02:46 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:02:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211110246.DF50B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:02:46 Modified files: cm3/m3-libs/m3core/src/float/DS3100/: Tag: release_branch_cm3_5_8 FloatMode.m3 cm3/m3-libs/m3core/src/float/IRIX5/: Tag: release_branch_cm3_5_8 FloatMode.m3 cm3/m3-libs/m3core/src/float/VAX/: Tag: release_branch_cm3_5_8 FloatMode.m3 cm3/m3-libs/m3core/src/runtime/NT386/: Tag: release_branch_cm3_5_8 RTSignal.m3 cm3/m3-libs/m3core/src/runtime/WIN32/: Tag: release_branch_cm3_5_8 RTOS.m3 cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTAllocator.m3 RTCollector.m3 RTHeapStats.m3 RTLinker.m3 RTLinkerX.i3 m3makefile cm3/m3-libs/m3core/src/runtime/ex_frame/: Tag: release_branch_cm3_5_8 RTExFrame.m3 RTException.m3 cm3/m3-libs/m3core/src/thread/Common/: Tag: release_branch_cm3_5_8 m3makefile cm3/m3-libs/m3core/src/thread/POSIX/: Tag: release_branch_cm3_5_8 ThreadPosix.m3 cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadPThread.m3 cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 SchedulerPosix.m3 ThreadWin32.m3 Added files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTThread.i3 Removed files: cm3/m3-libs/m3core/src/thread/Common/: Tag: release_branch_cm3_5_8 ThreadInternal.i3 Log message: manually apply pervasiv diff from head: ThreadInternal => RTThread This is one of the largest pieces differing between head and release and making it "difficult" to port changes. From jkrell at elego.de Fri Dec 11 12:10:33 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:10:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211111033.C88DD2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:10:33 Modified files: cm3/m3-libs/m3core/src/float/DS3100/: FloatMode.m3 cm3/m3-libs/m3core/src/float/IRIX5/: FloatMode.m3 cm3/m3-libs/m3core/src/float/VAX/: FloatMode.m3 Log message: ThreadInternal => RTThread From jkrell at elego.de Fri Dec 11 12:12:32 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:12:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211111233.020062474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:12:32 Modified files: cm3/m3-libs/m3core/src/float/DS3100/: Tag: release_branch_cm3_5_8 FloatMode.m3 cm3/m3-libs/m3core/src/float/IRIX5/: Tag: release_branch_cm3_5_8 FloatMode.m3 cm3/m3-libs/m3core/src/float/VAX/: Tag: release_branch_cm3_5_8 FloatMode.m3 Log message: copy from head: change get/set to direct access via an unsafe pointer From jkrell at elego.de Fri Dec 11 12:14:26 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:14:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211111426.0EA142474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:14:26 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadPThreadC.c Log message: port simple race condition fix from head related to stopping a thread before/after it has any traced references From jkrell at elego.de Fri Dec 11 12:18:34 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:18:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211111834.302122474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:18:34 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Tag: release_branch_cm3_5_8 UtimeC.c Log message: port AMD64_DARWIN assertion failure fix from head From jkrell at elego.de Fri Dec 11 12:24:58 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:24:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211112458.506562474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:24:58 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 m3makefile Log message: port from head -- make ThreadContext private -- it is after all the most unportable thing in Win32 let alone Modula-3 libraries! (the MSDN documentation says 'see header files for the fields' or somesuch) From jkrell at elego.de Fri Dec 11 12:29:21 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:29:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211112921.AC0122474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:29:21 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTLinkerX.i3 Log message: copy from head: just a insignificant reordering From jkrell at elego.de Fri Dec 11 12:38:19 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:38:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211113819.C98A32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:38:19 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTCollector.m3 Log message: port from head: just a comment, but it reduces the head vs. release diffs From jkrell at elego.de Fri Dec 11 12:42:57 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 12:42:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211114257.4EA062474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 12:42:57 Modified files: cm3/m3-libs/m3core/src/runtime/WIN32/: Tag: release_branch_cm3_5_8 RTOS.m3 Log message: port from head: very small change that makes debugging sometimes much better (break right into debugger, don't waste time trying to suspend threads and dump stacks, the debugger does a much better job of suspending threads and usually (if you have symbols) of dumping stacks) If you aren't using a debugger, then no change. The thing about RestoreHandlers can probably just be removed since in my brief experience the DebugBreak works fine before it. Really it can probably just go like this: If debugger debugbreak ELSE suspend others, maybe dumpstack one of the important parts restore handlers probably can be removed Exit(-1) also important though maybe should be TerminateProcess which is much quicker/cleaner doesn't run all the dllmains though currently I just made the small change of moving the debugbreak much earlier From jkrell at elego.de Fri Dec 11 13:05:58 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 13:05:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211120558.37E0F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 13:05:58 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTThread.i3 cm3/m3-libs/m3core/src/thread/POSIX/: Tag: release_branch_cm3_5_8 ThreadPosix.i3 ThreadPosix.m3 cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadPThread.m3 cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.m3 Log message: port from head: rename parameter in function pointer type from "stop" to "limit" note that there are still "start, stop" pairs, in addition to the "start, limit" pairs From jkrell at elego.de Fri Dec 11 13:14:24 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 13:14:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211121424.EA1432474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 13:14:24 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 SchedulerPosix.m3 ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: copy from head: lengthen some module variable names: inCritical => HeapInCritical do_signal => HeapDoSignal mutex => HeapWaitMutex condition => HeapWaitCondition remove writeToForceGcInteractionOutsideOfGiantLock reorder ThreadWin32C.c some use memory barriers for paranoia replace initLock with InterlockedCompareExchangePointer don't have BroadcastHeap take heap lock, its caller already should (right?); this can go either way, really, since it is a recursive lock..let's see, the pthread version can go either way..let's change the BOOLEAN to an INTEGER so we are sure that writes to it are atomic then we should be ok From jkrell at elego.de Fri Dec 11 13:27:39 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 13:27:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211122739.468902474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 13:27:39 Modified files: cm3/m3-libs/m3core/src/win32/: WinBase.i3 Log message: add InterlockedExchange and InterlockedCompareExchange From jkrell at elego.de Fri Dec 11 13:32:49 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 13:32:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211123249.129672474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 13:32:49 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: make HeapDoSignal definitely thread safe by manipulating it only with Interlocked functions From jkrell at elego.de Fri Dec 11 13:33:34 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 13:33:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211123334.CDB5F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 13:33:34 Modified files: cm3/m3-libs/m3core/src/win32/: Tag: release_branch_cm3_5_8 WinBase.i3 Log message: from head: add InterlockedExchange and InterlockedCompareExchange From jkrell at elego.de Fri Dec 11 13:34:50 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 13:34:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211123450.790CF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 13:34:50 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.m3 Log message: from head: use InterlockedExchange and InterlockedCompareExchange on HeapDoSignal to ensure its thread safety (probably just storing instead of Exchange would do) From jkrell at elego.de Fri Dec 11 13:38:56 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 13:38:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211123856.CE2252474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 13:38:56 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: move comment From jkrell at elego.de Fri Dec 11 13:43:12 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 13:43:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211124312.9B67B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 13:43:12 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: use WinBase.InterlockedIncrement/Decrement (I've gone back and forth on this; cloning Win32 headers just once isn't as bad as n times for FreeBSD/OpenBSD/NetBSD/Solaris/Irix/AIX/OpenVMS/Linux/Tru64/Darwin, and if we do wrap, we can do it over in m3core/win32 like we do in m3core/unix, instead of in the client From jkrell at elego.de Fri Dec 11 14:32:26 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 14:32:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211133226.129582474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 14:32:26 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: safekeeping: unfinished experiment around using one long with bitfields for alert and alerted and interlocked operations I think we can win instead with simply Alert() SetEvent(alertEvent) and dispense with alertable entirely If a thread becomes alertable, it'll just wait on two events. The alert will always stick around until checked. From jkrell at elego.de Fri Dec 11 14:33:02 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 14:33:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211133302.7FE962474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 14:33:02 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: go back a version (undo safekeeping) From hosking at elego.de Fri Dec 11 15:47:03 2009 From: hosking at elego.de (Antony Hosking) Date: Fri, 11 Dec 2009 15:47:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211144703.EF4A62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/11 15:47:03 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: Match comment length. From hosking at elego.de Fri Dec 11 15:57:50 2009 From: hosking at elego.de (Antony Hosking) Date: Fri, 11 Dec 2009 15:57:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211145750.8D48E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/11 15:57:50 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Tidy a little. Why do we not check stackbase=NIL anymore in ProcessOther? From hosking at cs.purdue.edu Fri Dec 11 16:00:35 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 11 Dec 2009 10:00:35 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091211114257.4EA062474001@birch.elegosoft.com> References: <20091211114257.4EA062474001@birch.elegosoft.com> Message-ID: <3A788099-01DB-4DE6-A6D1-4180771C90C7@cs.purdue.edu> We should do the same for POSIX too I think. On 11 Dec 2009, at 12:42, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/11 12:42:57 > > Modified files: > cm3/m3-libs/m3core/src/runtime/WIN32/: Tag: > release_branch_cm3_5_8 > RTOS.m3 > > Log message: > port from head: very small change that makes debugging sometimes much better > (break right into debugger, don't waste time trying to suspend threads > and dump stacks, the debugger does a much better job of suspending > threads and usually (if you have symbols) of dumping stacks) > If you aren't using a debugger, then no change. > > The thing about RestoreHandlers can probably just be removed since > in my brief experience the DebugBreak works fine before it. > > Really it can probably just go like this: > If debugger > debugbreak > ELSE > suspend others, maybe > dumpstack one of the important parts > restore handlers probably can be removed > Exit(-1) also important though maybe should be TerminateProcess which is much quicker/cleaner > doesn't run all the dllmains > > though currently I just made the small change of moving the debugbreak much earlier -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Dec 11 16:01:04 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 11 Dec 2009 10:01:04 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091211120558.37E0F2474001@birch.elegosoft.com> References: <20091211120558.37E0F2474001@birch.elegosoft.com> Message-ID: Where are the start/stop pairs? On 11 Dec 2009, at 13:05, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/11 13:05:58 > > Modified files: > cm3/m3-libs/m3core/src/runtime/common/: Tag: > release_branch_cm3_5_8 > RTThread.i3 > cm3/m3-libs/m3core/src/thread/POSIX/: Tag: > release_branch_cm3_5_8 > ThreadPosix.i3 > ThreadPosix.m3 > cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: > release_branch_cm3_5_8 > ThreadPThread.m3 > cm3/m3-libs/m3core/src/thread/WIN32/: Tag: > release_branch_cm3_5_8 > ThreadWin32.m3 > > Log message: > port from head: rename parameter in function pointer type from "stop" > to "limit" > note that there are still "start, stop" pairs, in addition to the > "start, limit" pairs -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Fri Dec 11 16:44:56 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 16:44:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211154456.D335A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 16:44:56 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: "Rewrite" alerting to use a separate event This cuts out a large use of the giant lock. There is no longer the two booleans alerted and alertable. "alertable" isn't needed, just have Alert set the event. alerted is embodied in the event's state. Atomtic test and clear alerted is provided by WaitForSingleObject and an auto reset event. downsides: Thread is larger -- two booleans (two bytes) replaced by a handle Thread is slower to create -- an extra kernel object. TestAlert is much slower: WaitForSingleObject(timeout = 0) a kernel call instead of reading a boolean (possibly under giant lock, but the giant lock holds do/did all appear brief, judging from the code) We /might/ be able to delay creating the handle? Until someone does an AlertWait or Alert? We might be able to synthesize alerting with Interlocked? Maybe but having two events seems good. possible alternatives: the boolean for alerted could come from elsewhere, in particular the Win32 alerted feature Downside here is I'm not sure how to easily set it on Win9x. On NT it is simply QueueUserAPC (introduced in what version?) Maybe it is by completing arbitrary I/O to an arbitrary handle? upsides: one more large dent toward removing the giant lock and hopefully therefore being much more scalable And we know how to remove it entirely, without dropping pre-Vista support (do like Java, with its tricky counters/tickets system) From jkrell at elego.de Fri Dec 11 16:47:01 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 16:47:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211154701.562682474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 16:47:01 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: shrink a little From jkrell at elego.de Fri Dec 11 16:53:11 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 16:53:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211155311.C412C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 16:53:11 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: go back a version From jkrell at elego.de Fri Dec 11 16:53:42 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 11 Dec 2009 16:53:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091211155342.E612A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/11 16:53:42 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: remove pointless variable From jkrell at elego.de Sat Dec 12 06:46:05 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 6:46:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212054605.4A835CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 06:46:05 Modified files: cm3/m3-libs/m3core/src/win32/: WinBase.c Log message: trim down From jkrell at elego.de Sat Dec 12 07:11:28 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 7:11:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212061128.6D1ED2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 07:11:28 Modified files: cm3/m3-libs/m3core/src/win32/: WinBase.c Log message: prototype, that I probably won't use From jkrell at elego.de Sat Dec 12 07:26:48 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 7:26:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212062649.198DF2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 07:26:48 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: go back to initLock instead of InterlockedCompareExchange for greater toolset/processor/operatingsystem compatibility From jkrell at elego.de Sat Dec 12 07:46:27 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 7:46:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212064628.1E4222474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 07:46:27 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: move #pragmas to under #if 0 since not needed elsewhere From jkrell at elego.de Sat Dec 12 08:11:11 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 8:11:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212071111.A80B72474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 08:11:11 Removed files: cm3/m3-libs/m3core/src/win32/: WinBase.c Log message: remove prototype From jkrell at elego.de Sat Dec 12 09:18:28 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 9:18:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212081828.8CD262474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 09:18:28 Modified files: cm3/m3-libs/m3core/src/win32/: WinNT.i3 Log message: remove a few parens From jkrell at elego.de Sat Dec 12 09:23:08 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 9:23:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212082308.A50CD2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 09:23:08 Added files: cm3/m3-libs/m3core/src/win32/: WinConstants.c Log message: very viable prototype that reduces header cloning; note that current MSDN documentation lists explicit values, probably to aid independent header writers? From jkrell at elego.de Sat Dec 12 09:28:27 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 9:28:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212082827.E2D6E2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 09:28:27 Modified files: cm3/m3-libs/m3core/src/win32/: WinConstants.c Log message: add WinNLS.i3 content From jkrell at elego.de Sat Dec 12 11:27:08 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 11:27:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212102708.948802474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 11:27:08 Modified files: cm3/m3-libs/m3core/src/win32/: WinConstants.c Added files: cm3/m3-libs/m3core/src/win32/: WinUser.pl WinUser.txt Log message: incorporate (voluminous) WinUser.i3 content in a fashion -- fully #ifdefed, as the headers vary a lot through the years From jkrell at elego.de Sat Dec 12 13:26:43 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 13:26:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212122643.33AF12474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 13:26:43 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: fix lockinglevel comments suspend_cnt giant => activeLock "Mu" => "Lock" the name "lock" is used because it is neither the pthread term ("mutex") nor the win32 term ("criticalsection") so therefore we can hopefully agree to use it in some future unified version From jkrell at elego.de Sat Dec 12 13:35:16 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 13:35:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212123517.055272474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 13:35:16 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: eliminate giant lock Use the algorithm from the Java implementation. Adding another lock per condition, since they have the one user and condition lock, but we apparently let folks use multiple locks with the same condition. (Multiple conditions per lock makes sense to me; multiple locks per condition does not.) also eliminate all uses of Self() (like pthreads) Now putting slotLock back in FreeSlot and Self() not so bad, esp. in the interest of unifying with pthreads. Not done yet. (since we no longer call Self, and FreeSlot is rare) From jkrell at elego.de Sat Dec 12 13:57:23 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 13:57:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212125723.D14CA2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 13:57:23 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: remove the abstraction layer cost without removing the abstraction layer (next we'll remove the layer, the experiment proved successful, we can bring it back when we unify pthreads/win32) From jkrell at elego.de Sat Dec 12 15:10:20 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:10:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212141020.968472474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:10:20 Modified files: cm3/m3-libs/m3core/src/win32/: WinNT.i3 Log message: restore historical (3.6) definition of PCRITICAL_SECTION, so that NEW() works with it (I get compile errors otherwise that I don't understand, and the historical definition follows the usual pattern, the contemporary one is wierd to me; if needed, we can replace everything with properly sized integers) From jkrell at elego.de Sat Dec 12 15:13:15 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:13:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212141316.2D6FB2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:13:15 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: restore more like traditional structure where more is done in Modula-3 However still with some interesting differences. - the giant lock is still gone, alert is still its own event :) - CONTEXT is still abstracted into C At least getting the fields; we can consider getting the size from C and then doing the allocation in Modula-3 (Getting CONTEXT right, and not using C, would threaten a LOT of duplication for VERY little platform variation; for the most part, Win32 == Win64 except for SIZE_T, sizeof(void*), ULONG_PTR, DWORD_PTR, INT_PTR, size_t, ptrdiff_t, which are differences easy to deal with, AND CONTEXT, which is difficult; there are also differences a la InterlockedExchange vs. InterlockedExchangePointer) - restore Self() and FreeSlot to being lockful like pthreads (now that we never call Self() internally!) - <* ASSERT BYTESIZE(CRITICAL_SECTION) = sizeof(CRITICAL_SECTION) *> - the static locks are still allocated in C, as our debugging support is very inadequate and this helps tremendously (the assert is still needed for the dynamic locks) Unification with pthreads is made more difficult here, but in my opinion the experimenting was a success and we CAN do such unification. (In particular, I no longer have "LockRE", no longer compute if stack grows down, I'm willing to assume it) Still we are structured like pthreads with ProcessLive, ProcessOther, and the suspend/resume code could be easily moved to C as well. - The relatively new function GetStackBounds is still in C but it could be moved to Modula-3. - assert in BroadcastHeap that we have the lock, so we can try not introducing the InterlockedCompareExchange dependency, for more support across operating system versions RTOS.i3 vaguely implies this is correct. Alternatively we can introduce a tiny lock for this. (Even if this is more dependent on C header cloning, that cloning can be more like m3core/unix where we wrap every function and implement all constants as C variables; we don't absolutely have to invent new interfaces for the Modula-3/C bridging) From jkrell at elego.de Sat Dec 12 15:14:03 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:14:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212141405.CD0D52474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:14:03 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: fix comment From jkrell at elego.de Sat Dec 12 15:15:46 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:15:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212141546.EC2A62474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:15:46 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: comments From jkrell at elego.de Sat Dec 12 15:23:47 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:23:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212142347.E1D442474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:23:47 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: don't bother returning result from SetActivation, since nobody looks at it From jkrell at elego.de Sat Dec 12 15:26:43 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:26:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212142643.B42FE2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:26:43 Modified files: cm3/m3-libs/m3core/src/win32/: Tag: release_branch_cm3_5_8 WinNT.i3 Log message: copy from head: remove some parens, and use sensible 3.6 definition of PRTL_CRITICAL_SECTION; I should check if we're inserting 'barrier' uses unnecessarily here From jkrell at elego.de Sat Dec 12 15:29:39 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:29:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212142939.EBA7F2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:29:39 Modified files: cm3/m3-libs/m3core/src/thread/Common/: ThreadDebug.i3 Log message: change InnerWait parameter from REFANY (self) to ADDRESS (activation); forgot to commit this a while ago and things broken otherwise From jkrell at elego.de Sat Dec 12 15:30:37 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:30:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212143038.DF7532474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:30:37 Modified files: cm3/m3-libs/m3core/src/thread/Common/: Tag: release_branch_cm3_5_8 ThreadDebug.i3 cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: copy from head: no more giant lock, move some code back to Modula-3 from C From jkrell at elego.de Sat Dec 12 15:35:41 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:35:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212143541.49D7F2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:35:41 Modified files: cm3/m3-libs/m3core/src/: m3core.h Log message: whitespace From jkrell at elego.de Sat Dec 12 15:39:48 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:39:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212143949.055542474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:39:48 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTHeapStats.m3 Log message: copy from head: < vs. <= From jkrell at elego.de Sat Dec 12 15:40:44 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:40:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212144045.038B72474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:40:44 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTCollector.m3 Log message: copy from head: NIL check vs. range check From jkrell at elego.de Sat Dec 12 15:48:11 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 15:48:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212144812.1440B2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 15:48:11 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c Log message: port race condition fix from head: don't return pthread handle from thread_create instead, in new thread, store pthread_self It isn't clear otherwise if the handle gets stored before it is used. I had seen the pthread_detach call fail previously. From jkrell at elego.de Sat Dec 12 16:16:43 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 16:16:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212151643.E22C92474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 16:16:43 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: We have portable idioms, and now good implementations of them, but still, it seems far more sensible for Join to wait on the thread itself and not a separate condition. (I think even pthreads can do similar -- pthread_join, at least in the non alertable case. One reason historically not to use this, in the Win32 implementation, is the thread cache; if we cache threads, then the threads are never signaled.) The check for multiple joins is now a bit racy, but that's ok, we don't have to always detect it. We could tighten that up if it mattered (with more locking). From jkrell at elego.de Sat Dec 12 16:41:09 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 16:41:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212154109.3F3602474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 16:41:09 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: use my helper function DelHandle to shrink code for readability From jkrell at elego.de Sat Dec 12 16:49:14 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 16:49:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212154915.3BC9C2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 16:49:14 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: some RTIO, but I see the problem -- the change to wait on the thread handle instead of a condition, uses freed memory instead of relying on garbage collection From jkrell at elego.de Sat Dec 12 16:49:59 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 16:49:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212154959.E0ABD2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 16:49:59 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: fix leak from when I was still getting the PCRITICAL_SECTION thing to compile From jkrell at elego.de Sat Dec 12 17:07:01 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 17:07:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212160701.62C2E2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 17:07:01 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: cleanup via RegisterFinalCleanup From jkrell at elego.de Sat Dec 12 17:12:49 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 17:12:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212161249.13F582474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 17:12:49 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: There's actually no window of opportunity for failure here so just do things more directly. Also remove some micro-optimizations. From jkrell at elego.de Sat Dec 12 17:17:59 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 17:17:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212161759.084D22474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 17:17:59 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.m3 Log message: darn a little sloppy this time; previously all the release versions were good; copy from head again: in particular the fix to not leak all the critical sections as well take the Win32-idiomatic join implementation, and using RegisterFinalCleanup to run the cleanup From jkrell at elego.de Sat Dec 12 17:19:17 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 17:19:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212161917.D5C212474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 17:19:17 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: some cleanup: remove the RTIO, alter a comment, alter asserts From jkrell at elego.de Sat Dec 12 17:20:00 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 17:20:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212162000.2235D2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 17:20:00 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.m3 Log message: remove unused imports (from removing the RTIO (matches head again) From jkrell at elego.de Sat Dec 12 17:24:37 2009 From: jkrell at elego.de (Jay Krell) Date: Sat, 12 Dec 2009 17:24:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091212162437.AC72D2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/12 17:24:37 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: inline DeleteActivation into its only caller CleanT From jkrell at elego.de Sun Dec 13 01:07:41 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 1:07:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213000742.3BB982474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 01:07:41 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: comments and assertions (comment was leftover from lockless version From jkrell at elego.de Sun Dec 13 01:14:33 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 1:14:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213001433.CEBDE2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 01:14:33 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: whitespace at start/end of pragmas From jkrell at elego.de Sun Dec 13 01:30:01 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 1:30:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213003002.8B7512474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 01:30:01 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: cleanup: save a line on VAR; try to initialize locals at declaration more; always assert wait results should be no semantic change From jkrell at elego.de Sun Dec 13 02:14:57 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 2:14:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213011457.B44362474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 02:14:57 Modified files: cm3/m3-libs/m3core/src/thread/Common/: ThreadDebug.c ThreadDebug.i3 Log message: - don't wrap #includes with extern "C" - always enable it still requires @m3debugthreads though to really kick in - tune the array size down due to always being enabled - add some functions like Pause, XWait, etc. From jkrell at elego.de Sun Dec 13 02:16:59 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 2:16:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213011659.CBF332474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 02:16:59 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: merge Pause and AlertPause into XPause(alertable: BOOLEAN) to share a little code and resemble pthreads as part of this, split TestAlert into TestAlert and XTestAlert TestAlert = XTestAlert(GetActivation()) Fix bug where AlertPause(<=0) does not recieve alerts. Rename InnerWait to XWait to match pthreads. From jkrell at elego.de Sun Dec 13 02:27:14 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 2:27:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213012714.882D52474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 02:27:14 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: should fix it to compile From jkrell at elego.de Sun Dec 13 02:27:29 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 2:27:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213012729.22C282474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 02:27:29 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: should fix it to compile From jkrell at elego.de Sun Dec 13 02:28:05 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 2:28:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213012806.0EFF72474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 02:28:05 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: should fix it to compile From jkrell at elego.de Sun Dec 13 02:38:30 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 2:38:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213013831.4F6722474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 02:38:30 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: safe another line wrt VAR add explicit usual check to AlertJoin that GetActivation() # NIL pass GetActivation to XJoin (or NIL for non-alert version) REMOVE check in Pause that GetActivation() # NIL (debatable, but in fact it doesn't need any thread state, it just converts float seconds to integer milliseconds and calls Sleep) reduce check in XPause then as well (if NOT alertable) add more asserts From jkrell at elego.de Sun Dec 13 03:55:04 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 3:55:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213025505.A68692474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 03:55:04 Modified files: cm3/m3-ui/ui/src/winvbt/: Tag: release_branch_cm3_5_8 WinContext.m3 Log message: copy from head: let's Juno get much further and fix error checks From jkrell at elego.de Sun Dec 13 04:22:50 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 4:22:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213032251.22EFE2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 04:22:50 Modified files: cm3/m3-ui/vbtkit/src/lego/: Tag: release_branch_cm3_5_8 m3makefile Log message: Mentor crashes starting up. Even if I go back a week or a month in the release branch. (I haven't yet tested RC2, RC3, RC4, etc.) If we use the "Posix" scroller stuff, no problem. So do that for now. Probably some problem in the scroller code around locking. There were others recently (even on X) From jkrell at elego.de Sun Dec 13 04:36:39 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 4:36:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213033640.75CF72474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 04:36:39 Modified files: cm3/m3-ui/vbtkit/src/lego/: Tag: release_branch_cm3_5_8 m3makefile cm3/m3-ui/vbtkit/src/lego/WIN32/: Tag: release_branch_cm3_5_8 ScrollerVBTClass.m3 Log message: fix this crash starting up mentor in win32 specific code: *** *** runtime error: *** Attempt to reference an illegal memory location. *** pc = 0x12b16a8 = GetAttributes + 0x1ed in ..\src\lego\WIN32\ScrollerVBTCl ass.m3 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x2e2f670 0x846ced SystemError + 0x66 in ..\src\runtime\NT386\RTSignal.m3 0x2e2f720 0x12b16a8 GetAttributes + 0x1ed in ..\src\lego\WIN32\ScrollerVBTClas s.m3 0x2e2f7f8 0x12e95c8 AddView + 0x101e(!) in ..\src\lego\ViewportVBT.m3 0x2e2f844 0x12e762e Init + 0x30e in ..\src\lego\ViewportVBT.m3 0x2e2f964 0x1234fc7 pViewport + 0x512 in ..\src\FormsVBT.m3 0x2e2f9c4 0x12234b1 Item + 0x48b in ..\src\FormsVBT.m3 0x2e2f9f0 0x124107a OneChild + 0xf8 in ..\src\FormsVBT.m3 0x2e2faf8 0x1227520 pShape + 0x19c in ..\src\FormsVBT.m3 0x2e2fb58 0x12234b1 Item + 0x48b in ..\src\FormsVBT.m3 0x2e2fb84 0x124107a OneChild + 0xf8 in ..\src\FormsVBT.m3 ......... ......... ... more frames ... Really it'd be super nice if we could unfork these two directories. They are mostly the same, except the Posix directory gets more attentin fix this crash starting up mentor in win32 specific code: *** *** runtime error: *** Attempt to reference an illegal memory location. *** pc = 0x12b16a8 = GetAttributes + 0x1ed in ..\src\lego\WIN32\ScrollerVBTCl ass.m3 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x2e2f670 0x846ced SystemError + 0x66 in ..\src\runtime\NT386\RTSignal.m3 0x2e2f720 0x12b16a8 GetAttributes + 0x1ed in ..\src\lego\WIN32\ScrollerVBTClas s.m3 0x2e2f7f8 0x12e95c8 AddView + 0x101e(!) in ..\src\lego\ViewportVBT.m3 0x2e2f844 0x12e762e Init + 0x30e in ..\src\lego\ViewportVBT.m3 0x2e2f964 0x1234fc7 pViewport + 0x512 in ..\src\FormsVBT.m3 0x2e2f9c4 0x12234b1 Item + 0x48b in ..\src\FormsVBT.m3 0x2e2f9f0 0x124107a OneChild + 0xf8 in ..\src\FormsVBT.m3 0x2e2faf8 0x1227520 pShape + 0x19c in ..\src\FormsVBT.m3 0x2e2fb58 0x12234b1 Item + 0x48b in ..\src\FormsVBT.m3 0x2e2fb84 0x124107a OneChild + 0xf8 in ..\src\FormsVBT.m3 ......... ......... ... more frames ... Really it'd be super nice if we could unfork these two directories. They are mostly the same, except the Posix directory gets more attention and bug fixes while the Win32 one languishes. Surely they can share more code? From jkrell at elego.de Sun Dec 13 04:37:34 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 4:37:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213033734.E108E2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 04:37:34 Modified files: cm3/m3-ui/vbtkit/src/lego/: Tag: release_branch_cm3_5_8 m3makefile cm3/m3-ui/vbtkit/src/lego/WIN32/: Tag: release_branch_cm3_5_8 ScrollerVBTClass.m3 Log message: I forgot to mention: I'm really just guessing here. It seems to work. From jkrell at elego.de Sun Dec 13 04:49:24 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 4:49:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213034925.A68022474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 04:49:24 Modified files: cm3/m3-ui/vbtkit/src/lego/: m3makefile cm3/m3-ui/vbtkit/src/lego/WIN32/: ScrollerVBTClass.m3 Log message: copy from release: wild guess that fixes mentor startup crash also works if we just use the Posix version I don't think this is related to m3core churn! From jkrell at elego.de Sun Dec 13 04:54:43 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 4:54:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213035443.62F892474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 04:54:43 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: move GetStackBounds to Modula-3 we assert that we have the size of the C struct correct, though we don't assert about its fields, probably we should From jkrell at elego.de Sun Dec 13 04:55:24 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 4:55:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213035524.E9AC22474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 04:55:24 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: fix AlertJoin, oops From jkrell at elego.de Sun Dec 13 05:40:30 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 5:40:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213044031.7A43B2474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 05:40:30 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: state of the art/stake in the ground for cloned header verification maybe/hopefully shorter idioms can be found? From jkrell at elego.de Sun Dec 13 06:52:32 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 6:52:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213055233.582422474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 06:52:32 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.i3 ThreadWin32.m3 ThreadWin32C.c Log message: update again from head (copy) From jkrell at elego.de Sun Dec 13 06:54:02 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 6:54:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213055402.A48CF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 06:54:02 Modified files: cm3/m3-libs/m3core/src/thread/Common/: Tag: release_branch_cm3_5_8 ThreadDebug.c ThreadDebug.i3 Log message: update from head (copy) From jkrell at elego.de Sun Dec 13 07:17:10 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 7:17:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213061711.1DD27CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 07:17:10 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: UINT32 not in older headers, use UINT From jkrell at elego.de Sun Dec 13 07:57:49 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 7:57:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213065750.38FA22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 07:57:49 Modified files: cm3/m3-libs/m3core/src/C/Common/: CerrnoC.c CsignalC.c CstdioC.c CstdlibC.c CstringC.c Log message: provide one m3core.lib.sa that should work with both libcmt.lib and msvcrt.lib (ie: suppress __declspec(dllimport) on functions, and #if out data (stdin/out/err)) From jkrell at elego.de Sun Dec 13 09:59:06 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 9:59:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213085906.8322FCC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 09:59:06 Modified files: cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: context.c Added files: cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: tcontext.c Log message: don't waste time saving/restoring signal mask twice, once is enough, add test case from other directory From jkrell at elego.de Sun Dec 13 10:18:09 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 10:18:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213091809.F1CB2CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 10:18:09 Modified files: cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: context.c context.h Log message: use sigsetjmp/siglongjmp/sigjmp_buf instead From jkrell at elego.de Sun Dec 13 10:23:41 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 10:23:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213092341.DAEB7CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 10:23:41 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThreadC.c Log message: use sigsetjmp/siglongjmp/sigjmp_buf From jkrell at elego.de Sun Dec 13 14:03:55 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 14:03:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213130355.AAF102474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 14:03:55 Modified files: cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: config.c context.c context.h tcontext.c Log message: adapt get/set/make/swapcontext for OpenBSD/sparc64 Bonus points that it and OpenBSD/x86 survive various gcc optimizations including -O2 and -O3. From jkrell at elego.de Sun Dec 13 14:27:40 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 14:27:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213132740.A7722CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 14:27:40 Modified files: cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: context.c Log message: very very small tweaks: comments, comment out an unused define, put in & when taking address of function We should probably move all this to m3core\src\thread\POSIX. From jkrell at elego.de Sun Dec 13 14:55:33 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 14:55:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213135533.30CC62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 14:55:33 Modified files: cm3/m3-sys/cm3/src/: m3makefile Log message: fix for m3unix.h => m3core.h From jkrell at elego.de Sun Dec 13 15:11:29 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 15:11:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213141129.877492474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 15:11:29 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTSignalC.c Log message: move the OpenBSD lines ahead of the Sparc lines, so that this compiles for OpenBSD/sparc64 From jkrell at elego.de Sun Dec 13 15:30:19 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 15:30:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213143019.A2242CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 15:30:19 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UtimeC.c Log message: OpenBSD/sparc64 continues the year 2038 bug and has undeclared padding in struct timespec -- adjust assertions for it From jkrell at elego.de Sun Dec 13 15:32:27 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 15:32:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213143227.554982474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 15:32:27 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: add function IsOpenBSD like IsInterix, thin wrapper over TARGET_OS variable, in case it isn't defined From jkrell at elego.de Sun Dec 13 15:34:25 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 15:34:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213143425.4297C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 15:34:25 Modified files: cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: m3makefile Log message: build this for all OpenBSD systems, not just I386_OPENBSD (PPC_OPENBSD and AMD64_OPENBSD probably need repair and then ongoing tinderbox and/or hudson (preferably Hudson) From jkrell at elego.de Sun Dec 13 16:35:58 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 16:35:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213153558.70D8F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 16:35:58 Modified files: cm3/m3-libs/m3core/src/C/Common/: Cstring.i3 CstringC.c Log message: OpenBSD linker rightfully complains (warns) about strcpy and strcat: new "/cm3/pkg/m3core/SPARC64_OPENBSD/libm3core.a" -> linking m3bundle /cm3/pkg/m3core/SPARC64_OPENBSD/libm3core.a(CstringC.o)(.text+0xfc): In function `Cstring__strcpy': /dev2/cm3/m3-libs/m3core/SPARC64_OPENBSD/../src/C/Common/CstringC.c:19: warning: strcpy() is almost always misused, please use strlcpy() /cm3/pkg/m3core/SPARC64_OPENBSD/libm3core.a(CstringC.o)(.text+0x15c): In functio n `Cstring__strcat': /dev2/cm3/m3-libs/m3core/SPARC64_OPENBSD/../src/C/Common/CstringC.c:21: warning: strcat() is almost always misused, please use strlcat() $ so provide only the old style <* extern *> and not a wrapper, so that we don't foist the warning on every Modula-3/OpenBSD user, just anyone actually using these bad functions. From jkrell at elego.de Sun Dec 13 16:45:08 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 16:45:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213154508.C2C0ACC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 16:45:08 Modified files: cm3/m3-libs/m3core/src/: thread.quake Log message: switch SPARC64_OPENBSD to user threads (not quite working, but it is hoped/expected to go well, whereas we've given up for now on OpenBSD pthreads (see I386_OPENBSD) From jkrell at elego.de Sun Dec 13 16:54:35 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 16:54:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213155436.04595CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 16:54:35 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c Log message: OpenBSD only: just include context.h, not context/setjmp/context.h -- that will hopefully fix bootstrap archives, with their flattened structure, assuming we have h_source(context) (this seems to constantly bite me, maybe a different approach needed..well, one thing would be to move the code to m3core/src/thread/POSIX and not go out of out of our way to emulate get/set/swap/makecontext, but instead just fit into the similar abstractions Tony made ? not a big deal, it's only user threads (and OpenBSD) From jkrell at elego.de Sun Dec 13 17:01:33 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 17:01:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213160133.5EBA72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 17:01:33 Modified files: cm3/m3-libs/m3core/src/C/Common/: CstdioC.c Log message: More OpenBSD linker warnings: gcc -g -fPIC -lm -lpthread -o cm3 *.o CstdioC.c.o(.text+0x558): In function `Cstdio__tmpnam': /home/jay/cm3-boot-SPARC64_OPENBSD-1/CstdioC.c:43: warning: tmpnam() possibly us ed unsafely; consider using mkstemp() CstdioC.c.o(.text+0x518): In function `Cstdio__tempnam': /home/jay/cm3-boot-SPARC64_OPENBSD-1/CstdioC.c:41: warning: tempnam() possibly u sed unsafely; consider using mkstemp() These aren't even in the .i3 file. From jkrell at elego.de Sun Dec 13 17:04:32 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 17:04:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213160432.AA7AC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 17:04:32 Modified files: cm3/m3-libs/m3core/src/C/Common/: Tag: release_branch_cm3_5_8 CstdioC.c CstringC.c Log message: remove tempnam, tmpnam, strcpy, strcat to avoid OpenBSD linker warnings (they aren't in the .i3 files; this was for possible improved compat between head and release) From jkrell at elego.de Sun Dec 13 17:21:25 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 17:21:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213162125.F129A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 17:21:25 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: stack needs to e aligned for SPARC64_OPENBSD, else I get a bus error (alignment) trying to read a pointer from a 4-aligned address in NoteStackLocations (I'm not making this up, I actually see it frequently); I don't feel comfortable with the idea that storage might be deemed dead and overlappable so remove the nested scope too From jkrell at elego.de Sun Dec 13 17:39:15 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 13 Dec 2009 17:39:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213163915.EF2B92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/13 17:39:15 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: NT386.common Log message: support for WinConstants.obj, if we decide to build it inactive since the file doesn't exist (could clash with unrelated?) From hosking at elego.de Sun Dec 13 19:09:34 2009 From: hosking at elego.de (Antony Hosking) Date: Sun, 13 Dec 2009 19:09:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091213180934.CE0902474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/13 19:09:34 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Don't test <=0.0 time to pause so that we go ahead and check the alert as needed. From jkrell at elego.de Mon Dec 14 07:54:25 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 7:54:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214065426.448C32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 07:54:25 Modified files: cm3/m3-libs/sysutils/src/POSIX/: SystemPosixC.c Log message: trim this down; maybe remove it? removing it will increase what minimum toolset can be used to build; but we really need to know here if we have user threads or not, I'm seeing a hang on SPARC64_OPENBSD..though I386_OPENBSD works ok? From jkrell at elego.de Mon Dec 14 07:57:19 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 7:57:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214065719.2ED952474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 07:57:19 Modified files: cm3/m3-libs/sysutils/src/POSIX/: SystemPosix.m3 Log message: simpler and should mean same thing From jkrell at elego.de Mon Dec 14 09:09:48 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 9:09:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214080948.88CC62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 09:09:48 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTIO.i3 m3makefile Log message: add PutE, PutF, PutG, PutBytes printf("%e", float), etc. From jkrell at elego.de Mon Dec 14 09:10:09 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 9:10:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214081009.09A0A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 09:10:09 Added files: cm3/m3-libs/m3core/src/runtime/common/: RTIOc.c Log message: forgot t add file From jkrell at elego.de Mon Dec 14 09:12:27 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 9:12:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214081228.0062E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 09:12:27 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTIOc.c Log message: take advantage of #defines From jkrell at elego.de Mon Dec 14 09:18:07 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 9:18:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214081807.76FDA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 09:18:07 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTIOc.c Log message: minor cleanup From jkrell at elego.de Mon Dec 14 09:32:45 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 9:32:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214083245.DFDF62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 09:32:45 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: fix NIL deref From jkrell at elego.de Mon Dec 14 09:53:05 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 9:53:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214085305.7FE112474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 09:53:05 Added files: cm3/m3-sys/m3tests/src/: m3overrides Log message: add missing m3overrides From jkrell at elego.de Mon Dec 14 09:53:32 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 9:53:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214085332.4698B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 09:53:32 Added files: cm3/m3-sys/m3tests/src/p2/p212/: m3overrides Log message: add missing m3overrides From jkrell at elego.de Mon Dec 14 13:59:49 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 13:59:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214125949.381002474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 13:59:49 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: add a comment as to at least one reason _XOPEN_SOURCE is here From jkrell at elego.de Mon Dec 14 14:04:09 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 14:04:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214130409.0B93E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 14:04:09 Modified files: cm3/m3-sys/m3cc/src/: m3makefile Log message: attempting to build cross compilers from non-Solaris to Solaris failed because of -with-ld=/path configure tries to run /path which isn't present on the host building cm3cg remove all -with-ld=/path and -with-as=/path -with-gnu-ld, -with-gnu-as, -without-gnu-ld, -without-gnu-as are fine and left asis. This does affect even native SOLgnu/SOLsun builds but hopefully no actual effect. These parameters probably only affect building native gcc drivers. (And the values I had were good ones, having gone through some of that in the past) From jkrell at elego.de Mon Dec 14 14:40:15 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 14:40:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214134015.9044F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 14:40:15 Modified files: cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTMachine.i3 cm3/m3-libs/m3core/src/unix/: m3makefile Removed files: cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTSignal.m3 Log message: updates so SPARC64_SOLARIS bootstrap can build (possible tangent related to getting SPARC64_OPENBSD to work -- problem apparently with the floating point constants in RTCollector, such that Behind() is always TRUE, even for the first allocation, so access violate trying to garbage collect too early, when self is still NULL) From jkrell at elego.de Mon Dec 14 14:57:30 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 14:57:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214135730.A8B302474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 14:57:30 Added files: cm3/m3-libs/m3core/src/unix/Common/context/sigaltstack/: Makefile config.c context.c context.h m3makefile tcontext.c Log message: working version of http://www.engelschall.com/pw/usenix/2000/pmt-html/ - This should be moved to m3core/src/thread/POSIX - Notice how I switched from virtual timer to real timer, in the test case that mimics m3core/src/thread/POSIX. "This seems to work much better." In particular, if the main thread does while (1) sleep(0) to let things run, nothing runs. The virtual time doesn't run down at all. If I make it a busy wait "while (1) ;" then it does work. Note that Apple seems very down on supplying get/make/set/swapcontext (read the mailing lists). This solution might be preferred? Though it is slower to create a thread here, due to extra gymnastics to establish the initial context. Also still some experiments to try. _setjmp vs. setjmp vs. sigsetjmp. Best is probably sigsetjmp(1). using the same signal in both parts From jkrell at elego.de Mon Dec 14 15:27:07 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 15:27:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214142707.3BB4D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 15:27:07 Modified files: cm3/m3-libs/m3core/src/unix/Common/context/sigaltstack/: context.c context.h tcontext.c Log message: comment about real timer vs. virtual timer use sigsetjmp(0) for bootstrap use sigsetjmp(1) for switching swap errno From jkrell at elego.de Mon Dec 14 16:27:23 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 16:27:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214152723.1CE4F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 16:27:23 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c Log message: stop lying about real vs. virtual timers on Cygwin -- doesn't matter for several reason: cygwin, user threads, can use #ifdef in the now-C code From hosking at elego.de Mon Dec 14 16:33:25 2009 From: hosking at elego.de (Antony Hosking) Date: Mon, 14 Dec 2009 16:33:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214153325.B8D522474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/14 16:33:25 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Fix Jay's "fix". We need the cleanup routine to avoid a space leak. The activation field needs to stay valid long enough for the cleanup routine to do its job. From hosking at cs.purdue.edu Mon Dec 14 16:38:06 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 14 Dec 2009 10:38:06 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091214134015.9044F2474001@birch.elegosoft.com> References: <20091214134015.9044F2474001@birch.elegosoft.com> Message-ID: <5A4A51CF-0063-4E4F-93C7-9B950B55C562@cs.purdue.edu> This suggests an m3cg backend compiler problem for floating point on SPARC64. On 14 Dec 2009, at 14:40, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/14 14:40:15 > > Modified files: > cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTMachine.i3 > cm3/m3-libs/m3core/src/unix/: m3makefile > Removed files: > cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTSignal.m3 > > Log message: > updates so SPARC64_SOLARIS bootstrap can build > (possible tangent related to getting SPARC64_OPENBSD > to work -- problem apparently with the floating point > constants in RTCollector, such that Behind() is > always TRUE, even for the first allocation, so > access violate trying to garbage collect too > early, when self is still NULL) -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Dec 14 16:39:31 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 14 Dec 2009 10:39:31 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091214135730.A8B302474001@birch.elegosoft.com> References: <20091214135730.A8B302474001@birch.elegosoft.com> Message-ID: <641797AB-42E3-4797-99A0-A9123953DFF5@cs.purdue.edu> Main thread should call Yield if you want that behavior, not sleep. On 14 Dec 2009, at 14:57, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/14 14:57:30 > > Added files: > cm3/m3-libs/m3core/src/unix/Common/context/sigaltstack/: > Makefile > config.c > context.c > context.h > m3makefile > tcontext.c > > Log message: > working version of http://www.engelschall.com/pw/usenix/2000/pmt-html/ > - This should be moved to m3core/src/thread/POSIX > - Notice how I switched from virtual timer to real timer, > in the test case that mimics m3core/src/thread/POSIX. > "This seems to work much better." > In particular, if the main thread does while (1) sleep(0) > to let things run, nothing runs. The virtual time doesn't > run down at all. If I make it a busy wait "while (1) ;" then > it does work. > > Note that Apple seems very down on supplying get/make/set/swapcontext (read the mailing lists). > This solution might be preferred? Though it is slower to create a thread here, due to > extra gymnastics to establish the initial context. > > Also still some experiments to try. > _setjmp vs. setjmp vs. sigsetjmp. > Best is probably sigsetjmp(1). > using the same signal in both parts -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Dec 14 16:43:40 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 14 Dec 2009 15:43:40 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <5A4A51CF-0063-4E4F-93C7-9B950B55C562@cs.purdue.edu> References: <20091214134015.9044F2474001@birch.elegosoft.com>, <5A4A51CF-0063-4E4F-93C7-9B950B55C562@cs.purdue.edu> Message-ID: I know I know. I know exactly the code. I rewrote it, at least once. Cross compiling works. Native does not. It must be the threshold variables in RTCollector. I really thought I understood that code. - Jay From: hosking at cs.purdue.edu Date: Mon, 14 Dec 2009 10:38:06 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 This suggests an m3cg backend compiler problem for floating point on SPARC64. On 14 Dec 2009, at 14:40, Jay Krell wrote:CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 14:40:15 Modified files: cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTMachine.i3 cm3/m3-libs/m3core/src/unix/: m3makefile Removed files: cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTSignal.m3 Log message: updates so SPARC64_SOLARIS bootstrap can build (possible tangent related to getting SPARC64_OPENBSD to work -- problem apparently with the floating point constants in RTCollector, such that Behind() is always TRUE, even for the first allocation, so access violate trying to garbage collect too early, when self is still NULL) -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Dec 14 16:46:25 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 14 Dec 2009 10:46:25 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20091214134015.9044F2474001@birch.elegosoft.com>, <5A4A51CF-0063-4E4F-93C7-9B950B55C562@cs.purdue.edu> Message-ID: <45D55E81-8BE6-40DB-BD52-0BAC1027F29D@cs.purdue.edu> On 14 Dec 2009, at 10:43, Jay K wrote: > I know I know. I know exactly the code. I rewrote it, at least once. > Cross compiling works. > Native does not. > It must be the threshold variables in RTCollector. Yeah, I've been bitten by just that scenario in the past -- those are the earliest use of FP in the run-time linker. If they are broken you find out quickly. Can you take a look at the gcc m3cg code for FP? It worked at one point just fine on native Alpha 64-bit, so should not be too hard to fix. > I really thought I understood that code. > > - Jay > > > From: hosking at cs.purdue.edu > Date: Mon, 14 Dec 2009 10:38:06 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > This suggests an m3cg backend compiler problem for floating point on SPARC64. > > On 14 Dec 2009, at 14:40, Jay Krell wrote: > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/14 14:40:15 > > Modified files: > cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTMachine.i3 > cm3/m3-libs/m3core/src/unix/: m3makefile > Removed files: > cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTSignal.m3 > > Log message: > updates so SPARC64_SOLARIS bootstrap can build > (possible tangent related to getting SPARC64_OPENBSD > to work -- problem apparently with the floating point > constants in RTCollector, such that Behind() is > always TRUE, even for the first allocation, so > access violate trying to garbage collect too > early, when self is still NULL) > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Mon Dec 14 16:50:06 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 16:50:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214155006.A108C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 16:50:06 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: fix FreeSlot call From jkrell at elego.de Mon Dec 14 16:57:28 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 16:57:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214155728.969D52474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 16:57:28 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: integrate sigaltstack technique from: see http://www.engelschall.com/pw/usenix/2000/pmt-html/ so now AMD64_DARWIN user threads work (Juno starts up) AMD64_DARWIN 10.5 doesn't support get/set/make/swapcontext getcontext returns -1 and errno=ENOTSUP (does it work on 10.4 or 10.6?) will enable for OpenBSD after testing integrated right into the Modula-3 layer instead of implementing get/set/make/swapcontext (some unneeded generalization remains, will cleanup) From jkrell at elego.de Mon Dec 14 17:08:10 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 17:08:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214160810.C13762474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 17:08:10 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: cleanup: no need for SetContext in this code no need for functions to do extra work within the macros e.g. errno is handled elsewhere signal mask should be too if it isn't no need for sigsetjmp(1) within ProcessLive, sigsetjmp(0) is enough no other need for GetContext, just the sigsetjmp(0) use volatile on local that is used around longjmp add cast from void* so it might compile as C++ (not tested) From jkrell at elego.de Mon Dec 14 17:15:16 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 17:15:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214161516.0B3ED2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 17:15:16 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: use ZeroMemory From hosking at cs.purdue.edu Mon Dec 14 17:21:24 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 14 Dec 2009 11:21:24 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091214155728.969D52474001@birch.elegosoft.com> References: <20091214155728.969D52474001@birch.elegosoft.com> Message-ID: Cool! On 14 Dec 2009, at 16:57, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/14 16:57:28 > > Modified files: > cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c > > Log message: > integrate sigaltstack technique from: > see http://www.engelschall.com/pw/usenix/2000/pmt-html/ > > so now AMD64_DARWIN user threads work (Juno starts up) > AMD64_DARWIN 10.5 doesn't support get/set/make/swapcontext > getcontext returns -1 and errno=ENOTSUP > (does it work on 10.4 or 10.6?) > > will enable for OpenBSD after testing > > integrated right into the Modula-3 layer instead > of implementing get/set/make/swapcontext > (some unneeded generalization remains, will cleanup) -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Dec 14 17:22:39 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 14 Dec 2009 16:22:39 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <45D55E81-8BE6-40DB-BD52-0BAC1027F29D@cs.purdue.edu> References: <20091214134015.9044F2474001@birch.elegosoft.com>, , <5A4A51CF-0063-4E4F-93C7-9B950B55C562@cs.purdue.edu>, , <45D55E81-8BE6-40DB-BD52-0BAC1027F29D@cs.purdue.edu> Message-ID: I assumed Alpha was little endian because it ran NT. Then again, I know, a lot of chips go either way these days (PowerPC little endian for NT and presumably XBox360, big endian for Mac and I think Linux and AIX?) Target.m3: (* big endian *) IF TextUtils.StartsWith(system, "PA") (* MIPS is definitely ambiguous! *) OR TextUtils.StartsWith(system, "MIPS") (* PPC is a little ambiguous? *) OR TextUtils.StartsWith(system, "PPC") OR TextUtils.StartsWith(system, "SPARC") OR TextUtils.StartsWith(system, "SOL") THEN Little_endian := FALSE; END; Anyway it shouldn't be hard to track down. I'll probably divert to SPARC64_SOLARIS first, or maybe PPC64_{LINUX,DARWIN} (iMac G5 arrived recently, though PPC64_AIX hardware has been sitting around...) The code I put in parse.c is definitely wierd, but I really thought it was correct, and it /has/ no survived a fair number of combinations. I do cross builds /almost/ without considering host and target. Er, except you can't cross from 64bit to 32bit..I'll probably fix that pretty soon as it has started hitting me more often... it's just something where the compiler gets confused and does host math with target limitations, where it should do target math. - Jay From: hosking at cs.purdue.edu Date: Mon, 14 Dec 2009 10:46:25 -0500 To: jay.krell at cornell.edu CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 On 14 Dec 2009, at 10:43, Jay K wrote:I know I know. I know exactly the code. I rewrote it, at least once. Cross compiling works. Native does not. It must be the threshold variables in RTCollector. Yeah, I've been bitten by just that scenario in the past -- those are the earliest use of FP in the run-time linker. If they are broken you find out quickly. Can you take a look at the gcc m3cg code for FP? It worked at one point just fine on native Alpha 64-bit, so should not be too hard to fix. I really thought I understood that code. - Jay From: hosking at cs.purdue.edu Date: Mon, 14 Dec 2009 10:38:06 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 This suggests an m3cg backend compiler problem for floating point on SPARC64. On 14 Dec 2009, at 14:40, Jay Krell wrote:CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 14:40:15 Modified files: cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTMachine.i3 cm3/m3-libs/m3core/src/unix/: m3makefile Removed files: cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTSignal.m3 Log message: updates so SPARC64_SOLARIS bootstrap can build (possible tangent related to getting SPARC64_OPENBSD to work -- problem apparently with the floating point constants in RTCollector, such that Behind() is always TRUE, even for the first allocation, so access violate trying to garbage collect too early, when self is still NULL) -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Dec 14 17:47:49 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 14 Dec 2009 11:47:49 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20091214134015.9044F2474001@birch.elegosoft.com>, , <5A4A51CF-0063-4E4F-93C7-9B950B55C562@cs.purdue.edu>, , <45D55E81-8BE6-40DB-BD52-0BAC1027F29D@cs.purdue.edu> Message-ID: Yes, Alpha was little-endian (that was the way of Digital). Big-endian was a west coast phenomenon. ;-) On 14 Dec 2009, at 11:22, Jay K wrote: > I assumed Alpha was little endian because it ran NT. > Then again, I know, a lot of chips go either way these days (PowerPC little endian for NT and presumably XBox360, big endian for Mac and I think Linux and AIX?) > > Target.m3: > > (* big endian *) > > IF TextUtils.StartsWith(system, "PA") > > (* MIPS is definitely ambiguous! *) > OR TextUtils.StartsWith(system, "MIPS") > > (* PPC is a little ambiguous? *) > OR TextUtils.StartsWith(system, "PPC") > > OR TextUtils.StartsWith(system, "SPARC") > OR TextUtils.StartsWith(system, "SOL") THEN > Little_endian := FALSE; > END; > > Anyway it shouldn't be hard to track down. > I'll probably divert to SPARC64_SOLARIS first, or maybe PPC64_{LINUX,DARWIN} (iMac G5 arrived recently, though PPC64_AIX hardware has been sitting around...) > > The code I put in parse.c is definitely wierd, but I really thought it was correct, and it /has/ no survived a fair number of combinations. I do cross builds /almost/ without considering host and target. Er, except you can't cross from 64bit to 32bit..I'll probably fix that pretty soon as it has started hitting me more often... it's just something where the compiler gets confused and does host math with target limitations, where it should do target math. > > - Jay > > From: hosking at cs.purdue.edu > Date: Mon, 14 Dec 2009 10:46:25 -0500 > To: jay.krell at cornell.edu > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > On 14 Dec 2009, at 10:43, Jay K wrote: > > I know I know. I know exactly the code. I rewrote it, at least once. > Cross compiling works. > Native does not. > It must be the threshold variables in RTCollector. > > Yeah, I've been bitten by just that scenario in the past -- those are the earliest use of FP in the run-time linker. If they are broken you find out quickly. Can you take a look at the gcc m3cg code for FP? It worked at one point just fine on native Alpha 64-bit, so should not be too hard to fix. > > I really thought I understood that code. > > - Jay > > > From: hosking at cs.purdue.edu > Date: Mon, 14 Dec 2009 10:38:06 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > This suggests an m3cg backend compiler problem for floating point on SPARC64. > > On 14 Dec 2009, at 14:40, Jay Krell wrote: > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/14 14:40:15 > > Modified files: > cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTMachine.i3 > cm3/m3-libs/m3core/src/unix/: m3makefile > Removed files: > cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTSignal.m3 > > Log message: > updates so SPARC64_SOLARIS bootstrap can build > (possible tangent related to getting SPARC64_OPENBSD > to work -- problem apparently with the floating point > constants in RTCollector, such that Behind() is > always TRUE, even for the first allocation, so > access violate trying to garbage collect too > early, when self is still NULL) > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Mon Dec 14 18:40:29 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 18:40:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214174029.DFC272474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 18:40:29 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: match pthread FreeSlot fix From jkrell at elego.de Mon Dec 14 18:41:10 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 18:41:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214174110.CE37F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 18:41:10 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: match pthread FreeSlot style (t => self) From jkrell at elego.de Mon Dec 14 18:42:33 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 18:42:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214174233.9DF652474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 18:42:33 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: and then no null check in CleanT either From jkrell at elego.de Mon Dec 14 18:45:26 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 18:45:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214174526.4AF062474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 18:45:26 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.m3 Log message: FreeSlot/CleanT fixes from head From jkrell at elego.de Mon Dec 14 18:46:44 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 18:46:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214174644.6AF192474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 18:46:44 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.m3 Log message: rename CleanT to CleanThread to match Posix From jkrell at elego.de Mon Dec 14 18:48:23 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 18:48:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214174823.46F7A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 18:48:23 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: rename CleanT to CleanThread to match Posix From jkrell at elego.de Mon Dec 14 18:53:06 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 18:53:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214175306.3BABB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 18:53:06 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: remove obvious NIL deref from FreeSlot From hosking at elego.de Mon Dec 14 18:56:16 2009 From: hosking at elego.de (Antony Hosking) Date: Mon, 14 Dec 2009 18:56:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214175616.7BD632474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/14 18:56:16 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: No need for VAR param. From jkrell at elego.de Mon Dec 14 19:17:08 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:17:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214181708.8204A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:17:08 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: fix leak of activation when even RegisterFinalCleanup is out of memory From jkrell at elego.de Mon Dec 14 19:19:20 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:19:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214181920.7FADA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:19:20 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: rely on RegisterFinalCleanup to do the cleanup in the partial success case, unless it is out of memory, in which case fix the leak of the activation From jkrell at elego.de Mon Dec 14 19:26:46 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:26:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214182648.1177C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:26:46 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: go back a version; I want to fix this differently; waiting for gc to come around and use RegisterFinalCleanup seems too slow when we know resources low From jkrell at elego.de Mon Dec 14 19:31:42 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:31:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214183144.AA9052474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:31:42 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: fix leak of activation under low memory, such as even RegisterFinalCleanup failing From jkrell at elego.de Mon Dec 14 19:32:03 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:32:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214183204.25D262474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:32:03 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: slightly nicer? From jkrell at elego.de Mon Dec 14 19:35:58 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:35:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214183558.5262C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:35:58 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: fix leaks under low resources, structured like pthread but then even cleaner (will update pthread) From jkrell at elego.de Mon Dec 14 19:37:19 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:37:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214183719.790862474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:37:19 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: once register is done, can leave the try/finally From jkrell at elego.de Mon Dec 14 19:38:24 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:38:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214183824.B2EC92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:38:24 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: slightly better structure -- more in the try/finally From jkrell at elego.de Mon Dec 14 19:55:23 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 19:55:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214185523.392AA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 19:55:23 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: allow for RegisterFinalCleanup running out of memory From jkrell at elego.de Mon Dec 14 20:06:21 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 14 Dec 2009 20:06:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214190621.07F4F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/14 20:06:21 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: ungeneralize InitMutex since we don't use it for anything else, such as conditions From hosking at elego.de Mon Dec 14 20:24:46 2009 From: hosking at elego.de (Antony Hosking) Date: Mon, 14 Dec 2009 20:24:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214192446.A74F12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/14 20:24:46 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Let's just let the cleanup handler do the cleanup as needed. From hosking at elego.de Mon Dec 14 20:29:09 2009 From: hosking at elego.de (Antony Hosking) Date: Mon, 14 Dec 2009 20:29:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214192909.22F522474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/14 20:29:09 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Perhaps closer to what Jay wants: cleanup early if memory tight. From jkrell at elego.de Tue Dec 15 00:09:45 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:09:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214230945.E9D9F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:09:45 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: fix leak in InitMutex if RegisterFinalCleanup runs out of memory. Note that this requires locking heap while initLock held, which is hopefully ok. We can't store back the mutex and have it be used until we are sure we'll be able to clean it up. (Which also means we can't share the provided Clean function) It would help if RegisterFinalCleanup provided some sort of two phase operation where the space could be reserved first and then the values either filled in later or the space given up. That way we could probably unnest the locks. Consider that shortly. It seems difficult though esp. to provide "space given up" unless maybe that is considered rare and the space just wasted for that case (at least if it is no longer the last entry in the array). From jkrell at elego.de Tue Dec 15 00:13:50 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:13:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214231350.BA8A42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:13:50 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: modify comment slightly From jkrell at elego.de Tue Dec 15 00:17:19 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:17:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214231719.160562474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:17:19 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: also need to exit initLock if RegisterFinalCleanup raises From jkrell at elego.de Tue Dec 15 00:18:00 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:18:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214231800.6600A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:18:00 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: oops -- double unlock in error path From jkrell at elego.de Tue Dec 15 00:19:54 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:19:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214231954.19D8E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:19:54 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: unlock initMu even if RegisterFinalCleanup raises (I think that's what it does upon out of memory even though it is untraced) From jkrell at elego.de Tue Dec 15 00:27:46 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:27:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214232746.884A22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:27:46 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: structure better From jkrell at elego.de Tue Dec 15 00:30:19 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:30:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214233019.F3BF42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:30:19 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: structure better (as was just done for pthread) From jkrell at elego.de Tue Dec 15 00:33:36 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:33:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214233336.BA56E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:33:36 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: and structure InitCondition like InitMutex in avoiding leak if RegisterFinalCleanup raises From jkrell at elego.de Tue Dec 15 00:37:09 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 0:37:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091214233709.C83E02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 00:37:09 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: InitCondition can use one boolean instead of two pointers for 'cleanup' From jkrell at elego.de Tue Dec 15 11:42:48 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 11:42:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215104248.3F7532474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 11:42:48 Added files: cm3/m3-sys/m3tests/src/p2/p213/: MscTryFinally.i3 MscTryFinally.m3 MscTryFinallyC.c Log message: add test case to show if __try/__finally runs when a Modula-3 except goes by; I'm pretty sure we have a bug here but many attempts to reproduce it fails, so for now, there is no bug (really: it may be some odd/old combination of compiler/libraries that nobody uses, but apparently it's absent with current tools) From jkrell at elego.de Tue Dec 15 11:43:49 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 11:43:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215104349.DD9232474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 11:43:49 Modified files: cm3/m3-sys/m3tests/src/p2/p213/: MscTryFinally.i3 MscTryFinally.m3 MscTryFinallyC.c m3makefile Log message: update, fix newlines From jkrell at elego.de Tue Dec 15 11:49:30 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 11:49:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215104930.841262474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 11:49:30 Modified files: cm3/m3-sys/m3tests/src/p2/p213/: m3makefile Removed files: cm3/m3-sys/m3tests/src/p2/p213/: MscTryFinally.i3 MscTryFinally.m3 MscTryFinallyC.c Log message: oops, this slot was already taken, go back to a day ago hah! race condition occured with a test case for semaphores! From jkrell at elego.de Tue Dec 15 11:57:06 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 11:57:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215105706.579EF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 11:57:06 Added files: cm3/m3-sys/m3tests/src/p2/p224/: Main.m3 m3makefile stderr.build stderr.pgm stdout.build stdout.pgm Log message: copy p213 to p224 in preparation for bringing p213 - p223 over from release branch (!) From jkrell at elego.de Tue Dec 15 12:04:02 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 12:04:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215110402.590672474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 12:04:02 Modified files: cm3/m3-sys/m3tests/src/p2/p213/: Main.m3 m3makefile stdout.pgm Added files: cm3/m3-sys/m3tests/src/p2/p214/: m3makefile stderr.build stderr.pgm stdout.build stdout.pgm cm3/m3-sys/m3tests/src/p2/p215/: m3makefile stderr.build stderr.pgm stdout.build stdout.pgm cm3/m3-sys/m3tests/src/p2/p216/: m3makefile stderr.build stderr.pgm stdout.build stdout.pgm cm3/m3-sys/m3tests/src/p2/p217/: m3makefile stderr.build stdout.build cm3/m3-sys/m3tests/src/p2/p218/: m3makefile stderr.build stdout.build cm3/m3-sys/m3tests/src/p2/p219/: m3makefile stderr.build stdout.build cm3/m3-sys/m3tests/src/p2/p220/: m3makefile stderr.build stdout.build cm3/m3-sys/m3tests/src/p2/p221/: m3makefile stderr.build stdout.build cm3/m3-sys/m3tests/src/p2/p222/: m3makefile stderr.build stdout.build cm3/m3-sys/m3tests/src/p2/p223/: m3makefile stderr.build stdout.build Log message: bring over tests from release branch From jkrell at elego.de Tue Dec 15 12:17:54 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 12:17:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215111754.68F3E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 12:17:54 Added files: cm3/m3-sys/m3tests/src/p2/p225/: Main.m3 finally.c finally.i3 m3makefile stderr.build stderr.pgm stdout.build stdout.pgm Log message: add test of __try/__finally with a Modula-3 exception From jkrell at elego.de Tue Dec 15 12:33:23 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 12:33:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215113323.ACACD2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 12:33:23 Added files: cm3/m3-sys/m3tests/src/p2/p216/: Main.m3 cm3/m3-sys/m3tests/src/p2/p217/: Main.m3 cm3/m3-sys/m3tests/src/p2/p218/: Main.m3 cm3/m3-sys/m3tests/src/p2/p219/: Main.m3 cm3/m3-sys/m3tests/src/p2/p220/: Main.m3 cm3/m3-sys/m3tests/src/p2/p221/: Main.m3 cm3/m3-sys/m3tests/src/p2/p222/: Main.m3 cm3/m3-sys/m3tests/src/p2/p223/: Main.m3 Log message: bring over files from release branch I missed before From jkrell at elego.de Tue Dec 15 12:49:47 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 12:49:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215114947.9B35D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 12:49:47 Modified files: cm3/m3-sys/m3tests/src/: Test.common m3makefile Log message: merge with release: add 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223 their supporting infrastructure change previous 223 to 224 add 225 for __try/__finally From jkrell at elego.de Tue Dec 15 12:54:31 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 12:54:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215115431.56A9F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 12:54:31 Added files: cm3/m3-sys/m3tests/src/p2/p214/: Main.m3 cm3/m3-sys/m3tests/src/p2/p215/: Main.m3 Log message: somehow missed these From jkrell at elego.de Tue Dec 15 12:56:06 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 12:56:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215115606.75A952474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 12:56:06 Added files: cm3/m3-sys/m3tests/src/p2/p224/: Tag: release_branch_cm3_5_8 Main.m3 m3makefile stderr.build stderr.pgm stdout.build stdout.pgm cm3/m3-sys/m3tests/src/p2/p225/: Tag: release_branch_cm3_5_8 Main.m3 finally.c finally.i3 m3makefile stderr.build stderr.pgm stdout.build stdout.pgm Log message: bring over new files from head From jkrell at elego.de Tue Dec 15 13:03:06 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 13:03:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215120306.DEEF72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 13:03:06 Modified files: cm3/m3-sys/m3tests/src/: m3makefile Log message: fix slash issue broken in merge; only affects test results on Windows From jkrell at elego.de Tue Dec 15 15:10:14 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 15:10:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215141015.0508A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 15:10:14 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTLinker.m3 Log message: trace branches the .i3 file implies they aren't nul terminated, so make a local copy use a separate function to avoid the stack bloat in the untraced case and check the global traceInit around a bunch of trace calls (should do that more) From jkrell at elego.de Tue Dec 15 15:16:21 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 15:16:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215141621.A613C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 15:16:21 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTLinker.m3 Log message: move code into separate function TraceType From hosking at elego.de Tue Dec 15 16:06:44 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 15 Dec 2009 16:06:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215150647.3300D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/15 16:06:44 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTLinker.m3 Log message: Let's use RTIO.PutChars instead of copying over the characters ... From jkrell at elego.de Tue Dec 15 17:39:18 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 17:39:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215163918.E7DAE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 17:39:18 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Tag: release_branch_cm3_5_8 NT386.common Log message: fix bug where hand.obj doesn't always get shipped and then e.g. the Juno splashscreen is messed up (it's deeper than that though when it occurs, various set operations are broken) only people building m3core would see this, sometimes From jkrell at elego.de Tue Dec 15 18:24:21 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 18:24:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215172421.8AAC12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 18:24:21 Modified files: cm3/m3-ui/bicycle/src/: m3makefile cm3/m3-ui/cmvbt/src/: m3makefile cm3/m3-ui/codeview/src/: m3makefile cm3/m3-ui/formsedit/src/: m3makefile cm3/m3-ui/formsvbt/src/: m3makefile cm3/m3-ui/images/src/: m3makefile cm3/m3-ui/mg/src/: m3makefile cm3/m3-ui/mgkit/src/: m3makefile cm3/m3-ui/ui/test/EyesVBT/src/: m3makefile cm3/m3-ui/vbtkit/src/: m3makefile cm3/m3-ui/videovbt/src/: m3makefile cm3/m3-ui/webvbt/src/: m3makefile cm3/m3-ui/webvbt/src/hyperpage/src/: m3makefile cm3/m3-ui/zeus/src/: m3makefile Log message: This should fix Win32 mentor in head erroring out with duplicate brands. But is not in release. -if HasGui() +if not HasGui() build_standalone() end From jkrell at elego.de Tue Dec 15 18:28:32 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 18:28:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215172832.127F32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 18:28:32 Modified files: cm3/m3-ui/formsedit/src/: m3makefile Log message: fix HasGui() From jkrell at elego.de Tue Dec 15 19:00:29 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 15 Dec 2009 19:00:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215180029.5412C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/15 19:00:29 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 RTHeapRep.i3 cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: restructure RegisterFinalCleanup into two phase Reserve/Commit in order to avoid holding initLock and heapLock at the same time and having to worry about lock order, deadlock etc. Reserve raises an exception under low memory (as Register did) and Commit does not. From hosking at elego.de Tue Dec 15 20:52:09 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 15 Dec 2009 20:52:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215195209.49DAE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/15 20:52:09 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 RTHeapRep.i3 Log message: Revert previous gratuitous change. There is no deadlock issue here with RTHeapLock. Let's be really clear when we can fail due to a thrown exception. From hosking at elego.de Tue Dec 15 20:52:40 2009 From: hosking at elego.de (Antony Hosking) Date: Tue, 15 Dec 2009 20:52:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091215195240.952DB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/15 20:52:40 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: Match ThreadPThread.m3. From jkrell at elego.de Wed Dec 16 08:39:50 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 8:39:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216073950.ED5282474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 08:39:50 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: some improvements from http://www.cs.wustl.edu/~schmidt/win32-cv-1.html - no need to acquire/release external mutex in loop - ResetEvent outside criticalsection From jkrell at elego.de Wed Dec 16 08:41:29 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 8:41:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216074129.3382A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 08:41:29 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: remove outdated/pointless comment and pointless assert From jkrell at elego.de Wed Dec 16 08:58:17 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 8:58:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216075817.473A42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 08:58:17 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: fix leak of activation when RegisterFinalCleanup is out of memory From jkrell at elego.de Wed Dec 16 09:55:15 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 9:55:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216085515.97CCA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 09:55:15 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: if we fail, but another thread succeeded, then don't raise From jkrell at elego.de Wed Dec 16 10:16:10 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 10:16:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216091610.42F352474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 10:16:10 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: add ActState for unification with pthread From jkrell at elego.de Wed Dec 16 10:26:34 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 10:26:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216092635.054652474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 10:26:34 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: assert that the counters suspendCount and suspend_cnt are always 0 or 1; that is, that they can be booleans as they are in pthreads From jkrell at elego.de Wed Dec 16 10:46:08 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 10:46:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216094609.63F242474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 10:46:08 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: fix: CleanUp => Cleanup From jkrell at elego.de Wed Dec 16 13:16:54 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 13:16:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216121654.2CBB82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 13:16:54 Modified files: cm3/m3-libs/m3core/src/C/LINUXLIBC6/: Csetjmp.i3 Log message: remove dependency on platform-specific Usignal.sigset_t From jkrell at elego.de Wed Dec 16 13:19:59 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 13:19:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216121959.0F3E62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 13:19:59 Modified files: cm3/m3-libs/m3core/src/unix/: m3makefile cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c m3makefile cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: m3makefile Removed files: cm3/m3-libs/m3core/src/unix/Common/: Uucontext.c Uucontext.h Uucontext.i3 Log message: stop using much lingering platform-specific stuff specifically Usignal, Uucontext on all platforms except SOLgnu/SOLsun (SOLgnu/SOLsun RTMachine.i3 want Uucontext) remove all Uucontext stuff (the code that needs it is all in C, again, except for SOLgnu/SOLsun) Some portability and Modula-3 is possible here but we weren't using it. switch OpenBSD/x86 and OpenBSD/sparc64 to sigaltstack/sigsetjmp based user threads instead of poking around in the setjmp buffer unix/* is dead except for *ommon*, solaris*, WIN32 From jkrell at elego.de Wed Dec 16 13:21:36 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 13:21:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216122136.BE2662474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 13:21:36 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c Log message: forgot this: switch OpenBSD to sigaltstack/sigsetjmp user threads From jkrell at elego.de Wed Dec 16 13:26:18 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 13:26:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216122619.0D2412474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 13:26:18 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Log message: remove out of date comment From jkrell at elego.de Wed Dec 16 14:51:24 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 14:51:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216135125.999A72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 14:51:24 Removed files: cm3/m3-lectern/lectern/src/: writev.c Log message: remove unused file From jkrell at elego.de Wed Dec 16 16:04:53 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 16:04:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216150453.A99582474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 16:04:53 Added files: cm3/m3-libs/m3core/src/thread/PTHREAD/: test_interix.c Log message: working demonstration of 'direct' suspend/resume pthreads with Interix and getting the registers of the suspended thread, using the /proc mechanism From jkrell at elego.de Wed Dec 16 16:05:13 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 16:05:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216150513.282922474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 16:05:13 Modified files: cm3/m3-sys/m3cc/src/: platforms.quake Log message: add PPC64_LINUX and PPC64_DARWIN, I at least can build cm3cg for each easy but haven't set up the iMac G5 yet.. From jkrell at elego.de Wed Dec 16 16:44:00 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 16:44:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216154401.01ACF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 16:44:00 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: test_interix.c Log message: fix newlines From jkrell at elego.de Wed Dec 16 17:12:17 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 16 Dec 2009 17:12:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216161217.DF3492474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/16 17:12:17 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadFreeBSD.c ThreadPThreadC.c Log message: fix presumed FreeBSD break I caused assert(stack_grows_down) in ThreadPThreadC.c and not ThreadFreeBSD.c because it isn't available there From hosking at elego.de Wed Dec 16 17:26:31 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 16 Dec 2009 17:26:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091216162632.065A02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/16 17:26:31 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Let's tidy things up even more... From rodney at elego.de Thu Dec 17 22:48:43 2009 From: rodney at elego.de (Rodney M. Bates) Date: Thu, 17 Dec 2009 22:48:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091217214844.792CE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 09/12/17 22:48:43 Modified files: cm3/doc/reference/complete/: m3-defn-complete.tex Log message: Better documentation of WIDECHAR and wide TEXT literals, and hex escapes in CHAR/WIDECHAR/TEXT literals. Derived files still need to be regenerated. From jkrell at elego.de Fri Dec 18 09:23:54 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 9:23:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218082354.DBC142474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 09:23:54 Added files: cm3/m3-libs/m3core/src/thread/PTHREAD/: interix_context_on_signal_stack.c Log message: a program to demonstrate that the context is indeed saved on the signal stack, so nothing special needed (except for having a single parameter signal handler and null context or such) From jkrell at elego.de Fri Dec 18 09:25:01 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 9:25:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218082501.2D8EECC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 09:25:01 Added files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadInterix.c Log message: prototype based on test_interix, will probably be abandoned From jkrell at elego.de Fri Dec 18 09:26:54 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 9:26:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218082654.38E6C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 09:26:54 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadApple.c ThreadFreeBSD.c ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c Log message: viable prototype for Interix that does direct suspend/resume via /proc From jkrell at elego.de Fri Dec 18 09:27:46 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 9:27:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218082748.535FE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 09:27:46 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadApple.c ThreadFreeBSD.c ThreadPThread.i3 ThreadPThread.m3 ThreadPThreadC.c Log message: go back a version From jkrell at elego.de Fri Dec 18 10:06:43 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 10:06:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218090643.4710F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 10:06:43 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: interix_context_on_signal_stack.c Log message: demonstrate finding the context at runtime by searching the stack for the flags and segment registers From jkrell at elego.de Fri Dec 18 10:38:35 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 10:38:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218093835.170BFCC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 10:38:35 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTLinker.m3 Log message: lift traceInit check out of three or four function calls per type (integrated backend doesn't inline) From jkrell at elego.de Fri Dec 18 10:41:31 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 10:41:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218094131.753A42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 10:41:31 Modified files: cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: Tag: release_branch_cm3_5_8 RTMachine.i3 Log message: copy from head -- remove unused import of Uucontext, so that Uucontext can be deleted From hosking at cs.purdue.edu Fri Dec 18 15:57:15 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 18 Dec 2009 09:57:15 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091218093835.170BFCC815@birch.elegosoft.com> References: <20091218093835.170BFCC815@birch.elegosoft.com> Message-ID: <564EAC8A-AF5C-4179-B2B6-6A750B52A8E0@cs.purdue.edu> Jay, This is an example of what I like to call premature optimization. Do you know for sure that the extra checks are costing that much? -- Tony On 18 Dec 2009, at 10:38, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/18 10:38:35 > > Modified files: > cm3/m3-libs/m3core/src/runtime/common/: RTLinker.m3 > > Log message: > lift traceInit check out of three or four function calls per type (integrated backend doesn't inline) -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Fri Dec 18 19:39:46 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 19:39:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218183946.46BEF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 19:39:46 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: initial support for cas/casp on 16bit and 32bit parameters for now it generates out of line function calls and requires a modern compiler The functions are statically linked into the caller. From jkrell at elego.de Fri Dec 18 19:40:41 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 19:40:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218184041.1686B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 19:40:41 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: initial support for cas/casp on 16bit and 32bit parameters for now it generates out of line function calls and requires a modern compiler From jkrell at elego.de Fri Dec 18 19:52:18 2009 From: jkrell at elego.de (Jay Krell) Date: Fri, 18 Dec 2009 19:52:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091218185218.8F8F82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/18 19:52:18 Added files: cm3/m3-sys/m3tests/src/p2/p226/: Main.m3 m3makefile stderr.build stderr.pgm stdout.build stdout.pgm Log message: initial support for cas/casp on 16bit and 32bit parameters for now it generates out of line function calls and requires a modern compiler From jkrell at elego.de Sun Dec 20 11:57:57 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 11:57:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220105757.EC65D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 11:57:57 Modified files: cm3/m3-libs/m3core/src/: Tag: release_branch_cm3_5_8 m3core.h Log message: copy from head: whitespace only From jkrell at elego.de Sun Dec 20 12:01:03 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 12:01:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220110103.B03B7CC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 12:01:03 Modified files: cm3/m3-libs/m3core/src/: Tag: release_branch_cm3_5_8 thread.quake Log message: copy from head: SPARC64_OPENBSD uses user threads From jkrell at elego.de Sun Dec 20 12:05:47 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 12:05:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220110547.93E56CC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 12:05:47 Modified files: cm3/m3-libs/m3core/src/C/Common/: CstdioC.c Log message: remove #if 0 'unsecure' functions tempnam and tmpnam (poor naming here too..) From jkrell at elego.de Sun Dec 20 12:09:32 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 12:09:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220110933.541502474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 12:09:32 Modified files: cm3/m3-libs/m3core/src/C/Common/: CstringC.c Log message: remove #if 0 'unsecure' functions strcpy, strcat From jkrell at elego.de Sun Dec 20 12:13:22 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 12:13:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220111323.16380CC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 12:13:22 Modified files: cm3/m3-libs/m3core/src/C/Common/: Tag: release_branch_cm3_5_8 CerrnoC.c Csignal.i3 CsignalC.c CstdioC.c Cstdlib.i3 CstdlibC.c Cstring.i3 CstringC.c Log message: copy from head: use wrappers, be compatible with msvcrt.lib and libcmt.lib on Windows From jkrell at elego.de Sun Dec 20 12:26:18 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 12:26:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220112618.A49B62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 12:26:18 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32C.c Log message: copy from head: change UINT32 to UINT for compatibility with more header versions From jkrell at elego.de Sun Dec 20 13:44:58 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 13:44:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220124458.772402474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 13:44:58 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTCollector.m3 Log message: copy from head: shorten comment by 2 characters From jkrell at elego.de Sun Dec 20 13:45:50 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 13:45:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220124550.B1092CC818@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 13:45:50 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTLinker.m3 Log message: copy from head: brand tracing in @M3tracelinker From jkrell at elego.de Sun Dec 20 13:46:51 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 13:46:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220124651.82661CC818@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 13:46:51 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: Tag: release_branch_cm3_5_8 RTSignalC.c Log message: copy from head: move OpenBSD lines up so that OpenBSD/sparc64 uses them instead of the Sparc lines From jkrell at elego.de Sun Dec 20 13:48:01 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 13:48:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220124801.5A6FECC818@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 13:48:01 Modified files: cm3/m3-libs/m3core/src/C/LINUXLIBC6/: Tag: release_branch_cm3_5_8 Csetjmp.i3 Log message: copy from head: eliminate dependency on Usignal From jkrell at elego.de Sun Dec 20 13:50:42 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 13:50:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220125043.0A953CC81A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 13:50:42 Added files: cm3/m3-libs/m3core/src/win32/: Tag: release_branch_cm3_5_8 WinConstants.c WinUser.pl WinUser.txt Log message: new inactive files from head From jkrell at elego.de Sun Dec 20 13:53:16 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 13:53:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220125316.B4783CC81A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 13:53:16 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: remove cas/casp support (compiler crashes if you use them) From jkrell at elego.de Sun Dec 20 14:03:33 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 14:03:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220130334.4040FCC818@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 14:03:33 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Tag: release_branch_cm3_5_8 UdirC.c Uexec.c Uin.c Umman.c Uprocess.c Usignal.c Uugid.c Uuio.c Uutmp.c Log message: copy from head: m3unix.h => m3core.h; use macros for mechanical wrappers From jkrell at elego.de Sun Dec 20 14:07:33 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 14:07:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220130733.5DF78CC81A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 14:07:33 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: Tag: release_branch_cm3_5_8 RTOSbrk.c RTOSmmap.c Log message: copy from head: m3unix.h => m3core.h From jkrell at elego.de Sun Dec 20 14:11:51 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 14:11:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220131151.7645ECC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 14:11:51 Modified files: cm3/m3-sys/cm3/src/: Tag: release_branch_cm3_5_8 m3makefile Log message: copy from head: change / to SL and also mention m3core.h note that usually now we use / instead of SL, but for some directories it might still be good to use SL for case of bootstrapping with older m3core, it might (if the paths are just passed through to the underlying functtions though, it doesn't matter) From jkrell at elego.de Sun Dec 20 14:15:37 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 14:15:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220131537.911BFCC818@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 14:15:37 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: remove Win32 cas/casp functions From jkrell at elego.de Sun Dec 20 15:20:18 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 15:20:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220142018.75A4E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 15:20:18 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: remove cas/casp support From jkrell at elego.de Sun Dec 20 15:22:07 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 15:22:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220142207.7C6E2CC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 15:22:07 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: remove cas/casp support From jkrell at elego.de Sun Dec 20 16:49:36 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 16:49:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220154937.B670ECC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 16:49:36 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: use memcmp in place of set_ne or set_eq From jkrell at elego.de Sun Dec 20 17:10:16 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 17:10:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220161016.4BD112474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 17:10:16 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: put in explicit calling conventions (so that user can alter the default in their compiler command line without breaking things) use memcmp for set_ne and set_eq (really belongs in parse.c to avoid the extra call) From jkrell at elego.de Sun Dec 20 17:11:22 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 17:11:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220161122.43BED2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 17:11:22 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: comments about m3back calling memcmp directly but gcc not From jkrell at elego.de Sun Dec 20 17:11:44 2009 From: jkrell at elego.de (Jay Krell) Date: Sun, 20 Dec 2009 17:11:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091220161144.4AAF72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/20 17:11:44 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: comments about m3back calling memcmp directly but gcc not (in the right place) From jkrell at elego.de Mon Dec 21 05:51:10 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 5:51:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221045110.D37B6CC818@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 05:51:10 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Tag: release_branch_cm3_5_8 Usysdep.i3 cm3/m3-libs/m3core/src/unix/darwin-common/: Tag: release_branch_cm3_5_8 Usysdep.i3 cm3/m3-libs/m3core/src/unix/freebsd-common/: Tag: release_branch_cm3_5_8 Usysdep.i3 cm3/m3-libs/m3core/src/unix/hpux-common/: Tag: release_branch_cm3_5_8 Usysdep.i3 cm3/m3-libs/m3core/src/unix/netbsd-common/: Tag: release_branch_cm3_5_8 Usysdep.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Tag: release_branch_cm3_5_8 Usysdep.i3 cm3/m3-libs/m3core/src/unix/solaris-common/: Tag: release_branch_cm3_5_8 Usysdep.i3 Log message: partial merge from head: int32_t => int From jkrell at elego.de Mon Dec 21 06:05:13 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 6:05:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221050513.DCBAECC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 06:05:13 Modified files: cm3/m3-libs/m3core/src/: Tag: release_branch_cm3_5_8 m3core.h cm3/m3-libs/m3core/src/unix/Common/: Tag: release_branch_cm3_5_8 m3unix.h Log message: partial merge from head: have m3unix.h just #include m3core.h m3core.h in release doesn't yet assume certain time type equivalences From jkrell at elego.de Mon Dec 21 06:26:20 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 6:26:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221052620.7A32E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 06:26:20 Modified files: cm3/m3-libs/m3core/src/: Tag: release_branch_cm3_5_8 m3core.h Log message: partial merge from head: change #ifdef guard and provide Interix socklen_t From jkrell at elego.de Mon Dec 21 06:35:34 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 6:35:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221053534.B4EC3CC818@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 06:35:34 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadFreeBSD.c Log message: merge from head: m3unix.h => m3core.h; #if 0 assert(stack_grows_down) From jkrell at elego.de Mon Dec 21 06:36:59 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 6:36:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221053659.58490CC818@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 06:36:59 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: Tag: release_branch_cm3_5_8 ThreadApple.c Log message: from head: m3unix.h => m3core.h From jkrell at elego.de Mon Dec 21 07:08:50 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 7:08:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221060851.6C34DCC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 07:08:50 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: Tag: release_branch_cm3_5_8 hand.c Log message: from head: add explicit calling conventions for NT386 and use memcmp in set_ne and set_eq From jkrell at elego.de Mon Dec 21 07:12:32 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 7:12:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221061232.C5B73CC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 07:12:32 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: put #includes outside extern "C" extern "C" is each header's decision/responsibility From jkrell at elego.de Mon Dec 21 07:16:38 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 7:16:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221061638.B718F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 07:16:38 Modified files: cm3/m3-libs/m3core/src/win32/: Tag: release_branch_cm3_5_8 m3makefile Log message: remove $Id$, it shows up in diffs From jkrell at elego.de Mon Dec 21 08:41:24 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 8:41:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221074124.E72FCCC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 08:41:24 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Tag: release_branch_cm3_5_8 Ugrp.c Unetdb.c UnixLink.c Upwd.c Usocket.c UstatC.c Log message: from head: m3unix.h => m3core.h; "more mechanical wrappers via macros" From jkrell at elego.de Mon Dec 21 15:36:58 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 15:36:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221143658.6DF05CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 15:36:58 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: add missing return type (caught by C++ compiler) From jkrell at elego.de Mon Dec 21 15:40:05 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 15:40:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221144005.F2E8FCC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 15:40:05 Modified files: cm3/m3-libs/m3core/src/C/Common/: CstringC.c Log message: remove some consts for C++ compilation From jkrell at elego.de Mon Dec 21 15:43:54 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 15:43:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221144354.735A22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 15:43:54 Modified files: cm3/m3-libs/m3core/src/Csupport/little-endian/: dtoa.c cm3/m3-libs/m3core/src/Csupport/big-endian/: dtoa.c Log message: don't use old style function definitions in C++ From jkrell at elego.de Mon Dec 21 15:57:56 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 15:57:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221145756.B50322474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 15:57:56 Modified files: cm3/m3-libs/m3core/src/C/Common/: CstringC.c Log message: add back const, and then more, for C++ compilation this is because the non-const overloads are inline and mklib decides it wants to export them the right fix here is that mklib should ignore anything that starts with a question mark, as well as some other things it is exporting unnecessarily From jkrell at elego.de Mon Dec 21 15:59:05 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 15:59:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221145905.D36462474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 15:59:05 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: remove setjmp/longjmp abstraction, until such time as we do merge with pthread code From jkrell at elego.de Mon Dec 21 16:00:09 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 16:00:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221150009.725422474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 16:00:09 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: interix_context_on_signal_stack.c Log message: whitespace only From jkrell at elego.de Mon Dec 21 16:00:40 2009 From: jkrell at elego.de (Jay Krell) Date: Mon, 21 Dec 2009 16:00:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091221150040.B051E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/21 16:00:40 Modified files: cm3/m3-libs/m3core/src/Csupport/libgcc/: libgcc.c cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: RTStackC.c cm3/m3-libs/m3core/src/runtime/DS3100/: RTStackC.c cm3/m3-libs/m3core/src/runtime/POSIX/: RTOSbrk.c RTOSmmap.c cm3/m3-libs/m3core/src/runtime/SOLgnu/: RTStackC.c cm3/m3-libs/m3core/src/runtime/SOLsun/: RTStackC.c cm3/m3-libs/m3core/src/runtime/WIN32/: RTOSc.c cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: add mising #ifdef cplusplus extern "C" { } From jkrell at elego.de Tue Dec 22 11:36:34 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 11:36:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222103634.7C9F62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 11:36:34 Modified files: cm3/m3-libs/m3core/src/C/Common/: Tag: release_branch_cm3_5_8 CstringC.c cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: Tag: release_branch_cm3_5_8 RTStackC.c cm3/m3-libs/m3core/src/runtime/DS3100/: Tag: release_branch_cm3_5_8 RTStackC.c cm3/m3-libs/m3core/src/runtime/POSIX/: Tag: release_branch_cm3_5_8 RTOSbrk.c RTOSmmap.c cm3/m3-libs/m3core/src/runtime/SOLgnu/: Tag: release_branch_cm3_5_8 RTStackC.c cm3/m3-libs/m3core/src/runtime/SOLsun/: Tag: release_branch_cm3_5_8 RTStackC.c cm3/m3-libs/m3core/src/runtime/WIN32/: Tag: release_branch_cm3_5_8 RTOSc.c cm3/m3-libs/m3core/src/runtime/ex_frame/: Tag: release_branch_cm3_5_8 RTStackC.c Log message: copy from head: fixes for C++ compilation: const, extern C, explicit return type, ANSI style functions (20 years..) From jkrell at elego.de Tue Dec 22 11:38:47 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 11:38:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222103847.AA0602474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 11:38:47 Modified files: cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: RTStackC.c cm3/m3-libs/m3core/src/runtime/DS3100/: RTStackC.c Log message: add return types to functions (void) From jkrell at elego.de Tue Dec 22 11:39:45 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 11:39:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222103945.5A6F12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 11:39:45 Modified files: cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: Tag: release_branch_cm3_5_8 RTStackC.c cm3/m3-libs/m3core/src/runtime/DS3100/: Tag: release_branch_cm3_5_8 RTStackC.c Log message: copy from head: add return types to functions (void) From jkrell at elego.de Tue Dec 22 11:41:10 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 11:41:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222104110.EE4CECC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 11:41:10 Modified files: cm3/m3-libs/m3core/src/win32/: Tag: release_branch_cm3_5_8 m3makefile Log message: from head: remove $Id$ From jkrell at elego.de Tue Dec 22 11:41:42 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 11:41:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222104142.2F114CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 11:41:42 Modified files: cm3/m3-libs/m3core/src/win32/: Tag: release_branch_cm3_5_8 m3makefile Log message: oops: remove $Id$ From jkrell at elego.de Tue Dec 22 11:42:09 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 11:42:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222104209.405AECC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 11:42:09 Modified files: cm3/m3-libs/m3core/src/win32/: m3makefile Log message: from release: remove $Id$ From jkrell at elego.de Tue Dec 22 11:43:56 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 11:43:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222104356.84AE72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 11:43:56 Modified files: cm3/m3-libs/m3core/src/Csupport/big-endian/: Tag: release_branch_cm3_5_8 dtoa.c cm3/m3-libs/m3core/src/Csupport/libgcc/: Tag: release_branch_cm3_5_8 libgcc.c cm3/m3-libs/m3core/src/Csupport/little-endian/: Tag: release_branch_cm3_5_8 dtoa.c Log message: from head: fixes in case anyone wants to compile as C++ extern C, "new" (20 year old) function style From jkrell at elego.de Tue Dec 22 11:52:50 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 11:52:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222105250.F028E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 11:52:50 Modified files: cm3/m3-libs/m3core/src/runtime/WIN32/: RTOSc.c cm3/m3-libs/m3core/src/runtime/common/: RTIOc.c RTLinkerC.c RTMiscC.c RTUntracedMemoryC.c Log message: win32 only: always optimize (such small functions), explicit calling conventions, be compatible with libcmt.lib From jkrell at elego.de Tue Dec 22 12:18:32 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 12:18:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222111835.A4272CC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 12:18:32 Modified files: cm3/m3-sys/m3cc/src/: m3makefile Log message: This should fix cross compilers for SPARC64_SOLARIS -- configure doesn't ferry enough around so need to set gcc_cv_as_sparc_register_op in environment. From jkrell at elego.de Tue Dec 22 18:08:18 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:08:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222170818.BD6FB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:08:18 Modified files: cm3/m3-libs/m3core/src/runtime/WIN32/: Tag: release_branch_cm3_5_8 RTOSc.c Log message: forgot this earlier: from head: calling conventions, optimize, libcmt.lib compat From jkrell at elego.de Tue Dec 22 18:08:46 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:08:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222170846.916A02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:08:46 Removed files: cm3/m3-libs/m3core/src/runtime/AMD64_DARWIN/: Tag: release_branch_cm3_5_8 RTMachineC.c RTSignal.m3 cm3/m3-libs/m3core/src/runtime/FreeBSD/: Tag: release_branch_cm3_5_8 _fpsetjmp.s cm3/m3-libs/m3core/src/runtime/FreeBSD2/: Tag: release_branch_cm3_5_8 _fpsetjmp.s cm3/m3-libs/m3core/src/runtime/FreeBSD3/: Tag: release_branch_cm3_5_8 _fpsetjmp.s cm3/m3-libs/m3core/src/runtime/FreeBSD4/: Tag: release_branch_cm3_5_8 _fpsetjmp.s cm3/m3-libs/m3core/src/runtime/I386_DARWIN/: Tag: release_branch_cm3_5_8 RTMachineC.c RTSignal.m3 cm3/m3-libs/m3core/src/runtime/LINUXLIBC6/: Tag: release_branch_cm3_5_8 RTSignal.m3 cm3/m3-libs/m3core/src/runtime/PPC_DARWIN/: Tag: release_branch_cm3_5_8 RTMachineC.c RTSignal.m3 cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: Tag: release_branch_cm3_5_8 RTSignal.m3 Log message: from head: delete some dead files From jkrell at elego.de Tue Dec 22 18:13:53 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:13:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222171354.08A572474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:13:53 Modified files: cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: Tag: release_branch_cm3_5_8 config.c context.c context.h Added files: cm3/m3-libs/m3core/src/unix/Common/context/setjmp/: Tag: release_branch_cm3_5_8 tcontext.c Log message: copy from head: use sigsetjmp instead of setjmp openbsd/sparc64 support we'll stop using this code shortly anyway From jkrell at elego.de Tue Dec 22 18:16:26 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:16:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222171627.004B32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:16:26 Added files: cm3/m3-libs/m3core/src/unix/Common/context/sigaltstack/: Tag: release_branch_cm3_5_8 Makefile config.c context.c m3makefile tcontext.c Log message: copy new files from head, though we may just delete them they aren't used but provide a nice standalone way to test the underlying user thread code/mechanism From jkrell at elego.de Tue Dec 22 18:16:53 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:16:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222171653.608B52474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:16:53 Added files: cm3/m3-libs/m3core/src/unix/Common/context/sigaltstack/: Tag: release_branch_cm3_5_8 context.h Log message: another file here that was somehow missed From jkrell at elego.de Tue Dec 22 18:19:27 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:19:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222171927.EBE39CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:19:27 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTMiscC.c Log message: copy from head: calling convention We should Word.RoundUp Word.RoundUpPowerOf2 and inlining that? From jkrell at elego.de Tue Dec 22 18:22:15 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:22:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222172215.396D12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:22:15 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTLinkerC.c Log message: copy from head: calling convention and optimize small stuff From jkrell at elego.de Tue Dec 22 18:27:56 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:27:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222172756.F254D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:27:56 Modified files: cm3/m3-libs/m3core/src/time/POSIX/: Tag: release_branch_cm3_5_8 TimePosixC.c Log message: copy from head: m3unix.h to m3core.h From jkrell at elego.de Tue Dec 22 18:32:32 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:32:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222173233.03DE3CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:32:32 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTMisc.i3 RTMisc.m3 Log message: copy from head: equate RTMisc.Align(ADDRESS) == RTMisc.Upper(INTEGER) through linking instead of function call + loophole remove dependency on cloned (or then wrapped) headers From jkrell at elego.de Tue Dec 22 18:35:37 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:35:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222173537.D4C5C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:35:37 Removed files: cm3/m3-libs/m3core/src/runtime/ARM_DARWIN/: Tag: release_branch_cm3_5_8 RTMachineC.c cm3/m3-libs/m3core/src/runtime/NetBSD2_i386/: Tag: release_branch_cm3_5_8 _fpsetjmp.s Log message: delete more dead files (as in head) From jkrell at elego.de Tue Dec 22 18:36:33 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:36:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222173633.AE36B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:36:33 Modified files: cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 m3makefile Log message: forgot this: partial merge from head: compile RTMiscC.c (not copying head because I didn't test the RTIO floating point support) From jkrell at elego.de Tue Dec 22 18:39:22 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:39:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222173922.C0A022474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:39:22 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32C.c Log message: copy from head: remove setjmp abstraction and just handle IA64 and use regular setjmp (the only one Windows head, there's no signal mask, though this code could be used with Cygwin, hm) From jkrell at elego.de Tue Dec 22 18:50:24 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:50:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222175026.C779D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:50:24 Modified files: cm3/m3-libs/sysutils/src/: SystemC.c Log message: C++ compat, calling convention, optimize From jkrell at elego.de Tue Dec 22 18:51:25 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:51:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222175125.C98102474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:51:25 Modified files: cm3/m3-libs/m3core/src/C/Common/: CerrnoC.c Log message: C++ compat, calling convention, optimize, libcmt.lib compat From jkrell at elego.de Tue Dec 22 18:58:08 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 18:58:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222175809.D6C9C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 18:58:08 Modified files: cm3/m3-libs/m3core/src/runtime/AIX386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/novm/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/AMD64_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/AP3000/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ARM/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ARM_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/DS3100/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD3/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD4/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/HP300/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/HPPA/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/I386_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IBMR2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IBMRT/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IRIX5/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUX/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUXELF/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUXLIBC6/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/NEXT/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/NT386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/NT386GNU/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/NetBSD2_i386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/OKI/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/OS2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/PPC_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SEQUENT/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SOLgnu/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SOLsun/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SPARC/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SPARC64_SOLARIS/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SUN3/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SUN386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/UMAX/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/VAX/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/common/: RTHeapRep.i3 RTMachine.i3 Log message: AdrPerHeapPage = BytesPerHeapPage; (* addresses per page *) LogAdrPerHeapPage = LogBytesPerHeapPage; always, would move them to comon place but there is only one use, so remove them and change the use (which could probably be further smushed, but at least it isn't per-target) ("all machines are byte-addressable"?) BytesPerHeapPage = 8192 tempting too to make common but I stuck in 64K on NT, maybe we can just use that. From jkrell at elego.de Tue Dec 22 19:03:46 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 19:03:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222180346.D00FBCC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 19:03:46 Modified files: cm3/m3-libs/m3core/src/runtime/FreeBSD/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD3/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD4/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/NetBSD2_i386/: RTMachine.i3 Log message: Change the few remaining BytesPerHeapPage = 4096, LogBytesPerHeapPage = 12 to BytesPerHeapPage = 8192, LogBytesPerHeapPage = 13. These aren't actually machine page sizes any longer. They were when we had virtual memory assisted garbage collection. It is more of an allocation granularity. Now all platforms use 8K except for NT386, which uses 64K since that is what VirtualAlloc allocates in. Perhaps we can just use 64K everywhere? From jkrell at elego.de Tue Dec 22 19:09:49 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 19:09:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222180949.AF383CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 19:09:49 Modified files: cm3/m3-libs/m3core/src/runtime/AIX386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/novm/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/AMD64_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/AP3000/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ARM/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/DS3100/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD3/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD4/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/HPPA/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/I386_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IBMR2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IBMRT/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IRIX5/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUX/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUXELF/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUXLIBC6/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/NetBSD2_i386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/OKI/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/OS2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/PPC_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SPARC/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SUN386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/VAX/: RTMachine.i3 Log message: generally PointerAlignment = BYTESIZE(INTEGER) (or ADDRESS) except I guess 68K machines? Also NT386* is marked as 1, but my quick experiment shows it is also BYTESIZE(INTEGER), will look into that more later From jkrell at elego.de Tue Dec 22 19:19:32 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 19:19:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222181932.48B552474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 19:19:32 Removed files: cm3/m3-libs/m3core/src/runtime/AIX386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/AMD64_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/AP3000/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ARM/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/ARM_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD3/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/FreeBSD4/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/HPPA/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/I386_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IBMR2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IBMRT/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/IRIX5/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUX/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUXELF/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/LINUXLIBC6/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/NetBSD2_i386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/OKI/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/OS2/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/PPC_DARWIN/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SEQUENT/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SPARC/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/SUN386/: RTMachine.i3 cm3/m3-libs/m3core/src/runtime/VAX/: RTMachine.i3 Log message: delete all these semantically identical RTMachine.i3 files common/m3makefile will use common/RTMachine.i3 when platform/RTMachine.i3 doesn't exist, and it is semantically equivalent to all of them keep the following: ALPHA, SPARC: frameinfo and has_stack_walker NT*: alignment=1 (which I suspect is wrong but ok) HP300, Sun3, Umax: 68K machines? (fairly obsolete but I M68K_MAC maybe? :) ) From jkrell at elego.de Tue Dec 22 19:23:04 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 19:23:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222182304.8BD14CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 19:23:04 Modified files: cm3/m3-libs/m3core/src/runtime/AIX386/: m3makefile cm3/m3-libs/m3core/src/runtime/AMD64_DARWIN/: m3makefile cm3/m3-libs/m3core/src/runtime/AP3000/: m3makefile cm3/m3-libs/m3core/src/runtime/ARM/: m3makefile cm3/m3-libs/m3core/src/runtime/ARM_DARWIN/: m3makefile cm3/m3-libs/m3core/src/runtime/FreeBSD/: m3makefile cm3/m3-libs/m3core/src/runtime/FreeBSD2/: m3makefile cm3/m3-libs/m3core/src/runtime/FreeBSD3/: m3makefile cm3/m3-libs/m3core/src/runtime/FreeBSD4/: m3makefile cm3/m3-libs/m3core/src/runtime/HPPA/: m3makefile cm3/m3-libs/m3core/src/runtime/I386_DARWIN/: m3makefile cm3/m3-libs/m3core/src/runtime/IBMR2/: m3makefile cm3/m3-libs/m3core/src/runtime/IBMRT/: m3makefile cm3/m3-libs/m3core/src/runtime/IRIX5/: m3makefile cm3/m3-libs/m3core/src/runtime/LINUX/: m3makefile cm3/m3-libs/m3core/src/runtime/LINUXELF/: m3makefile cm3/m3-libs/m3core/src/runtime/LINUXLIBC6/: m3makefile cm3/m3-libs/m3core/src/runtime/NetBSD2_i386/: m3makefile cm3/m3-libs/m3core/src/runtime/OKI/: m3makefile cm3/m3-libs/m3core/src/runtime/OS2/: m3makefile cm3/m3-libs/m3core/src/runtime/PPC_DARWIN/: m3makefile cm3/m3-libs/m3core/src/runtime/SEQUENT/: m3makefile cm3/m3-libs/m3core/src/runtime/SPARC/: m3makefile cm3/m3-libs/m3core/src/runtime/SUN386/: m3makefile cm3/m3-libs/m3core/src/runtime/VAX/: m3makefile Log message: forgot to delete RTMachine from m3makefiles From jkrell at elego.de Tue Dec 22 19:27:20 2009 From: jkrell at elego.de (Jay Krell) Date: Tue, 22 Dec 2009 19:27:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091222182720.79B302474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/22 19:27:20 Removed files: cm3/m3-libs/m3core/src/runtime/AMD64_DARWIN/: m3makefile cm3/m3-libs/m3core/src/runtime/I386_DARWIN/: m3makefile cm3/m3-libs/m3core/src/runtime/LINUXLIBC6/: m3makefile cm3/m3-libs/m3core/src/runtime/PPC_DARWIN/: m3makefile Log message: delete empty m3makefile (more to do here: FreeBSD4, NetBSD2_i386, they should be empty but aren't) From dabenavidesd at yahoo.es Wed Dec 23 04:42:24 2009 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 23 Dec 2009 03:42:24 +0000 (GMT) Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091221150040.B051E2474001@birch.elegosoft.com> Message-ID: <770199.13762.qm@web23608.mail.ird.yahoo.com> Hi all: forgive my ignorance about the actual changes going on below copied M3commit message of Monday, December 21, 16:00:40 but what is this to have gcc code inside the compiler libs, I recommend to check the strict rules about this before performing such changes, Is there any problem getting gcc code inside the runtime libraries, even if this only used in level C code, this gets more C dependences in non-M3 code we are not able to guarantee, better UNSAFE than totally unmarked unsafe again. If this is not the case, and just a piece of m3cc related code I don't disqualify it yet. Thanks in advance --- El lun, 21/12/09, Jay Krell escribi?: > De: Jay Krell > Asunto: [M3commit] CVS Update: cm3 > Para: m3commit at elegosoft.com > Fecha: lunes, 21 de diciembre, 2009 11:00 > CVSROOT: /usr/cvs > Changes by: > jkrell at birch. 09/12/21 16:00:40 > > Modified files: > cm3/m3-libs/m3core/src/Csupport/libgcc/: > libgcc.c > > cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: RTStackC.c > cm3/m3-libs/m3core/src/runtime/DS3100/: > RTStackC.c > cm3/m3-libs/m3core/src/runtime/POSIX/: > RTOSbrk.c RTOSmmap.c > cm3/m3-libs/m3core/src/runtime/SOLgnu/: > RTStackC.c > cm3/m3-libs/m3core/src/runtime/SOLsun/: > RTStackC.c > cm3/m3-libs/m3core/src/runtime/WIN32/: > RTOSc.c > > cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c > > Log message: > add mising #ifdef cplusplus extern "C" { > } > > From dabenavidesd at yahoo.es Wed Dec 23 05:47:27 2009 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 23 Dec 2009 04:47:27 +0000 (GMT) Subject: [M3commit] [M3devel] CVS Update: cm3 In-Reply-To: <770199.13762.qm@web23608.mail.ird.yahoo.com> Message-ID: <468779.46976.qm@web23608.mail.ird.yahoo.com> Hi again: I recall to have said about a virtualization infrastructure future framework for CM3 reusing existing work made by DEC and SPIN, if we manage to get the system running as a separate process in a given processor we will be definitely getting source code level compability between UNIX implementations by means of a huge historical system like DEC UNIX and a good balance on terms of security in the Modula-3 runtime protection of foreign code. If there is no case of having user level DEC Unix server running in a host processor we can still emulate like they did and/or have a M3 Unix server inside the kernel like they planed to do. In perspective SPINE (spin development) developed a embedded system in NT kernel without touching host system processor but the actual network interface card internal processor featuring several M3 applications running on it. This would be a potential place for higher optimization in the CM3 system as we wouldn't have the usual architecture M3 guest-per system but a M3 host per system given the opportunities for it Hope this helps in something, thanks in advance --- El mar, 22/12/09, Daniel Alejandro Benavides D. escribi?: > De: Daniel Alejandro Benavides D. > Asunto: Re: [M3devel] [M3commit] CVS Update: cm3 > Para: m3commit at elegosoft.com, jkrell at elego.de > CC: m3devel at elegosoft.com > Fecha: martes, 22 de diciembre, 2009 22:42 > Hi all: > forgive my ignorance about the actual changes going on > below copied M3commit message of Monday, December 21, > 16:00:40 but what is this to have gcc code inside the > compiler libs, I recommend to check the strict rules about > this before performing such changes, Is there any problem > getting gcc code inside the runtime libraries, even if this > only used in level C code, this gets more C dependences in > non-M3 code we are not able to guarantee, better UNSAFE than > totally unmarked unsafe again. If this is not the case, and > just a piece of m3cc related code I don't disqualify it > yet. > Thanks in advance > > --- El lun, 21/12/09, Jay Krell > escribi?: > > > De: Jay Krell > > Asunto: [M3commit] CVS Update: cm3 > > Para: m3commit at elegosoft.com > > Fecha: lunes, 21 de diciembre, 2009 11:00 > > CVSROOT: /usr/cvs > > Changes by: > > jkrell at birch. 09/12/21 16:00:40 > > > > Modified files: > > > cm3/m3-libs/m3core/src/Csupport/libgcc/: > > libgcc.c > > > > cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: RTStackC.c > > > > cm3/m3-libs/m3core/src/runtime/DS3100/: > > RTStackC.c > > > cm3/m3-libs/m3core/src/runtime/POSIX/: > > RTOSbrk.c RTOSmmap.c > > > cm3/m3-libs/m3core/src/runtime/SOLgnu/: > > RTStackC.c > > > cm3/m3-libs/m3core/src/runtime/SOLsun/: > > RTStackC.c > > > cm3/m3-libs/m3core/src/runtime/WIN32/: > > RTOSc.c > > > > cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c > > > > Log message: > > add mising #ifdef cplusplus > extern "C" { > > } > > > > > > > > From jay.krell at cornell.edu Wed Dec 23 11:15:51 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 23 Dec 2009 10:15:51 +0000 Subject: [M3commit] libgcc.c In-Reply-To: <770199.13762.qm@web23608.mail.ird.yahoo.com> References: <20091221150040.B051E2474001@birch.elegosoft.com>, <770199.13762.qm@web23608.mail.ird.yahoo.com> Message-ID: Daniel, please look at the file. If you write the following sorts of Modula-3 code: PROCEDURE Add64(a,b: LONGINT):LONGINT= RETURN a + b; END Add64; PROCEDURE Mult64(a,b: LONGINT):LONGINT= RETURN a * b; END Mult64; PROCEDURE Div64(a,b: LONGINT):LONGINT= RETURN a / b; END Div64; Or the following sorts of C code: long long add64(long long a, long long b) { return a + b; } long long mult64(long long a, long long b) { return a * b; } long long div64(long long a, long long b) { return a / b; } fanything that does these operations, not just functions that /only/ do them, on some architectures (esp. 32 bit ones), the backend (or C compiler) will emit function calls. If gcc is the compiler/linker, it always throws libgcc.a or such, and the functions are resolved. Any C code has this property. libgcc.a is liberally licensed. Again, any C code possibly links in this code. On systems where m3cg is the backend but gcc is not the compiler/linker, e.g. SOLsun, you don't get libgcc.a, but you still get these function calls. Therefore, on a platform like SOLsun, the solution is write functions very much like the above, but with names that match what the backend emits. In fact, what might occur is Sun CC emits function calls to functions with yet other names. That's awfully inefficient (two function calls to do a multiply) but it does work. It might be good if we could teach m3cg about the function names used by other compilers/runtimes. But it's also probably only a problem on 32bit platforms and they are the past. Apparently there is some doubt as to if these functions are needed on 64bit platforms, as you can see in the comments (at least in the original). - Jay > Date: Wed, 23 Dec 2009 03:42:24 +0000 > From: dabenavidesd at yahoo.es > To: m3commit at elegosoft.com; jkrell at elego.de > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] [M3commit] CVS Update: cm3 > > Hi all: > forgive my ignorance about the actual changes going on below copied M3commit message of Monday, December 21, 16:00:40 but what is this to have gcc code inside the compiler libs, I recommend to check the strict rules about this before performing such changes, Is there any problem getting gcc code inside the runtime libraries, even if this only used in level C code, this gets more C dependences in non-M3 code we are not able to guarantee, better UNSAFE than totally unmarked unsafe again. If this is not the case, and just a piece of m3cc related code I don't disqualify it yet. > Thanks in advance > > --- El lun, 21/12/09, Jay Krell escribi?: > > > De: Jay Krell > > Asunto: [M3commit] CVS Update: cm3 > > Para: m3commit at elegosoft.com > > Fecha: lunes, 21 de diciembre, 2009 11:00 > > CVSROOT: /usr/cvs > > Changes by: > > jkrell at birch. 09/12/21 16:00:40 > > > > Modified files: > > cm3/m3-libs/m3core/src/Csupport/libgcc/: > > libgcc.c > > > > cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: RTStackC.c > > cm3/m3-libs/m3core/src/runtime/DS3100/: > > RTStackC.c > > cm3/m3-libs/m3core/src/runtime/POSIX/: > > RTOSbrk.c RTOSmmap.c > > cm3/m3-libs/m3core/src/runtime/SOLgnu/: > > RTStackC.c > > cm3/m3-libs/m3core/src/runtime/SOLsun/: > > RTStackC.c > > cm3/m3-libs/m3core/src/runtime/WIN32/: > > RTOSc.c > > > > cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c > > > > Log message: > > add mising #ifdef cplusplus extern "C" { > > } > > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Wed Dec 23 18:59:13 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 23 Dec 2009 18:59:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223175913.2ACF3CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/23 18:59:13 Modified files: cm3/m3-libs/m3core/src/C/Common/: Tag: release_branch_cm3_5_8 CerrnoC.c Log message: from head: calling convention From jkrell at elego.de Wed Dec 23 19:00:40 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 23 Dec 2009 19:00:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223180040.705D7CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/23 19:00:40 Modified files: cm3/m3-libs/sysutils/src/POSIX/: Tag: release_branch_cm3_5_8 SystemPosixC.c Log message: from head: remove lots of #includes From jkrell at elego.de Wed Dec 23 19:01:50 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 23 Dec 2009 19:01:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223180151.7FBDCCC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/23 19:01:50 Modified files: cm3/m3-libs/sysutils/src/: Tag: release_branch_cm3_5_8 SystemC.c Log message: from head: optimize, calling convention, Interix needs #define _REENTRANT From hosking at elego.de Wed Dec 23 22:37:02 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 22:37:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223213702.9BCF2CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 22:37:02 Modified files: cm3/m3-libs/m3core/src/word/: Long.i3 Long.m3 Word.i3 Word.m3 m3makefile Added files: cm3/m3-libs/m3core/src/word/: Word.ig Word.mg Removed files: cm3/m3-libs/m3core/src/word/: GenWord.ig GenWord.mg Log message: Move GenWord.ig and GenWord.mg to Word.ig and Word.mg. From hosking at elego.de Wed Dec 23 22:43:37 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 22:43:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223214337.31D18CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 22:43:37 Modified files: cm3/m3-libs/m3core/src/: m3makefile cm3/m3-libs/m3core/src/float/Common/: Extended.m3 LongReal.m3 Real.m3 cm3/m3-libs/m3core/src/float/IEEE/: Extended.i3 LongReal.i3 Real.i3 cm3/m3-libs/m3core/src/float/VAX/: Extended.i3 LongReal.i3 Real.i3 Added files: cm3/m3-libs/m3core/src/types/: ASCII.i3 ASCII.m3 Boolean.i3 Boolean.m3 COPYRIGHT-CMASS Char.i3 Char.m3 Int32.i3 Int32.m3 Int64.i3 Int64.m3 Integer.i3 Integer.m3 Longint.i3 Longint.m3 Refany.i3 Refany.m3 Unicode.i3 Unicode.m3 WideChar.i3 WideChar.m3 m3makefile Removed files: cm3/m3-libs/libm3/src/types/: ASCII.i3 ASCII.m3 Boolean.i3 Boolean.m3 COPYRIGHT-CMASS Char.i3 Char.m3 Int32.i3 Int32.m3 Int64.i3 Int64.m3 Integer.i3 Integer.m3 Longint.i3 Longint.m3 LongrealType.i3 LongrealType.m3 RealType.i3 RealType.m3 Refany.i3 Refany.m3 Unicode.i3 Unicode.m3 WideChar.i3 WideChar.m3 m3makefile Log message: Move libm3/src/types into m3core. Note that LongrealType and RealType have been folded into m3core/src/float. Clients will need adjustment. From hosking at elego.de Wed Dec 23 23:04:03 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 23:04:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223220403.80E792474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 23:04:03 Modified files: cm3/caltech-parser/cit_util/src/: m3makefile Log message: Fix renames. From hosking at elego.de Wed Dec 23 23:05:06 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 23:05:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223220506.1A322CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 23:05:06 Modified files: cm3/m3-demo/mentor/src/binpack/: RealList.i3 RealList.m3 m3makefile Log message: Fix renames for RealType=>Real and LongrealType=>LongReal. From hosking at elego.de Wed Dec 23 23:06:12 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 23:06:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223220612.AFB69CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 23:06:12 Modified files: cm3/m3-libs/arithmetic/src/basictypes/float/: m3makefile Removed files: cm3/m3-libs/arithmetic/src/basictypes/float/: ExtendedType.i3 ExtendedType.m3 Log message: Fix renames for RealType=>Real, LongrealType=>LongReal, ExtendedType=>Extended. From hosking at elego.de Wed Dec 23 23:07:00 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 23:07:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223220700.07726CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 23:07:00 Modified files: cm3/m3-libs/sortedtableextras/src/: RedBlackTbl.ig SkipListTbl.ig Log message: RealType=>Real. From hosking at elego.de Wed Dec 23 23:07:36 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 23:07:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223220736.799BCCC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 23:07:36 Modified files: cm3/m3-libs/synthesizer/src/: m3makefile Log message: LongrealType=>LongReal. From hosking at elego.de Wed Dec 23 23:13:16 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 23:13:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223221316.A05C62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 23:13:16 Modified files: cm3/m3-libs/m3core/src/types/: m3makefile Added files: cm3/m3-libs/m3core/src/types/: Address.i3 Address.m3 Log message: Add an Address type. From hosking at elego.de Wed Dec 23 23:39:13 2009 From: hosking at elego.de (Antony Hosking) Date: Wed, 23 Dec 2009 23:39:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091223223914.03AD02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/23 23:39:13 Added files: cm3/m3-libs/m3core/src/atomic/: Atomic.ig AtomicAddress.i3 AtomicBoolean.i3 AtomicChar.i3 AtomicInteger.i3 AtomicLongint.i3 AtomicRefany.i3 AtomicWideChar.i3 AtomicWord.i3 Log message: Working up the Atomic interface. Comments welcome. No implementation yet, so don't try using these... you'll get linkage errors. But they do compile. ;-) From jkrell at elego.de Thu Dec 24 16:10:28 2009 From: jkrell at elego.de (Jay Krell) Date: Thu, 24 Dec 2009 16:10:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091224151028.79086CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/24 16:10:28 Added files: cm3/m3-libs/m3core/src/atomic/: atomic.tmpl m3makefile Log message: Let it compile. Note that none of the *.i3 files are used here, identical copies are generated in the build directory. From hosking at elego.de Thu Dec 24 16:41:54 2009 From: hosking at elego.de (Antony Hosking) Date: Thu, 24 Dec 2009 16:41:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091224154154.274DD2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/24 16:41:54 Modified files: cm3/m3-libs/m3core/src/atomic/: m3makefile Log message: It's not a module (yet). From hosking at elego.de Thu Dec 24 16:50:16 2009 From: hosking at elego.de (Antony Hosking) Date: Thu, 24 Dec 2009 16:50:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091224155016.661982474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 09/12/24 16:50:16 Modified files: cm3/m3-libs/m3core/src/atomic/: m3makefile Removed files: cm3/m3-libs/m3core/src/atomic/: atomic.tmpl Log message: These will be compiler builtins like Word, so we shouldn't anticipate expanding more than exactly these interfaces. Remove the template file to discourage (impure) thoughts that we might. From rcoleburn at elego.de Tue Dec 29 19:22:50 2009 From: rcoleburn at elego.de (Randy Coleburn) Date: Tue, 29 Dec 2009 19:22:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091229182250.CC8702474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 09/12/29 19:22:50 Modified files: cm3/m3-libs/m3core/src/runtime/WIN32/: RTOSc.c Log message: convert from MAC to UNIX format so Microsoft C++ compiler on Windows will process the file. From rcoleburn at elego.de Tue Dec 29 19:24:32 2009 From: rcoleburn at elego.de (Randy Coleburn) Date: Tue, 29 Dec 2009 19:24:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091229182432.E5A222474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 09/12/29 19:24:32 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTIOc.c RTLinkerC.c Log message: convert from MAC to UNIX format so Microsoft C++ compiler on Windows will process the file. From rcoleburn at elego.de Wed Dec 30 01:00:21 2009 From: rcoleburn at elego.de (Randy Coleburn) Date: Wed, 30 Dec 2009 1:00:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091230000021.6DA362474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 09/12/30 01:00:21 Modified files: cm3/m3-libs/libm3/src/: m3makefile Log message: repair broken build process by commenting out the inclusion of "Types" folder because this folder is not in the source tree right now. From jkrell at elego.de Wed Dec 30 13:41:06 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Dec 2009 13:41:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091230124106.32C60CC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/30 13:41:06 Modified files: cm3/m3-libs/libm3/src/uid/POSIX/: getMID.c Log message: repair how the variable sized structs are walked demonstrate working code to get MAC addresses on Mac OS X, and perhaps other systems still to be worked into the real code but this is good From jkrell at elego.de Wed Dec 30 13:53:28 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Dec 2009 13:53:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091230125329.165C6CC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/30 13:53:28 Modified files: cm3/m3-libs/libm3/src/uid/POSIX/: getMID.c Log message: It sounds like this will work on Net/Free/OpenBSd as well. An option for pre-10.3 Mac OS X would be good too. From jkrell at elego.de Wed Dec 30 14:06:54 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Dec 2009 14:06:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091230130654.78F432474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/30 14:06:54 Added files: cm3/m3-libs/libm3/src/uid/POSIX/: GetPrimaryMACAddress.c Log message: initial copy of Apple sample code from: http://developer.apple.com/mac/library/samplecode/GetPrimaryMACAddress/ I expect this will work on older systems as well. Note that to compile/link it, you need to specify -framework IOKit -framework CoreFoundation I'll add that to the Darwin config files shortly. From jkrell at elego.de Wed Dec 30 14:08:14 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Dec 2009 14:08:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091230130814.5698E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/30 14:08:14 Modified files: cm3/m3-libs/libm3/src/uid/POSIX/: getMID.c Log message: remove redundant #include From jkrell at elego.de Wed Dec 30 14:13:30 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Dec 2009 14:13:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091230131330.7F0AA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/30 14:13:30 Modified files: cm3/m3-libs/libm3/src/uid/POSIX/: getMID.c Log message: remove volatile that was from when I wanted to look in the debugger but wasn't yet doing anything else From jkrell at elego.de Wed Dec 30 15:40:06 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Dec 2009 15:40:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091230144007.081152474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/30 15:40:06 Modified files: cm3/m3-libs/m3core/src/word/: Long.i3 Long.m3 Word.i3 Word.m3 m3makefile Added files: cm3/m3-libs/m3core/src/word/: GenWord.ig GenWord.mg Removed files: cm3/m3-libs/m3core/src/word/: Word.ig Word.mg Log message: go back to GenWord the other front end (Olivetti m3-tk) doesn't understand INTERFACE Word = Word(WordRep) END Word. but it does't understand INTERFACE Word = GenWord(WordRep) END Word. From jkrell at elego.de Wed Dec 30 15:49:43 2009 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Dec 2009 15:49:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20091230144944.1EAB52474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 09/12/30 15:49:43 Modified files: cm3/caltech-parser/cit_util/src/: m3makefile Log message: fix: LongReal => Longreal, in the local name, not the m3core name