From jkrell at elego.de Sun Nov 4 18:49:03 2007 From: jkrell at elego.de (Jay Krell) Date: Sun, 4 Nov 2007 18:49:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071104174904.138F810D44E0@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/04 18:49:03 Modified files: cm3/m3-sys/cminstall/src/config/: NT386 Log message: use delayload to reduce the overly large static dependencies requires a 6.0 linker or newer From hosking at elego.de Sat Nov 10 17:23:03 2007 From: hosking at elego.de (Antony Hosking) Date: Sat, 10 Nov 2007 17:23:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071110162303.E660910D450B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/10 17:23:03 Modified files: cm3/m3-libs/m3core/src/time/Common/: Date.i3 Log message: POSIX localtime can return 60 as a legal seconds value. From hosking at elego.de Tue Nov 13 18:29:29 2007 From: hosking at elego.de (Antony Hosking) Date: Tue, 13 Nov 2007 18:29:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071113172929.855F210D4527@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/13 18:29:29 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Initialize t.cond and t.mutex to avoid deadlock with activeMu. From hosking at elego.de Tue Nov 13 20:30:52 2007 From: hosking at elego.de (Antony Hosking) Date: Tue, 13 Nov 2007 20:30:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071113193055.1E7F110D4527@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/13 20:30:52 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: One more try... From hosking at elego.de Wed Nov 14 00:25:09 2007 From: hosking at elego.de (Antony Hosking) Date: Wed, 14 Nov 2007 0:25:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071113232509.13F8010D4527@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/14 00:25:08 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Revert last changes re activeMu/lockMu deadlock. Needs more serious examination to derive the fix. From hosking at elego.de Thu Nov 15 19:13:24 2007 From: hosking at elego.de (Antony Hosking) Date: Thu, 15 Nov 2007 19:13:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071115181331.3A9CF10D452C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/15 19:13:24 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Break lock nest to avoid deadlock between activeMu/lockMu. From hosking at elego.de Fri Nov 16 15:55:28 2007 From: hosking at elego.de (Antony Hosking) Date: Fri, 16 Nov 2007 15:55:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071116145528.1FEA310D4527@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/16 15:55:27 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Trying one more fix... Avoid acquiring heap lock (i.e., no weak refs) while holding activeMu. From hosking at elego.de Fri Nov 16 17:10:45 2007 From: hosking at elego.de (Antony Hosking) Date: Fri, 16 Nov 2007 17:10:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071116161045.4CEC210D450D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/16 17:10:45 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Make sure threads are up and running before returning from Fork. From hosking at elego.de Fri Nov 16 22:45:16 2007 From: hosking at elego.de (Antony Hosking) Date: Fri, 16 Nov 2007 22:45:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071116214516.DBD1810D450D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/16 22:45:16 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: No need for "joined" Boolean. The joiner can simply NIL the thread's condition when the thread completes to signal it already been joined. From rodney at elego.de Sat Nov 17 00:09:35 2007 From: rodney at elego.de (Rodney M. Bates) Date: Sat, 17 Nov 2007 0:09:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071116230935.9108210D4527@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 07/11/17 00:09:35 Modified files: cm3/m3-sys/m3gdb/gdb/gdb/: buildsym.c gdbtypes.h language.c m3-eval.c m3-exp.c m3-lang.c m3-lang.h m3-token.c m3-token.h m3-typeprint.c m3-util.c m3-util.h m3-valprint.c value.c Log message: Initial support for LONGINT. Includes printing of LONGINT values, LONGINT literals, as many type combinations for operators as already work on INTEGER. From hosking at elego.de Wed Nov 21 21:21:25 2007 From: hosking at elego.de (Antony Hosking) Date: Wed, 21 Nov 2007 21:21:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071121202125.B404F10D4552@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/21 21:21:25 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Get rid of CheckSlot, etc. in Fork. From hosking at elego.de Thu Nov 29 03:57:06 2007 From: hosking at elego.de (Antony Hosking) Date: Thu, 29 Nov 2007 3:57:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071129025712.AA17E10D452B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/29 03:57:06 Modified files: cm3/m3-libs/m3core/src/unix/aix-3-2/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/aix-ps2-1-2/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/cygwin/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/freebsd-1/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/hpux-7-0/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/ibm-4-3/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/irix-5.2/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/linux/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/linux-libc6/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/os2/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/osf-1.ALPHA_OSF/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/osf-1.DS3100/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/solaris-2-x/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/sunos-4-x/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/sysv-4.0/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.ARM/: Utypes.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.DS3100/: Utypes.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.NEXT/: Utypes.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.SEQUENT/: Utypes.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.SUN3/: Utypes.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.SUN386/: Utypes.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.UMAX/: Utypes.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.VAX/: Utypes.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.generic/: Utypes.m3 Log message: Remove residual implementations of Utypes.asLong and Utypes.assignOffT. From hosking at elego.de Thu Nov 29 05:05:35 2007 From: hosking at elego.de (Antony Hosking) Date: Thu, 29 Nov 2007 5:05:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071129040535.2B31A10D452C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/29 05:05:35 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Fix race in DISPOSE of waitCond and signal of waitCond in Alert. From hosking at elego.de Thu Nov 29 06:07:08 2007 From: hosking at elego.de (Antony Hosking) Date: Thu, 29 Nov 2007 6:07:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071129050708.88A9610D452C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/29 06:07:08 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FSPosix.m3 ProcessPosix.m3 cm3/m3-libs/m3core/src/C/Common/: M3toC.m3 cm3/m3-libs/m3core/src/runtime/common/: RTAllocCnts.i3 RTAllocator.m3 RTCollector.m3 RTHeapInfo.m3 RTHeapRep.i3 cm3/m3-libs/m3core/src/thread/Common/: Scheduler.i3 cm3/m3-libs/m3core/src/thread/POSIX/: SchedulerPosix.i3 ThreadPosix.m3 cm3/m3-libs/m3core/src/thread/PTHREAD/: SchedulerPosix.i3 ThreadPThread.m3 cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: Move DisableSwitching/EnableSwitching from SchedulerPosix.i3 to Scheduler.i3. These need to be available for non-platform-specific code (such as M3toC -- see below) to disable *user*-level thread switching for non-thread-safe code. Since ThreadWin32 and ThreadPThread don't have user-level switching (and library routines are system-thread-safe) these operations are no-ops for those targets. For ThreadPosix (user-level threads) the operations increment the inCritical counter. This change permits a bug-fix for M3toC.CopyTtoS, which invoked Cstdlib.malloc without any protection against user-level thread switches, making it unsafe for user-level threads. These changes also permit significant improvement in the allocation sequences in RTAllocator. RTAllocCnts are only enabled now when needed, and locks are taken only when counts are enabled. From jkrell at elego.de Thu Nov 29 13:04:18 2007 From: jkrell at elego.de (Jay Krell) Date: Thu, 29 Nov 2007 13:04:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071129120418.CC86310D453B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/29 13:04:18 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: optimize away shifts by 0 From jkrell at elego.de Thu Nov 29 13:23:51 2007 From: jkrell at elego.de (Jay Krell) Date: Thu, 29 Nov 2007 13:23:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071129122355.8405B10D453B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/29 13:23:51 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Stackx86.m3 Log message: optimize away shifts of 0 From jkrell at elego.de Thu Nov 29 14:50:02 2007 From: jkrell at elego.de (Jay Krell) Date: Thu, 29 Nov 2007 14:50:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071129135009.552E010D454C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/29 14:50:02 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: fix warning and use consistent though annoyingly verbose and seemingly inefficient style; the "cleaner" form is inefficient too, there lots of extra copying around here, it'd be nice if these were pointers for goodness sakes; if you go too far down the "clean" route, with the copying, it messes up because the originals get mutated in places and there is a need to use the up to date mutated data From jkrell at elego.de Fri Nov 30 10:47:43 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 10:47:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130094748.06A4710D4539@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 10:47:43 Modified files: cm3/scripts/win/: do-cm3-base.cmd do-cm3-core.cmd do-cm3-min.cmd do-cm3-std.cmd do-pkg.cmd make-dist.cmd Log message: just some very small reporting tweaks From jkrell at elego.de Fri Nov 30 10:53:49 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 10:53:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130095354.8D45B10D4540@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 10:53:49 Modified files: cm3/scripts/win/: backup-pkgs.cmd sysinfo.cmd upgrade.cmd Log message: fix bootstrapping make-dist does work, so look at what it does.. In particular, the old compiler cannot build the new runtime. First build just the compiler, and then use that to build the runtime. As well, backup-pkgs would complain about most packages missing, ask you to build them, but you can't. So only require libm3 and m3core, which you must get from a binary release.. you must get them anyway, to build the new compiler against, and you can't build them.. As well, remove some warnings that seem irrelevant now, as they say so themselves -- "generally automatic". As well, running upgrade twice in a row does not work, unless we backup/restore the compiler along with the packages, so do that too. From jkrell at elego.de Fri Nov 30 12:32:01 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 12:32:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130113201.502D610D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 12:32:01 Modified files: cm3/m3-win/import-libs/src/: m3makefile cm3/scripts/win/: clearenv.cmd sysinfo.cmd cm3/m3-sys/cminstall/src/config/: NT386 Log message: config/NT386: guide delayload use by environment variable USE_DELAYLOAD, 0 or 1 guide msvcrt.lib vs. libcmt.lib use by environment variable USE_MSVCRT, 0 or 1 (didn't actually test with a toolset that lacks libcmt.lib, but 7.1 Express Edition is one to try but test with Visual C++ 2.0 that lacks /delayload) clearenv.cmd: clear more stuff, maybe too much, we'll see sysinfo.cmd: probe for /delayload and msvcrt.lib by running link a la autoconf inefficient! better options perhaps include: have cm3.exe split %LIB% and look for delayimp.lib/msvcrt.lib/libcmt.lib run link | findstr Version, just running link and findstr once, and base /delayload decision on it a solution that works with older cm3.exe is perhaps desirable a solution that doesn't require version knowledge is perhaps desirable, though since it could be a >= thing, and not a table listing all known versions, maybe ok a manual "configure" step that user runs when user decides it is needed may also be preferable, but that has shortcomings, what does it take to switch toolsets? Do you hash the environment and store all the configurations? The current "inefficient" solution runs fairly quickly in practise, relative to how slow do-pkg et. al. already are.. this all needs rewriting in Modula-3 perhaps if only I could bring myself to actually like Modula-3.. I don't even like cmd (Perl is way better as a general purpose programming language...) import-libs/src/m3makefile sleazy: fix the path to my local Visual C++ 2.0 so I use it to make import .libs; this is for a hypothetical binary distributation that works with "all" toolsets, except it isn't actually sufficient I found tonight, as, e.g. m3.lib output from a newer toolset doesn't work with older toolset From jkrell at elego.de Fri Nov 30 12:45:58 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 12:45:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130114605.1F26110D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 12:45:58 Modified files: cm3/scripts/win/: sysinfo.cmd cm3/m3-sys/cminstall/src/config/: NT386 Log message: sysinfo.cmd: fix probing for .libs, duh config/NT386 fix other use of msvcrt.lib to honor the config, duh From jkrell at elego.de Fri Nov 30 13:36:44 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 13:36:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130123644.E6F2C10D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 13:36:44 Modified files: cm3/scripts/win/: sysinfo.cmd Log message: fix feature probing, duh From jkrell at elego.de Fri Nov 30 13:48:26 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 13:48:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130124826.71A9910D4539@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 13:48:26 Modified files: cm3/scripts/win/: clearenv.cmd Log message: put this back, otherwise massive breakage.. From jkrell at elego.de Fri Nov 30 13:49:25 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 13:49:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130124925.4801510D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 13:49:25 Modified files: cm3/m3-sys/cminstall/src/config/: NT386 Log message: comments only, upon trying to trim extraneous options From jkrell at elego.de Fri Nov 30 13:59:11 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 13:59:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130125918.5F3B710D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 13:59:11 Modified files: cm3/m3-sys/cminstall/src/config/: NT386 Log message: minor comments and parameter checking From jkrell at elego.de Fri Nov 30 14:07:38 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 14:07:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130130738.2B70310D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 14:07:38 Modified files: cm3/m3-sys/cminstall/src/config/: NT386 Log message: fix From jkrell at elego.de Fri Nov 30 14:44:32 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 14:44:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130134439.E907110D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 14:44:32 Modified files: cm3/m3-sys/cminstall/src/config/: NT386 Log message: should just be making the newlines all Unix format From jkrell at elego.de Fri Nov 30 15:00:56 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 15:00:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130140056.6423F10D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 15:00:56 Modified files: cm3/m3-sys/cminstall/src/config/: NT386 Log message: experiment: use /noentry on .dlls to drastically reduce the C runtime dependencies From hosking at elego.de Fri Nov 30 20:19:36 2007 From: hosking at elego.de (Antony Hosking) Date: Fri, 30 Nov 2007 20:19:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130191936.4B81310D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/30 20:19:36 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: Remove dead code from old VM-synchronized collector. From jkrell at elego.de Sun Nov 4 18:49:03 2007 From: jkrell at elego.de (Jay Krell) Date: Sun, 4 Nov 2007 18:49:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071104174904.138F810D44E0@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/04 18:49:03 Modified files: cm3/m3-sys/cminstall/src/config/: NT386 Log message: use delayload to reduce the overly large static dependencies requires a 6.0 linker or newer From hosking at elego.de Sat Nov 10 17:23:03 2007 From: hosking at elego.de (Antony Hosking) Date: Sat, 10 Nov 2007 17:23:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071110162303.E660910D450B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/10 17:23:03 Modified files: cm3/m3-libs/m3core/src/time/Common/: Date.i3 Log message: POSIX localtime can return 60 as a legal seconds value. From hosking at elego.de Tue Nov 13 18:29:29 2007 From: hosking at elego.de (Antony Hosking) Date: Tue, 13 Nov 2007 18:29:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071113172929.855F210D4527@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/13 18:29:29 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Initialize t.cond and t.mutex to avoid deadlock with activeMu. From hosking at elego.de Tue Nov 13 20:30:52 2007 From: hosking at elego.de (Antony Hosking) Date: Tue, 13 Nov 2007 20:30:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071113193055.1E7F110D4527@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/13 20:30:52 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: One more try... From hosking at elego.de Wed Nov 14 00:25:09 2007 From: hosking at elego.de (Antony Hosking) Date: Wed, 14 Nov 2007 0:25:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071113232509.13F8010D4527@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/14 00:25:08 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Revert last changes re activeMu/lockMu deadlock. Needs more serious examination to derive the fix. From hosking at elego.de Thu Nov 15 19:13:24 2007 From: hosking at elego.de (Antony Hosking) Date: Thu, 15 Nov 2007 19:13:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071115181331.3A9CF10D452C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/15 19:13:24 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Break lock nest to avoid deadlock between activeMu/lockMu. From hosking at elego.de Fri Nov 16 15:55:28 2007 From: hosking at elego.de (Antony Hosking) Date: Fri, 16 Nov 2007 15:55:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071116145528.1FEA310D4527@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/16 15:55:27 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Trying one more fix... Avoid acquiring heap lock (i.e., no weak refs) while holding activeMu. From hosking at elego.de Fri Nov 16 17:10:45 2007 From: hosking at elego.de (Antony Hosking) Date: Fri, 16 Nov 2007 17:10:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071116161045.4CEC210D450D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/16 17:10:45 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Make sure threads are up and running before returning from Fork. From hosking at elego.de Fri Nov 16 22:45:16 2007 From: hosking at elego.de (Antony Hosking) Date: Fri, 16 Nov 2007 22:45:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071116214516.DBD1810D450D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/16 22:45:16 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: No need for "joined" Boolean. The joiner can simply NIL the thread's condition when the thread completes to signal it already been joined. From rodney at elego.de Sat Nov 17 00:09:35 2007 From: rodney at elego.de (Rodney M. Bates) Date: Sat, 17 Nov 2007 0:09:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071116230935.9108210D4527@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 07/11/17 00:09:35 Modified files: cm3/m3-sys/m3gdb/gdb/gdb/: buildsym.c gdbtypes.h language.c m3-eval.c m3-exp.c m3-lang.c m3-lang.h m3-token.c m3-token.h m3-typeprint.c m3-util.c m3-util.h m3-valprint.c value.c Log message: Initial support for LONGINT. Includes printing of LONGINT values, LONGINT literals, as many type combinations for operators as already work on INTEGER. From hosking at elego.de Wed Nov 21 21:21:25 2007 From: hosking at elego.de (Antony Hosking) Date: Wed, 21 Nov 2007 21:21:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071121202125.B404F10D4552@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/21 21:21:25 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Get rid of CheckSlot, etc. in Fork. From hosking at elego.de Thu Nov 29 03:57:06 2007 From: hosking at elego.de (Antony Hosking) Date: Thu, 29 Nov 2007 3:57:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071129025712.AA17E10D452B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/29 03:57:06 Modified files: cm3/m3-libs/m3core/src/unix/aix-3-2/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/aix-ps2-1-2/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/cygwin/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/freebsd-1/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/hpux-7-0/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/ibm-4-3/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/irix-5.2/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/linux/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/linux-libc6/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/os2/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/osf-1.ALPHA_OSF/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/osf-1.DS3100/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/solaris-2-x/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/sunos-4-x/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/sysv-4.0/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.ARM/: Utypes.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.DS3100/: Utypes.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.NEXT/: Utypes.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.SEQUENT/: Utypes.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.SUN3/: Utypes.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.SUN386/: Utypes.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.UMAX/: Utypes.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.VAX/: Utypes.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.generic/: Utypes.m3 Log message: Remove residual implementations of Utypes.asLong and Utypes.assignOffT. From hosking at elego.de Thu Nov 29 05:05:35 2007 From: hosking at elego.de (Antony Hosking) Date: Thu, 29 Nov 2007 5:05:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071129040535.2B31A10D452C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/29 05:05:35 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Fix race in DISPOSE of waitCond and signal of waitCond in Alert. From hosking at elego.de Thu Nov 29 06:07:08 2007 From: hosking at elego.de (Antony Hosking) Date: Thu, 29 Nov 2007 6:07:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071129050708.88A9610D452C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/29 06:07:08 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FSPosix.m3 ProcessPosix.m3 cm3/m3-libs/m3core/src/C/Common/: M3toC.m3 cm3/m3-libs/m3core/src/runtime/common/: RTAllocCnts.i3 RTAllocator.m3 RTCollector.m3 RTHeapInfo.m3 RTHeapRep.i3 cm3/m3-libs/m3core/src/thread/Common/: Scheduler.i3 cm3/m3-libs/m3core/src/thread/POSIX/: SchedulerPosix.i3 ThreadPosix.m3 cm3/m3-libs/m3core/src/thread/PTHREAD/: SchedulerPosix.i3 ThreadPThread.m3 cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: Move DisableSwitching/EnableSwitching from SchedulerPosix.i3 to Scheduler.i3. These need to be available for non-platform-specific code (such as M3toC -- see below) to disable *user*-level thread switching for non-thread-safe code. Since ThreadWin32 and ThreadPThread don't have user-level switching (and library routines are system-thread-safe) these operations are no-ops for those targets. For ThreadPosix (user-level threads) the operations increment the inCritical counter. This change permits a bug-fix for M3toC.CopyTtoS, which invoked Cstdlib.malloc without any protection against user-level thread switches, making it unsafe for user-level threads. These changes also permit significant improvement in the allocation sequences in RTAllocator. RTAllocCnts are only enabled now when needed, and locks are taken only when counts are enabled. From jkrell at elego.de Thu Nov 29 13:04:18 2007 From: jkrell at elego.de (Jay Krell) Date: Thu, 29 Nov 2007 13:04:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071129120418.CC86310D453B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/29 13:04:18 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: optimize away shifts by 0 From jkrell at elego.de Thu Nov 29 13:23:51 2007 From: jkrell at elego.de (Jay Krell) Date: Thu, 29 Nov 2007 13:23:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071129122355.8405B10D453B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/29 13:23:51 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Stackx86.m3 Log message: optimize away shifts of 0 From jkrell at elego.de Thu Nov 29 14:50:02 2007 From: jkrell at elego.de (Jay Krell) Date: Thu, 29 Nov 2007 14:50:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071129135009.552E010D454C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/29 14:50:02 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: fix warning and use consistent though annoyingly verbose and seemingly inefficient style; the "cleaner" form is inefficient too, there lots of extra copying around here, it'd be nice if these were pointers for goodness sakes; if you go too far down the "clean" route, with the copying, it messes up because the originals get mutated in places and there is a need to use the up to date mutated data From jkrell at elego.de Fri Nov 30 10:47:43 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 10:47:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130094748.06A4710D4539@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 10:47:43 Modified files: cm3/scripts/win/: do-cm3-base.cmd do-cm3-core.cmd do-cm3-min.cmd do-cm3-std.cmd do-pkg.cmd make-dist.cmd Log message: just some very small reporting tweaks From jkrell at elego.de Fri Nov 30 10:53:49 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 10:53:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130095354.8D45B10D4540@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 10:53:49 Modified files: cm3/scripts/win/: backup-pkgs.cmd sysinfo.cmd upgrade.cmd Log message: fix bootstrapping make-dist does work, so look at what it does.. In particular, the old compiler cannot build the new runtime. First build just the compiler, and then use that to build the runtime. As well, backup-pkgs would complain about most packages missing, ask you to build them, but you can't. So only require libm3 and m3core, which you must get from a binary release.. you must get them anyway, to build the new compiler against, and you can't build them.. As well, remove some warnings that seem irrelevant now, as they say so themselves -- "generally automatic". As well, running upgrade twice in a row does not work, unless we backup/restore the compiler along with the packages, so do that too. From jkrell at elego.de Fri Nov 30 12:32:01 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 12:32:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130113201.502D610D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 12:32:01 Modified files: cm3/m3-win/import-libs/src/: m3makefile cm3/scripts/win/: clearenv.cmd sysinfo.cmd cm3/m3-sys/cminstall/src/config/: NT386 Log message: config/NT386: guide delayload use by environment variable USE_DELAYLOAD, 0 or 1 guide msvcrt.lib vs. libcmt.lib use by environment variable USE_MSVCRT, 0 or 1 (didn't actually test with a toolset that lacks libcmt.lib, but 7.1 Express Edition is one to try but test with Visual C++ 2.0 that lacks /delayload) clearenv.cmd: clear more stuff, maybe too much, we'll see sysinfo.cmd: probe for /delayload and msvcrt.lib by running link a la autoconf inefficient! better options perhaps include: have cm3.exe split %LIB% and look for delayimp.lib/msvcrt.lib/libcmt.lib run link | findstr Version, just running link and findstr once, and base /delayload decision on it a solution that works with older cm3.exe is perhaps desirable a solution that doesn't require version knowledge is perhaps desirable, though since it could be a >= thing, and not a table listing all known versions, maybe ok a manual "configure" step that user runs when user decides it is needed may also be preferable, but that has shortcomings, what does it take to switch toolsets? Do you hash the environment and store all the configurations? The current "inefficient" solution runs fairly quickly in practise, relative to how slow do-pkg et. al. already are.. this all needs rewriting in Modula-3 perhaps if only I could bring myself to actually like Modula-3.. I don't even like cmd (Perl is way better as a general purpose programming language...) import-libs/src/m3makefile sleazy: fix the path to my local Visual C++ 2.0 so I use it to make import .libs; this is for a hypothetical binary distributation that works with "all" toolsets, except it isn't actually sufficient I found tonight, as, e.g. m3.lib output from a newer toolset doesn't work with older toolset From jkrell at elego.de Fri Nov 30 12:45:58 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 12:45:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130114605.1F26110D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 12:45:58 Modified files: cm3/scripts/win/: sysinfo.cmd cm3/m3-sys/cminstall/src/config/: NT386 Log message: sysinfo.cmd: fix probing for .libs, duh config/NT386 fix other use of msvcrt.lib to honor the config, duh From jkrell at elego.de Fri Nov 30 13:36:44 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 13:36:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130123644.E6F2C10D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 13:36:44 Modified files: cm3/scripts/win/: sysinfo.cmd Log message: fix feature probing, duh From jkrell at elego.de Fri Nov 30 13:48:26 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 13:48:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130124826.71A9910D4539@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 13:48:26 Modified files: cm3/scripts/win/: clearenv.cmd Log message: put this back, otherwise massive breakage.. From jkrell at elego.de Fri Nov 30 13:49:25 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 13:49:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130124925.4801510D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 13:49:25 Modified files: cm3/m3-sys/cminstall/src/config/: NT386 Log message: comments only, upon trying to trim extraneous options From jkrell at elego.de Fri Nov 30 13:59:11 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 13:59:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130125918.5F3B710D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 13:59:11 Modified files: cm3/m3-sys/cminstall/src/config/: NT386 Log message: minor comments and parameter checking From jkrell at elego.de Fri Nov 30 14:07:38 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 14:07:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130130738.2B70310D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 14:07:38 Modified files: cm3/m3-sys/cminstall/src/config/: NT386 Log message: fix From jkrell at elego.de Fri Nov 30 14:44:32 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 14:44:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130134439.E907110D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 14:44:32 Modified files: cm3/m3-sys/cminstall/src/config/: NT386 Log message: should just be making the newlines all Unix format From jkrell at elego.de Fri Nov 30 15:00:56 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 15:00:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130140056.6423F10D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 15:00:56 Modified files: cm3/m3-sys/cminstall/src/config/: NT386 Log message: experiment: use /noentry on .dlls to drastically reduce the C runtime dependencies From hosking at elego.de Fri Nov 30 20:19:36 2007 From: hosking at elego.de (Antony Hosking) Date: Fri, 30 Nov 2007 20:19:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130191936.4B81310D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/30 20:19:36 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: Remove dead code from old VM-synchronized collector. From jkrell at elego.de Sun Nov 4 18:49:03 2007 From: jkrell at elego.de (Jay Krell) Date: Sun, 4 Nov 2007 18:49:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071104174904.138F810D44E0@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/04 18:49:03 Modified files: cm3/m3-sys/cminstall/src/config/: NT386 Log message: use delayload to reduce the overly large static dependencies requires a 6.0 linker or newer From hosking at elego.de Sat Nov 10 17:23:03 2007 From: hosking at elego.de (Antony Hosking) Date: Sat, 10 Nov 2007 17:23:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071110162303.E660910D450B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/10 17:23:03 Modified files: cm3/m3-libs/m3core/src/time/Common/: Date.i3 Log message: POSIX localtime can return 60 as a legal seconds value. From hosking at elego.de Tue Nov 13 18:29:29 2007 From: hosking at elego.de (Antony Hosking) Date: Tue, 13 Nov 2007 18:29:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071113172929.855F210D4527@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/13 18:29:29 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Initialize t.cond and t.mutex to avoid deadlock with activeMu. From hosking at elego.de Tue Nov 13 20:30:52 2007 From: hosking at elego.de (Antony Hosking) Date: Tue, 13 Nov 2007 20:30:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071113193055.1E7F110D4527@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/13 20:30:52 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: One more try... From hosking at elego.de Wed Nov 14 00:25:09 2007 From: hosking at elego.de (Antony Hosking) Date: Wed, 14 Nov 2007 0:25:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071113232509.13F8010D4527@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/14 00:25:08 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Revert last changes re activeMu/lockMu deadlock. Needs more serious examination to derive the fix. From hosking at elego.de Thu Nov 15 19:13:24 2007 From: hosking at elego.de (Antony Hosking) Date: Thu, 15 Nov 2007 19:13:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071115181331.3A9CF10D452C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/15 19:13:24 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Break lock nest to avoid deadlock between activeMu/lockMu. From hosking at elego.de Fri Nov 16 15:55:28 2007 From: hosking at elego.de (Antony Hosking) Date: Fri, 16 Nov 2007 15:55:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071116145528.1FEA310D4527@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/16 15:55:27 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Trying one more fix... Avoid acquiring heap lock (i.e., no weak refs) while holding activeMu. From hosking at elego.de Fri Nov 16 17:10:45 2007 From: hosking at elego.de (Antony Hosking) Date: Fri, 16 Nov 2007 17:10:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071116161045.4CEC210D450D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/16 17:10:45 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Make sure threads are up and running before returning from Fork. From hosking at elego.de Fri Nov 16 22:45:16 2007 From: hosking at elego.de (Antony Hosking) Date: Fri, 16 Nov 2007 22:45:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071116214516.DBD1810D450D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/16 22:45:16 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: No need for "joined" Boolean. The joiner can simply NIL the thread's condition when the thread completes to signal it already been joined. From rodney at elego.de Sat Nov 17 00:09:35 2007 From: rodney at elego.de (Rodney M. Bates) Date: Sat, 17 Nov 2007 0:09:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071116230935.9108210D4527@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 07/11/17 00:09:35 Modified files: cm3/m3-sys/m3gdb/gdb/gdb/: buildsym.c gdbtypes.h language.c m3-eval.c m3-exp.c m3-lang.c m3-lang.h m3-token.c m3-token.h m3-typeprint.c m3-util.c m3-util.h m3-valprint.c value.c Log message: Initial support for LONGINT. Includes printing of LONGINT values, LONGINT literals, as many type combinations for operators as already work on INTEGER. From hosking at elego.de Wed Nov 21 21:21:25 2007 From: hosking at elego.de (Antony Hosking) Date: Wed, 21 Nov 2007 21:21:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071121202125.B404F10D4552@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/21 21:21:25 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Get rid of CheckSlot, etc. in Fork. From hosking at elego.de Thu Nov 29 03:57:06 2007 From: hosking at elego.de (Antony Hosking) Date: Thu, 29 Nov 2007 3:57:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071129025712.AA17E10D452B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/29 03:57:06 Modified files: cm3/m3-libs/m3core/src/unix/aix-3-2/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/aix-ps2-1-2/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/cygwin/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/freebsd-1/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/hpux-7-0/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/ibm-4-3/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/irix-5.2/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/linux/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/linux-libc6/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/os2/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/osf-1.ALPHA_OSF/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/osf-1.DS3100/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/solaris-2-x/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/sunos-4-x/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/sysv-4.0/: Utypes.i3 Utypes.m3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.ARM/: Utypes.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.DS3100/: Utypes.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.NEXT/: Utypes.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.SEQUENT/: Utypes.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.SUN3/: Utypes.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.SUN386/: Utypes.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.UMAX/: Utypes.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.VAX/: Utypes.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.generic/: Utypes.m3 Log message: Remove residual implementations of Utypes.asLong and Utypes.assignOffT. From hosking at elego.de Thu Nov 29 05:05:35 2007 From: hosking at elego.de (Antony Hosking) Date: Thu, 29 Nov 2007 5:05:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071129040535.2B31A10D452C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/29 05:05:35 Modified files: cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 Log message: Fix race in DISPOSE of waitCond and signal of waitCond in Alert. From hosking at elego.de Thu Nov 29 06:07:08 2007 From: hosking at elego.de (Antony Hosking) Date: Thu, 29 Nov 2007 6:07:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071129050708.88A9610D452C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/29 06:07:08 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FSPosix.m3 ProcessPosix.m3 cm3/m3-libs/m3core/src/C/Common/: M3toC.m3 cm3/m3-libs/m3core/src/runtime/common/: RTAllocCnts.i3 RTAllocator.m3 RTCollector.m3 RTHeapInfo.m3 RTHeapRep.i3 cm3/m3-libs/m3core/src/thread/Common/: Scheduler.i3 cm3/m3-libs/m3core/src/thread/POSIX/: SchedulerPosix.i3 ThreadPosix.m3 cm3/m3-libs/m3core/src/thread/PTHREAD/: SchedulerPosix.i3 ThreadPThread.m3 cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 Log message: Move DisableSwitching/EnableSwitching from SchedulerPosix.i3 to Scheduler.i3. These need to be available for non-platform-specific code (such as M3toC -- see below) to disable *user*-level thread switching for non-thread-safe code. Since ThreadWin32 and ThreadPThread don't have user-level switching (and library routines are system-thread-safe) these operations are no-ops for those targets. For ThreadPosix (user-level threads) the operations increment the inCritical counter. This change permits a bug-fix for M3toC.CopyTtoS, which invoked Cstdlib.malloc without any protection against user-level thread switches, making it unsafe for user-level threads. These changes also permit significant improvement in the allocation sequences in RTAllocator. RTAllocCnts are only enabled now when needed, and locks are taken only when counts are enabled. From jkrell at elego.de Thu Nov 29 13:04:18 2007 From: jkrell at elego.de (Jay Krell) Date: Thu, 29 Nov 2007 13:04:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071129120418.CC86310D453B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/29 13:04:18 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: optimize away shifts by 0 From jkrell at elego.de Thu Nov 29 13:23:51 2007 From: jkrell at elego.de (Jay Krell) Date: Thu, 29 Nov 2007 13:23:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071129122355.8405B10D453B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/29 13:23:51 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Stackx86.m3 Log message: optimize away shifts of 0 From jkrell at elego.de Thu Nov 29 14:50:02 2007 From: jkrell at elego.de (Jay Krell) Date: Thu, 29 Nov 2007 14:50:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071129135009.552E010D454C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/29 14:50:02 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: fix warning and use consistent though annoyingly verbose and seemingly inefficient style; the "cleaner" form is inefficient too, there lots of extra copying around here, it'd be nice if these were pointers for goodness sakes; if you go too far down the "clean" route, with the copying, it messes up because the originals get mutated in places and there is a need to use the up to date mutated data From jkrell at elego.de Fri Nov 30 10:47:43 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 10:47:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130094748.06A4710D4539@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 10:47:43 Modified files: cm3/scripts/win/: do-cm3-base.cmd do-cm3-core.cmd do-cm3-min.cmd do-cm3-std.cmd do-pkg.cmd make-dist.cmd Log message: just some very small reporting tweaks From jkrell at elego.de Fri Nov 30 10:53:49 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 10:53:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130095354.8D45B10D4540@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 10:53:49 Modified files: cm3/scripts/win/: backup-pkgs.cmd sysinfo.cmd upgrade.cmd Log message: fix bootstrapping make-dist does work, so look at what it does.. In particular, the old compiler cannot build the new runtime. First build just the compiler, and then use that to build the runtime. As well, backup-pkgs would complain about most packages missing, ask you to build them, but you can't. So only require libm3 and m3core, which you must get from a binary release.. you must get them anyway, to build the new compiler against, and you can't build them.. As well, remove some warnings that seem irrelevant now, as they say so themselves -- "generally automatic". As well, running upgrade twice in a row does not work, unless we backup/restore the compiler along with the packages, so do that too. From jkrell at elego.de Fri Nov 30 12:32:01 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 12:32:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130113201.502D610D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 12:32:01 Modified files: cm3/m3-win/import-libs/src/: m3makefile cm3/scripts/win/: clearenv.cmd sysinfo.cmd cm3/m3-sys/cminstall/src/config/: NT386 Log message: config/NT386: guide delayload use by environment variable USE_DELAYLOAD, 0 or 1 guide msvcrt.lib vs. libcmt.lib use by environment variable USE_MSVCRT, 0 or 1 (didn't actually test with a toolset that lacks libcmt.lib, but 7.1 Express Edition is one to try but test with Visual C++ 2.0 that lacks /delayload) clearenv.cmd: clear more stuff, maybe too much, we'll see sysinfo.cmd: probe for /delayload and msvcrt.lib by running link a la autoconf inefficient! better options perhaps include: have cm3.exe split %LIB% and look for delayimp.lib/msvcrt.lib/libcmt.lib run link | findstr Version, just running link and findstr once, and base /delayload decision on it a solution that works with older cm3.exe is perhaps desirable a solution that doesn't require version knowledge is perhaps desirable, though since it could be a >= thing, and not a table listing all known versions, maybe ok a manual "configure" step that user runs when user decides it is needed may also be preferable, but that has shortcomings, what does it take to switch toolsets? Do you hash the environment and store all the configurations? The current "inefficient" solution runs fairly quickly in practise, relative to how slow do-pkg et. al. already are.. this all needs rewriting in Modula-3 perhaps if only I could bring myself to actually like Modula-3.. I don't even like cmd (Perl is way better as a general purpose programming language...) import-libs/src/m3makefile sleazy: fix the path to my local Visual C++ 2.0 so I use it to make import .libs; this is for a hypothetical binary distributation that works with "all" toolsets, except it isn't actually sufficient I found tonight, as, e.g. m3.lib output from a newer toolset doesn't work with older toolset From jkrell at elego.de Fri Nov 30 12:45:58 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 12:45:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130114605.1F26110D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 12:45:58 Modified files: cm3/scripts/win/: sysinfo.cmd cm3/m3-sys/cminstall/src/config/: NT386 Log message: sysinfo.cmd: fix probing for .libs, duh config/NT386 fix other use of msvcrt.lib to honor the config, duh From jkrell at elego.de Fri Nov 30 13:36:44 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 13:36:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130123644.E6F2C10D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 13:36:44 Modified files: cm3/scripts/win/: sysinfo.cmd Log message: fix feature probing, duh From jkrell at elego.de Fri Nov 30 13:48:26 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 13:48:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130124826.71A9910D4539@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 13:48:26 Modified files: cm3/scripts/win/: clearenv.cmd Log message: put this back, otherwise massive breakage.. From jkrell at elego.de Fri Nov 30 13:49:25 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 13:49:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130124925.4801510D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 13:49:25 Modified files: cm3/m3-sys/cminstall/src/config/: NT386 Log message: comments only, upon trying to trim extraneous options From jkrell at elego.de Fri Nov 30 13:59:11 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 13:59:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130125918.5F3B710D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 13:59:11 Modified files: cm3/m3-sys/cminstall/src/config/: NT386 Log message: minor comments and parameter checking From jkrell at elego.de Fri Nov 30 14:07:38 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 14:07:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130130738.2B70310D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 14:07:38 Modified files: cm3/m3-sys/cminstall/src/config/: NT386 Log message: fix From jkrell at elego.de Fri Nov 30 14:44:32 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 14:44:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130134439.E907110D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 14:44:32 Modified files: cm3/m3-sys/cminstall/src/config/: NT386 Log message: should just be making the newlines all Unix format From jkrell at elego.de Fri Nov 30 15:00:56 2007 From: jkrell at elego.de (Jay Krell) Date: Fri, 30 Nov 2007 15:00:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130140056.6423F10D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 07/11/30 15:00:56 Modified files: cm3/m3-sys/cminstall/src/config/: NT386 Log message: experiment: use /noentry on .dlls to drastically reduce the C runtime dependencies From hosking at elego.de Fri Nov 30 20:19:36 2007 From: hosking at elego.de (Antony Hosking) Date: Fri, 30 Nov 2007 20:19:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20071130191936.4B81310D452D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 07/11/30 20:19:36 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: Remove dead code from old VM-synchronized collector.