From jkrell at elego.de Sat Dec 13 19:56:24 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 13 Dec 2008 19:56:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081213185624.D082010D5A4A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/13 19:56:24 Modified files: cm3/scripts/python/: pylib.py Log message: more files in bootstrap archives, dos2unix From jkrell at elego.de Mon Dec 15 15:59:23 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 15:59:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215145923.C648B10D59FB@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 15:59:23 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Udir.i3 UdirC.c Uerror.i3.cpp UnixC.c Ustat.i3 UstatC.c UtimeC.c m3makefile Log message: work in progress for header reduction and portability through just a little bit of C and not declaring so much unused stuff, esp. to avoid reading through gnarly #ifdefs in headers; only non mainstream platforms so far, such as non-x86 Linux, OpenBSD, non-Solaris SPARC From jkrell at elego.de Mon Dec 15 16:04:17 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:04:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215150417.C8B7F170401F@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:04:17 Modified files: cm3/m3-libs/m3core/src/unix/linux-common/: Uerror.i3 Unix.i3 Upthread.i3 Usignal.i3 Utypes.i3 m3makefile Log message: work in progress for header reduction and portability through just a little bit of C and not declaring so much unused stuff, esp. to avoid reading through gnarly #ifdefs in headers; only non mainstream platforms so far, such as non-x86 Linux, OpenBSD, non-Solaris SPARC, etc. (and really not even most of these affected here, just AMD64_LINUX and MIPS64_OPENBSD being worked on actively) From jkrell at elego.de Mon Dec 15 16:06:11 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:06:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215150614.13F7E2200040@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:06:11 Modified files: cm3/m3-libs/m3core/src/unix/linux-32/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/linux-32/: Uucontext.i3 Log message: header reduction/factoring/etc., avoiding PPC_LINUX/I386_LINUX here From jkrell at elego.de Mon Dec 15 16:07:16 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:07:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215150716.B7D2A904014@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:07:16 Modified files: cm3/m3-libs/m3core/src/unix/linux-64/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/linux-64/: Uucontext.i3 Removed files: cm3/m3-libs/m3core/src/unix/linux-64/: Ustat.i3 Log message: work in progress on header reduction/rewriting.. From jkrell at elego.de Mon Dec 15 16:13:01 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:13:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215151301.54A0F10D5A1B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:13:01 Modified files: cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile Removed files: cm3/m3-libs/m3core/src/unix/openbsd-common/: Ustat.i3 Log message: use common Ustat.i3 -- pay price to copy small struct, instead of declaring it for each platform (esp. to avoid reading through the Linux #ifdefs) From jkrell at elego.de Mon Dec 15 16:20:57 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:20:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215152057.88095904001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:20:57 Modified files: cm3/m3-libs/m3core/src/unix/linux-sparc/: Usignal.i3 m3makefile Removed files: cm3/m3-libs/m3core/src/unix/linux-sparc/: Uucontext.i3 Log message: sparc is a bit different, presumbly to aid binary compat with Solaris From jkrell at elego.de Mon Dec 15 16:22:17 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:22:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215152218.9F089904001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:22:17 Modified files: cm3/m3-libs/m3core/src/unix/linux-sparc/: Usignal.i3 m3makefile Log message: fix line endings From jkrell at elego.de Mon Dec 15 16:23:21 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:23:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215152322.05C1E904001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:23:21 Modified files: cm3/m3-libs/m3core/src/unix/linux-amd64/: m3makefile Log message: header factoring -- nothing actually left here From jkrell at elego.de Mon Dec 15 16:32:08 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:32:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215153210.0E84110D5C00@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:32:08 Modified files: cm3/m3-libs/m3core/src/unix/: m3makefile Log message: move {AMD64,SPARC{32,64}}_LINUX, {MIPS64,SPARC64,PPC32}_OPENBSD toward common/smaller headers not all built/tested, but AMD64_LINUX and MIP64_OPENBSD under active building/debugging From jkrell at elego.de Mon Dec 15 16:41:46 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:41:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215154146.2244A10D5D5B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:41:46 Modified files: cm3/m3-sys/m3cc/gcc/gcc/m3cg/: parse.c Log message: Declare the globals (er, module variables) to be (overall) 2 * max_alignment instead of merely max_alignment. This works around a problem where gcc assumes the module variables (overall, for a single module) fit in registers, and the offset is lost loading them, leading to many/most/all module variable loads to go awry, catastrophic on MIPS64. Many platforms work because their maxalign is already large. This is not clearly the best fix, but it sure is small. MIPS64_OPENBSD gets as far as: $ gdb cm3 (gdb) r Starting program: /home/jay/cm3/bin/cm3 --- building in MIPS64_OPENBSD --- missing version stamps -> compiling RTHooks.i3 Program received signal SIGFPE, Arithmetic exception. 0x00000000104f7be0 in Utils__M3Time (M3_CtKayy_t=0) at ..\src\Utils.m3:320 320 ..\src\Utils.m3: No such file or directory. in ..\src\Utils.m3 (gdb) bt #0 0x00000000104f7be0 in Utils__M3Time (M3_CtKayy_t=0) at ..\src\Utils.m3:320 #1 0x00000000104f7a1c in Utils__NoteNewFile (M3_Bd56fi_file=0x570673e0) at ..\src\Utils.m3:307 #2 0x00000000100b2eb4 in Builder__PushOneM3 (M3_Bd9FNt_s=0x55604830, M3_AXLf8B_u=0x106735f0) at ..\src\Builder.m3:1217 #3 0x00000000100b258c in Builder__CompileM3 (M3_Bd9FNt_s=0x517dd818, M3_AXLf8B_u=0x57077c40) at ..\src\Builder.m3:1149 #4 0x00000000100b0594 in Builder__CompileOne (M3_Bd9FNt_s=0x1, M3_AXLf8B_u=0x57077558) at ..\src\Builder.m3:984 #5 0x00000000100b005c in Builder__CompileEverything (M3_Bd9FNt_s=0x0, M3_Cw4bpV_schedule=0x0) at ..\src\Builder.m3:944 #6 0x00000000100a9bd8 in Builder__CompileUnits (M3_Bd56fi_main=0x570671b0, M3_EEuw3X_units=0x57067188, M3_C1FTrk_sys_libs=0x5179d2d8, M3_A2QN6Z_info_kind=0 '\0', M3_An02H2_mach=0x555fec40) at ..\src\Builder.m3:325 though all the seemingly related code runs several times successfully. Now(), FromUtime(), M3Time(), stat, etc. Perhaps some floats are getting corrupt on the stack. From jkrell at elego.de Mon Dec 15 16:44:00 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:44:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215154402.76B3B10D5D9E@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:44:00 Removed files: cm3/m3-libs/m3core/src/unix/linux-amd64/: Uucontext.i3 Log message: moved to common linux-64 From jkrell at elego.de Mon Dec 15 18:29:40 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 18:29:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215172940.7750110D5C70@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 18:29:40 Modified files: cm3/scripts/python/: pylib.py Log message: Linux needs -lm and -lpthread too From jkrell at elego.de Mon Dec 15 18:31:37 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 18:31:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215173137.F042A10D5C74@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 18:31:37 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Removed files: cm3/m3-libs/m3core/src/unix/Common/: UnixC.c Log message: This really belongs over in libm3. From jkrell at elego.de Mon Dec 15 18:33:17 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 18:33:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215173318.0398710D5C74@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 18:33:17 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosix.i3 FilePosix.m3 m3makefile Added files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosixC.c Log message: Remove the need to untangle the #ifdefs around struct flock. From jkrell at elego.de Mon Dec 15 18:41:06 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 18:41:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215174106.1A7A510D5C70@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 18:41:06 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosixC.c Log message: fix last minute edit From jkrell at elego.de Tue Dec 16 08:23:06 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 8:23:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216072306.C7D88904001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 08:23:06 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: probing output shows up as a diff in tests, so turn it off From jkrell at elego.de Tue Dec 16 08:33:08 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 8:33:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216073308.A553210D506D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 08:33:07 Modified files: cm3/m3-sys/m3tests/src/p1/p170/: Main.m3 Log message: loosen 32 bit-specificity of test, so it succeeds on 64 bit; could also write two different tests From jkrell at elego.de Tue Dec 16 08:43:15 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 8:43:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216074315.7884C10D506D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 08:43:15 Modified files: cm3/m3-sys/m3tests/src/: m3makefile Log message: expected output file has '64' appended, if on a 64bit platform and the file exists; this will deal with the fact that type sizes are in expected output and are 32 bit specific From jkrell at elego.de Tue Dec 16 13:00:57 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 13:00:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216120100.18A2610D5C1D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 13:00:57 Modified files: cm3/scripts/python/: pylib.py make-dist.py Log message: remove 'POSIX' from file names, it is redundant From jkrell at elego.de Tue Dec 16 14:42:44 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 14:42:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216134244.23DC010D59C7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 14:42:44 Added files: cm3/m3-sys/m3tests/src/p0/p011/: stdout.pgm64 cm3/m3-sys/m3tests/src/p0/p076/: stdout.build64 Log message: add 64 bit outputs------------ From jkrell at elego.de Tue Dec 16 15:38:44 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 15:38:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216143845.0256210D59C7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 15:38:44 Modified files: cm3/m3-libs/m3core/src/runtime/AMD64_LINUX/: RTSignal.m3 cm3/m3-libs/m3core/src/unix/linux-common/: Usignal.i3 Log message: fill in missing pieces by copying from LINUXLIBC mostly, probably why two of the tests hang, when run from cm3 From jkrell at elego.de Tue Dec 16 16:06:43 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 16:06:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216150644.B188B2200084@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 16:06:42 Modified files: cm3/m3-libs/m3core/src/unix/linux-common/: Utime.i3 Log message: fix time_t (INTEGER, not int), so that nanosleep in StopWorld sleeps the intended amount, instead of way too much aka hanging From jkrell at elego.de Tue Dec 16 16:31:49 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 16:31:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216153150.E6D9810D5C55@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 16:31:49 Modified files: cm3/m3-libs/m3core/src/win32/: WinNTc.c Log message: remove dependency on newer headers, so that e.g. I386_CYGWIN (aka NT386GNU) builds From jkrell at elego.de Tue Dec 16 16:33:19 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 16:33:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216153319.C43B110D5C55@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 16:33:19 Modified files: cm3/m3-libs/m3core/src/win32/: WinNTc.c Log message: fix line endings From jkrell at elego.de Tue Dec 16 17:40:43 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 17:40:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216164044.0C55010D506D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 17:40:43 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosixC.c cm3/m3-libs/m3core/src/unix/Common/: UdirC.c m3makefile cm3/m3-libs/m3core/src/unix/cygwin/: Uerror.i3 Ustat.i3 m3makefile cm3/m3-sys/cminstall/src/config/: NT386.common cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common cm3/m3-sys/m3cc/src/: m3makefile cm3/scripts/python/: pylib.py upgrade.py Removed files: cm3/m3-libs/m3core/src/unix/cygwin/: Udir.i3 Log message: Bring Cygwin to common headers. don't enforce alignment on x86 (not aligned on Cygwin) Fix Cygwin for m3cg probing (NT386 => NT386GNU) Posix says to use SEEK_SET, and Cygwin doesn't define L_SET. some m3makefile cleanup to again deal with quotes/slashes use single quotes when ok and might be nested in double quotes some m3makefile cleanup to depend on "sysutils" for brevity and no point in "mkdir(.)" From hosking at cs.purdue.edu Tue Dec 16 20:33:27 2008 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 17 Dec 2008 06:33:27 +1100 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20081215173318.0398710D5C74@birch.elegosoft.com> References: <20081215173318.0398710D5C74@birch.elegosoft.com> Message-ID: This new file FilePosixC.c does not build on my SOLgnu Tinderbox setup, so the regressions failed last night. Jay, this is precisely the reason that we don't want to have C-coded files in the Modula-3 code-base -- C might proclaim its portability but that portability is a lie. Why do we need this when the old pure Modula-3 setup worked just fine! I know it meant some amount of duplication, but that duplication was needed because of differences in API specs on different platforms. I am not averse to having *portable* C code, but in this case I think it is too low-level to be properly portable. Perhaps better to keep it in Modula-3. On 15 Dec 2008, at 18:33, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 08/12/15 18:33:17 > > Modified files: > cm3/m3-libs/libm3/src/os/POSIX/: FilePosix.i3 FilePosix.m3 > m3makefile > Added files: > cm3/m3-libs/libm3/src/os/POSIX/: FilePosixC.c > > Log message: > Remove the need to untangle the #ifdefs around struct flock. From jay.krell at cornell.edu Wed Dec 17 01:32:06 2008 From: jay.krell at cornell.edu (Jay) Date: Wed, 17 Dec 2008 00:32:06 +0000 Subject: [M3commit] FilePosixC.c In-Reply-To: References: <20081215173318.0398710D5C74@birch.elegosoft.com> Message-ID: Tony, Well, it is a matter of degree, but I really dislike the duplication and I believe the portability is plenty attainable. It also didn't compile for me on Cygwin, I did a bit more research and fixed that. It is ok now for SOLgnu? I do have a SOLgnu/sun machine but didn't rebuild there yet. L_SET is not portable. - Jay> From: hosking at cs.purdue.edu> To: jkrell at elego.de> Date: Wed, 17 Dec 2008 06:33:27 +1100> CC: m3devel at elegosoft.com; m3commit at elegosoft.com> Subject: Re: [M3commit] CVS Update: cm3> > This new file FilePosixC.c does not build on my SOLgnu Tinderbox > setup, so the regressions failed last night.> > Jay, this is precisely the reason that we don't want to have C-coded > files in the Modula-3 code-base -- C might proclaim its portability > but that portability is a lie. Why do we need this when the old pure > Modula-3 setup worked just fine! I know it meant some amount of > duplication, but that duplication was needed because of differences in > API specs on different platforms. I am not averse to having > *portable* C code, but in this case I think it is too low-level to be > properly portable. Perhaps better to keep it in Modula-3.> > On 15 Dec 2008, at 18:33, Jay Krell wrote:> > > CVSROOT: /usr/cvs> > Changes by: jkrell at birch. 08/12/15 18:33:17> >> > Modified files:> > cm3/m3-libs/libm3/src/os/POSIX/: FilePosix.i3 FilePosix.m3> > m3makefile> > Added files:> > cm3/m3-libs/libm3/src/os/POSIX/: FilePosixC.c> >> > Log message:> > Remove the need to untangle the #ifdefs around struct flock.> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Wed Dec 17 01:51:37 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 17 Dec 2008 1:51:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081217005137.35F0A10D5C54@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/17 01:51:36 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UstatC.c Log message: remove __inline for increased portability From jkrell at elego.de Wed Dec 17 01:53:22 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 17 Dec 2008 1:53:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081217005322.44AE010D5C54@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/17 01:53:22 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UstatC.c Log message: should support files >4gig on 32bit systems From hosking at cs.purdue.edu Wed Dec 17 01:49:36 2008 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 17 Dec 2008 11:49:36 +1100 Subject: [M3commit] FilePosixC.c In-Reply-To: References: <20081215173318.0398710D5C74@birch.elegosoft.com> Message-ID: I'll wait for tomorrow's regressions to come through and see if it is fixed now for my SOLgnu Tinderbox setup. I see the temptation to eliminate duplication, and for these sorts of POSIX APIs I would expect portable C code to work pretty well. On 17 Dec 2008, at 11:32, Jay wrote: > Tony, Well, it is a matter of degree, but I really dislike the > duplication > and I believe the portability is plenty attainable. It also didn't > compile > for me on Cygwin, I did a bit more research and fixed that. > It is ok now for SOLgnu? I do have a SOLgnu/sun machine but didn't > rebuild there yet. > L_SET is not portable. > > - Jay > > > From: hosking at cs.purdue.edu > > To: jkrell at elego.de > > Date: Wed, 17 Dec 2008 06:33:27 +1100 > > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > > Subject: Re: [M3commit] CVS Update: cm3 > > > > This new file FilePosixC.c does not build on my SOLgnu Tinderbox > > setup, so the regressions failed last night. > > > > Jay, this is precisely the reason that we don't want to have C-coded > > files in the Modula-3 code-base -- C might proclaim its portability > > but that portability is a lie. Why do we need this when the old pure > > Modula-3 setup worked just fine! I know it meant some amount of > > duplication, but that duplication was needed because of > differences in > > API specs on different platforms. I am not averse to having > > *portable* C code, but in this case I think it is too low-level to > be > > properly portable. Perhaps better to keep it in Modula-3. > > > > On 15 Dec 2008, at 18:33, Jay Krell wrote: > > > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 08/12/15 18:33:17 > > > > > > Modified files: > > > cm3/m3-libs/libm3/src/os/POSIX/: FilePosix.i3 FilePosix.m3 > > > m3makefile > > > Added files: > > > cm3/m3-libs/libm3/src/os/POSIX/: FilePosixC.c > > > > > > Log message: > > > Remove the need to untangle the #ifdefs around struct flock. > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Wed Dec 17 14:02:41 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 17 Dec 2008 14:02:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081217130244.424BD2200046@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/17 14:02:41 Modified files: cm3/m3-ui/juno-2/juno-app/pkl-fonts/src/: m3makefile Log message: build standalone on NT386 to avoid problem running as part of building nearby -- running unshipped stuff is probably nebulous in general, and building this standalone is probably reasonable therefore for all platforms? From jkrell at elego.de Wed Dec 17 15:44:38 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 17 Dec 2008 15:44:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081217144438.7B13610D5C1D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/17 15:44:38 Modified files: cm3/m3-sys/cminstall/src/config/: NT386.common Log message: don't double up flags on cm3cg command line (cosmetic) From jkrell at elego.de Wed Dec 17 15:47:34 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 17 Dec 2008 15:47:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081217144734.7E9A310D5C1D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/17 15:47:34 Modified files: cm3/scripts/python/: pylib.py make-dist.py Log message: fix line endings and 'temporarily' skip serial package -- there's a problem here on I386_CYGWIN I forgot about where essentially you want to provide both FilePosix and FileWin32; FilePosix will export File, FileWin32 will export FileWin32, so that portable Modula-3 can use File/FilePosix and Win32 specific serial code can use FileWin32; maybe some day we should try out this serial stuff, and /maybe/ the Posix paths work on Cygwin? For now, just skip it. And fix line endings. And try out the alternate 'clean' path in make-dist From jkrell at elego.de Wed Dec 17 16:04:25 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 17 Dec 2008 16:04:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081217150427.9CCEA1704033@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/17 16:04:25 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: remove errant empty comment line (cosmetic) From jkrell at elego.de Wed Dec 17 17:19:11 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 17 Dec 2008 17:19:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081217161911.815C410D5D0D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/17 17:19:11 Modified files: cm3/www/uploaded-archives/: update_download_index.sh Log message: make there be a dash after the platform, so that NT386 and NT386GNU are separated From rodney at elego.de Thu Dec 18 05:17:43 2008 From: rodney at elego.de (Rodney M. Bates) Date: Thu, 18 Dec 2008 5:17:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081218041743.4559410D59A9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 08/12/18 05:17:43 Modified files: cm3/m3-sys/m3gdb/gdb/gdb/: frame.c infcall.c m3-eval.c m3-lang.c m3-lang.h m3-util.c m3-util.h m3-valprint.c Log message: Some progress adapting the the new system of static links used by gcc 4.3.0. In many cases, m3gdb can now properly follow them and also create them, when calling or passing a nested procedure. The main place it will fail is if a nested procedure makes no nonlocal references to variables or parameters of an enclosing procedure, nor does any further enclosed procedure. If it can't find a static link, it will still fall back to the process of nearest dynamic ancestor activation record that belongs to the desired procedure. This will be correct when nested procedures are called only as procedure constants. For older compilers everything should work, though the implementation is greatly changed. From jkrell at elego.de Fri Dec 19 01:24:22 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 1:24:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219002422.0A48410D5C26@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 01:24:21 Modified files: cm3/scripts/python/: upgrade.py pylib.py Log message: put serial back, and fix newlines From jkrell at elego.de Fri Dec 19 01:31:49 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 1:31:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219003149.F11C010D5C6A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 01:31:49 Modified files: cm3/scripts/: pkginfo.sh Log message: build udp on Win32 too From jkrell at elego.de Fri Dec 19 01:32:26 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 1:32:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219003227.E57A810D5C6A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 01:32:26 Modified files: cm3/scripts/python/: pylib.py Log message: build udp on Win32 too (local CVS is crashing when I try to commit more than one file, ugh) From jkrell at elego.de Fri Dec 19 01:32:39 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 1:32:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219003239.9ACD610D5C6A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 01:32:39 Modified files: cm3/scripts/win/: pkginfo.cmd Log message: build udp on Win32 too (local CVS is crashing when I try to commit more than one file, ugh) From jkrell at elego.de Fri Dec 19 06:54:11 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 6:54:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219055411.8943410D5D0F@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 06:54:11 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: SOLsun and SOLgnu can use each other's m3cgc1.exe -- they are the same From jkrell at elego.de Fri Dec 19 06:57:30 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 6:57:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219055730.E25D810D5D36@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 06:57:30 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UdirC.c m3makefile cm3/m3-libs/m3core/src/unix/linux-32/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/linux-sparc/: Uerror.i3 Log message: some fixes for SPARC{32,64}_LINUX a fix that probably affects many/all Posix platforms, but not done testing SOLsun/SOLgnu From jkrell at elego.de Fri Dec 19 07:32:43 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 7:32:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219063245.175EE10D5C26@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 07:32:43 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UdirC.c Log message: fix newlines, and endeavor to use 64 bits types on Linux, where there is often a 32bit and 64bit interface From jkrell at elego.de Fri Dec 19 07:45:42 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 7:45:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219064542.96F0810D458C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 07:45:42 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Log message: revision 1.2 should not havce given UstatC.c to 'every' platform (not every platform uses this cirectory, but many do, for UtimeC.c global variable wrappers) From jkrell at elego.de Fri Dec 19 07:54:04 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 7:54:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219065405.3E0CC10D5C26@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 07:54:04 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile UdirC.c Log message: all that OpenBSD stuff is for naught From jkrell at elego.de Fri Dec 19 09:44:43 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 9:44:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219084443.DE70010D5C26@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 09:44:43 Modified files: cm3/m3-libs/m3core/src/Csupport/libgcc/: libgcc.c Log message: SOLsun needs __muldi3; just take a bunch from LGPL gcc/gcc/config/darwin-64.c (same licensing as code compiled for 64bit darwin, if any of the functions are pulled in, which the code claims is unlikely) From jkrell at elego.de Fri Dec 19 10:23:17 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 10:23:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219092317.E05B010D59C7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 10:23:17 Modified files: cm3/scripts/python/: pylib.py Log message: extra switches needed by SOLsun, SPARC64_SOLARIS, SPARC32_LINUX, SPARC64_LINUX, and need to copy .s files into boot archive and assemble them, for SOLgnu and SOLsun From jkrell at elego.de Fri Dec 19 14:39:28 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 14:39:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219133928.7C41A10D5C26@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 14:39:28 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Solaris.common Log message: put quotes where needed; in case anyone else has single-target tools, I plan to use one plain 'gcc' with -m32 and -m64 shortly From jkrell at elego.de Fri Dec 19 18:40:10 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 18:40:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219174010.B243510D5C55@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 18:40:10 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Solaris.common Log message: use gcc to drive the linker, assuming gcc works well enough (usually they do, even if mine wasn't), this way, we don't have to track down libgcc.a for the 64bit math helpers From jkrell at elego.de Wed Dec 24 07:43:38 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 24 Dec 2008 7:43:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081224064338.F031510D5E5F@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/24 07:43:38 Modified files: cm3/m3-sys/m3cc/src/: m3makefile Log message: don't use fs_exists From jkrell at elego.de Wed Dec 24 07:46:43 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 24 Dec 2008 7:46:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081224064643.3496210D5E5F@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/24 07:46:43 Modified files: cm3/m3-sys/m3cc/src/: m3makefile Log message: comment about previous From jkrell at elego.de Wed Dec 24 20:58:45 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 24 Dec 2008 20:58:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081224195845.2A8EF10D5DA6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/24 20:58:45 Modified files: cm3/m3-libs/m3core/src/unix/linux-32/: m3makefile Log message: fix typo that broke LINUXLIBC6 From jkrell at elego.de Thu Dec 25 07:15:35 2008 From: jkrell at elego.de (Jay Krell) Date: Thu, 25 Dec 2008 7:15:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081225061537.771CF10D58EA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/25 07:15:35 Modified files: cm3/scripts/python/: pylib.py Log message: fix newlines; remove conflict-prone $ From jkrell at elego.de Thu Dec 25 07:42:45 2008 From: jkrell at elego.de (Jay Krell) Date: Thu, 25 Dec 2008 7:42:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081225064245.A6DDB10D5DE0@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/25 07:42:45 Modified files: cm3/m3-libs/m3core/src/unix/linux-32/: m3makefile Log message: other way around From jkrell at elego.de Sat Dec 27 00:14:03 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 0:14:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081226231403.11E2110D5E5C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 00:14:02 Modified files: cm3/m3-libs/m3core/src/runtime/PPC_LINUX/: RTMachine.i3 cm3/m3-libs/m3core/src/thread/: m3makefile cm3/scripts/python/: pylib.py Log message: user threads long since broken (years ago I believe) switch PPC_LINUX to kernel threads bootstrapped from NT386GNU, native build then gets to m3-tools/m3totex: /cm3/bin/m3bundle -name B -F/tmp/qk unable to open file for reading: ../PPC_LINUX/B.i3: errno=2 open failed on: ../PPC_LINUX/B.i3 unable to open file for reading: ../PPC_LINUX/B.m3: errno=2 open failed on: ../PPC_LINUX/B.m3 new source -> compiling m3totex.m3 Fatal Error: unable to open file for reading: ../PPC_LINUX/B.i3: errno=2 That's way better than the alternative. When using user threads, access violate in PushEFrame accessing NULL self; ThreadF__Init not called yet pthreads and Win32 threads initialize "PushEFrame" on-demand, but doing the simplest user thread analog -- ThreadF__Init -- on-demand is too much and fails Probably need to change user thread Thread.T from an "object" to a traced ref, and then initialize it to an untraced value to start, if that is legal user threads will need fixing for hypothetical djgpp platform From jkrell at elego.de Sat Dec 27 00:15:34 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 0:15:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081226231534.65BBB10D5E5C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 00:15:34 Modified files: cm3/m3-sys/m3cc/src/: m3makefile Log message: some logging improvements; output commands to _m3.log; stay out of the native directory's _m3.log when doing cross builds; add some platforms that aren't yet active From jkrell at elego.de Sat Dec 27 00:24:51 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 0:24:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081226232451.5771C10D5E5C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 00:24:51 Removed files: cm3/m3-libs/m3core/src/runtime/PPC_LINUX/: RTStackASM.s Log message: remove dead x86 assembly source from PPC directory From jkrell at elego.de Sat Dec 27 01:35:08 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 1:35:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227003509.5F50310D5E84@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 01:35:08 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UdirC.c UstatC.c UtimeC.c Added files: cm3/m3-libs/m3core/src/unix/Common/: m3unix.h Log message: file sizes and offsets should always be 64 bits functions that traffic in file sizes offsets should always have "64" at the end? From jkrell at elego.de Sat Dec 27 01:45:13 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 1:45:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227004513.E12B710D5E5C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 01:45:13 Modified files: cm3/m3-libs/m3core/src/unix/linux-common/: Umman.i3 Unix.i3 Log message: be sure to have 64 bit file size/offset, and appropriate functions thereof (work in progress) From jkrell at elego.de Sat Dec 27 02:04:03 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 2:04:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227010404.5D42310D4936@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 02:04:03 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UdirC.c cm3/m3-libs/m3core/src/unix/cygwin/: Unix.i3 Log message: fix for Cygwin and 'tell' doesn't seem to exist ? From jkrell at elego.de Sat Dec 27 03:05:29 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 3:05:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227020529.B503910D5DE8@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 03:05:29 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Unix.i3 Unix.i3.cpp Log message: reduce cloned headers From jkrell at elego.de Sat Dec 27 03:08:13 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 3:08:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227020814.305D110D5DE8@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 03:08:13 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Utypes.i3 Utypes.i3.cpp Log message: more header reduction -- don't need the contituents of struct stat From jkrell at elego.de Sat Dec 27 05:56:30 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 5:56:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227045630.91D0F10D5DE8@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 05:56:30 Modified files: cm3/m3-libs/m3core/src/unix/openbsd-common/: Unix.i3 Log message: more header reduction From jkrell at elego.de Sat Dec 27 05:57:00 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 5:57:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227045700.9CF1E10D5DE9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 05:57:00 Modified files: cm3/m3-libs/m3core/src/unix/linux-common/: Unix.i3 Log message: more header reduction From jkrell at elego.de Sat Dec 27 08:16:24 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 8:16:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227071624.37FFB10D54C5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 08:16:24 Modified files: cm3/m3-libs/m3core/src/unix/: m3makefile cm3/m3-libs/m3core/src/unix/aix-3-2/: m3makefile cm3/m3-libs/m3core/src/unix/aix-ps2-1-2/: m3makefile cm3/m3-libs/m3core/src/unix/cygwin/: m3makefile cm3/m3-libs/m3core/src/unix/darwin-generic/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-1/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-2/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-3/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-4/: m3makefile cm3/m3-libs/m3core/src/unix/ibm-4-3/: m3makefile cm3/m3-libs/m3core/src/unix/linux/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/netbsd2-i386/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile cm3/m3-libs/m3core/src/unix/os2/: m3makefile cm3/m3-libs/m3core/src/unix/osf-1.generic/: m3makefile cm3/m3-libs/m3core/src/unix/solaris-2-x/: m3makefile cm3/m3-libs/m3core/src/unix/sunos-4-x/: m3makefile cm3/m3-libs/m3core/src/unix/sysv-4.0/: m3makefile cm3/m3-libs/m3core/src/unix/ultrix-3-1.generic/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/: Uutmp.txt cm3/m3-libs/m3core/src/unix/Uutmp1/: Uutmp.i3 m3makefile cm3/m3-libs/m3core/src/unix/Uutmp2/: Uutmp.i3 m3makefile cm3/m3-libs/m3core/src/unix/Uutmp3/: Uutmp.i3 m3makefile Removed files: cm3/m3-libs/m3core/src/unix/aix-3-2/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/aix-ps2-1-2/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/cygwin/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/darwin-generic/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/freebsd-1/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/freebsd-2/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/freebsd-3/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/freebsd-4/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/ibm-4-3/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/linux/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/netbsd2-i386/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/os2/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/osf-1.generic/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/solaris-2-x/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/sunos-4-x/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/sysv-4.0/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.generic/: Uutmp.i3 Log message: combine 22 Uutmp.i3 files into just the 3 shared ones and 3 custom ones From jkrell at elego.de Sat Dec 27 19:25:29 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 19:25:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227182529.34B8310D5E93@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 19:25:29 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: PPC_LINUX Log message: fix newlines From jkrell at elego.de Sat Dec 27 19:29:26 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 19:29:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227182926.5E56710D5E93@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 19:29:26 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: PPC_LINUX SOLsun SPARC64_LINUX Log message: some cleanup, esp. that I get warnings that -fPIC is redundant on PPC_LINUX From jkrell at elego.de Sat Dec 27 20:21:53 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 20:21:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227192153.AEB8910D5E92@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 20:21:53 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Utime.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Utime.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Utime.i3 Log message: make these three files almost identical (two of them actually identical) so that in the future we might be able to only have one From jkrell at elego.de Sat Dec 27 20:26:35 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 20:26:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227192635.DFE0210D5E92@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 20:26:35 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Utime.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Utime.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Utime.i3 Log message: the correct versions: make these three files almost identical (two of them actually identical) so that in the future we might be able to only have one From jkrell at elego.de Sun Dec 28 00:57:24 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 0:57:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227235724.ED56110D5E92@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 00:57:24 Modified files: cm3/m3-libs/m3core/src/runtime/PPC_LINUX/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/: m3makefile cm3/m3-libs/m3core/src/unix/: m3makefile cm3/m3-libs/m3core/src/unix/Common/: UdirC.c m3makefile cm3/m3-libs/m3core/src/unix/linux-32/: m3makefile cm3/scripts/python/: pylib.py Removed files: cm3/m3-libs/m3core/src/runtime/PPC_LINUX/: RTThread.m3 RTThreadC.c Log message: switch PPC_LINUX to trimmed down linux-common instead of larger and more error-prone linux-libc6 lose user thread support in the process, which could be preserved, but also doesn't work From jkrell at elego.de Sun Dec 28 01:00:57 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 1:00:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228000100.06A2210D5E93@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 01:00:57 Modified files: cm3/www/uploaded-archives/: update_download_index.sh Log message: add PPC_LINUX From jkrell at elego.de Sun Dec 28 01:32:57 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 1:32:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228003301.A42CA10D59A7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 01:32:57 Removed files: cm3/m3-libs/m3core/src/unix/linux-amd64/: 1.cpp 1.sh m3makefile Log message: forgot to deelete these; no longer used From jkrell at elego.de Sun Dec 28 08:10:25 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 8:10:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228071026.6BB861704023@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 08:10:25 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/Common/: Upwd.i3 Removed files: cm3/m3-libs/m3core/src/unix/cygwin/: Upwd.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Upwd.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Upwd.i3 Log message: another common file From jkrell at elego.de Sun Dec 28 08:13:38 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 8:13:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228071338.34EA5904004@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 08:13:38 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/cygwin/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/Common/: Unetdb.i3 Removed files: cm3/m3-libs/m3core/src/unix/cygwin/: Unetdb.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Unetdb.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Unetdb.i3 Log message: another common file From jkrell at elego.de Sun Dec 28 08:01:42 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 8:01:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228070143.434C6904006@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 08:01:42 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/Common/: Uuio.i3 Removed files: cm3/m3-libs/m3core/src/unix/cygwin/: Uuio.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Uuio.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Uuio.i3 Log message: make Uuio.i3 common, along with removing the unused sometimes 64bit incorrect iovec type (the length is size_t/long/ssize_t/integer, not int) From jkrell at elego.de Sun Dec 28 08:40:37 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 8:40:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228074037.7047C10D5D40@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 08:40:37 Removed files: cm3/m3-libs/m3core/src/unix/linux-ppc/: m3makefile Uucontext.i3 Log message: forgot to delete these files From jkrell at elego.de Sun Dec 28 08:42:50 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 8:42:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228074250.4E54410D5D40@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 08:42:50 Modified files: cm3/m3-libs/m3core/src/unix/linux-32/: m3makefile cm3/m3-libs/m3core/src/unix/linux-libc6/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/linux-libc6/: Ustat.i3 Removed files: cm3/m3-libs/m3core/src/unix/linux-32/: Ustat.i3 Log message: LINUXLIBC6 is now the only user of linux-32/Ustat.i3, so move the file to its specific directory. From jkrell at elego.de Sun Dec 28 08:26:46 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 8:26:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228072646.ECD7810D461B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 08:26:46 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/cygwin/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/Common/: Uugid.i3 Removed files: cm3/m3-libs/m3core/src/unix/cygwin/: Uugid.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Uugid.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Uugid.i3 Log message: another common file From jkrell at elego.de Sun Dec 28 08:57:10 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 8:57:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228075711.81493904004@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 08:57:10 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/Common/: Usched.i3 Removed files: cm3/m3-libs/m3core/src/unix/linux-common/: Usched.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Usched.i3 Log message: another common file From jkrell at elego.de Sun Dec 28 09:01:29 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 9:01:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228080129.C37C1904006@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 09:01:29 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Log message: factor some common code From jkrell at elego.de Sun Dec 28 09:31:48 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 9:31:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228083149.5D6DE10D461B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 09:31:48 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/cygwin/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/Common/: Uprocess.i3 Removed files: cm3/m3-libs/m3core/src/unix/cygwin/: Uprocess.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Uprocess.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Uprocess.i3 Log message: yet another common file From jkrell at elego.de Sun Dec 28 09:38:50 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 9:38:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228083851.570E210D461B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 09:38:50 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/cygwin/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/Common/: Uresource.i3 Removed files: cm3/m3-libs/m3core/src/unix/cygwin/: Uresource.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Uresource.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Uresource.i3 Log message: yet another common file From jkrell at elego.de Sun Dec 28 09:20:42 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 9:20:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228082042.503AC904006@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 09:20:42 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Utime.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Utime.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Utime.i3 Log message: add ctime_r, localtime_r, gmtime_r; note that Solaris's default ctime_r is different, something about Posix changing, Solaris adopting the earlier standard and then the newer one and having both implementations but with different link symbol names (of course) From jkrell at elego.de Sun Dec 28 10:23:29 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 10:23:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228092330.360A410D59C7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 10:23:29 Modified files: cm3/m3-libs/m3core/src/unix/: Uutmp.txt Log message: fix notes From jkrell at elego.de Sun Dec 28 10:35:18 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 10:35:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228093519.0F93910D5D29@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 10:35:18 Modified files: cm3/m3-libs/m3core/src/unix/solaris-2-x/: Usem.i3 Log message: fix alignment of Solaris semaphores -- 64bit alignment, not no (char) alignment) From jkrell at elego.de Sun Dec 28 11:03:34 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 11:03:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228100334.C41F3B04048@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 11:03:34 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/Common/: Usem.i3 Removed files: cm3/m3-libs/m3core/src/unix/linux-common/: Usem.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Usem.i3 Log message: another common header file -- however this bought by defining sem_t to have the maximum size and alignment of any system; Solaris's 48 byte 64bit aligned version The CM3 code base has one static sem_t in the pthread code. From jkrell at elego.de Sun Dec 28 12:59:18 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 12:59:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228115918.4BD1710D5D29@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 12:59:18 Modified files: cm3/m3-libs/m3core/src/runtime/: m3makefile cm3/m3-libs/m3core/src/runtime/AMD64_LINUX/: RTMachine.i3 RTSignal.m3 m3makefile Removed files: cm3/m3-libs/m3core/src/runtime/PPC_LINUX/: RTMachine.i3 RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/SPARC32_LINUX/: RTMachine.i3 RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/SPARC64_LINUX/: RTMachine.i3 RTSignal.m3 m3makefile Log message: share more common files, albeit with a bad directory name ("AMD64_LINUX") From jkrell at elego.de Sun Dec 28 23:40:13 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 23:40:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228224013.4153710D5966@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 23:40:13 Removed files: cm3/m3-libs/m3core/src/C/PPC_LINUX/: CsetjmpASM.s Log message: remove x86 assembly from powerpc port From jkrell at elego.de Sun Dec 28 23:42:59 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 23:42:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228224259.A2EB510D5966@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 23:42:59 Modified files: cm3/m3-libs/m3core/src/C/Common/: m3makefile cm3/m3-libs/m3core/src/C/PPC_LINUX/: m3makefile Removed files: cm3/m3-libs/m3core/src/C/PPC_LINUX/: Cstdio.i3 Cstdio.m3 Cstring.i3 Log message: more common files From hosking at cs.purdue.edu Sun Dec 28 23:50:37 2008 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 29 Dec 2008 09:50:37 +1100 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20081228100334.C41F3B04048@birch.elegosoft.com> References: <20081228100334.C41F3B04048@birch.elegosoft.com> Message-ID: <3AD2B7A9-A060-4E03-B8BA-08B2D6028BB4@cs.purdue.edu> This change makes me uneasy -- do you mean to say we have a uniform definition of sem_t when the different targets have different definitions? :-O On 28 Dec 2008, at 11:03, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 08/12/28 11:03:34 > > Modified files: > cm3/m3-libs/m3core/src/unix/Common/: m3makefile > cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile > cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile > Added files: > cm3/m3-libs/m3core/src/unix/Common/: Usem.i3 > Removed files: > cm3/m3-libs/m3core/src/unix/linux-common/: Usem.i3 > cm3/m3-libs/m3core/src/unix/openbsd-common/: Usem.i3 > > Log message: > another common header file -- however this bought by defining sem_t > to have the maximum size and alignment of any system; > Solaris's 48 byte 64bit aligned version > The CM3 code base has one static sem_t in the pthread code. From jkrell at elego.de Mon Dec 29 00:42:23 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 0:42:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228234223.78CDF10D59C7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 00:42:23 Modified files: cm3/m3-libs/m3core/src/C/PPC_LINUX/: m3makefile Removed files: cm3/m3-libs/m3core/src/C/PPC_LINUX/: Csignal.i3 Log message: delete yet another useless file -- Csignal.i3 (used only by dormant non-pthreads ports, and not provided by many ports; though also not a terrible thing, somewhat useful, and simple and portable) From jay.krell at cornell.edu Mon Dec 29 00:49:25 2008 From: jay.krell at cornell.edu (Jay) Date: Sun, 28 Dec 2008 23:49:25 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <3AD2B7A9-A060-4E03-B8BA-08B2D6028BB4@cs.purdue.edu> References: <20081228100334.C41F3B04048@birch.elegosoft.com> <3AD2B7A9-A060-4E03-B8BA-08B2D6028BB4@cs.purdue.edu> Message-ID: This one I can undo and still feel ok -- just push sem_t into Utypes.i3 and expose it from a common Usem.i3. There is only one sem_t in the system. It is global. This change just makes it usually larger and more aligned than necessary. The danger would be if sem_t is ever embedded in something else OS-defined, or if the OS ever returned a pointer to one that Modula-3 code copied. In general, I'm thinking either Utypes.i3 or some new Uinternal.i3 or Usysdep.i3 or Utypes.i3 + Uconstants.i3 should be where most/all system-dependent stuff. Even existant Utypes.i3 have much redundancy -- all the ulong/ushort/int8/int16/int32/int64 types are always the same, just stuff like nlink_t, mode_t, gid_t, uid_t, off_t vary. Though imho off_t should always be INT64 or UINT64. Usysdep.i3 seems best? - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > To: jkrell at elego.de > Date: Mon, 29 Dec 2008 09:50:37 +1100 > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > This change makes me uneasy -- do you mean to say we have a uniform > definition of sem_t when the different targets have different > definitions? :-O > > On 28 Dec 2008, at 11:03, Jay Krell wrote: > >> CVSROOT: /usr/cvs >> Changes by: jkrell at birch. 08/12/28 11:03:34 >> >> Modified files: >> cm3/m3-libs/m3core/src/unix/Common/: m3makefile >> cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile >> cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile >> Added files: >> cm3/m3-libs/m3core/src/unix/Common/: Usem.i3 >> Removed files: >> cm3/m3-libs/m3core/src/unix/linux-common/: Usem.i3 >> cm3/m3-libs/m3core/src/unix/openbsd-common/: Usem.i3 >> >> Log message: >> another common header file -- however this bought by defining sem_t >> to have the maximum size and alignment of any system; >> Solaris's 48 byte 64bit aligned version >> The CM3 code base has one static sem_t in the pthread code. > From jay.krell at cornell.edu Mon Dec 29 00:55:16 2008 From: jay.krell at cornell.edu (Jay) Date: Sun, 28 Dec 2008 23:55:16 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20081228100334.C41F3B04048@birch.elegosoft.com> <3AD2B7A9-A060-4E03-B8BA-08B2D6028BB4@cs.purdue.edu> Message-ID: Note that I've been avoiding touching "mainstream" or already existant platforms -- FreeBSD, LINUXLIBC6, *_DARWIN. Perhaps I should go ahead and cross that line, as my testability/testing allows? Slightly linked question is if user threads should remain. They don't work, I believe on any platform, but I understand could easily be made to. - Jay ---------------------------------------- > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu; jkrell at elego.de > Date: Sun, 28 Dec 2008 23:49:25 +0000 > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > > This one I can undo and still feel ok -- just push sem_t into Utypes.i3 and expose it from a common Usem.i3. > There is only one sem_t in the system. > It is global. This change just makes it usually larger and more aligned than necessary. > > > The danger would be if sem_t is ever embedded in something else OS-defined, or if the OS ever returned a pointer to one that Modula-3 code copied. > > > In general, I'm thinking either Utypes.i3 or some new Uinternal.i3 or Usysdep.i3 or Utypes.i3 + Uconstants.i3 should be where most/all system-dependent stuff. > Even existant Utypes.i3 have much redundancy -- all the ulong/ushort/int8/int16/int32/int64 types are always the same, just stuff like nlink_t, mode_t, gid_t, uid_t, off_t vary. Though imho off_t should always be INT64 or UINT64. > > > Usysdep.i3 seems best? > > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> To: jkrell at elego.de >> Date: Mon, 29 Dec 2008 09:50:37 +1100 >> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >> Subject: Re: [M3commit] CVS Update: cm3 >> >> This change makes me uneasy -- do you mean to say we have a uniform >> definition of sem_t when the different targets have different >> definitions? :-O >> >> On 28 Dec 2008, at 11:03, Jay Krell wrote: >> >>> CVSROOT: /usr/cvs >>> Changes by: jkrell at birch. 08/12/28 11:03:34 >>> >>> Modified files: >>> cm3/m3-libs/m3core/src/unix/Common/: m3makefile >>> cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile >>> cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile >>> Added files: >>> cm3/m3-libs/m3core/src/unix/Common/: Usem.i3 >>> Removed files: >>> cm3/m3-libs/m3core/src/unix/linux-common/: Usem.i3 >>> cm3/m3-libs/m3core/src/unix/openbsd-common/: Usem.i3 >>> >>> Log message: >>> another common header file -- however this bought by defining sem_t >>> to have the maximum size and alignment of any system; >>> Solaris's 48 byte 64bit aligned version >>> The CM3 code base has one static sem_t in the pthread code. >> From jkrell at elego.de Mon Dec 29 01:07:27 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 1:07:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229000727.3A273170400B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 01:07:27 Modified files: cm3/m3-libs/m3core/src/C/AMD64_DARWIN/: m3makefile cm3/m3-libs/m3core/src/C/Common/: m3makefile cm3/m3-libs/m3core/src/C/FreeBSD/: m3makefile cm3/m3-libs/m3core/src/C/FreeBSD2/: m3makefile cm3/m3-libs/m3core/src/C/FreeBSD3/: m3makefile cm3/m3-libs/m3core/src/C/FreeBSD4/: m3makefile cm3/m3-libs/m3core/src/C/I386_DARWIN/: m3makefile cm3/m3-libs/m3core/src/C/LINUX/: m3makefile cm3/m3-libs/m3core/src/C/LINUXELF/: m3makefile cm3/m3-libs/m3core/src/C/LINUXLIBC6/: m3makefile cm3/m3-libs/m3core/src/C/NetBSD2_i386/: m3makefile cm3/m3-libs/m3core/src/C/OS2/: m3makefile cm3/m3-libs/m3core/src/C/PPC_DARWIN/: m3makefile Added files: cm3/m3-libs/m3core/src/C/Common/: Csignal.i3 Removed files: cm3/m3-libs/m3core/src/C/AMD64_DARWIN/: Csignal.i3 cm3/m3-libs/m3core/src/C/FreeBSD/: Csignal.i3 cm3/m3-libs/m3core/src/C/FreeBSD2/: Csignal.i3 cm3/m3-libs/m3core/src/C/FreeBSD3/: Csignal.i3 cm3/m3-libs/m3core/src/C/FreeBSD4/: Csignal.i3 cm3/m3-libs/m3core/src/C/I386_DARWIN/: Csignal.i3 cm3/m3-libs/m3core/src/C/LINUX/: Csignal.i3 cm3/m3-libs/m3core/src/C/LINUXELF/: Csignal.i3 cm3/m3-libs/m3core/src/C/LINUXLIBC6/: Csignal.i3 cm3/m3-libs/m3core/src/C/NetBSD2_i386/: Csignal.i3 cm3/m3-libs/m3core/src/C/OS2/: Csignal.i3 cm3/m3-libs/m3core/src/C/PPC_DARWIN/: Csignal.i3 Log message: combine 12 identical files into one (modulo comments) From hosking at cs.purdue.edu Mon Dec 29 01:14:02 2008 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 29 Dec 2008 11:14:02 +1100 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20081228100334.C41F3B04048@birch.elegosoft.com> <3AD2B7A9-A060-4E03-B8BA-08B2D6028BB4@cs.purdue.edu> Message-ID: User threads used to work on Solaris (since it uses getcontext/ setcontext to do thread switching instead of setjmp/longjmp) and these should work similarly on Linux/BSD/OSX. The only problem is that we need to use makecontext on some platforms to get a proper basis context for new threads (as opposed to using the hackier code that is there in ThreadPosix.m3. On 29 Dec 2008, at 10:55, Jay wrote: > > Note that I've been avoiding touching "mainstream" or already > existant platforms -- FreeBSD, LINUXLIBC6, *_DARWIN. > > Perhaps I should go ahead and cross that line, as my testability/ > testing allows? > > Slightly linked question is if user threads should remain. > They don't work, I believe on any platform, but I understand could > easily be made to. > > - Jay > > ---------------------------------------- >> From: jay.krell at cornell.edu >> To: hosking at cs.purdue.edu; jkrell at elego.de >> Date: Sun, 28 Dec 2008 23:49:25 +0000 >> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >> Subject: Re: [M3commit] CVS Update: cm3 >> >> >> This one I can undo and still feel ok -- just push sem_t into >> Utypes.i3 and expose it from a common Usem.i3. >> There is only one sem_t in the system. >> It is global. This change just makes it usually larger and more >> aligned than necessary. >> >> >> The danger would be if sem_t is ever embedded in something else OS- >> defined, or if the OS ever returned a pointer to one that Modula-3 >> code copied. >> >> >> In general, I'm thinking either Utypes.i3 or some new Uinternal.i3 >> or Usysdep.i3 or Utypes.i3 + Uconstants.i3 should be where most/all >> system-dependent stuff. >> Even existant Utypes.i3 have much redundancy -- all the ulong/ >> ushort/int8/int16/int32/int64 types are always the same, just stuff >> like nlink_t, mode_t, gid_t, uid_t, off_t vary. Though imho off_t >> should always be INT64 or UINT64. >> >> >> Usysdep.i3 seems best? >> >> >> - Jay >> >> >> ---------------------------------------- >>> From: hosking at cs.purdue.edu >>> To: jkrell at elego.de >>> Date: Mon, 29 Dec 2008 09:50:37 +1100 >>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>> Subject: Re: [M3commit] CVS Update: cm3 >>> >>> This change makes me uneasy -- do you mean to say we have a uniform >>> definition of sem_t when the different targets have different >>> definitions? :-O >>> >>> On 28 Dec 2008, at 11:03, Jay Krell wrote: >>> >>>> CVSROOT: /usr/cvs >>>> Changes by: jkrell at birch. 08/12/28 11:03:34 >>>> >>>> Modified files: >>>> cm3/m3-libs/m3core/src/unix/Common/: m3makefile >>>> cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile >>>> cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile >>>> Added files: >>>> cm3/m3-libs/m3core/src/unix/Common/: Usem.i3 >>>> Removed files: >>>> cm3/m3-libs/m3core/src/unix/linux-common/: Usem.i3 >>>> cm3/m3-libs/m3core/src/unix/openbsd-common/: Usem.i3 >>>> >>>> Log message: >>>> another common header file -- however this bought by defining sem_t >>>> to have the maximum size and alignment of any system; >>>> Solaris's 48 byte 64bit aligned version >>>> The CM3 code base has one static sem_t in the pthread code. >>> From jay.krell at cornell.edu Mon Dec 29 01:21:17 2008 From: jay.krell at cornell.edu (Jay) Date: Mon, 29 Dec 2008 00:21:17 +0000 Subject: [M3commit] [M3devel] CVS Update: cm3 In-Reply-To: References: <20081228100334.C41F3B04048@birch.elegosoft.com> <3AD2B7A9-A060-4E03-B8BA-08B2D6028BB4@cs.purdue.edu> Message-ID: Understood. You (someone) also has to fix the initialization. I think when you (you) moved the various user thread globals (?), such as the handler chain, into one nice thread object, "switchable" via just one pointer, it broke. I didn't look at the change in depth, I'm making a leap in my description of what you did. It is a /very/ reasonable design (or even likely The Correct Design), to collect up all the globals that represent a "thread" into one heap allocated struct...except it is an "object". I don't have SOLgnu/sun handy, this week, but can try it next week. I expect it fails as PPC_LINUX was. I THINK the "object" needs to be changed to a "traced ref" and then it can be initialized using, maybe, a preallocated global, for the first thread, or at least using regular "Malloc" and not going through the garbage collection...but I'm really just not sure. If I get X86_MSDOS/DJGPP up and going, I'll be a bit more motivated..but I think I'll so I386_SOLARIS first, since it is perhaps more modern/mainstream. You know, I tried having it NEW the object on-demand, but I think that ended up recursing to about the same place -- PushEFrame. It's "difficult" to repro now for me, this week, based on hardware/OS availability,because I ripped out PPC_LINUX user thread support (unless I install NetBSD/FreeBSD in a VM or use birch, all of which are, honestly, easy). - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > To: jay.krell at cornell.edu > Date: Mon, 29 Dec 2008 11:14:02 +1100 > CC: jkrell at elego.de; m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3devel] [M3commit] CVS Update: cm3 > > User threads used to work on Solaris (since it uses getcontext/ > setcontext to do thread switching instead of setjmp/longjmp) and these > should work similarly on Linux/BSD/OSX. The only problem is that we > need to use makecontext on some platforms to get a proper basis > context for new threads (as opposed to using the hackier code that is > there in ThreadPosix.m3. > > On 29 Dec 2008, at 10:55, Jay wrote: > >> >> Note that I've been avoiding touching "mainstream" or already >> existant platforms -- FreeBSD, LINUXLIBC6, *_DARWIN. >> >> Perhaps I should go ahead and cross that line, as my testability/ >> testing allows? >> >> Slightly linked question is if user threads should remain. >> They don't work, I believe on any platform, but I understand could >> easily be made to. >> >> - Jay >> >> ---------------------------------------- >>> From: jay.krell at cornell.edu >>> To: hosking at cs.purdue.edu; jkrell at elego.de >>> Date: Sun, 28 Dec 2008 23:49:25 +0000 >>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>> Subject: Re: [M3commit] CVS Update: cm3 >>> >>> >>> This one I can undo and still feel ok -- just push sem_t into >>> Utypes.i3 and expose it from a common Usem.i3. >>> There is only one sem_t in the system. >>> It is global. This change just makes it usually larger and more >>> aligned than necessary. >>> >>> >>> The danger would be if sem_t is ever embedded in something else OS- >>> defined, or if the OS ever returned a pointer to one that Modula-3 >>> code copied. >>> >>> >>> In general, I'm thinking either Utypes.i3 or some new Uinternal.i3 >>> or Usysdep.i3 or Utypes.i3 + Uconstants.i3 should be where most/all >>> system-dependent stuff. >>> Even existant Utypes.i3 have much redundancy -- all the ulong/ >>> ushort/int8/int16/int32/int64 types are always the same, just stuff >>> like nlink_t, mode_t, gid_t, uid_t, off_t vary. Though imho off_t >>> should always be INT64 or UINT64. >>> >>> >>> Usysdep.i3 seems best? >>> >>> >>> - Jay >>> >>> >>> ---------------------------------------- >>>> From: hosking at cs.purdue.edu >>>> To: jkrell at elego.de >>>> Date: Mon, 29 Dec 2008 09:50:37 +1100 >>>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>>> Subject: Re: [M3commit] CVS Update: cm3 >>>> >>>> This change makes me uneasy -- do you mean to say we have a uniform >>>> definition of sem_t when the different targets have different >>>> definitions? :-O >>>> >>>> On 28 Dec 2008, at 11:03, Jay Krell wrote: >>>> >>>>> CVSROOT: /usr/cvs >>>>> Changes by: jkrell at birch. 08/12/28 11:03:34 >>>>> >>>>> Modified files: >>>>> cm3/m3-libs/m3core/src/unix/Common/: m3makefile >>>>> cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile >>>>> cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile >>>>> Added files: >>>>> cm3/m3-libs/m3core/src/unix/Common/: Usem.i3 >>>>> Removed files: >>>>> cm3/m3-libs/m3core/src/unix/linux-common/: Usem.i3 >>>>> cm3/m3-libs/m3core/src/unix/openbsd-common/: Usem.i3 >>>>> >>>>> Log message: >>>>> another common header file -- however this bought by defining sem_t >>>>> to have the maximum size and alignment of any system; >>>>> Solaris's 48 byte 64bit aligned version >>>>> The CM3 code base has one static sem_t in the pthread code. >>>> > From jkrell at elego.de Mon Dec 29 05:43:28 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 5:43:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229044330.56C3D10D5DA6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 05:43:28 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3unix.h Log message: fix newlines From jkrell at elego.de Mon Dec 29 05:44:47 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 5:44:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229044447.AEF8B10D5DA6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 05:44:47 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uuio.i3 Log message: fix -- ssize_t in Cstddef and not in Utypes, at least not always From jkrell at elego.de Mon Dec 29 05:47:31 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 5:47:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229044731.74CFD10D5DA6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 05:47:31 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UdirC.c Log message: isolate cygwin (and possibly other) adjustments in one place; put back not caring about alignment on x86, problem really was I guess misalignment, not that the asssert was wrong; comments that while file size/offset should be 64bits, ino size doesn't matter much From jkrell at elego.de Mon Dec 29 05:49:49 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 5:49:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229044949.7DC9410D5DA6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 05:49:49 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Ustat.i3 Log message: use explicit uint16_t instead of 'funny' u_short' From jkrell at elego.de Mon Dec 29 05:53:37 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 5:53:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229045337.4088610D5DA6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 05:53:37 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Ustat.i3 Log message: use explicit uint16_t instead of 'funny' u_short' (maybe we will able to remove u_char, u_short, u_int, u_long, but not yet) From jkrell at elego.de Mon Dec 29 05:58:18 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 5:58:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229045818.B2D2D10D5DA6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 05:58:18 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Utypes.i3.cpp Log message: beware compiling with different context From jkrell at elego.de Mon Dec 29 07:43:18 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 7:43:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229064318.8902010D5C26@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 07:43:18 Modified files: cm3/m3-libs/m3core/src/unix/linux-common/: Utypes.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Utypes.i3 Log message: remove some unused types: rlim_t, nlink_t, mode_t, ino_t, id_t, dev_t From jkrell at elego.de Mon Dec 29 08:59:44 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 8:59:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229075944.9412410D5DA8@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 08:59:44 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/AMD64_LINUX/: 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/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 Log message: correct comment for current reality (for a while now): before: page size is machine-dependent ... after: page size used to be machine-dependent ... mildly lock in that all machines are byte addressable: AdrPerHeapPage = BytesPerHeapPage; LogAdrPerHeapPage = LogBytesPerHeapPage; rather than repeating the constants twice in a row. Consider locking this in much more via removing the second pair of lines and having RTAllocator just use the first pair. Or even, having just one line and computing the other by shifting. no "real" change From jkrell at elego.de Mon Dec 29 10:16:14 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 10:16:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229091614.676DC10D5D5E@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 10:16:14 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Usem.i3 Log message: fix newlines From jkrell at elego.de Mon Dec 29 11:06:23 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 11:06:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229100623.9E96410D5F0B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 11:06:23 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Udir.i3 Log message: telldir and seekdir are never used, so remove them, though they are easily portably declared From jkrell at elego.de Mon Dec 29 11:11:09 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 11:11:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229101109.85F6D10D461B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 11:11:09 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: fix for pagesize=64K (or larger?) Specifically, apparently, threshold[0] would = 0, Behind() would return TRUE, and the first (?) allocation, here: C:\dev2\cm3.2\m3-libs\m3core\src\thread\WIN32\ThreadWin32.m3 threadMu := NEW(Mutex); <<< here self := CreateT(me); self.id := nextId; INC (nextId); mutex := NEW(MUTEX); condition := NEW(Condition); << NOT YET to here would lead to UnlockHeap calling Broadcast(condition), but condition is NULL, and access violate. From jkrell at elego.de Mon Dec 29 11:21:40 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 11:21:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229102140.C316110D461B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 11:21:40 Modified files: cm3/m3-libs/m3core/src/C/Common/: m3makefile Removed files: cm3/m3-libs/m3core/src/C/Common/: Cstdarg.i3 Cstdarg.m3 Log message: remove empty and unused module From jkrell at elego.de Mon Dec 29 11:23:41 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 11:23:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229102341.8302010D461B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 11:23:41 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: m3makefile cm3/m3-libs/m3core/src/runtime/WIN32/: RTOS.m3 m3makefile cm3/m3-libs/m3core/src/runtime/common/: RTOS.i3 cm3/m3-libs/m3core/src/unix/cygwin/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile Added files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTOSbrk.c RTOSmmap.c cm3/m3-libs/m3core/src/runtime/WIN32/: RTOSc.c Removed files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTOSbrk.m3 RTOSmmap.m3 cm3/m3-libs/m3core/src/unix/cygwin/: Umman.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Umman.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Umman.i3 Log message: Remove the only use of Umman.i3 in systems without user thread support. As a side effect, since one RTOS.GetMemory shall be rewritten in C, so shall they all. It would be nice if the <*external*> was not needed as long as the names were chosen right, and I avoided m3makefile tricks of only inserting <*external*> in one of the three implementations. Punt on writing the "entire" few lines of Win32 GetMemory in C, and just a smaller subset. The whole thing is not a big deal, but does it buy much or anything? As a bonus, fix Win32 "page size" so that there is no "rounding loss", noticed watching the allocations to see if the "simplification" resulted in much lost adjacency and hole production. In the sample of watching mklib be built, the second allocation is indeed no adjacent to the first, but allocations are adjacent thereafter. Adjacency is desirable because RTAllocater/Collecter builds data structures spanning the heap, including holes. The historic Win32 allocater reserved 64M address space up front, and then individual VirtualAlloc calls thereafter. Implementation here just calls VirtualAlloc. HeapAlloc and calloc should also be viable, and calloc is portable, but the allocations are large, and never freed, so maybe not. As a bonus, found RTCollector.i3 bug for pagesize=64K (or larger?) Also eliminate an unnecessary global in Win32/RTOS.m3. From jkrell at elego.de Mon Dec 29 11:32:07 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 11:32:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229103207.A936010D5DAA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 11:32:07 Modified files: cm3/m3-libs/m3core/src/runtime/NT386/: RTMachine.i3 Log message: grow Win32 page size to 64K so that nothing is lost when VirtualAlloc rounds up to 64K (forgot to check this in immediately before, but works ok either way) From jkrell at elego.de Mon Dec 29 11:50:28 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 11:50:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229105028.D715910D5DA6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 11:50:28 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Usocket.i3 Log message: a few mostly minor corrections to match the header, which nicely further matches linux-common and openbsd-openbsd From jkrell at elego.de Mon Dec 29 15:19:25 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 15:19:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229141925.9DDAD10D5C26@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 15:19:25 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: avoid using native backend when cross compiling -- this is why I mistakenly removed -fPIC from PPC_LINUX From jkrell at elego.de Mon Dec 29 15:39:17 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 15:39:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229143917.12D3110D5C26@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 15:39:17 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: PPC_LINUX Log message: put back -fPIC From jkrell at elego.de Mon Dec 29 21:09:42 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 21:09:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229200942.E1FCDB04044@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 21:09:42 Modified files: cm3/scripts/python/: pylib.py Log message: fix newlines From jkrell at elego.de Mon Dec 29 21:14:17 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 21:14:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229201417.13E19B04044@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 21:14:17 Modified files: cm3/m3-libs/m3core/src/unix/openbsd-common/: Usignal.i3 Log message: add SIGHUP, SIGSEGV, SIGPIPE, sigemptyset, so that it compiles From jkrell at elego.de Mon Dec 29 21:15:30 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 21:15:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229201530.3E420B04044@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 21:15:30 Modified files: cm3/m3-libs/m3core/src/unix/openbsd-common/: Usocket.i3 Log message: remove dead imports to fix warning, and uppercase SOL_SOCKET = 16_FFFF just to reduce diff with other very similar files From jkrell at elego.de Mon Dec 29 21:19:17 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 21:19:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229201917.8FCECB04044@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 21:19:17 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTOSbrk.c RTOSmmap.c m3makefile Log message: Reference m3unix.h in such a way that bootstrap archives work. That is, #include "foo.h", not #include "..blahblah../foo.h" and add h_source("..blahblah../foo") to m3makefile. This causes ..blahblah../foo.h to be copied into the build directory. (Admittedly, copying files is often a waste.) Bootstrap archives, at least the way I create them, are one flat directory. From jkrell at elego.de Mon Dec 29 21:24:14 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 21:24:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229202414.5F6E7B04044@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 21:24:14 Modified files: cm3/m3-libs/m3core/src/unix/openbsd-common/: Unix.i3 Log message: trim a few unused imports that warn: short, pid_t; trim unused/nonexistant tell; and then trim unused import: long From jkrell at elego.de Mon Dec 29 21:33:44 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 21:33:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229203344.692E1B04044@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 21:33:44 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: OSConfigPosix.m3 cm3/m3-libs/libm3/src/random/: m3makefile cm3/m3-libs/m3core/src/: m3makefile cm3/m3-libs/m3core/src/C/Common/: m3makefile cm3/m3-libs/m3core/src/Csupport/: m3makefile cm3/m3-libs/m3core/src/float/: m3makefile cm3/m3-libs/m3core/src/runtime/: m3makefile cm3/m3-libs/m3core/src/runtime/common/: Compiler.tmpl cm3/m3-libs/m3core/src/time/POSIX/: m3makefile cm3/m3-libs/m3core/src/unix/: m3makefile cm3/m3-libs/m3core/src/unix/Common/: m3makefile m3unix.h cm3/m3-sys/m3cc/src/: m3makefile cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 cm3/scripts/python/: pylib.py Added files: cm3/m3-sys/cminstall/src/config-no-install/: I386_OPENBSD Log message: enough I386_OPENBSD support to build a bootstrap package, that builds on the target, and results in a cm3 that runs and correct errors out for lack of cm3.cfg, often enough to move development and testing to the target system (unless target system is terribly slow) restructure Target.m3 some: do separate switches on platforms with characteristics in common: big endian 64 bit Solaris SPARC add in a bunch of hypothetical, but reasonable platforms -- commented out perhaps not worthwhile add a bunch of comments, also perhaps not worthwhile (more code, more bugs: comments have to be checked and maintained for technical and grammatical/spelling correctness) add options like skipgcc, omitgcc to pylib.py From jkrell at elego.de Tue Dec 30 03:08:29 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 3:08:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230020829.4030510D5DDA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 03:08:28 Added files: cm3/m3-libs/m3core/src/C/I386_OPENBSD/: Csetjmp.i3 m3makefile Log message: forgot to add these (Freudian slip? This information is duplicated in Target.i3, not great imho..) From jkrell at elego.de Tue Dec 30 03:09:29 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 3:09:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230020929.EC18D904012@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 03:09:29 Modified files: cm3/scripts/python/: pylib.py Log message: add ability to sniff I386_OPENBSD for native builds (should be able to query the compiler, like cm3 -dump-host ?) From jkrell at elego.de Tue Dec 30 03:42:12 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 3:42:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230024212.DBFC010D5DDA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 03:42:12 Modified files: cm3/www/uploaded-archives/: update_download_index.sh Added files: cm3/www/uploaded-archives/: targets.txt Log message: use a list of targets from a separate file From jkrell at elego.de Tue Dec 30 03:43:30 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 3:43:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230024330.B27C110D5DDA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 03:43:30 Modified files: cm3/www/uploaded-archives/: targets.txt Log message: add NT386GNU From jkrell at elego.de Tue Dec 30 07:56:49 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 7:56:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230065649.BD7FC10D5D40@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 07:56:49 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosixC.c OSConfigPosix.m3 Log message: fix newlines From jkrell at elego.de Tue Dec 30 08:00:29 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 8:00:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230070029.A1A2410D5C41@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 08:00:29 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosix.i3 FilePosix.m3 FilePosixC.c m3makefile Added files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosixC.i3 Log message: put the C functions in their own interface, and other small change (e.g. typedef ptrdiff_t INTEGER instead of equivalent other statement) From jkrell at elego.de Tue Dec 30 09:57:56 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 9:57:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230085756.E706D10D5D9A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 09:57:56 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile m3unix.h Added files: cm3/m3-libs/m3core/src/unix/Common/: Uwaitpid.c Uwaitpid.i3 Log message: abandoned for now proposal for portable header-clone-free waitpid, will probably just fix the endian issue and leave the header cloning From jkrell at elego.de Tue Dec 30 09:58:33 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 9:58:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230085833.26D7210D5D9A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 09:58:33 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Log message: oops From jkrell at elego.de Tue Dec 30 10:24:21 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 10:24:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230092421.07A0A10D5ABB@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 10:24:21 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uwaitpid.c Uwaitpid.i3 Log message: comments to explain the endian-dependentness and fix newlines From jkrell at elego.de Tue Dec 30 11:05:58 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 11:05:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230100558.C12AA10D5ABB@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 11:05:58 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uwaitpid.c Uwaitpid.i3 Log message: Now that I understand better, provide a 'loophole' value. This should now be an easy replacement for the various Uexec users and that should be done shortly. From jkrell at elego.de Tue Dec 30 21:21:37 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 21:21:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230202137.DD49E904001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 21:21:37 Modified files: cm3/m3-libs/sysutils/src/POSIX/: SystemPosix.m3 Log message: remove unused variable, prior to larger changes From jkrell at elego.de Tue Dec 30 22:44:31 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 22:44:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230214431.E699110D4524@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 22:44:31 Modified files: cm3/m3-libs/sysutils/src/POSIX/: m3makefile Log message: safekeeping Uwaitpid work before other approach From jkrell at elego.de Tue Dec 30 22:44:54 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 22:44:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230214454.F11E810D4524@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 22:44:54 Modified files: cm3/m3-libs/sysutils/src/POSIX/: m3makefile Log message: go back a version From jkrell at elego.de Wed Dec 31 00:49:10 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 0:49:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230234910.71B0E904001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 00:49:10 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: ProcessPosixCommon.m3 cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.m3 cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 cm3/m3-libs/m3core/src/thread/WIN32/: WaitProcessCygwin.m3 cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/cygwin/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile cm3/m3-libs/sysutils/src/POSIX/: SystemPosix.m3 m3makefile Added files: cm3/m3-libs/m3core/src/: Uwaitpid.quake cm3/m3-libs/m3core/src/unix/Common/: Uexec.i3 cm3/m3-sys/cm3/src/: cm3root.txt Removed files: cm3/m3-libs/m3core/src/unix/Common/: Uwaitpid.c Uwaitpid.i3 cm3/m3-libs/m3core/src/unix/cygwin/: Uexec.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Uexec.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Uexec.i3 Log message: Replace Uexec.waitpid with new portable (C-wrapped) Uwaitpid. Thus removing its endian-dependent-ness and otherwise mostly header cloning-ness. (even C wrappers resemble header cloning, but in a simpler more portable way) Take care to use Uwaitpid in m3-libs/sysutils via copying, so that bootstrapping new sysutils against old m3core works. (Thus why Uwaitpid.{c,i3} deleted and replaced by Uwaitpid.quake). This very likely fixes a bug in {I386,AMD64}_DARWIN, but that is not confirmed, and could be fixed otherwise. This also very likely fixes a bug in some platforms that use linux-common or openbsd-common. Note that as long as children processes succeed, probably no bug. zero is zero, no matter little endian or big endian. And likely the only important point is if the value is zero or non-zero, so again ok. cm3root.txt: possible spec for a change to cm3 to "reduce external automation" From jkrell at elego.de Wed Dec 31 01:25:48 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 1:25:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231002548.B5C6010D5D23@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 01:25:48 Modified files: cm3/m3-libs/m3core/src/: Uwaitpid.quake Log message: fix newlines From jkrell at elego.de Wed Dec 31 01:26:48 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 1:26:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231002648.98CEE10D5D23@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 01:26:48 Modified files: cm3/m3-libs/m3core/src/: Uwaitpid.quake Log message: not all Utypes have uint8_t, uint16_t, define them locally From jkrell at elego.de Wed Dec 31 01:37:58 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 1:37:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231003803.1AD0B10D5E6C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 01:37:57 Modified files: cm3/m3-libs/m3core/src/: Uwaitpid.quake Log message: more parens for clarity -- cast and then shift, though operator precedence probably makes this no difference, casts are very high precedence From jkrell at elego.de Wed Dec 31 11:03:11 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 11:03:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231100311.8B4ED10D5DA1@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 11:03:11 Modified files: cm3/m3-sys/windowsResources/src/: cm3-41-hack.c Log message: microoptimize and reformat From jkrell at elego.de Wed Dec 31 11:52:08 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 11:52:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231105208.9CF4710D5DDE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 11:52:08 Modified files: cm3/m3-comm/netobj/src/: netobj-ov.tmpl cm3/m3-comm/sharedobj/src/: sharedobj-ov.tmpl cm3/m3-libs/libm3/src/bundleintf/: bundle-ov.tmpl cm3/m3-ui/zeus/src/: m3zume-ov.tmpl cm3/m3-ui/juno-2/juno-app/src/: m3makefile Log message: Partly kinda sorta fix some cross build scenarios, without affecting native builds. It's a larger more general problem though. - BUILD_DIR does not necessarily equal HOST or TARGET, because of how I structured I386_CYGWIN to be a "configuration" where TARGET is still NT386. - a cross build can run the shipped binary anyway, and probably should (I didn't have the unshipped binaries around) - There should probably be automation to ensure all the tools are build. ie: do-cm3-tools or do-cm3-crosstools. ie: build just the needed packages, for the sniffed native platform. Cross builds have other problems. I keep hitting the following annoyances: ignoring foo/bar override when foo\bar already overridden override paths should either be canonicalized to one slash type or at least when there is a duplicate, canonicalize then and only complain if canonicals vary This is due to mixing I386_NT and I386_CYGWIN. Similarly the problem demonstrated regarding m3unix.h in Uwaitpid.quake. Perhaps the change I made to allow forward slashes on Win32 was not good, esp. due to its apparent inadequacy. The "lib" directory, specifically \cm3\lib\hand.obj is target..er, configuration dependent the gcc hand.obj cannot be directly linked by Visual C++, for reasons to do with libgcc lib should probably have "target" or "build_dir" under it and/or hand.obj specifically should be merged into m3core.lib The mentor quake code generally fails in cross environments, probably due to slashes. host=NT386 (GNU?), target=LINUXLIBC6 m3zume is access violating I'm also highly suspicious of all this "override" stuff. It clearly causes too much duplication and distribution of information. I shouldn't have to know the directory structure of my dependencies, and even if I do, I should be able to share that knowledge with their many other dependents. The "scripts" directory also figures this sort of stuff out automatically.. Being able to have multiple package stores is well and good. I'm not sure they need to ever be used in an "unshipped" form, but instead just use alternate roots and create new empty roots as needed. ? From jkrell at elego.de Wed Dec 31 11:55:08 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 11:55:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231105508.4EE0F10D5DDE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 11:55:08 Modified files: cm3/m3-libs/sysutils/src/POSIX/: m3makefile Log message: fix newlines From jkrell at elego.de Wed Dec 31 11:57:14 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 11:57:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231105714.24CF710D5DDE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 11:57:14 Added files: cm3/m3-sys/windowsResources/src/: m3overrides Log message: Add missing override to fix some builds. I'm highly suspicious of all this "override" stuff. It clearly causes too much duplication and distribution of information. I shouldn't have to know the directory structure of my dependencies, and even if I do, I should be able to share that knowledge with their many other dependents. The "scripts" directory also figures this sort of stuff out automatically.. Being able to have multiple package stores is well and good. I'm not sure they need to ever be used in an "unshipped" form, but instead just use alternate roots and create new empty roots as needed. ? From jkrell at elego.de Wed Dec 31 18:57:23 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 18:57:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231175723.9015810D5F00@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 18:57:23 Modified files: cm3/m3-comm/netobj/src/: netobj-ov.tmpl cm3/m3-comm/sharedobj/src/: sharedobj-ov.tmpl cm3/m3-libs/libm3/src/bundleintf/: bundle-ov.tmpl cm3/m3-ui/juno-2/juno-app/src/: m3makefile cm3/m3-ui/zeus/src/: m3zume-ov.tmpl Log message: This should leave native I386_CYGWIN builds working as they were -- TARGET != BUILD_DIR and HOST != BUILD_DIR, native builds should use BUILD_DIR From jkrell at elego.de Wed Dec 31 21:05:27 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 21:05:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231200530.68A6E10D5F04@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 21:05:27 Modified files: cm3/m3-libs/m3core/src/thread/: m3makefile cm3/m3-libs/m3core/src/thread/Common/: SchedulerPosix.i3 m3makefile cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.m3 cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 m3makefile cm3/m3-libs/m3core/src/unix/cygwin/: Unix.i3 Added files: cm3/m3-libs/m3core/src/thread/: ThreadInternal.i3 ThreadPScheduler.m3 ThreadPWait.m3 Removed files: cm3/m3-libs/m3core/src/thread/WIN32/: WaitProcessCygwin.m3 WaitProcessWin32.m3 Log message: move code around with the following goals fold the three implementations of WaitProcess down to two minor, would not be done if it was the only point This is ThreadPWait.m3. remove stub SchedulerPosix from NT386 AND NT386GNU presumably nobody calls the NT386 version, so also (half) minor give NT386GNU the real implementation of SchedulerPosix This is more significant then, e.g. working versions of IOWait (aka select). This is ThreadPScheduler.m3, moved out of ThreadPThread.m3. Note that the name is open to debate. There is this general problem that "P" for posix means two very different things. It means posix user/alarm threads and posix kernel threads. (Note that Win32 generalizes select to work on more than just sockets... either completion ports or WaitForMultipleObjects I assume the generalized analog..) provide a /tiny/ abstraction for Posix waitpid users to provide their own yielding if necessary This used by WaitProcess. It potentially for sysutils also, but sysutils can't depend on m3core changes due to bootstrapping against older m3core. The next step is to factor out m3core/threads/m3makefile into m3core/thread.quake so that sysutils can share its decision as to if kernel threads are in use and therefore if waitpid yields. Essentially to copy m3core ThreadPWait plus the other one liner. If we could rely on newer m3core, then sysutils could just call SchedulerPosix.DoesWaitPidYield(). This may look scary but it is mainly only moving existing code around, and very small changes otherwise. Except for Cygwin which gets the significant improvement of a real SchedulerPosix. Since code was moved -- ThreadPThread.m3 split into three files, there was also a need for an interface so that code moved out of ThreadPThread could call back to private shared code there, and the other implementation in ThreadWin32. That is ThreadInternal.i3. It could be ThreadF.i3, but that would be unnecessarily exposed and worse, export a variable outside the package, which is a bad idea. Perhaps wrap up the variable in a function? Maybe. As well, ThreadF.i3 has three similar copies and this new content would be needed in two of them. Perhaps the three copies could be combined to one, with no-op stubs where functions don't make sense (as comments already indicate exist). If cygwin used pthreads, this wouldn't be needed at all. However, it is reasonable. Maybe go back and debug Cygwin pthreads again at some point... Maybe combine ThreadInternal.i3 and ThreadF.i3. F is "friend" -- aka expose internals to special people, not the public interface, but sometimes it is needed, thus "F" and "Internal" are synonyms and you should really never have both, but here they are. From jay.krell at cornell.edu Wed Dec 31 21:13:13 2008 From: jay.krell at cornell.edu (Jay) Date: Wed, 31 Dec 2008 20:13:13 +0000 Subject: [M3commit] FW: CVS Update: cm3 In-Reply-To: <20081231200530.68A6E10D5F04@birch.elegosoft.com> References: <20081231200530.68A6E10D5F04@birch.elegosoft.com> Message-ID: It seems some of these files are marked "executable". How to fix? I know, locally, chmod -x *, but so that that cvs upd gives you non-executable files? I'm searching the web but not finding it yet. - Jay> Date: Wed, 31 Dec 2008 21:05:27 +0000> To: m3commit at elegosoft.com> From: jkrell at elego.de> Subject: [M3commit] CVS Update: cm3> > CVSROOT: /usr/cvs> Changes by: jkrell at birch. 08/12/31 21:05:27> > Modified files:> cm3/m3-libs/m3core/src/thread/: m3makefile > cm3/m3-libs/m3core/src/thread/Common/: SchedulerPosix.i3 > m3makefile > cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.m3 > cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 m3makefile > cm3/m3-libs/m3core/src/unix/cygwin/: Unix.i3 > Added files:> cm3/m3-libs/m3core/src/thread/: ThreadInternal.i3 > ThreadPScheduler.m3 > ThreadPWait.m3 > Removed files:> cm3/m3-libs/m3core/src/thread/WIN32/: WaitProcessCygwin.m3 > WaitProcessWin32.m3 > > Log message:> move code around with the following goals> > fold the three implementations of WaitProcess down to two> minor, would not be done if it was the only point> This is ThreadPWait.m3.> > remove stub SchedulerPosix from NT386 AND NT386GNU> presumably nobody calls the NT386 version, so also (half) minor> > give NT386GNU the real implementation of SchedulerPosix> This is more significant then, e.g. working versions of IOWait (aka select).> This is ThreadPScheduler.m3, moved out of ThreadPThread.m3.> Note that the name is open to debate.> There is this general problem that "P" for posix means two very different things.> It means posix user/alarm threads and posix kernel threads.> (Note that Win32 generalizes select to work on more than just sockets...> either completion ports or WaitForMultipleObjects I assume the generalized analog..)> > provide a /tiny/ abstraction for Posix waitpid users to> provide their own yielding if necessary> This used by WaitProcess.> It potentially for sysutils also, but sysutils can't depend on m3core changes> due to bootstrapping against older m3core.> > The next step is to factor out m3core/threads/m3makefile into> m3core/thread.quake so that sysutils can share its decision as to> if kernel threads are in use and therefore if waitpid yields.> Essentially to copy m3core ThreadPWait plus the other one liner.> If we could rely on newer m3core, then sysutils could just call SchedulerPosix.DoesWaitPidYield().> > This may look scary but it is mainly only moving existing code around,> and very small changes otherwise.> Except for Cygwin which gets the significant improvement of a real SchedulerPosix.> > Since code was moved -- ThreadPThread.m3 split into three files, there> was also a need for an interface so that code moved out of ThreadPThread> could call back to private shared code there, and the other implementation> in ThreadWin32. That is ThreadInternal.i3.> It could be ThreadF.i3, but that would be unnecessarily exposed and worse,> export a variable outside the package, which is a bad idea.> Perhaps wrap up the variable in a function? Maybe.> As well, ThreadF.i3 has three similar copies and this new content would be> needed in two of them. Perhaps the three copies could be combined to one,> with no-op stubs where functions don't make sense (as comments already> indicate exist).> > If cygwin used pthreads, this wouldn't be needed at all.> However, it is reasonable.> Maybe go back and debug Cygwin pthreads again at some point...> Maybe combine ThreadInternal.i3 and ThreadF.i3.> F is "friend" -- aka expose internals to special people, not the> public interface, but sometimes it is needed, thus "F" and "Internal"> are synonyms and you should really never have both, but here they are.> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Dec 31 21:22:37 2008 From: jay.krell at cornell.edu (Jay) Date: Wed, 31 Dec 2008 20:22:37 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20081231200530.68A6E10D5F04@birch.elegosoft.com> References: <20081231200530.68A6E10D5F04@birch.elegosoft.com> Message-ID: Hm, maybe it doesn't matter? I have a bunch of executable source files. But still, seems wrong. I could try delete and re-add, but seems not good for so many files, only maybe if it had been the three new ones.. jay at ppca:/dev2/cm3/m3-libs/m3core$ ls -lR | grep "x " | grep -v ^dlrwxrwxrwx 1 jay jay 14 2008-12-30 17:33 libm3core.so -> libm3core.so.5-rwxr-xr-x 1 jay jay 1506111 2008-12-30 17:33 libm3core.so.5-rwxr-xr-x 1 jay jay 9206 2008-12-30 16:22 Uwaitpid.quake-rwxr-xr-x 1 jay jay 404 2008-12-28 16:07 Csignal.i3-rwxr-xr-x 1 jay jay 1318 2008-06-03 04:01 Cstdint.i3-rwxr-xr-x 1 jay jay 95 2008-11-11 05:41 Cstdio.i3-rwxr-xr-x 1 jay jay 2158 2008-11-11 05:41 Cstring.i3-rwxr-xr-x 1 jay jay 323 2008-11-12 03:35 Csetjmp.i3-rwxr-xr-x 1 jay jay 23 2008-11-11 06:27 m3makefile-rwxr-xr-x 1 jay jay 14 2008-11-11 05:57 m3makefile-rwxr-xr-x 1 jay jay 207 2008-11-11 20:27 Csetjmp.i3-rwxr-xr-x 1 jay jay 23 2008-11-11 06:27 m3makefile-rwxr-xr-x 1 jay jay 207 2008-11-11 20:27 Csetjmp.i3-rwxr-xr-x 1 jay jay 22 2008-11-11 06:27 m3makefile-rwxr-xr-x 1 jay jay 206 2008-11-11 20:27 Csetjmp.i3-rwxr-xr-x 1 jay jay 23 2008-11-11 06:27 m3makefile-rwxr-xr-x 1 jay jay 207 2008-11-11 20:27 Csetjmp.i3-rwxr-xr-x 1 jay jay 23 2008-11-11 06:27 m3makefile-rwxr-xr-x 1 jay jay 432 2008-05-24 20:08 dtoa.c-rwxr-xr-x 1 jay jay 70 2008-05-24 20:02 m3makefile-rwxr-xr-x 1 jay jay 432 2008-05-24 20:08 dtoa.c-rwxr-xr-x 1 jay jay 70 2008-05-24 20:02 m3makefile-rwxr-xr-x 1 jay jay 18 2008-12-28 03:48 dif1.txt etc. - Jay From: jay.krell at cornell.eduTo: m3commit at elegosoft.comSubject: FW: [M3commit] CVS Update: cm3Date: Wed, 31 Dec 2008 20:13:13 +0000 It seems some of these files are marked "executable".How to fix?I know, locally, chmod -x *, but so that that cvs upd gives you non-executable files?I'm searching the web but not finding it yet. - Jay> Date: Wed, 31 Dec 2008 21:05:27 +0000> To: m3commit at elegosoft.com> From: jkrell at elego.de> Subject: [M3commit] CVS Update: cm3> > CVSROOT: /usr/cvs> Changes by: jkrell at birch. 08/12/31 21:05:27> > Modified files:> cm3/m3-libs/m3core/src/thread/: m3makefile > cm3/m3-libs/m3core/src/thread/Common/: SchedulerPosix.i3 > m3makefile > cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.m3 > cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 m3makefile > cm3/m3-libs/m3core/src/unix/cygwin/: Unix.i3 > Added files:> cm3/m3-libs/m3core/src/thread/: ThreadInternal.i3 > ThreadPScheduler.m3 > ThreadPWait.m3 > Removed files:> cm3/m3-libs/m3core/src/thread/WIN32/: WaitProcessCygwin.m3 > WaitProcessWin32.m3 > > Log message:> move code around with the following goals> > fold the three implementations of WaitProcess down to two> minor, would not be done if it was the only point> This is ThreadPWait.m3.> > remove stub SchedulerPosix from NT386 AND NT386GNU> presumably nobody calls the NT386 version, so also (half) minor> > give NT386GNU the real implementation of SchedulerPosix> This is more significant then, e.g. working versions of IOWait (aka select).> This is ThreadPScheduler.m3, moved out of ThreadPThread.m3.> Note that the name is open to debate.> There is this general problem that "P" for posix means two very different things.> It means posix user/alarm threads and posix kernel threads.> (Note that Win32 generalizes select to work on more than just sockets...> either completion ports or WaitForMultipleObjects I assume the generalized analog..)> > provide a /tiny/ abstraction for Posix waitpid users to> provide their own yielding if necessary> This used by WaitProcess.> It potentially for sysutils also, but sysutils can't depend on m3core changes> due to bootstrapping against older m3core.> > The next step is to factor out m3core/threads/m3makefile into> m3core/thread.quake so that sysutils can share its decision as to> if kernel threads are in use and therefore if waitpid yields.> Essentially to copy m3core ThreadPWait plus the other one liner.> If we could rely on newer m3core, then sysutils could just call SchedulerPosix.DoesWaitPidYield().> > This may look scary but it is mainly only moving existing code around,> and very small changes otherwise.> Except for Cygwin which gets the significant improvement of a real SchedulerPosix.> > Since code was moved -- ThreadPThread.m3 split into three files, there> was also a need for an interface so that code moved out of ThreadPThread> could call back to private shared code there, and the other implementation> in ThreadWin32. That is ThreadInternal.i3.> It could be ThreadF.i3, but that would be unnecessarily exposed and worse,> export a variable outside the package, which is a bad idea.> Perhaps wrap up the variable in a function? Maybe.> As well, ThreadF.i3 has three similar copies and this new content would be> needed in two of them. Perhaps the three copies could be combined to one,> with no-op stubs where functions don't make sense (as comments already> indicate exist).> > If cygwin used pthreads, this wouldn't be needed at all.> However, it is reasonable.> Maybe go back and debug Cygwin pthreads again at some point...> Maybe combine ThreadInternal.i3 and ThreadF.i3.> F is "friend" -- aka expose internals to special people, not the> public interface, but sometimes it is needed, thus "F" and "Internal"> are synonyms and you should really never have both, but here they are.> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Sat Dec 13 19:56:24 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 13 Dec 2008 19:56:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081213185624.D082010D5A4A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/13 19:56:24 Modified files: cm3/scripts/python/: pylib.py Log message: more files in bootstrap archives, dos2unix From jkrell at elego.de Mon Dec 15 15:59:23 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 15:59:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215145923.C648B10D59FB@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 15:59:23 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Udir.i3 UdirC.c Uerror.i3.cpp UnixC.c Ustat.i3 UstatC.c UtimeC.c m3makefile Log message: work in progress for header reduction and portability through just a little bit of C and not declaring so much unused stuff, esp. to avoid reading through gnarly #ifdefs in headers; only non mainstream platforms so far, such as non-x86 Linux, OpenBSD, non-Solaris SPARC From jkrell at elego.de Mon Dec 15 16:04:17 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:04:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215150417.C8B7F170401F@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:04:17 Modified files: cm3/m3-libs/m3core/src/unix/linux-common/: Uerror.i3 Unix.i3 Upthread.i3 Usignal.i3 Utypes.i3 m3makefile Log message: work in progress for header reduction and portability through just a little bit of C and not declaring so much unused stuff, esp. to avoid reading through gnarly #ifdefs in headers; only non mainstream platforms so far, such as non-x86 Linux, OpenBSD, non-Solaris SPARC, etc. (and really not even most of these affected here, just AMD64_LINUX and MIPS64_OPENBSD being worked on actively) From jkrell at elego.de Mon Dec 15 16:06:11 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:06:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215150614.13F7E2200040@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:06:11 Modified files: cm3/m3-libs/m3core/src/unix/linux-32/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/linux-32/: Uucontext.i3 Log message: header reduction/factoring/etc., avoiding PPC_LINUX/I386_LINUX here From jkrell at elego.de Mon Dec 15 16:07:16 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:07:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215150716.B7D2A904014@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:07:16 Modified files: cm3/m3-libs/m3core/src/unix/linux-64/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/linux-64/: Uucontext.i3 Removed files: cm3/m3-libs/m3core/src/unix/linux-64/: Ustat.i3 Log message: work in progress on header reduction/rewriting.. From jkrell at elego.de Mon Dec 15 16:13:01 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:13:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215151301.54A0F10D5A1B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:13:01 Modified files: cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile Removed files: cm3/m3-libs/m3core/src/unix/openbsd-common/: Ustat.i3 Log message: use common Ustat.i3 -- pay price to copy small struct, instead of declaring it for each platform (esp. to avoid reading through the Linux #ifdefs) From jkrell at elego.de Mon Dec 15 16:20:57 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:20:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215152057.88095904001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:20:57 Modified files: cm3/m3-libs/m3core/src/unix/linux-sparc/: Usignal.i3 m3makefile Removed files: cm3/m3-libs/m3core/src/unix/linux-sparc/: Uucontext.i3 Log message: sparc is a bit different, presumbly to aid binary compat with Solaris From jkrell at elego.de Mon Dec 15 16:22:17 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:22:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215152218.9F089904001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:22:17 Modified files: cm3/m3-libs/m3core/src/unix/linux-sparc/: Usignal.i3 m3makefile Log message: fix line endings From jkrell at elego.de Mon Dec 15 16:23:21 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:23:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215152322.05C1E904001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:23:21 Modified files: cm3/m3-libs/m3core/src/unix/linux-amd64/: m3makefile Log message: header factoring -- nothing actually left here From jkrell at elego.de Mon Dec 15 16:32:08 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:32:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215153210.0E84110D5C00@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:32:08 Modified files: cm3/m3-libs/m3core/src/unix/: m3makefile Log message: move {AMD64,SPARC{32,64}}_LINUX, {MIPS64,SPARC64,PPC32}_OPENBSD toward common/smaller headers not all built/tested, but AMD64_LINUX and MIP64_OPENBSD under active building/debugging From jkrell at elego.de Mon Dec 15 16:41:46 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:41:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215154146.2244A10D5D5B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:41:46 Modified files: cm3/m3-sys/m3cc/gcc/gcc/m3cg/: parse.c Log message: Declare the globals (er, module variables) to be (overall) 2 * max_alignment instead of merely max_alignment. This works around a problem where gcc assumes the module variables (overall, for a single module) fit in registers, and the offset is lost loading them, leading to many/most/all module variable loads to go awry, catastrophic on MIPS64. Many platforms work because their maxalign is already large. This is not clearly the best fix, but it sure is small. MIPS64_OPENBSD gets as far as: $ gdb cm3 (gdb) r Starting program: /home/jay/cm3/bin/cm3 --- building in MIPS64_OPENBSD --- missing version stamps -> compiling RTHooks.i3 Program received signal SIGFPE, Arithmetic exception. 0x00000000104f7be0 in Utils__M3Time (M3_CtKayy_t=0) at ..\src\Utils.m3:320 320 ..\src\Utils.m3: No such file or directory. in ..\src\Utils.m3 (gdb) bt #0 0x00000000104f7be0 in Utils__M3Time (M3_CtKayy_t=0) at ..\src\Utils.m3:320 #1 0x00000000104f7a1c in Utils__NoteNewFile (M3_Bd56fi_file=0x570673e0) at ..\src\Utils.m3:307 #2 0x00000000100b2eb4 in Builder__PushOneM3 (M3_Bd9FNt_s=0x55604830, M3_AXLf8B_u=0x106735f0) at ..\src\Builder.m3:1217 #3 0x00000000100b258c in Builder__CompileM3 (M3_Bd9FNt_s=0x517dd818, M3_AXLf8B_u=0x57077c40) at ..\src\Builder.m3:1149 #4 0x00000000100b0594 in Builder__CompileOne (M3_Bd9FNt_s=0x1, M3_AXLf8B_u=0x57077558) at ..\src\Builder.m3:984 #5 0x00000000100b005c in Builder__CompileEverything (M3_Bd9FNt_s=0x0, M3_Cw4bpV_schedule=0x0) at ..\src\Builder.m3:944 #6 0x00000000100a9bd8 in Builder__CompileUnits (M3_Bd56fi_main=0x570671b0, M3_EEuw3X_units=0x57067188, M3_C1FTrk_sys_libs=0x5179d2d8, M3_A2QN6Z_info_kind=0 '\0', M3_An02H2_mach=0x555fec40) at ..\src\Builder.m3:325 though all the seemingly related code runs several times successfully. Now(), FromUtime(), M3Time(), stat, etc. Perhaps some floats are getting corrupt on the stack. From jkrell at elego.de Mon Dec 15 16:44:00 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:44:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215154402.76B3B10D5D9E@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:44:00 Removed files: cm3/m3-libs/m3core/src/unix/linux-amd64/: Uucontext.i3 Log message: moved to common linux-64 From jkrell at elego.de Mon Dec 15 18:29:40 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 18:29:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215172940.7750110D5C70@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 18:29:40 Modified files: cm3/scripts/python/: pylib.py Log message: Linux needs -lm and -lpthread too From jkrell at elego.de Mon Dec 15 18:31:37 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 18:31:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215173137.F042A10D5C74@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 18:31:37 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Removed files: cm3/m3-libs/m3core/src/unix/Common/: UnixC.c Log message: This really belongs over in libm3. From jkrell at elego.de Mon Dec 15 18:33:17 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 18:33:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215173318.0398710D5C74@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 18:33:17 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosix.i3 FilePosix.m3 m3makefile Added files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosixC.c Log message: Remove the need to untangle the #ifdefs around struct flock. From jkrell at elego.de Mon Dec 15 18:41:06 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 18:41:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215174106.1A7A510D5C70@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 18:41:06 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosixC.c Log message: fix last minute edit From jkrell at elego.de Tue Dec 16 08:23:06 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 8:23:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216072306.C7D88904001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 08:23:06 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: probing output shows up as a diff in tests, so turn it off From jkrell at elego.de Tue Dec 16 08:33:08 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 8:33:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216073308.A553210D506D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 08:33:07 Modified files: cm3/m3-sys/m3tests/src/p1/p170/: Main.m3 Log message: loosen 32 bit-specificity of test, so it succeeds on 64 bit; could also write two different tests From jkrell at elego.de Tue Dec 16 08:43:15 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 8:43:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216074315.7884C10D506D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 08:43:15 Modified files: cm3/m3-sys/m3tests/src/: m3makefile Log message: expected output file has '64' appended, if on a 64bit platform and the file exists; this will deal with the fact that type sizes are in expected output and are 32 bit specific From jkrell at elego.de Tue Dec 16 13:00:57 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 13:00:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216120100.18A2610D5C1D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 13:00:57 Modified files: cm3/scripts/python/: pylib.py make-dist.py Log message: remove 'POSIX' from file names, it is redundant From jkrell at elego.de Tue Dec 16 14:42:44 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 14:42:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216134244.23DC010D59C7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 14:42:44 Added files: cm3/m3-sys/m3tests/src/p0/p011/: stdout.pgm64 cm3/m3-sys/m3tests/src/p0/p076/: stdout.build64 Log message: add 64 bit outputs------------ From jkrell at elego.de Tue Dec 16 15:38:44 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 15:38:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216143845.0256210D59C7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 15:38:44 Modified files: cm3/m3-libs/m3core/src/runtime/AMD64_LINUX/: RTSignal.m3 cm3/m3-libs/m3core/src/unix/linux-common/: Usignal.i3 Log message: fill in missing pieces by copying from LINUXLIBC mostly, probably why two of the tests hang, when run from cm3 From jkrell at elego.de Tue Dec 16 16:06:43 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 16:06:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216150644.B188B2200084@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 16:06:42 Modified files: cm3/m3-libs/m3core/src/unix/linux-common/: Utime.i3 Log message: fix time_t (INTEGER, not int), so that nanosleep in StopWorld sleeps the intended amount, instead of way too much aka hanging From jkrell at elego.de Tue Dec 16 16:31:49 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 16:31:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216153150.E6D9810D5C55@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 16:31:49 Modified files: cm3/m3-libs/m3core/src/win32/: WinNTc.c Log message: remove dependency on newer headers, so that e.g. I386_CYGWIN (aka NT386GNU) builds From jkrell at elego.de Tue Dec 16 16:33:19 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 16:33:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216153319.C43B110D5C55@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 16:33:19 Modified files: cm3/m3-libs/m3core/src/win32/: WinNTc.c Log message: fix line endings From jkrell at elego.de Tue Dec 16 17:40:43 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 17:40:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216164044.0C55010D506D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 17:40:43 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosixC.c cm3/m3-libs/m3core/src/unix/Common/: UdirC.c m3makefile cm3/m3-libs/m3core/src/unix/cygwin/: Uerror.i3 Ustat.i3 m3makefile cm3/m3-sys/cminstall/src/config/: NT386.common cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common cm3/m3-sys/m3cc/src/: m3makefile cm3/scripts/python/: pylib.py upgrade.py Removed files: cm3/m3-libs/m3core/src/unix/cygwin/: Udir.i3 Log message: Bring Cygwin to common headers. don't enforce alignment on x86 (not aligned on Cygwin) Fix Cygwin for m3cg probing (NT386 => NT386GNU) Posix says to use SEEK_SET, and Cygwin doesn't define L_SET. some m3makefile cleanup to again deal with quotes/slashes use single quotes when ok and might be nested in double quotes some m3makefile cleanup to depend on "sysutils" for brevity and no point in "mkdir(.)" From hosking at cs.purdue.edu Tue Dec 16 20:33:27 2008 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 17 Dec 2008 06:33:27 +1100 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20081215173318.0398710D5C74@birch.elegosoft.com> References: <20081215173318.0398710D5C74@birch.elegosoft.com> Message-ID: This new file FilePosixC.c does not build on my SOLgnu Tinderbox setup, so the regressions failed last night. Jay, this is precisely the reason that we don't want to have C-coded files in the Modula-3 code-base -- C might proclaim its portability but that portability is a lie. Why do we need this when the old pure Modula-3 setup worked just fine! I know it meant some amount of duplication, but that duplication was needed because of differences in API specs on different platforms. I am not averse to having *portable* C code, but in this case I think it is too low-level to be properly portable. Perhaps better to keep it in Modula-3. On 15 Dec 2008, at 18:33, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 08/12/15 18:33:17 > > Modified files: > cm3/m3-libs/libm3/src/os/POSIX/: FilePosix.i3 FilePosix.m3 > m3makefile > Added files: > cm3/m3-libs/libm3/src/os/POSIX/: FilePosixC.c > > Log message: > Remove the need to untangle the #ifdefs around struct flock. From jay.krell at cornell.edu Wed Dec 17 01:32:06 2008 From: jay.krell at cornell.edu (Jay) Date: Wed, 17 Dec 2008 00:32:06 +0000 Subject: [M3commit] FilePosixC.c In-Reply-To: References: <20081215173318.0398710D5C74@birch.elegosoft.com> Message-ID: Tony, Well, it is a matter of degree, but I really dislike the duplication and I believe the portability is plenty attainable. It also didn't compile for me on Cygwin, I did a bit more research and fixed that. It is ok now for SOLgnu? I do have a SOLgnu/sun machine but didn't rebuild there yet. L_SET is not portable. - Jay> From: hosking at cs.purdue.edu> To: jkrell at elego.de> Date: Wed, 17 Dec 2008 06:33:27 +1100> CC: m3devel at elegosoft.com; m3commit at elegosoft.com> Subject: Re: [M3commit] CVS Update: cm3> > This new file FilePosixC.c does not build on my SOLgnu Tinderbox > setup, so the regressions failed last night.> > Jay, this is precisely the reason that we don't want to have C-coded > files in the Modula-3 code-base -- C might proclaim its portability > but that portability is a lie. Why do we need this when the old pure > Modula-3 setup worked just fine! I know it meant some amount of > duplication, but that duplication was needed because of differences in > API specs on different platforms. I am not averse to having > *portable* C code, but in this case I think it is too low-level to be > properly portable. Perhaps better to keep it in Modula-3.> > On 15 Dec 2008, at 18:33, Jay Krell wrote:> > > CVSROOT: /usr/cvs> > Changes by: jkrell at birch. 08/12/15 18:33:17> >> > Modified files:> > cm3/m3-libs/libm3/src/os/POSIX/: FilePosix.i3 FilePosix.m3> > m3makefile> > Added files:> > cm3/m3-libs/libm3/src/os/POSIX/: FilePosixC.c> >> > Log message:> > Remove the need to untangle the #ifdefs around struct flock.> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Wed Dec 17 01:51:37 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 17 Dec 2008 1:51:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081217005137.35F0A10D5C54@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/17 01:51:36 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UstatC.c Log message: remove __inline for increased portability From jkrell at elego.de Wed Dec 17 01:53:22 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 17 Dec 2008 1:53:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081217005322.44AE010D5C54@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/17 01:53:22 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UstatC.c Log message: should support files >4gig on 32bit systems From hosking at cs.purdue.edu Wed Dec 17 01:49:36 2008 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 17 Dec 2008 11:49:36 +1100 Subject: [M3commit] FilePosixC.c In-Reply-To: References: <20081215173318.0398710D5C74@birch.elegosoft.com> Message-ID: I'll wait for tomorrow's regressions to come through and see if it is fixed now for my SOLgnu Tinderbox setup. I see the temptation to eliminate duplication, and for these sorts of POSIX APIs I would expect portable C code to work pretty well. On 17 Dec 2008, at 11:32, Jay wrote: > Tony, Well, it is a matter of degree, but I really dislike the > duplication > and I believe the portability is plenty attainable. It also didn't > compile > for me on Cygwin, I did a bit more research and fixed that. > It is ok now for SOLgnu? I do have a SOLgnu/sun machine but didn't > rebuild there yet. > L_SET is not portable. > > - Jay > > > From: hosking at cs.purdue.edu > > To: jkrell at elego.de > > Date: Wed, 17 Dec 2008 06:33:27 +1100 > > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > > Subject: Re: [M3commit] CVS Update: cm3 > > > > This new file FilePosixC.c does not build on my SOLgnu Tinderbox > > setup, so the regressions failed last night. > > > > Jay, this is precisely the reason that we don't want to have C-coded > > files in the Modula-3 code-base -- C might proclaim its portability > > but that portability is a lie. Why do we need this when the old pure > > Modula-3 setup worked just fine! I know it meant some amount of > > duplication, but that duplication was needed because of > differences in > > API specs on different platforms. I am not averse to having > > *portable* C code, but in this case I think it is too low-level to > be > > properly portable. Perhaps better to keep it in Modula-3. > > > > On 15 Dec 2008, at 18:33, Jay Krell wrote: > > > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 08/12/15 18:33:17 > > > > > > Modified files: > > > cm3/m3-libs/libm3/src/os/POSIX/: FilePosix.i3 FilePosix.m3 > > > m3makefile > > > Added files: > > > cm3/m3-libs/libm3/src/os/POSIX/: FilePosixC.c > > > > > > Log message: > > > Remove the need to untangle the #ifdefs around struct flock. > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Wed Dec 17 14:02:41 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 17 Dec 2008 14:02:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081217130244.424BD2200046@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/17 14:02:41 Modified files: cm3/m3-ui/juno-2/juno-app/pkl-fonts/src/: m3makefile Log message: build standalone on NT386 to avoid problem running as part of building nearby -- running unshipped stuff is probably nebulous in general, and building this standalone is probably reasonable therefore for all platforms? From jkrell at elego.de Wed Dec 17 15:44:38 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 17 Dec 2008 15:44:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081217144438.7B13610D5C1D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/17 15:44:38 Modified files: cm3/m3-sys/cminstall/src/config/: NT386.common Log message: don't double up flags on cm3cg command line (cosmetic) From jkrell at elego.de Wed Dec 17 15:47:34 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 17 Dec 2008 15:47:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081217144734.7E9A310D5C1D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/17 15:47:34 Modified files: cm3/scripts/python/: pylib.py make-dist.py Log message: fix line endings and 'temporarily' skip serial package -- there's a problem here on I386_CYGWIN I forgot about where essentially you want to provide both FilePosix and FileWin32; FilePosix will export File, FileWin32 will export FileWin32, so that portable Modula-3 can use File/FilePosix and Win32 specific serial code can use FileWin32; maybe some day we should try out this serial stuff, and /maybe/ the Posix paths work on Cygwin? For now, just skip it. And fix line endings. And try out the alternate 'clean' path in make-dist From jkrell at elego.de Wed Dec 17 16:04:25 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 17 Dec 2008 16:04:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081217150427.9CCEA1704033@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/17 16:04:25 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: remove errant empty comment line (cosmetic) From jkrell at elego.de Wed Dec 17 17:19:11 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 17 Dec 2008 17:19:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081217161911.815C410D5D0D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/17 17:19:11 Modified files: cm3/www/uploaded-archives/: update_download_index.sh Log message: make there be a dash after the platform, so that NT386 and NT386GNU are separated From rodney at elego.de Thu Dec 18 05:17:43 2008 From: rodney at elego.de (Rodney M. Bates) Date: Thu, 18 Dec 2008 5:17:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081218041743.4559410D59A9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 08/12/18 05:17:43 Modified files: cm3/m3-sys/m3gdb/gdb/gdb/: frame.c infcall.c m3-eval.c m3-lang.c m3-lang.h m3-util.c m3-util.h m3-valprint.c Log message: Some progress adapting the the new system of static links used by gcc 4.3.0. In many cases, m3gdb can now properly follow them and also create them, when calling or passing a nested procedure. The main place it will fail is if a nested procedure makes no nonlocal references to variables or parameters of an enclosing procedure, nor does any further enclosed procedure. If it can't find a static link, it will still fall back to the process of nearest dynamic ancestor activation record that belongs to the desired procedure. This will be correct when nested procedures are called only as procedure constants. For older compilers everything should work, though the implementation is greatly changed. From jkrell at elego.de Fri Dec 19 01:24:22 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 1:24:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219002422.0A48410D5C26@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 01:24:21 Modified files: cm3/scripts/python/: upgrade.py pylib.py Log message: put serial back, and fix newlines From jkrell at elego.de Fri Dec 19 01:31:49 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 1:31:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219003149.F11C010D5C6A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 01:31:49 Modified files: cm3/scripts/: pkginfo.sh Log message: build udp on Win32 too From jkrell at elego.de Fri Dec 19 01:32:26 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 1:32:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219003227.E57A810D5C6A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 01:32:26 Modified files: cm3/scripts/python/: pylib.py Log message: build udp on Win32 too (local CVS is crashing when I try to commit more than one file, ugh) From jkrell at elego.de Fri Dec 19 01:32:39 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 1:32:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219003239.9ACD610D5C6A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 01:32:39 Modified files: cm3/scripts/win/: pkginfo.cmd Log message: build udp on Win32 too (local CVS is crashing when I try to commit more than one file, ugh) From jkrell at elego.de Fri Dec 19 06:54:11 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 6:54:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219055411.8943410D5D0F@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 06:54:11 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: SOLsun and SOLgnu can use each other's m3cgc1.exe -- they are the same From jkrell at elego.de Fri Dec 19 06:57:30 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 6:57:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219055730.E25D810D5D36@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 06:57:30 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UdirC.c m3makefile cm3/m3-libs/m3core/src/unix/linux-32/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/linux-sparc/: Uerror.i3 Log message: some fixes for SPARC{32,64}_LINUX a fix that probably affects many/all Posix platforms, but not done testing SOLsun/SOLgnu From jkrell at elego.de Fri Dec 19 07:32:43 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 7:32:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219063245.175EE10D5C26@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 07:32:43 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UdirC.c Log message: fix newlines, and endeavor to use 64 bits types on Linux, where there is often a 32bit and 64bit interface From jkrell at elego.de Fri Dec 19 07:45:42 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 7:45:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219064542.96F0810D458C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 07:45:42 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Log message: revision 1.2 should not havce given UstatC.c to 'every' platform (not every platform uses this cirectory, but many do, for UtimeC.c global variable wrappers) From jkrell at elego.de Fri Dec 19 07:54:04 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 7:54:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219065405.3E0CC10D5C26@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 07:54:04 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile UdirC.c Log message: all that OpenBSD stuff is for naught From jkrell at elego.de Fri Dec 19 09:44:43 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 9:44:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219084443.DE70010D5C26@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 09:44:43 Modified files: cm3/m3-libs/m3core/src/Csupport/libgcc/: libgcc.c Log message: SOLsun needs __muldi3; just take a bunch from LGPL gcc/gcc/config/darwin-64.c (same licensing as code compiled for 64bit darwin, if any of the functions are pulled in, which the code claims is unlikely) From jkrell at elego.de Fri Dec 19 10:23:17 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 10:23:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219092317.E05B010D59C7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 10:23:17 Modified files: cm3/scripts/python/: pylib.py Log message: extra switches needed by SOLsun, SPARC64_SOLARIS, SPARC32_LINUX, SPARC64_LINUX, and need to copy .s files into boot archive and assemble them, for SOLgnu and SOLsun From jkrell at elego.de Fri Dec 19 14:39:28 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 14:39:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219133928.7C41A10D5C26@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 14:39:28 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Solaris.common Log message: put quotes where needed; in case anyone else has single-target tools, I plan to use one plain 'gcc' with -m32 and -m64 shortly From jkrell at elego.de Fri Dec 19 18:40:10 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 18:40:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219174010.B243510D5C55@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 18:40:10 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Solaris.common Log message: use gcc to drive the linker, assuming gcc works well enough (usually they do, even if mine wasn't), this way, we don't have to track down libgcc.a for the 64bit math helpers From jkrell at elego.de Wed Dec 24 07:43:38 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 24 Dec 2008 7:43:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081224064338.F031510D5E5F@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/24 07:43:38 Modified files: cm3/m3-sys/m3cc/src/: m3makefile Log message: don't use fs_exists From jkrell at elego.de Wed Dec 24 07:46:43 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 24 Dec 2008 7:46:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081224064643.3496210D5E5F@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/24 07:46:43 Modified files: cm3/m3-sys/m3cc/src/: m3makefile Log message: comment about previous From jkrell at elego.de Wed Dec 24 20:58:45 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 24 Dec 2008 20:58:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081224195845.2A8EF10D5DA6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/24 20:58:45 Modified files: cm3/m3-libs/m3core/src/unix/linux-32/: m3makefile Log message: fix typo that broke LINUXLIBC6 From jkrell at elego.de Thu Dec 25 07:15:35 2008 From: jkrell at elego.de (Jay Krell) Date: Thu, 25 Dec 2008 7:15:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081225061537.771CF10D58EA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/25 07:15:35 Modified files: cm3/scripts/python/: pylib.py Log message: fix newlines; remove conflict-prone $ From jkrell at elego.de Thu Dec 25 07:42:45 2008 From: jkrell at elego.de (Jay Krell) Date: Thu, 25 Dec 2008 7:42:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081225064245.A6DDB10D5DE0@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/25 07:42:45 Modified files: cm3/m3-libs/m3core/src/unix/linux-32/: m3makefile Log message: other way around From jkrell at elego.de Sat Dec 27 00:14:03 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 0:14:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081226231403.11E2110D5E5C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 00:14:02 Modified files: cm3/m3-libs/m3core/src/runtime/PPC_LINUX/: RTMachine.i3 cm3/m3-libs/m3core/src/thread/: m3makefile cm3/scripts/python/: pylib.py Log message: user threads long since broken (years ago I believe) switch PPC_LINUX to kernel threads bootstrapped from NT386GNU, native build then gets to m3-tools/m3totex: /cm3/bin/m3bundle -name B -F/tmp/qk unable to open file for reading: ../PPC_LINUX/B.i3: errno=2 open failed on: ../PPC_LINUX/B.i3 unable to open file for reading: ../PPC_LINUX/B.m3: errno=2 open failed on: ../PPC_LINUX/B.m3 new source -> compiling m3totex.m3 Fatal Error: unable to open file for reading: ../PPC_LINUX/B.i3: errno=2 That's way better than the alternative. When using user threads, access violate in PushEFrame accessing NULL self; ThreadF__Init not called yet pthreads and Win32 threads initialize "PushEFrame" on-demand, but doing the simplest user thread analog -- ThreadF__Init -- on-demand is too much and fails Probably need to change user thread Thread.T from an "object" to a traced ref, and then initialize it to an untraced value to start, if that is legal user threads will need fixing for hypothetical djgpp platform From jkrell at elego.de Sat Dec 27 00:15:34 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 0:15:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081226231534.65BBB10D5E5C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 00:15:34 Modified files: cm3/m3-sys/m3cc/src/: m3makefile Log message: some logging improvements; output commands to _m3.log; stay out of the native directory's _m3.log when doing cross builds; add some platforms that aren't yet active From jkrell at elego.de Sat Dec 27 00:24:51 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 0:24:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081226232451.5771C10D5E5C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 00:24:51 Removed files: cm3/m3-libs/m3core/src/runtime/PPC_LINUX/: RTStackASM.s Log message: remove dead x86 assembly source from PPC directory From jkrell at elego.de Sat Dec 27 01:35:08 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 1:35:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227003509.5F50310D5E84@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 01:35:08 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UdirC.c UstatC.c UtimeC.c Added files: cm3/m3-libs/m3core/src/unix/Common/: m3unix.h Log message: file sizes and offsets should always be 64 bits functions that traffic in file sizes offsets should always have "64" at the end? From jkrell at elego.de Sat Dec 27 01:45:13 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 1:45:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227004513.E12B710D5E5C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 01:45:13 Modified files: cm3/m3-libs/m3core/src/unix/linux-common/: Umman.i3 Unix.i3 Log message: be sure to have 64 bit file size/offset, and appropriate functions thereof (work in progress) From jkrell at elego.de Sat Dec 27 02:04:03 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 2:04:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227010404.5D42310D4936@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 02:04:03 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UdirC.c cm3/m3-libs/m3core/src/unix/cygwin/: Unix.i3 Log message: fix for Cygwin and 'tell' doesn't seem to exist ? From jkrell at elego.de Sat Dec 27 03:05:29 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 3:05:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227020529.B503910D5DE8@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 03:05:29 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Unix.i3 Unix.i3.cpp Log message: reduce cloned headers From jkrell at elego.de Sat Dec 27 03:08:13 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 3:08:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227020814.305D110D5DE8@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 03:08:13 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Utypes.i3 Utypes.i3.cpp Log message: more header reduction -- don't need the contituents of struct stat From jkrell at elego.de Sat Dec 27 05:56:30 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 5:56:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227045630.91D0F10D5DE8@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 05:56:30 Modified files: cm3/m3-libs/m3core/src/unix/openbsd-common/: Unix.i3 Log message: more header reduction From jkrell at elego.de Sat Dec 27 05:57:00 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 5:57:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227045700.9CF1E10D5DE9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 05:57:00 Modified files: cm3/m3-libs/m3core/src/unix/linux-common/: Unix.i3 Log message: more header reduction From jkrell at elego.de Sat Dec 27 08:16:24 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 8:16:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227071624.37FFB10D54C5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 08:16:24 Modified files: cm3/m3-libs/m3core/src/unix/: m3makefile cm3/m3-libs/m3core/src/unix/aix-3-2/: m3makefile cm3/m3-libs/m3core/src/unix/aix-ps2-1-2/: m3makefile cm3/m3-libs/m3core/src/unix/cygwin/: m3makefile cm3/m3-libs/m3core/src/unix/darwin-generic/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-1/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-2/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-3/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-4/: m3makefile cm3/m3-libs/m3core/src/unix/ibm-4-3/: m3makefile cm3/m3-libs/m3core/src/unix/linux/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/netbsd2-i386/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile cm3/m3-libs/m3core/src/unix/os2/: m3makefile cm3/m3-libs/m3core/src/unix/osf-1.generic/: m3makefile cm3/m3-libs/m3core/src/unix/solaris-2-x/: m3makefile cm3/m3-libs/m3core/src/unix/sunos-4-x/: m3makefile cm3/m3-libs/m3core/src/unix/sysv-4.0/: m3makefile cm3/m3-libs/m3core/src/unix/ultrix-3-1.generic/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/: Uutmp.txt cm3/m3-libs/m3core/src/unix/Uutmp1/: Uutmp.i3 m3makefile cm3/m3-libs/m3core/src/unix/Uutmp2/: Uutmp.i3 m3makefile cm3/m3-libs/m3core/src/unix/Uutmp3/: Uutmp.i3 m3makefile Removed files: cm3/m3-libs/m3core/src/unix/aix-3-2/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/aix-ps2-1-2/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/cygwin/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/darwin-generic/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/freebsd-1/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/freebsd-2/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/freebsd-3/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/freebsd-4/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/ibm-4-3/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/linux/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/netbsd2-i386/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/os2/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/osf-1.generic/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/solaris-2-x/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/sunos-4-x/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/sysv-4.0/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.generic/: Uutmp.i3 Log message: combine 22 Uutmp.i3 files into just the 3 shared ones and 3 custom ones From jkrell at elego.de Sat Dec 27 19:25:29 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 19:25:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227182529.34B8310D5E93@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 19:25:29 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: PPC_LINUX Log message: fix newlines From jkrell at elego.de Sat Dec 27 19:29:26 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 19:29:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227182926.5E56710D5E93@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 19:29:26 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: PPC_LINUX SOLsun SPARC64_LINUX Log message: some cleanup, esp. that I get warnings that -fPIC is redundant on PPC_LINUX From jkrell at elego.de Sat Dec 27 20:21:53 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 20:21:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227192153.AEB8910D5E92@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 20:21:53 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Utime.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Utime.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Utime.i3 Log message: make these three files almost identical (two of them actually identical) so that in the future we might be able to only have one From jkrell at elego.de Sat Dec 27 20:26:35 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 20:26:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227192635.DFE0210D5E92@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 20:26:35 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Utime.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Utime.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Utime.i3 Log message: the correct versions: make these three files almost identical (two of them actually identical) so that in the future we might be able to only have one From jkrell at elego.de Sun Dec 28 00:57:24 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 0:57:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227235724.ED56110D5E92@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 00:57:24 Modified files: cm3/m3-libs/m3core/src/runtime/PPC_LINUX/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/: m3makefile cm3/m3-libs/m3core/src/unix/: m3makefile cm3/m3-libs/m3core/src/unix/Common/: UdirC.c m3makefile cm3/m3-libs/m3core/src/unix/linux-32/: m3makefile cm3/scripts/python/: pylib.py Removed files: cm3/m3-libs/m3core/src/runtime/PPC_LINUX/: RTThread.m3 RTThreadC.c Log message: switch PPC_LINUX to trimmed down linux-common instead of larger and more error-prone linux-libc6 lose user thread support in the process, which could be preserved, but also doesn't work From jkrell at elego.de Sun Dec 28 01:00:57 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 1:00:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228000100.06A2210D5E93@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 01:00:57 Modified files: cm3/www/uploaded-archives/: update_download_index.sh Log message: add PPC_LINUX From jkrell at elego.de Sun Dec 28 01:32:57 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 1:32:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228003301.A42CA10D59A7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 01:32:57 Removed files: cm3/m3-libs/m3core/src/unix/linux-amd64/: 1.cpp 1.sh m3makefile Log message: forgot to deelete these; no longer used From jkrell at elego.de Sun Dec 28 08:10:25 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 8:10:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228071026.6BB861704023@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 08:10:25 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/Common/: Upwd.i3 Removed files: cm3/m3-libs/m3core/src/unix/cygwin/: Upwd.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Upwd.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Upwd.i3 Log message: another common file From jkrell at elego.de Sun Dec 28 08:13:38 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 8:13:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228071338.34EA5904004@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 08:13:38 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/cygwin/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/Common/: Unetdb.i3 Removed files: cm3/m3-libs/m3core/src/unix/cygwin/: Unetdb.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Unetdb.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Unetdb.i3 Log message: another common file From jkrell at elego.de Sun Dec 28 08:01:42 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 8:01:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228070143.434C6904006@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 08:01:42 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/Common/: Uuio.i3 Removed files: cm3/m3-libs/m3core/src/unix/cygwin/: Uuio.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Uuio.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Uuio.i3 Log message: make Uuio.i3 common, along with removing the unused sometimes 64bit incorrect iovec type (the length is size_t/long/ssize_t/integer, not int) From jkrell at elego.de Sun Dec 28 08:40:37 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 8:40:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228074037.7047C10D5D40@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 08:40:37 Removed files: cm3/m3-libs/m3core/src/unix/linux-ppc/: m3makefile Uucontext.i3 Log message: forgot to delete these files From jkrell at elego.de Sun Dec 28 08:42:50 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 8:42:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228074250.4E54410D5D40@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 08:42:50 Modified files: cm3/m3-libs/m3core/src/unix/linux-32/: m3makefile cm3/m3-libs/m3core/src/unix/linux-libc6/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/linux-libc6/: Ustat.i3 Removed files: cm3/m3-libs/m3core/src/unix/linux-32/: Ustat.i3 Log message: LINUXLIBC6 is now the only user of linux-32/Ustat.i3, so move the file to its specific directory. From jkrell at elego.de Sun Dec 28 08:26:46 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 8:26:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228072646.ECD7810D461B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 08:26:46 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/cygwin/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/Common/: Uugid.i3 Removed files: cm3/m3-libs/m3core/src/unix/cygwin/: Uugid.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Uugid.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Uugid.i3 Log message: another common file From jkrell at elego.de Sun Dec 28 08:57:10 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 8:57:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228075711.81493904004@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 08:57:10 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/Common/: Usched.i3 Removed files: cm3/m3-libs/m3core/src/unix/linux-common/: Usched.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Usched.i3 Log message: another common file From jkrell at elego.de Sun Dec 28 09:01:29 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 9:01:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228080129.C37C1904006@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 09:01:29 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Log message: factor some common code From jkrell at elego.de Sun Dec 28 09:31:48 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 9:31:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228083149.5D6DE10D461B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 09:31:48 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/cygwin/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/Common/: Uprocess.i3 Removed files: cm3/m3-libs/m3core/src/unix/cygwin/: Uprocess.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Uprocess.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Uprocess.i3 Log message: yet another common file From jkrell at elego.de Sun Dec 28 09:38:50 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 9:38:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228083851.570E210D461B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 09:38:50 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/cygwin/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/Common/: Uresource.i3 Removed files: cm3/m3-libs/m3core/src/unix/cygwin/: Uresource.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Uresource.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Uresource.i3 Log message: yet another common file From jkrell at elego.de Sun Dec 28 09:20:42 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 9:20:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228082042.503AC904006@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 09:20:42 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Utime.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Utime.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Utime.i3 Log message: add ctime_r, localtime_r, gmtime_r; note that Solaris's default ctime_r is different, something about Posix changing, Solaris adopting the earlier standard and then the newer one and having both implementations but with different link symbol names (of course) From jkrell at elego.de Sun Dec 28 10:23:29 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 10:23:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228092330.360A410D59C7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 10:23:29 Modified files: cm3/m3-libs/m3core/src/unix/: Uutmp.txt Log message: fix notes From jkrell at elego.de Sun Dec 28 10:35:18 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 10:35:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228093519.0F93910D5D29@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 10:35:18 Modified files: cm3/m3-libs/m3core/src/unix/solaris-2-x/: Usem.i3 Log message: fix alignment of Solaris semaphores -- 64bit alignment, not no (char) alignment) From jkrell at elego.de Sun Dec 28 11:03:34 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 11:03:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228100334.C41F3B04048@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 11:03:34 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/Common/: Usem.i3 Removed files: cm3/m3-libs/m3core/src/unix/linux-common/: Usem.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Usem.i3 Log message: another common header file -- however this bought by defining sem_t to have the maximum size and alignment of any system; Solaris's 48 byte 64bit aligned version The CM3 code base has one static sem_t in the pthread code. From jkrell at elego.de Sun Dec 28 12:59:18 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 12:59:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228115918.4BD1710D5D29@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 12:59:18 Modified files: cm3/m3-libs/m3core/src/runtime/: m3makefile cm3/m3-libs/m3core/src/runtime/AMD64_LINUX/: RTMachine.i3 RTSignal.m3 m3makefile Removed files: cm3/m3-libs/m3core/src/runtime/PPC_LINUX/: RTMachine.i3 RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/SPARC32_LINUX/: RTMachine.i3 RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/SPARC64_LINUX/: RTMachine.i3 RTSignal.m3 m3makefile Log message: share more common files, albeit with a bad directory name ("AMD64_LINUX") From jkrell at elego.de Sun Dec 28 23:40:13 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 23:40:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228224013.4153710D5966@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 23:40:13 Removed files: cm3/m3-libs/m3core/src/C/PPC_LINUX/: CsetjmpASM.s Log message: remove x86 assembly from powerpc port From jkrell at elego.de Sun Dec 28 23:42:59 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 23:42:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228224259.A2EB510D5966@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 23:42:59 Modified files: cm3/m3-libs/m3core/src/C/Common/: m3makefile cm3/m3-libs/m3core/src/C/PPC_LINUX/: m3makefile Removed files: cm3/m3-libs/m3core/src/C/PPC_LINUX/: Cstdio.i3 Cstdio.m3 Cstring.i3 Log message: more common files From hosking at cs.purdue.edu Sun Dec 28 23:50:37 2008 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 29 Dec 2008 09:50:37 +1100 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20081228100334.C41F3B04048@birch.elegosoft.com> References: <20081228100334.C41F3B04048@birch.elegosoft.com> Message-ID: <3AD2B7A9-A060-4E03-B8BA-08B2D6028BB4@cs.purdue.edu> This change makes me uneasy -- do you mean to say we have a uniform definition of sem_t when the different targets have different definitions? :-O On 28 Dec 2008, at 11:03, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 08/12/28 11:03:34 > > Modified files: > cm3/m3-libs/m3core/src/unix/Common/: m3makefile > cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile > cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile > Added files: > cm3/m3-libs/m3core/src/unix/Common/: Usem.i3 > Removed files: > cm3/m3-libs/m3core/src/unix/linux-common/: Usem.i3 > cm3/m3-libs/m3core/src/unix/openbsd-common/: Usem.i3 > > Log message: > another common header file -- however this bought by defining sem_t > to have the maximum size and alignment of any system; > Solaris's 48 byte 64bit aligned version > The CM3 code base has one static sem_t in the pthread code. From jkrell at elego.de Mon Dec 29 00:42:23 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 0:42:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228234223.78CDF10D59C7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 00:42:23 Modified files: cm3/m3-libs/m3core/src/C/PPC_LINUX/: m3makefile Removed files: cm3/m3-libs/m3core/src/C/PPC_LINUX/: Csignal.i3 Log message: delete yet another useless file -- Csignal.i3 (used only by dormant non-pthreads ports, and not provided by many ports; though also not a terrible thing, somewhat useful, and simple and portable) From jay.krell at cornell.edu Mon Dec 29 00:49:25 2008 From: jay.krell at cornell.edu (Jay) Date: Sun, 28 Dec 2008 23:49:25 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <3AD2B7A9-A060-4E03-B8BA-08B2D6028BB4@cs.purdue.edu> References: <20081228100334.C41F3B04048@birch.elegosoft.com> <3AD2B7A9-A060-4E03-B8BA-08B2D6028BB4@cs.purdue.edu> Message-ID: This one I can undo and still feel ok -- just push sem_t into Utypes.i3 and expose it from a common Usem.i3. There is only one sem_t in the system. It is global. This change just makes it usually larger and more aligned than necessary. The danger would be if sem_t is ever embedded in something else OS-defined, or if the OS ever returned a pointer to one that Modula-3 code copied. In general, I'm thinking either Utypes.i3 or some new Uinternal.i3 or Usysdep.i3 or Utypes.i3 + Uconstants.i3 should be where most/all system-dependent stuff. Even existant Utypes.i3 have much redundancy -- all the ulong/ushort/int8/int16/int32/int64 types are always the same, just stuff like nlink_t, mode_t, gid_t, uid_t, off_t vary. Though imho off_t should always be INT64 or UINT64. Usysdep.i3 seems best? - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > To: jkrell at elego.de > Date: Mon, 29 Dec 2008 09:50:37 +1100 > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > This change makes me uneasy -- do you mean to say we have a uniform > definition of sem_t when the different targets have different > definitions? :-O > > On 28 Dec 2008, at 11:03, Jay Krell wrote: > >> CVSROOT: /usr/cvs >> Changes by: jkrell at birch. 08/12/28 11:03:34 >> >> Modified files: >> cm3/m3-libs/m3core/src/unix/Common/: m3makefile >> cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile >> cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile >> Added files: >> cm3/m3-libs/m3core/src/unix/Common/: Usem.i3 >> Removed files: >> cm3/m3-libs/m3core/src/unix/linux-common/: Usem.i3 >> cm3/m3-libs/m3core/src/unix/openbsd-common/: Usem.i3 >> >> Log message: >> another common header file -- however this bought by defining sem_t >> to have the maximum size and alignment of any system; >> Solaris's 48 byte 64bit aligned version >> The CM3 code base has one static sem_t in the pthread code. > From jay.krell at cornell.edu Mon Dec 29 00:55:16 2008 From: jay.krell at cornell.edu (Jay) Date: Sun, 28 Dec 2008 23:55:16 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20081228100334.C41F3B04048@birch.elegosoft.com> <3AD2B7A9-A060-4E03-B8BA-08B2D6028BB4@cs.purdue.edu> Message-ID: Note that I've been avoiding touching "mainstream" or already existant platforms -- FreeBSD, LINUXLIBC6, *_DARWIN. Perhaps I should go ahead and cross that line, as my testability/testing allows? Slightly linked question is if user threads should remain. They don't work, I believe on any platform, but I understand could easily be made to. - Jay ---------------------------------------- > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu; jkrell at elego.de > Date: Sun, 28 Dec 2008 23:49:25 +0000 > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > > This one I can undo and still feel ok -- just push sem_t into Utypes.i3 and expose it from a common Usem.i3. > There is only one sem_t in the system. > It is global. This change just makes it usually larger and more aligned than necessary. > > > The danger would be if sem_t is ever embedded in something else OS-defined, or if the OS ever returned a pointer to one that Modula-3 code copied. > > > In general, I'm thinking either Utypes.i3 or some new Uinternal.i3 or Usysdep.i3 or Utypes.i3 + Uconstants.i3 should be where most/all system-dependent stuff. > Even existant Utypes.i3 have much redundancy -- all the ulong/ushort/int8/int16/int32/int64 types are always the same, just stuff like nlink_t, mode_t, gid_t, uid_t, off_t vary. Though imho off_t should always be INT64 or UINT64. > > > Usysdep.i3 seems best? > > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> To: jkrell at elego.de >> Date: Mon, 29 Dec 2008 09:50:37 +1100 >> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >> Subject: Re: [M3commit] CVS Update: cm3 >> >> This change makes me uneasy -- do you mean to say we have a uniform >> definition of sem_t when the different targets have different >> definitions? :-O >> >> On 28 Dec 2008, at 11:03, Jay Krell wrote: >> >>> CVSROOT: /usr/cvs >>> Changes by: jkrell at birch. 08/12/28 11:03:34 >>> >>> Modified files: >>> cm3/m3-libs/m3core/src/unix/Common/: m3makefile >>> cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile >>> cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile >>> Added files: >>> cm3/m3-libs/m3core/src/unix/Common/: Usem.i3 >>> Removed files: >>> cm3/m3-libs/m3core/src/unix/linux-common/: Usem.i3 >>> cm3/m3-libs/m3core/src/unix/openbsd-common/: Usem.i3 >>> >>> Log message: >>> another common header file -- however this bought by defining sem_t >>> to have the maximum size and alignment of any system; >>> Solaris's 48 byte 64bit aligned version >>> The CM3 code base has one static sem_t in the pthread code. >> From jkrell at elego.de Mon Dec 29 01:07:27 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 1:07:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229000727.3A273170400B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 01:07:27 Modified files: cm3/m3-libs/m3core/src/C/AMD64_DARWIN/: m3makefile cm3/m3-libs/m3core/src/C/Common/: m3makefile cm3/m3-libs/m3core/src/C/FreeBSD/: m3makefile cm3/m3-libs/m3core/src/C/FreeBSD2/: m3makefile cm3/m3-libs/m3core/src/C/FreeBSD3/: m3makefile cm3/m3-libs/m3core/src/C/FreeBSD4/: m3makefile cm3/m3-libs/m3core/src/C/I386_DARWIN/: m3makefile cm3/m3-libs/m3core/src/C/LINUX/: m3makefile cm3/m3-libs/m3core/src/C/LINUXELF/: m3makefile cm3/m3-libs/m3core/src/C/LINUXLIBC6/: m3makefile cm3/m3-libs/m3core/src/C/NetBSD2_i386/: m3makefile cm3/m3-libs/m3core/src/C/OS2/: m3makefile cm3/m3-libs/m3core/src/C/PPC_DARWIN/: m3makefile Added files: cm3/m3-libs/m3core/src/C/Common/: Csignal.i3 Removed files: cm3/m3-libs/m3core/src/C/AMD64_DARWIN/: Csignal.i3 cm3/m3-libs/m3core/src/C/FreeBSD/: Csignal.i3 cm3/m3-libs/m3core/src/C/FreeBSD2/: Csignal.i3 cm3/m3-libs/m3core/src/C/FreeBSD3/: Csignal.i3 cm3/m3-libs/m3core/src/C/FreeBSD4/: Csignal.i3 cm3/m3-libs/m3core/src/C/I386_DARWIN/: Csignal.i3 cm3/m3-libs/m3core/src/C/LINUX/: Csignal.i3 cm3/m3-libs/m3core/src/C/LINUXELF/: Csignal.i3 cm3/m3-libs/m3core/src/C/LINUXLIBC6/: Csignal.i3 cm3/m3-libs/m3core/src/C/NetBSD2_i386/: Csignal.i3 cm3/m3-libs/m3core/src/C/OS2/: Csignal.i3 cm3/m3-libs/m3core/src/C/PPC_DARWIN/: Csignal.i3 Log message: combine 12 identical files into one (modulo comments) From hosking at cs.purdue.edu Mon Dec 29 01:14:02 2008 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 29 Dec 2008 11:14:02 +1100 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20081228100334.C41F3B04048@birch.elegosoft.com> <3AD2B7A9-A060-4E03-B8BA-08B2D6028BB4@cs.purdue.edu> Message-ID: User threads used to work on Solaris (since it uses getcontext/ setcontext to do thread switching instead of setjmp/longjmp) and these should work similarly on Linux/BSD/OSX. The only problem is that we need to use makecontext on some platforms to get a proper basis context for new threads (as opposed to using the hackier code that is there in ThreadPosix.m3. On 29 Dec 2008, at 10:55, Jay wrote: > > Note that I've been avoiding touching "mainstream" or already > existant platforms -- FreeBSD, LINUXLIBC6, *_DARWIN. > > Perhaps I should go ahead and cross that line, as my testability/ > testing allows? > > Slightly linked question is if user threads should remain. > They don't work, I believe on any platform, but I understand could > easily be made to. > > - Jay > > ---------------------------------------- >> From: jay.krell at cornell.edu >> To: hosking at cs.purdue.edu; jkrell at elego.de >> Date: Sun, 28 Dec 2008 23:49:25 +0000 >> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >> Subject: Re: [M3commit] CVS Update: cm3 >> >> >> This one I can undo and still feel ok -- just push sem_t into >> Utypes.i3 and expose it from a common Usem.i3. >> There is only one sem_t in the system. >> It is global. This change just makes it usually larger and more >> aligned than necessary. >> >> >> The danger would be if sem_t is ever embedded in something else OS- >> defined, or if the OS ever returned a pointer to one that Modula-3 >> code copied. >> >> >> In general, I'm thinking either Utypes.i3 or some new Uinternal.i3 >> or Usysdep.i3 or Utypes.i3 + Uconstants.i3 should be where most/all >> system-dependent stuff. >> Even existant Utypes.i3 have much redundancy -- all the ulong/ >> ushort/int8/int16/int32/int64 types are always the same, just stuff >> like nlink_t, mode_t, gid_t, uid_t, off_t vary. Though imho off_t >> should always be INT64 or UINT64. >> >> >> Usysdep.i3 seems best? >> >> >> - Jay >> >> >> ---------------------------------------- >>> From: hosking at cs.purdue.edu >>> To: jkrell at elego.de >>> Date: Mon, 29 Dec 2008 09:50:37 +1100 >>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>> Subject: Re: [M3commit] CVS Update: cm3 >>> >>> This change makes me uneasy -- do you mean to say we have a uniform >>> definition of sem_t when the different targets have different >>> definitions? :-O >>> >>> On 28 Dec 2008, at 11:03, Jay Krell wrote: >>> >>>> CVSROOT: /usr/cvs >>>> Changes by: jkrell at birch. 08/12/28 11:03:34 >>>> >>>> Modified files: >>>> cm3/m3-libs/m3core/src/unix/Common/: m3makefile >>>> cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile >>>> cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile >>>> Added files: >>>> cm3/m3-libs/m3core/src/unix/Common/: Usem.i3 >>>> Removed files: >>>> cm3/m3-libs/m3core/src/unix/linux-common/: Usem.i3 >>>> cm3/m3-libs/m3core/src/unix/openbsd-common/: Usem.i3 >>>> >>>> Log message: >>>> another common header file -- however this bought by defining sem_t >>>> to have the maximum size and alignment of any system; >>>> Solaris's 48 byte 64bit aligned version >>>> The CM3 code base has one static sem_t in the pthread code. >>> From jay.krell at cornell.edu Mon Dec 29 01:21:17 2008 From: jay.krell at cornell.edu (Jay) Date: Mon, 29 Dec 2008 00:21:17 +0000 Subject: [M3commit] [M3devel] CVS Update: cm3 In-Reply-To: References: <20081228100334.C41F3B04048@birch.elegosoft.com> <3AD2B7A9-A060-4E03-B8BA-08B2D6028BB4@cs.purdue.edu> Message-ID: Understood. You (someone) also has to fix the initialization. I think when you (you) moved the various user thread globals (?), such as the handler chain, into one nice thread object, "switchable" via just one pointer, it broke. I didn't look at the change in depth, I'm making a leap in my description of what you did. It is a /very/ reasonable design (or even likely The Correct Design), to collect up all the globals that represent a "thread" into one heap allocated struct...except it is an "object". I don't have SOLgnu/sun handy, this week, but can try it next week. I expect it fails as PPC_LINUX was. I THINK the "object" needs to be changed to a "traced ref" and then it can be initialized using, maybe, a preallocated global, for the first thread, or at least using regular "Malloc" and not going through the garbage collection...but I'm really just not sure. If I get X86_MSDOS/DJGPP up and going, I'll be a bit more motivated..but I think I'll so I386_SOLARIS first, since it is perhaps more modern/mainstream. You know, I tried having it NEW the object on-demand, but I think that ended up recursing to about the same place -- PushEFrame. It's "difficult" to repro now for me, this week, based on hardware/OS availability,because I ripped out PPC_LINUX user thread support (unless I install NetBSD/FreeBSD in a VM or use birch, all of which are, honestly, easy). - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > To: jay.krell at cornell.edu > Date: Mon, 29 Dec 2008 11:14:02 +1100 > CC: jkrell at elego.de; m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3devel] [M3commit] CVS Update: cm3 > > User threads used to work on Solaris (since it uses getcontext/ > setcontext to do thread switching instead of setjmp/longjmp) and these > should work similarly on Linux/BSD/OSX. The only problem is that we > need to use makecontext on some platforms to get a proper basis > context for new threads (as opposed to using the hackier code that is > there in ThreadPosix.m3. > > On 29 Dec 2008, at 10:55, Jay wrote: > >> >> Note that I've been avoiding touching "mainstream" or already >> existant platforms -- FreeBSD, LINUXLIBC6, *_DARWIN. >> >> Perhaps I should go ahead and cross that line, as my testability/ >> testing allows? >> >> Slightly linked question is if user threads should remain. >> They don't work, I believe on any platform, but I understand could >> easily be made to. >> >> - Jay >> >> ---------------------------------------- >>> From: jay.krell at cornell.edu >>> To: hosking at cs.purdue.edu; jkrell at elego.de >>> Date: Sun, 28 Dec 2008 23:49:25 +0000 >>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>> Subject: Re: [M3commit] CVS Update: cm3 >>> >>> >>> This one I can undo and still feel ok -- just push sem_t into >>> Utypes.i3 and expose it from a common Usem.i3. >>> There is only one sem_t in the system. >>> It is global. This change just makes it usually larger and more >>> aligned than necessary. >>> >>> >>> The danger would be if sem_t is ever embedded in something else OS- >>> defined, or if the OS ever returned a pointer to one that Modula-3 >>> code copied. >>> >>> >>> In general, I'm thinking either Utypes.i3 or some new Uinternal.i3 >>> or Usysdep.i3 or Utypes.i3 + Uconstants.i3 should be where most/all >>> system-dependent stuff. >>> Even existant Utypes.i3 have much redundancy -- all the ulong/ >>> ushort/int8/int16/int32/int64 types are always the same, just stuff >>> like nlink_t, mode_t, gid_t, uid_t, off_t vary. Though imho off_t >>> should always be INT64 or UINT64. >>> >>> >>> Usysdep.i3 seems best? >>> >>> >>> - Jay >>> >>> >>> ---------------------------------------- >>>> From: hosking at cs.purdue.edu >>>> To: jkrell at elego.de >>>> Date: Mon, 29 Dec 2008 09:50:37 +1100 >>>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>>> Subject: Re: [M3commit] CVS Update: cm3 >>>> >>>> This change makes me uneasy -- do you mean to say we have a uniform >>>> definition of sem_t when the different targets have different >>>> definitions? :-O >>>> >>>> On 28 Dec 2008, at 11:03, Jay Krell wrote: >>>> >>>>> CVSROOT: /usr/cvs >>>>> Changes by: jkrell at birch. 08/12/28 11:03:34 >>>>> >>>>> Modified files: >>>>> cm3/m3-libs/m3core/src/unix/Common/: m3makefile >>>>> cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile >>>>> cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile >>>>> Added files: >>>>> cm3/m3-libs/m3core/src/unix/Common/: Usem.i3 >>>>> Removed files: >>>>> cm3/m3-libs/m3core/src/unix/linux-common/: Usem.i3 >>>>> cm3/m3-libs/m3core/src/unix/openbsd-common/: Usem.i3 >>>>> >>>>> Log message: >>>>> another common header file -- however this bought by defining sem_t >>>>> to have the maximum size and alignment of any system; >>>>> Solaris's 48 byte 64bit aligned version >>>>> The CM3 code base has one static sem_t in the pthread code. >>>> > From jkrell at elego.de Mon Dec 29 05:43:28 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 5:43:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229044330.56C3D10D5DA6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 05:43:28 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3unix.h Log message: fix newlines From jkrell at elego.de Mon Dec 29 05:44:47 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 5:44:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229044447.AEF8B10D5DA6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 05:44:47 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uuio.i3 Log message: fix -- ssize_t in Cstddef and not in Utypes, at least not always From jkrell at elego.de Mon Dec 29 05:47:31 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 5:47:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229044731.74CFD10D5DA6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 05:47:31 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UdirC.c Log message: isolate cygwin (and possibly other) adjustments in one place; put back not caring about alignment on x86, problem really was I guess misalignment, not that the asssert was wrong; comments that while file size/offset should be 64bits, ino size doesn't matter much From jkrell at elego.de Mon Dec 29 05:49:49 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 5:49:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229044949.7DC9410D5DA6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 05:49:49 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Ustat.i3 Log message: use explicit uint16_t instead of 'funny' u_short' From jkrell at elego.de Mon Dec 29 05:53:37 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 5:53:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229045337.4088610D5DA6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 05:53:37 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Ustat.i3 Log message: use explicit uint16_t instead of 'funny' u_short' (maybe we will able to remove u_char, u_short, u_int, u_long, but not yet) From jkrell at elego.de Mon Dec 29 05:58:18 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 5:58:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229045818.B2D2D10D5DA6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 05:58:18 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Utypes.i3.cpp Log message: beware compiling with different context From jkrell at elego.de Mon Dec 29 07:43:18 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 7:43:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229064318.8902010D5C26@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 07:43:18 Modified files: cm3/m3-libs/m3core/src/unix/linux-common/: Utypes.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Utypes.i3 Log message: remove some unused types: rlim_t, nlink_t, mode_t, ino_t, id_t, dev_t From jkrell at elego.de Mon Dec 29 08:59:44 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 8:59:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229075944.9412410D5DA8@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 08:59:44 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/AMD64_LINUX/: 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/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 Log message: correct comment for current reality (for a while now): before: page size is machine-dependent ... after: page size used to be machine-dependent ... mildly lock in that all machines are byte addressable: AdrPerHeapPage = BytesPerHeapPage; LogAdrPerHeapPage = LogBytesPerHeapPage; rather than repeating the constants twice in a row. Consider locking this in much more via removing the second pair of lines and having RTAllocator just use the first pair. Or even, having just one line and computing the other by shifting. no "real" change From jkrell at elego.de Mon Dec 29 10:16:14 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 10:16:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229091614.676DC10D5D5E@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 10:16:14 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Usem.i3 Log message: fix newlines From jkrell at elego.de Mon Dec 29 11:06:23 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 11:06:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229100623.9E96410D5F0B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 11:06:23 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Udir.i3 Log message: telldir and seekdir are never used, so remove them, though they are easily portably declared From jkrell at elego.de Mon Dec 29 11:11:09 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 11:11:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229101109.85F6D10D461B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 11:11:09 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: fix for pagesize=64K (or larger?) Specifically, apparently, threshold[0] would = 0, Behind() would return TRUE, and the first (?) allocation, here: C:\dev2\cm3.2\m3-libs\m3core\src\thread\WIN32\ThreadWin32.m3 threadMu := NEW(Mutex); <<< here self := CreateT(me); self.id := nextId; INC (nextId); mutex := NEW(MUTEX); condition := NEW(Condition); << NOT YET to here would lead to UnlockHeap calling Broadcast(condition), but condition is NULL, and access violate. From jkrell at elego.de Mon Dec 29 11:21:40 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 11:21:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229102140.C316110D461B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 11:21:40 Modified files: cm3/m3-libs/m3core/src/C/Common/: m3makefile Removed files: cm3/m3-libs/m3core/src/C/Common/: Cstdarg.i3 Cstdarg.m3 Log message: remove empty and unused module From jkrell at elego.de Mon Dec 29 11:23:41 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 11:23:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229102341.8302010D461B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 11:23:41 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: m3makefile cm3/m3-libs/m3core/src/runtime/WIN32/: RTOS.m3 m3makefile cm3/m3-libs/m3core/src/runtime/common/: RTOS.i3 cm3/m3-libs/m3core/src/unix/cygwin/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile Added files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTOSbrk.c RTOSmmap.c cm3/m3-libs/m3core/src/runtime/WIN32/: RTOSc.c Removed files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTOSbrk.m3 RTOSmmap.m3 cm3/m3-libs/m3core/src/unix/cygwin/: Umman.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Umman.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Umman.i3 Log message: Remove the only use of Umman.i3 in systems without user thread support. As a side effect, since one RTOS.GetMemory shall be rewritten in C, so shall they all. It would be nice if the <*external*> was not needed as long as the names were chosen right, and I avoided m3makefile tricks of only inserting <*external*> in one of the three implementations. Punt on writing the "entire" few lines of Win32 GetMemory in C, and just a smaller subset. The whole thing is not a big deal, but does it buy much or anything? As a bonus, fix Win32 "page size" so that there is no "rounding loss", noticed watching the allocations to see if the "simplification" resulted in much lost adjacency and hole production. In the sample of watching mklib be built, the second allocation is indeed no adjacent to the first, but allocations are adjacent thereafter. Adjacency is desirable because RTAllocater/Collecter builds data structures spanning the heap, including holes. The historic Win32 allocater reserved 64M address space up front, and then individual VirtualAlloc calls thereafter. Implementation here just calls VirtualAlloc. HeapAlloc and calloc should also be viable, and calloc is portable, but the allocations are large, and never freed, so maybe not. As a bonus, found RTCollector.i3 bug for pagesize=64K (or larger?) Also eliminate an unnecessary global in Win32/RTOS.m3. From jkrell at elego.de Mon Dec 29 11:32:07 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 11:32:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229103207.A936010D5DAA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 11:32:07 Modified files: cm3/m3-libs/m3core/src/runtime/NT386/: RTMachine.i3 Log message: grow Win32 page size to 64K so that nothing is lost when VirtualAlloc rounds up to 64K (forgot to check this in immediately before, but works ok either way) From jkrell at elego.de Mon Dec 29 11:50:28 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 11:50:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229105028.D715910D5DA6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 11:50:28 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Usocket.i3 Log message: a few mostly minor corrections to match the header, which nicely further matches linux-common and openbsd-openbsd From jkrell at elego.de Mon Dec 29 15:19:25 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 15:19:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229141925.9DDAD10D5C26@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 15:19:25 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: avoid using native backend when cross compiling -- this is why I mistakenly removed -fPIC from PPC_LINUX From jkrell at elego.de Mon Dec 29 15:39:17 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 15:39:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229143917.12D3110D5C26@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 15:39:17 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: PPC_LINUX Log message: put back -fPIC From jkrell at elego.de Mon Dec 29 21:09:42 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 21:09:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229200942.E1FCDB04044@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 21:09:42 Modified files: cm3/scripts/python/: pylib.py Log message: fix newlines From jkrell at elego.de Mon Dec 29 21:14:17 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 21:14:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229201417.13E19B04044@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 21:14:17 Modified files: cm3/m3-libs/m3core/src/unix/openbsd-common/: Usignal.i3 Log message: add SIGHUP, SIGSEGV, SIGPIPE, sigemptyset, so that it compiles From jkrell at elego.de Mon Dec 29 21:15:30 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 21:15:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229201530.3E420B04044@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 21:15:30 Modified files: cm3/m3-libs/m3core/src/unix/openbsd-common/: Usocket.i3 Log message: remove dead imports to fix warning, and uppercase SOL_SOCKET = 16_FFFF just to reduce diff with other very similar files From jkrell at elego.de Mon Dec 29 21:19:17 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 21:19:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229201917.8FCECB04044@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 21:19:17 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTOSbrk.c RTOSmmap.c m3makefile Log message: Reference m3unix.h in such a way that bootstrap archives work. That is, #include "foo.h", not #include "..blahblah../foo.h" and add h_source("..blahblah../foo") to m3makefile. This causes ..blahblah../foo.h to be copied into the build directory. (Admittedly, copying files is often a waste.) Bootstrap archives, at least the way I create them, are one flat directory. From jkrell at elego.de Mon Dec 29 21:24:14 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 21:24:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229202414.5F6E7B04044@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 21:24:14 Modified files: cm3/m3-libs/m3core/src/unix/openbsd-common/: Unix.i3 Log message: trim a few unused imports that warn: short, pid_t; trim unused/nonexistant tell; and then trim unused import: long From jkrell at elego.de Mon Dec 29 21:33:44 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 21:33:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229203344.692E1B04044@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 21:33:44 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: OSConfigPosix.m3 cm3/m3-libs/libm3/src/random/: m3makefile cm3/m3-libs/m3core/src/: m3makefile cm3/m3-libs/m3core/src/C/Common/: m3makefile cm3/m3-libs/m3core/src/Csupport/: m3makefile cm3/m3-libs/m3core/src/float/: m3makefile cm3/m3-libs/m3core/src/runtime/: m3makefile cm3/m3-libs/m3core/src/runtime/common/: Compiler.tmpl cm3/m3-libs/m3core/src/time/POSIX/: m3makefile cm3/m3-libs/m3core/src/unix/: m3makefile cm3/m3-libs/m3core/src/unix/Common/: m3makefile m3unix.h cm3/m3-sys/m3cc/src/: m3makefile cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 cm3/scripts/python/: pylib.py Added files: cm3/m3-sys/cminstall/src/config-no-install/: I386_OPENBSD Log message: enough I386_OPENBSD support to build a bootstrap package, that builds on the target, and results in a cm3 that runs and correct errors out for lack of cm3.cfg, often enough to move development and testing to the target system (unless target system is terribly slow) restructure Target.m3 some: do separate switches on platforms with characteristics in common: big endian 64 bit Solaris SPARC add in a bunch of hypothetical, but reasonable platforms -- commented out perhaps not worthwhile add a bunch of comments, also perhaps not worthwhile (more code, more bugs: comments have to be checked and maintained for technical and grammatical/spelling correctness) add options like skipgcc, omitgcc to pylib.py From jkrell at elego.de Tue Dec 30 03:08:29 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 3:08:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230020829.4030510D5DDA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 03:08:28 Added files: cm3/m3-libs/m3core/src/C/I386_OPENBSD/: Csetjmp.i3 m3makefile Log message: forgot to add these (Freudian slip? This information is duplicated in Target.i3, not great imho..) From jkrell at elego.de Tue Dec 30 03:09:29 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 3:09:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230020929.EC18D904012@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 03:09:29 Modified files: cm3/scripts/python/: pylib.py Log message: add ability to sniff I386_OPENBSD for native builds (should be able to query the compiler, like cm3 -dump-host ?) From jkrell at elego.de Tue Dec 30 03:42:12 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 3:42:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230024212.DBFC010D5DDA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 03:42:12 Modified files: cm3/www/uploaded-archives/: update_download_index.sh Added files: cm3/www/uploaded-archives/: targets.txt Log message: use a list of targets from a separate file From jkrell at elego.de Tue Dec 30 03:43:30 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 3:43:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230024330.B27C110D5DDA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 03:43:30 Modified files: cm3/www/uploaded-archives/: targets.txt Log message: add NT386GNU From jkrell at elego.de Tue Dec 30 07:56:49 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 7:56:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230065649.BD7FC10D5D40@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 07:56:49 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosixC.c OSConfigPosix.m3 Log message: fix newlines From jkrell at elego.de Tue Dec 30 08:00:29 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 8:00:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230070029.A1A2410D5C41@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 08:00:29 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosix.i3 FilePosix.m3 FilePosixC.c m3makefile Added files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosixC.i3 Log message: put the C functions in their own interface, and other small change (e.g. typedef ptrdiff_t INTEGER instead of equivalent other statement) From jkrell at elego.de Tue Dec 30 09:57:56 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 9:57:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230085756.E706D10D5D9A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 09:57:56 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile m3unix.h Added files: cm3/m3-libs/m3core/src/unix/Common/: Uwaitpid.c Uwaitpid.i3 Log message: abandoned for now proposal for portable header-clone-free waitpid, will probably just fix the endian issue and leave the header cloning From jkrell at elego.de Tue Dec 30 09:58:33 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 9:58:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230085833.26D7210D5D9A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 09:58:33 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Log message: oops From jkrell at elego.de Tue Dec 30 10:24:21 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 10:24:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230092421.07A0A10D5ABB@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 10:24:21 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uwaitpid.c Uwaitpid.i3 Log message: comments to explain the endian-dependentness and fix newlines From jkrell at elego.de Tue Dec 30 11:05:58 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 11:05:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230100558.C12AA10D5ABB@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 11:05:58 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uwaitpid.c Uwaitpid.i3 Log message: Now that I understand better, provide a 'loophole' value. This should now be an easy replacement for the various Uexec users and that should be done shortly. From jkrell at elego.de Tue Dec 30 21:21:37 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 21:21:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230202137.DD49E904001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 21:21:37 Modified files: cm3/m3-libs/sysutils/src/POSIX/: SystemPosix.m3 Log message: remove unused variable, prior to larger changes From jkrell at elego.de Tue Dec 30 22:44:31 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 22:44:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230214431.E699110D4524@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 22:44:31 Modified files: cm3/m3-libs/sysutils/src/POSIX/: m3makefile Log message: safekeeping Uwaitpid work before other approach From jkrell at elego.de Tue Dec 30 22:44:54 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 22:44:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230214454.F11E810D4524@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 22:44:54 Modified files: cm3/m3-libs/sysutils/src/POSIX/: m3makefile Log message: go back a version From jkrell at elego.de Wed Dec 31 00:49:10 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 0:49:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230234910.71B0E904001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 00:49:10 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: ProcessPosixCommon.m3 cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.m3 cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 cm3/m3-libs/m3core/src/thread/WIN32/: WaitProcessCygwin.m3 cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/cygwin/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile cm3/m3-libs/sysutils/src/POSIX/: SystemPosix.m3 m3makefile Added files: cm3/m3-libs/m3core/src/: Uwaitpid.quake cm3/m3-libs/m3core/src/unix/Common/: Uexec.i3 cm3/m3-sys/cm3/src/: cm3root.txt Removed files: cm3/m3-libs/m3core/src/unix/Common/: Uwaitpid.c Uwaitpid.i3 cm3/m3-libs/m3core/src/unix/cygwin/: Uexec.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Uexec.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Uexec.i3 Log message: Replace Uexec.waitpid with new portable (C-wrapped) Uwaitpid. Thus removing its endian-dependent-ness and otherwise mostly header cloning-ness. (even C wrappers resemble header cloning, but in a simpler more portable way) Take care to use Uwaitpid in m3-libs/sysutils via copying, so that bootstrapping new sysutils against old m3core works. (Thus why Uwaitpid.{c,i3} deleted and replaced by Uwaitpid.quake). This very likely fixes a bug in {I386,AMD64}_DARWIN, but that is not confirmed, and could be fixed otherwise. This also very likely fixes a bug in some platforms that use linux-common or openbsd-common. Note that as long as children processes succeed, probably no bug. zero is zero, no matter little endian or big endian. And likely the only important point is if the value is zero or non-zero, so again ok. cm3root.txt: possible spec for a change to cm3 to "reduce external automation" From jkrell at elego.de Wed Dec 31 01:25:48 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 1:25:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231002548.B5C6010D5D23@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 01:25:48 Modified files: cm3/m3-libs/m3core/src/: Uwaitpid.quake Log message: fix newlines From jkrell at elego.de Wed Dec 31 01:26:48 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 1:26:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231002648.98CEE10D5D23@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 01:26:48 Modified files: cm3/m3-libs/m3core/src/: Uwaitpid.quake Log message: not all Utypes have uint8_t, uint16_t, define them locally From jkrell at elego.de Wed Dec 31 01:37:58 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 1:37:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231003803.1AD0B10D5E6C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 01:37:57 Modified files: cm3/m3-libs/m3core/src/: Uwaitpid.quake Log message: more parens for clarity -- cast and then shift, though operator precedence probably makes this no difference, casts are very high precedence From jkrell at elego.de Wed Dec 31 11:03:11 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 11:03:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231100311.8B4ED10D5DA1@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 11:03:11 Modified files: cm3/m3-sys/windowsResources/src/: cm3-41-hack.c Log message: microoptimize and reformat From jkrell at elego.de Wed Dec 31 11:52:08 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 11:52:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231105208.9CF4710D5DDE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 11:52:08 Modified files: cm3/m3-comm/netobj/src/: netobj-ov.tmpl cm3/m3-comm/sharedobj/src/: sharedobj-ov.tmpl cm3/m3-libs/libm3/src/bundleintf/: bundle-ov.tmpl cm3/m3-ui/zeus/src/: m3zume-ov.tmpl cm3/m3-ui/juno-2/juno-app/src/: m3makefile Log message: Partly kinda sorta fix some cross build scenarios, without affecting native builds. It's a larger more general problem though. - BUILD_DIR does not necessarily equal HOST or TARGET, because of how I structured I386_CYGWIN to be a "configuration" where TARGET is still NT386. - a cross build can run the shipped binary anyway, and probably should (I didn't have the unshipped binaries around) - There should probably be automation to ensure all the tools are build. ie: do-cm3-tools or do-cm3-crosstools. ie: build just the needed packages, for the sniffed native platform. Cross builds have other problems. I keep hitting the following annoyances: ignoring foo/bar override when foo\bar already overridden override paths should either be canonicalized to one slash type or at least when there is a duplicate, canonicalize then and only complain if canonicals vary This is due to mixing I386_NT and I386_CYGWIN. Similarly the problem demonstrated regarding m3unix.h in Uwaitpid.quake. Perhaps the change I made to allow forward slashes on Win32 was not good, esp. due to its apparent inadequacy. The "lib" directory, specifically \cm3\lib\hand.obj is target..er, configuration dependent the gcc hand.obj cannot be directly linked by Visual C++, for reasons to do with libgcc lib should probably have "target" or "build_dir" under it and/or hand.obj specifically should be merged into m3core.lib The mentor quake code generally fails in cross environments, probably due to slashes. host=NT386 (GNU?), target=LINUXLIBC6 m3zume is access violating I'm also highly suspicious of all this "override" stuff. It clearly causes too much duplication and distribution of information. I shouldn't have to know the directory structure of my dependencies, and even if I do, I should be able to share that knowledge with their many other dependents. The "scripts" directory also figures this sort of stuff out automatically.. Being able to have multiple package stores is well and good. I'm not sure they need to ever be used in an "unshipped" form, but instead just use alternate roots and create new empty roots as needed. ? From jkrell at elego.de Wed Dec 31 11:55:08 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 11:55:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231105508.4EE0F10D5DDE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 11:55:08 Modified files: cm3/m3-libs/sysutils/src/POSIX/: m3makefile Log message: fix newlines From jkrell at elego.de Wed Dec 31 11:57:14 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 11:57:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231105714.24CF710D5DDE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 11:57:14 Added files: cm3/m3-sys/windowsResources/src/: m3overrides Log message: Add missing override to fix some builds. I'm highly suspicious of all this "override" stuff. It clearly causes too much duplication and distribution of information. I shouldn't have to know the directory structure of my dependencies, and even if I do, I should be able to share that knowledge with their many other dependents. The "scripts" directory also figures this sort of stuff out automatically.. Being able to have multiple package stores is well and good. I'm not sure they need to ever be used in an "unshipped" form, but instead just use alternate roots and create new empty roots as needed. ? From jkrell at elego.de Wed Dec 31 18:57:23 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 18:57:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231175723.9015810D5F00@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 18:57:23 Modified files: cm3/m3-comm/netobj/src/: netobj-ov.tmpl cm3/m3-comm/sharedobj/src/: sharedobj-ov.tmpl cm3/m3-libs/libm3/src/bundleintf/: bundle-ov.tmpl cm3/m3-ui/juno-2/juno-app/src/: m3makefile cm3/m3-ui/zeus/src/: m3zume-ov.tmpl Log message: This should leave native I386_CYGWIN builds working as they were -- TARGET != BUILD_DIR and HOST != BUILD_DIR, native builds should use BUILD_DIR From jkrell at elego.de Wed Dec 31 21:05:27 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 21:05:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231200530.68A6E10D5F04@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 21:05:27 Modified files: cm3/m3-libs/m3core/src/thread/: m3makefile cm3/m3-libs/m3core/src/thread/Common/: SchedulerPosix.i3 m3makefile cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.m3 cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 m3makefile cm3/m3-libs/m3core/src/unix/cygwin/: Unix.i3 Added files: cm3/m3-libs/m3core/src/thread/: ThreadInternal.i3 ThreadPScheduler.m3 ThreadPWait.m3 Removed files: cm3/m3-libs/m3core/src/thread/WIN32/: WaitProcessCygwin.m3 WaitProcessWin32.m3 Log message: move code around with the following goals fold the three implementations of WaitProcess down to two minor, would not be done if it was the only point This is ThreadPWait.m3. remove stub SchedulerPosix from NT386 AND NT386GNU presumably nobody calls the NT386 version, so also (half) minor give NT386GNU the real implementation of SchedulerPosix This is more significant then, e.g. working versions of IOWait (aka select). This is ThreadPScheduler.m3, moved out of ThreadPThread.m3. Note that the name is open to debate. There is this general problem that "P" for posix means two very different things. It means posix user/alarm threads and posix kernel threads. (Note that Win32 generalizes select to work on more than just sockets... either completion ports or WaitForMultipleObjects I assume the generalized analog..) provide a /tiny/ abstraction for Posix waitpid users to provide their own yielding if necessary This used by WaitProcess. It potentially for sysutils also, but sysutils can't depend on m3core changes due to bootstrapping against older m3core. The next step is to factor out m3core/threads/m3makefile into m3core/thread.quake so that sysutils can share its decision as to if kernel threads are in use and therefore if waitpid yields. Essentially to copy m3core ThreadPWait plus the other one liner. If we could rely on newer m3core, then sysutils could just call SchedulerPosix.DoesWaitPidYield(). This may look scary but it is mainly only moving existing code around, and very small changes otherwise. Except for Cygwin which gets the significant improvement of a real SchedulerPosix. Since code was moved -- ThreadPThread.m3 split into three files, there was also a need for an interface so that code moved out of ThreadPThread could call back to private shared code there, and the other implementation in ThreadWin32. That is ThreadInternal.i3. It could be ThreadF.i3, but that would be unnecessarily exposed and worse, export a variable outside the package, which is a bad idea. Perhaps wrap up the variable in a function? Maybe. As well, ThreadF.i3 has three similar copies and this new content would be needed in two of them. Perhaps the three copies could be combined to one, with no-op stubs where functions don't make sense (as comments already indicate exist). If cygwin used pthreads, this wouldn't be needed at all. However, it is reasonable. Maybe go back and debug Cygwin pthreads again at some point... Maybe combine ThreadInternal.i3 and ThreadF.i3. F is "friend" -- aka expose internals to special people, not the public interface, but sometimes it is needed, thus "F" and "Internal" are synonyms and you should really never have both, but here they are. From jay.krell at cornell.edu Wed Dec 31 21:13:13 2008 From: jay.krell at cornell.edu (Jay) Date: Wed, 31 Dec 2008 20:13:13 +0000 Subject: [M3commit] FW: CVS Update: cm3 In-Reply-To: <20081231200530.68A6E10D5F04@birch.elegosoft.com> References: <20081231200530.68A6E10D5F04@birch.elegosoft.com> Message-ID: It seems some of these files are marked "executable". How to fix? I know, locally, chmod -x *, but so that that cvs upd gives you non-executable files? I'm searching the web but not finding it yet. - Jay> Date: Wed, 31 Dec 2008 21:05:27 +0000> To: m3commit at elegosoft.com> From: jkrell at elego.de> Subject: [M3commit] CVS Update: cm3> > CVSROOT: /usr/cvs> Changes by: jkrell at birch. 08/12/31 21:05:27> > Modified files:> cm3/m3-libs/m3core/src/thread/: m3makefile > cm3/m3-libs/m3core/src/thread/Common/: SchedulerPosix.i3 > m3makefile > cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.m3 > cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 m3makefile > cm3/m3-libs/m3core/src/unix/cygwin/: Unix.i3 > Added files:> cm3/m3-libs/m3core/src/thread/: ThreadInternal.i3 > ThreadPScheduler.m3 > ThreadPWait.m3 > Removed files:> cm3/m3-libs/m3core/src/thread/WIN32/: WaitProcessCygwin.m3 > WaitProcessWin32.m3 > > Log message:> move code around with the following goals> > fold the three implementations of WaitProcess down to two> minor, would not be done if it was the only point> This is ThreadPWait.m3.> > remove stub SchedulerPosix from NT386 AND NT386GNU> presumably nobody calls the NT386 version, so also (half) minor> > give NT386GNU the real implementation of SchedulerPosix> This is more significant then, e.g. working versions of IOWait (aka select).> This is ThreadPScheduler.m3, moved out of ThreadPThread.m3.> Note that the name is open to debate.> There is this general problem that "P" for posix means two very different things.> It means posix user/alarm threads and posix kernel threads.> (Note that Win32 generalizes select to work on more than just sockets...> either completion ports or WaitForMultipleObjects I assume the generalized analog..)> > provide a /tiny/ abstraction for Posix waitpid users to> provide their own yielding if necessary> This used by WaitProcess.> It potentially for sysutils also, but sysutils can't depend on m3core changes> due to bootstrapping against older m3core.> > The next step is to factor out m3core/threads/m3makefile into> m3core/thread.quake so that sysutils can share its decision as to> if kernel threads are in use and therefore if waitpid yields.> Essentially to copy m3core ThreadPWait plus the other one liner.> If we could rely on newer m3core, then sysutils could just call SchedulerPosix.DoesWaitPidYield().> > This may look scary but it is mainly only moving existing code around,> and very small changes otherwise.> Except for Cygwin which gets the significant improvement of a real SchedulerPosix.> > Since code was moved -- ThreadPThread.m3 split into three files, there> was also a need for an interface so that code moved out of ThreadPThread> could call back to private shared code there, and the other implementation> in ThreadWin32. That is ThreadInternal.i3.> It could be ThreadF.i3, but that would be unnecessarily exposed and worse,> export a variable outside the package, which is a bad idea.> Perhaps wrap up the variable in a function? Maybe.> As well, ThreadF.i3 has three similar copies and this new content would be> needed in two of them. Perhaps the three copies could be combined to one,> with no-op stubs where functions don't make sense (as comments already> indicate exist).> > If cygwin used pthreads, this wouldn't be needed at all.> However, it is reasonable.> Maybe go back and debug Cygwin pthreads again at some point...> Maybe combine ThreadInternal.i3 and ThreadF.i3.> F is "friend" -- aka expose internals to special people, not the> public interface, but sometimes it is needed, thus "F" and "Internal"> are synonyms and you should really never have both, but here they are.> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Dec 31 21:22:37 2008 From: jay.krell at cornell.edu (Jay) Date: Wed, 31 Dec 2008 20:22:37 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20081231200530.68A6E10D5F04@birch.elegosoft.com> References: <20081231200530.68A6E10D5F04@birch.elegosoft.com> Message-ID: Hm, maybe it doesn't matter? I have a bunch of executable source files. But still, seems wrong. I could try delete and re-add, but seems not good for so many files, only maybe if it had been the three new ones.. jay at ppca:/dev2/cm3/m3-libs/m3core$ ls -lR | grep "x " | grep -v ^dlrwxrwxrwx 1 jay jay 14 2008-12-30 17:33 libm3core.so -> libm3core.so.5-rwxr-xr-x 1 jay jay 1506111 2008-12-30 17:33 libm3core.so.5-rwxr-xr-x 1 jay jay 9206 2008-12-30 16:22 Uwaitpid.quake-rwxr-xr-x 1 jay jay 404 2008-12-28 16:07 Csignal.i3-rwxr-xr-x 1 jay jay 1318 2008-06-03 04:01 Cstdint.i3-rwxr-xr-x 1 jay jay 95 2008-11-11 05:41 Cstdio.i3-rwxr-xr-x 1 jay jay 2158 2008-11-11 05:41 Cstring.i3-rwxr-xr-x 1 jay jay 323 2008-11-12 03:35 Csetjmp.i3-rwxr-xr-x 1 jay jay 23 2008-11-11 06:27 m3makefile-rwxr-xr-x 1 jay jay 14 2008-11-11 05:57 m3makefile-rwxr-xr-x 1 jay jay 207 2008-11-11 20:27 Csetjmp.i3-rwxr-xr-x 1 jay jay 23 2008-11-11 06:27 m3makefile-rwxr-xr-x 1 jay jay 207 2008-11-11 20:27 Csetjmp.i3-rwxr-xr-x 1 jay jay 22 2008-11-11 06:27 m3makefile-rwxr-xr-x 1 jay jay 206 2008-11-11 20:27 Csetjmp.i3-rwxr-xr-x 1 jay jay 23 2008-11-11 06:27 m3makefile-rwxr-xr-x 1 jay jay 207 2008-11-11 20:27 Csetjmp.i3-rwxr-xr-x 1 jay jay 23 2008-11-11 06:27 m3makefile-rwxr-xr-x 1 jay jay 432 2008-05-24 20:08 dtoa.c-rwxr-xr-x 1 jay jay 70 2008-05-24 20:02 m3makefile-rwxr-xr-x 1 jay jay 432 2008-05-24 20:08 dtoa.c-rwxr-xr-x 1 jay jay 70 2008-05-24 20:02 m3makefile-rwxr-xr-x 1 jay jay 18 2008-12-28 03:48 dif1.txt etc. - Jay From: jay.krell at cornell.eduTo: m3commit at elegosoft.comSubject: FW: [M3commit] CVS Update: cm3Date: Wed, 31 Dec 2008 20:13:13 +0000 It seems some of these files are marked "executable".How to fix?I know, locally, chmod -x *, but so that that cvs upd gives you non-executable files?I'm searching the web but not finding it yet. - Jay> Date: Wed, 31 Dec 2008 21:05:27 +0000> To: m3commit at elegosoft.com> From: jkrell at elego.de> Subject: [M3commit] CVS Update: cm3> > CVSROOT: /usr/cvs> Changes by: jkrell at birch. 08/12/31 21:05:27> > Modified files:> cm3/m3-libs/m3core/src/thread/: m3makefile > cm3/m3-libs/m3core/src/thread/Common/: SchedulerPosix.i3 > m3makefile > cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.m3 > cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 m3makefile > cm3/m3-libs/m3core/src/unix/cygwin/: Unix.i3 > Added files:> cm3/m3-libs/m3core/src/thread/: ThreadInternal.i3 > ThreadPScheduler.m3 > ThreadPWait.m3 > Removed files:> cm3/m3-libs/m3core/src/thread/WIN32/: WaitProcessCygwin.m3 > WaitProcessWin32.m3 > > Log message:> move code around with the following goals> > fold the three implementations of WaitProcess down to two> minor, would not be done if it was the only point> This is ThreadPWait.m3.> > remove stub SchedulerPosix from NT386 AND NT386GNU> presumably nobody calls the NT386 version, so also (half) minor> > give NT386GNU the real implementation of SchedulerPosix> This is more significant then, e.g. working versions of IOWait (aka select).> This is ThreadPScheduler.m3, moved out of ThreadPThread.m3.> Note that the name is open to debate.> There is this general problem that "P" for posix means two very different things.> It means posix user/alarm threads and posix kernel threads.> (Note that Win32 generalizes select to work on more than just sockets...> either completion ports or WaitForMultipleObjects I assume the generalized analog..)> > provide a /tiny/ abstraction for Posix waitpid users to> provide their own yielding if necessary> This used by WaitProcess.> It potentially for sysutils also, but sysutils can't depend on m3core changes> due to bootstrapping against older m3core.> > The next step is to factor out m3core/threads/m3makefile into> m3core/thread.quake so that sysutils can share its decision as to> if kernel threads are in use and therefore if waitpid yields.> Essentially to copy m3core ThreadPWait plus the other one liner.> If we could rely on newer m3core, then sysutils could just call SchedulerPosix.DoesWaitPidYield().> > This may look scary but it is mainly only moving existing code around,> and very small changes otherwise.> Except for Cygwin which gets the significant improvement of a real SchedulerPosix.> > Since code was moved -- ThreadPThread.m3 split into three files, there> was also a need for an interface so that code moved out of ThreadPThread> could call back to private shared code there, and the other implementation> in ThreadWin32. That is ThreadInternal.i3.> It could be ThreadF.i3, but that would be unnecessarily exposed and worse,> export a variable outside the package, which is a bad idea.> Perhaps wrap up the variable in a function? Maybe.> As well, ThreadF.i3 has three similar copies and this new content would be> needed in two of them. Perhaps the three copies could be combined to one,> with no-op stubs where functions don't make sense (as comments already> indicate exist).> > If cygwin used pthreads, this wouldn't be needed at all.> However, it is reasonable.> Maybe go back and debug Cygwin pthreads again at some point...> Maybe combine ThreadInternal.i3 and ThreadF.i3.> F is "friend" -- aka expose internals to special people, not the> public interface, but sometimes it is needed, thus "F" and "Internal"> are synonyms and you should really never have both, but here they are.> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Sat Dec 13 19:56:24 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 13 Dec 2008 19:56:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081213185624.D082010D5A4A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/13 19:56:24 Modified files: cm3/scripts/python/: pylib.py Log message: more files in bootstrap archives, dos2unix From jkrell at elego.de Mon Dec 15 15:59:23 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 15:59:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215145923.C648B10D59FB@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 15:59:23 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Udir.i3 UdirC.c Uerror.i3.cpp UnixC.c Ustat.i3 UstatC.c UtimeC.c m3makefile Log message: work in progress for header reduction and portability through just a little bit of C and not declaring so much unused stuff, esp. to avoid reading through gnarly #ifdefs in headers; only non mainstream platforms so far, such as non-x86 Linux, OpenBSD, non-Solaris SPARC From jkrell at elego.de Mon Dec 15 16:04:17 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:04:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215150417.C8B7F170401F@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:04:17 Modified files: cm3/m3-libs/m3core/src/unix/linux-common/: Uerror.i3 Unix.i3 Upthread.i3 Usignal.i3 Utypes.i3 m3makefile Log message: work in progress for header reduction and portability through just a little bit of C and not declaring so much unused stuff, esp. to avoid reading through gnarly #ifdefs in headers; only non mainstream platforms so far, such as non-x86 Linux, OpenBSD, non-Solaris SPARC, etc. (and really not even most of these affected here, just AMD64_LINUX and MIPS64_OPENBSD being worked on actively) From jkrell at elego.de Mon Dec 15 16:06:11 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:06:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215150614.13F7E2200040@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:06:11 Modified files: cm3/m3-libs/m3core/src/unix/linux-32/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/linux-32/: Uucontext.i3 Log message: header reduction/factoring/etc., avoiding PPC_LINUX/I386_LINUX here From jkrell at elego.de Mon Dec 15 16:07:16 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:07:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215150716.B7D2A904014@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:07:16 Modified files: cm3/m3-libs/m3core/src/unix/linux-64/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/linux-64/: Uucontext.i3 Removed files: cm3/m3-libs/m3core/src/unix/linux-64/: Ustat.i3 Log message: work in progress on header reduction/rewriting.. From jkrell at elego.de Mon Dec 15 16:13:01 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:13:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215151301.54A0F10D5A1B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:13:01 Modified files: cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile Removed files: cm3/m3-libs/m3core/src/unix/openbsd-common/: Ustat.i3 Log message: use common Ustat.i3 -- pay price to copy small struct, instead of declaring it for each platform (esp. to avoid reading through the Linux #ifdefs) From jkrell at elego.de Mon Dec 15 16:20:57 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:20:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215152057.88095904001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:20:57 Modified files: cm3/m3-libs/m3core/src/unix/linux-sparc/: Usignal.i3 m3makefile Removed files: cm3/m3-libs/m3core/src/unix/linux-sparc/: Uucontext.i3 Log message: sparc is a bit different, presumbly to aid binary compat with Solaris From jkrell at elego.de Mon Dec 15 16:22:17 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:22:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215152218.9F089904001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:22:17 Modified files: cm3/m3-libs/m3core/src/unix/linux-sparc/: Usignal.i3 m3makefile Log message: fix line endings From jkrell at elego.de Mon Dec 15 16:23:21 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:23:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215152322.05C1E904001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:23:21 Modified files: cm3/m3-libs/m3core/src/unix/linux-amd64/: m3makefile Log message: header factoring -- nothing actually left here From jkrell at elego.de Mon Dec 15 16:32:08 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:32:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215153210.0E84110D5C00@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:32:08 Modified files: cm3/m3-libs/m3core/src/unix/: m3makefile Log message: move {AMD64,SPARC{32,64}}_LINUX, {MIPS64,SPARC64,PPC32}_OPENBSD toward common/smaller headers not all built/tested, but AMD64_LINUX and MIP64_OPENBSD under active building/debugging From jkrell at elego.de Mon Dec 15 16:41:46 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:41:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215154146.2244A10D5D5B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:41:46 Modified files: cm3/m3-sys/m3cc/gcc/gcc/m3cg/: parse.c Log message: Declare the globals (er, module variables) to be (overall) 2 * max_alignment instead of merely max_alignment. This works around a problem where gcc assumes the module variables (overall, for a single module) fit in registers, and the offset is lost loading them, leading to many/most/all module variable loads to go awry, catastrophic on MIPS64. Many platforms work because their maxalign is already large. This is not clearly the best fix, but it sure is small. MIPS64_OPENBSD gets as far as: $ gdb cm3 (gdb) r Starting program: /home/jay/cm3/bin/cm3 --- building in MIPS64_OPENBSD --- missing version stamps -> compiling RTHooks.i3 Program received signal SIGFPE, Arithmetic exception. 0x00000000104f7be0 in Utils__M3Time (M3_CtKayy_t=0) at ..\src\Utils.m3:320 320 ..\src\Utils.m3: No such file or directory. in ..\src\Utils.m3 (gdb) bt #0 0x00000000104f7be0 in Utils__M3Time (M3_CtKayy_t=0) at ..\src\Utils.m3:320 #1 0x00000000104f7a1c in Utils__NoteNewFile (M3_Bd56fi_file=0x570673e0) at ..\src\Utils.m3:307 #2 0x00000000100b2eb4 in Builder__PushOneM3 (M3_Bd9FNt_s=0x55604830, M3_AXLf8B_u=0x106735f0) at ..\src\Builder.m3:1217 #3 0x00000000100b258c in Builder__CompileM3 (M3_Bd9FNt_s=0x517dd818, M3_AXLf8B_u=0x57077c40) at ..\src\Builder.m3:1149 #4 0x00000000100b0594 in Builder__CompileOne (M3_Bd9FNt_s=0x1, M3_AXLf8B_u=0x57077558) at ..\src\Builder.m3:984 #5 0x00000000100b005c in Builder__CompileEverything (M3_Bd9FNt_s=0x0, M3_Cw4bpV_schedule=0x0) at ..\src\Builder.m3:944 #6 0x00000000100a9bd8 in Builder__CompileUnits (M3_Bd56fi_main=0x570671b0, M3_EEuw3X_units=0x57067188, M3_C1FTrk_sys_libs=0x5179d2d8, M3_A2QN6Z_info_kind=0 '\0', M3_An02H2_mach=0x555fec40) at ..\src\Builder.m3:325 though all the seemingly related code runs several times successfully. Now(), FromUtime(), M3Time(), stat, etc. Perhaps some floats are getting corrupt on the stack. From jkrell at elego.de Mon Dec 15 16:44:00 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 16:44:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215154402.76B3B10D5D9E@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 16:44:00 Removed files: cm3/m3-libs/m3core/src/unix/linux-amd64/: Uucontext.i3 Log message: moved to common linux-64 From jkrell at elego.de Mon Dec 15 18:29:40 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 18:29:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215172940.7750110D5C70@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 18:29:40 Modified files: cm3/scripts/python/: pylib.py Log message: Linux needs -lm and -lpthread too From jkrell at elego.de Mon Dec 15 18:31:37 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 18:31:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215173137.F042A10D5C74@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 18:31:37 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Removed files: cm3/m3-libs/m3core/src/unix/Common/: UnixC.c Log message: This really belongs over in libm3. From jkrell at elego.de Mon Dec 15 18:33:17 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 18:33:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215173318.0398710D5C74@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 18:33:17 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosix.i3 FilePosix.m3 m3makefile Added files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosixC.c Log message: Remove the need to untangle the #ifdefs around struct flock. From jkrell at elego.de Mon Dec 15 18:41:06 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 15 Dec 2008 18:41:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081215174106.1A7A510D5C70@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/15 18:41:06 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosixC.c Log message: fix last minute edit From jkrell at elego.de Tue Dec 16 08:23:06 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 8:23:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216072306.C7D88904001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 08:23:06 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: probing output shows up as a diff in tests, so turn it off From jkrell at elego.de Tue Dec 16 08:33:08 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 8:33:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216073308.A553210D506D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 08:33:07 Modified files: cm3/m3-sys/m3tests/src/p1/p170/: Main.m3 Log message: loosen 32 bit-specificity of test, so it succeeds on 64 bit; could also write two different tests From jkrell at elego.de Tue Dec 16 08:43:15 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 8:43:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216074315.7884C10D506D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 08:43:15 Modified files: cm3/m3-sys/m3tests/src/: m3makefile Log message: expected output file has '64' appended, if on a 64bit platform and the file exists; this will deal with the fact that type sizes are in expected output and are 32 bit specific From jkrell at elego.de Tue Dec 16 13:00:57 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 13:00:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216120100.18A2610D5C1D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 13:00:57 Modified files: cm3/scripts/python/: pylib.py make-dist.py Log message: remove 'POSIX' from file names, it is redundant From jkrell at elego.de Tue Dec 16 14:42:44 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 14:42:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216134244.23DC010D59C7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 14:42:44 Added files: cm3/m3-sys/m3tests/src/p0/p011/: stdout.pgm64 cm3/m3-sys/m3tests/src/p0/p076/: stdout.build64 Log message: add 64 bit outputs------------ From jkrell at elego.de Tue Dec 16 15:38:44 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 15:38:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216143845.0256210D59C7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 15:38:44 Modified files: cm3/m3-libs/m3core/src/runtime/AMD64_LINUX/: RTSignal.m3 cm3/m3-libs/m3core/src/unix/linux-common/: Usignal.i3 Log message: fill in missing pieces by copying from LINUXLIBC mostly, probably why two of the tests hang, when run from cm3 From jkrell at elego.de Tue Dec 16 16:06:43 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 16:06:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216150644.B188B2200084@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 16:06:42 Modified files: cm3/m3-libs/m3core/src/unix/linux-common/: Utime.i3 Log message: fix time_t (INTEGER, not int), so that nanosleep in StopWorld sleeps the intended amount, instead of way too much aka hanging From jkrell at elego.de Tue Dec 16 16:31:49 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 16:31:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216153150.E6D9810D5C55@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 16:31:49 Modified files: cm3/m3-libs/m3core/src/win32/: WinNTc.c Log message: remove dependency on newer headers, so that e.g. I386_CYGWIN (aka NT386GNU) builds From jkrell at elego.de Tue Dec 16 16:33:19 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 16:33:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216153319.C43B110D5C55@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 16:33:19 Modified files: cm3/m3-libs/m3core/src/win32/: WinNTc.c Log message: fix line endings From jkrell at elego.de Tue Dec 16 17:40:43 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 16 Dec 2008 17:40:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081216164044.0C55010D506D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/16 17:40:43 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosixC.c cm3/m3-libs/m3core/src/unix/Common/: UdirC.c m3makefile cm3/m3-libs/m3core/src/unix/cygwin/: Uerror.i3 Ustat.i3 m3makefile cm3/m3-sys/cminstall/src/config/: NT386.common cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common cm3/m3-sys/m3cc/src/: m3makefile cm3/scripts/python/: pylib.py upgrade.py Removed files: cm3/m3-libs/m3core/src/unix/cygwin/: Udir.i3 Log message: Bring Cygwin to common headers. don't enforce alignment on x86 (not aligned on Cygwin) Fix Cygwin for m3cg probing (NT386 => NT386GNU) Posix says to use SEEK_SET, and Cygwin doesn't define L_SET. some m3makefile cleanup to again deal with quotes/slashes use single quotes when ok and might be nested in double quotes some m3makefile cleanup to depend on "sysutils" for brevity and no point in "mkdir(.)" From hosking at cs.purdue.edu Tue Dec 16 20:33:27 2008 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 17 Dec 2008 06:33:27 +1100 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20081215173318.0398710D5C74@birch.elegosoft.com> References: <20081215173318.0398710D5C74@birch.elegosoft.com> Message-ID: This new file FilePosixC.c does not build on my SOLgnu Tinderbox setup, so the regressions failed last night. Jay, this is precisely the reason that we don't want to have C-coded files in the Modula-3 code-base -- C might proclaim its portability but that portability is a lie. Why do we need this when the old pure Modula-3 setup worked just fine! I know it meant some amount of duplication, but that duplication was needed because of differences in API specs on different platforms. I am not averse to having *portable* C code, but in this case I think it is too low-level to be properly portable. Perhaps better to keep it in Modula-3. On 15 Dec 2008, at 18:33, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 08/12/15 18:33:17 > > Modified files: > cm3/m3-libs/libm3/src/os/POSIX/: FilePosix.i3 FilePosix.m3 > m3makefile > Added files: > cm3/m3-libs/libm3/src/os/POSIX/: FilePosixC.c > > Log message: > Remove the need to untangle the #ifdefs around struct flock. From jay.krell at cornell.edu Wed Dec 17 01:32:06 2008 From: jay.krell at cornell.edu (Jay) Date: Wed, 17 Dec 2008 00:32:06 +0000 Subject: [M3commit] FilePosixC.c In-Reply-To: References: <20081215173318.0398710D5C74@birch.elegosoft.com> Message-ID: Tony, Well, it is a matter of degree, but I really dislike the duplication and I believe the portability is plenty attainable. It also didn't compile for me on Cygwin, I did a bit more research and fixed that. It is ok now for SOLgnu? I do have a SOLgnu/sun machine but didn't rebuild there yet. L_SET is not portable. - Jay> From: hosking at cs.purdue.edu> To: jkrell at elego.de> Date: Wed, 17 Dec 2008 06:33:27 +1100> CC: m3devel at elegosoft.com; m3commit at elegosoft.com> Subject: Re: [M3commit] CVS Update: cm3> > This new file FilePosixC.c does not build on my SOLgnu Tinderbox > setup, so the regressions failed last night.> > Jay, this is precisely the reason that we don't want to have C-coded > files in the Modula-3 code-base -- C might proclaim its portability > but that portability is a lie. Why do we need this when the old pure > Modula-3 setup worked just fine! I know it meant some amount of > duplication, but that duplication was needed because of differences in > API specs on different platforms. I am not averse to having > *portable* C code, but in this case I think it is too low-level to be > properly portable. Perhaps better to keep it in Modula-3.> > On 15 Dec 2008, at 18:33, Jay Krell wrote:> > > CVSROOT: /usr/cvs> > Changes by: jkrell at birch. 08/12/15 18:33:17> >> > Modified files:> > cm3/m3-libs/libm3/src/os/POSIX/: FilePosix.i3 FilePosix.m3> > m3makefile> > Added files:> > cm3/m3-libs/libm3/src/os/POSIX/: FilePosixC.c> >> > Log message:> > Remove the need to untangle the #ifdefs around struct flock.> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Wed Dec 17 01:51:37 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 17 Dec 2008 1:51:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081217005137.35F0A10D5C54@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/17 01:51:36 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UstatC.c Log message: remove __inline for increased portability From jkrell at elego.de Wed Dec 17 01:53:22 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 17 Dec 2008 1:53:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081217005322.44AE010D5C54@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/17 01:53:22 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UstatC.c Log message: should support files >4gig on 32bit systems From hosking at cs.purdue.edu Wed Dec 17 01:49:36 2008 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 17 Dec 2008 11:49:36 +1100 Subject: [M3commit] FilePosixC.c In-Reply-To: References: <20081215173318.0398710D5C74@birch.elegosoft.com> Message-ID: I'll wait for tomorrow's regressions to come through and see if it is fixed now for my SOLgnu Tinderbox setup. I see the temptation to eliminate duplication, and for these sorts of POSIX APIs I would expect portable C code to work pretty well. On 17 Dec 2008, at 11:32, Jay wrote: > Tony, Well, it is a matter of degree, but I really dislike the > duplication > and I believe the portability is plenty attainable. It also didn't > compile > for me on Cygwin, I did a bit more research and fixed that. > It is ok now for SOLgnu? I do have a SOLgnu/sun machine but didn't > rebuild there yet. > L_SET is not portable. > > - Jay > > > From: hosking at cs.purdue.edu > > To: jkrell at elego.de > > Date: Wed, 17 Dec 2008 06:33:27 +1100 > > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > > Subject: Re: [M3commit] CVS Update: cm3 > > > > This new file FilePosixC.c does not build on my SOLgnu Tinderbox > > setup, so the regressions failed last night. > > > > Jay, this is precisely the reason that we don't want to have C-coded > > files in the Modula-3 code-base -- C might proclaim its portability > > but that portability is a lie. Why do we need this when the old pure > > Modula-3 setup worked just fine! I know it meant some amount of > > duplication, but that duplication was needed because of > differences in > > API specs on different platforms. I am not averse to having > > *portable* C code, but in this case I think it is too low-level to > be > > properly portable. Perhaps better to keep it in Modula-3. > > > > On 15 Dec 2008, at 18:33, Jay Krell wrote: > > > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 08/12/15 18:33:17 > > > > > > Modified files: > > > cm3/m3-libs/libm3/src/os/POSIX/: FilePosix.i3 FilePosix.m3 > > > m3makefile > > > Added files: > > > cm3/m3-libs/libm3/src/os/POSIX/: FilePosixC.c > > > > > > Log message: > > > Remove the need to untangle the #ifdefs around struct flock. > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Wed Dec 17 14:02:41 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 17 Dec 2008 14:02:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081217130244.424BD2200046@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/17 14:02:41 Modified files: cm3/m3-ui/juno-2/juno-app/pkl-fonts/src/: m3makefile Log message: build standalone on NT386 to avoid problem running as part of building nearby -- running unshipped stuff is probably nebulous in general, and building this standalone is probably reasonable therefore for all platforms? From jkrell at elego.de Wed Dec 17 15:44:38 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 17 Dec 2008 15:44:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081217144438.7B13610D5C1D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/17 15:44:38 Modified files: cm3/m3-sys/cminstall/src/config/: NT386.common Log message: don't double up flags on cm3cg command line (cosmetic) From jkrell at elego.de Wed Dec 17 15:47:34 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 17 Dec 2008 15:47:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081217144734.7E9A310D5C1D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/17 15:47:34 Modified files: cm3/scripts/python/: pylib.py make-dist.py Log message: fix line endings and 'temporarily' skip serial package -- there's a problem here on I386_CYGWIN I forgot about where essentially you want to provide both FilePosix and FileWin32; FilePosix will export File, FileWin32 will export FileWin32, so that portable Modula-3 can use File/FilePosix and Win32 specific serial code can use FileWin32; maybe some day we should try out this serial stuff, and /maybe/ the Posix paths work on Cygwin? For now, just skip it. And fix line endings. And try out the alternate 'clean' path in make-dist From jkrell at elego.de Wed Dec 17 16:04:25 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 17 Dec 2008 16:04:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081217150427.9CCEA1704033@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/17 16:04:25 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: remove errant empty comment line (cosmetic) From jkrell at elego.de Wed Dec 17 17:19:11 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 17 Dec 2008 17:19:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081217161911.815C410D5D0D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/17 17:19:11 Modified files: cm3/www/uploaded-archives/: update_download_index.sh Log message: make there be a dash after the platform, so that NT386 and NT386GNU are separated From rodney at elego.de Thu Dec 18 05:17:43 2008 From: rodney at elego.de (Rodney M. Bates) Date: Thu, 18 Dec 2008 5:17:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081218041743.4559410D59A9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rodney at birch. 08/12/18 05:17:43 Modified files: cm3/m3-sys/m3gdb/gdb/gdb/: frame.c infcall.c m3-eval.c m3-lang.c m3-lang.h m3-util.c m3-util.h m3-valprint.c Log message: Some progress adapting the the new system of static links used by gcc 4.3.0. In many cases, m3gdb can now properly follow them and also create them, when calling or passing a nested procedure. The main place it will fail is if a nested procedure makes no nonlocal references to variables or parameters of an enclosing procedure, nor does any further enclosed procedure. If it can't find a static link, it will still fall back to the process of nearest dynamic ancestor activation record that belongs to the desired procedure. This will be correct when nested procedures are called only as procedure constants. For older compilers everything should work, though the implementation is greatly changed. From jkrell at elego.de Fri Dec 19 01:24:22 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 1:24:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219002422.0A48410D5C26@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 01:24:21 Modified files: cm3/scripts/python/: upgrade.py pylib.py Log message: put serial back, and fix newlines From jkrell at elego.de Fri Dec 19 01:31:49 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 1:31:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219003149.F11C010D5C6A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 01:31:49 Modified files: cm3/scripts/: pkginfo.sh Log message: build udp on Win32 too From jkrell at elego.de Fri Dec 19 01:32:26 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 1:32:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219003227.E57A810D5C6A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 01:32:26 Modified files: cm3/scripts/python/: pylib.py Log message: build udp on Win32 too (local CVS is crashing when I try to commit more than one file, ugh) From jkrell at elego.de Fri Dec 19 01:32:39 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 1:32:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219003239.9ACD610D5C6A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 01:32:39 Modified files: cm3/scripts/win/: pkginfo.cmd Log message: build udp on Win32 too (local CVS is crashing when I try to commit more than one file, ugh) From jkrell at elego.de Fri Dec 19 06:54:11 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 6:54:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219055411.8943410D5D0F@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 06:54:11 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: SOLsun and SOLgnu can use each other's m3cgc1.exe -- they are the same From jkrell at elego.de Fri Dec 19 06:57:30 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 6:57:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219055730.E25D810D5D36@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 06:57:30 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UdirC.c m3makefile cm3/m3-libs/m3core/src/unix/linux-32/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/linux-sparc/: Uerror.i3 Log message: some fixes for SPARC{32,64}_LINUX a fix that probably affects many/all Posix platforms, but not done testing SOLsun/SOLgnu From jkrell at elego.de Fri Dec 19 07:32:43 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 7:32:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219063245.175EE10D5C26@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 07:32:43 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UdirC.c Log message: fix newlines, and endeavor to use 64 bits types on Linux, where there is often a 32bit and 64bit interface From jkrell at elego.de Fri Dec 19 07:45:42 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 7:45:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219064542.96F0810D458C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 07:45:42 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Log message: revision 1.2 should not havce given UstatC.c to 'every' platform (not every platform uses this cirectory, but many do, for UtimeC.c global variable wrappers) From jkrell at elego.de Fri Dec 19 07:54:04 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 7:54:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219065405.3E0CC10D5C26@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 07:54:04 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile UdirC.c Log message: all that OpenBSD stuff is for naught From jkrell at elego.de Fri Dec 19 09:44:43 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 9:44:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219084443.DE70010D5C26@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 09:44:43 Modified files: cm3/m3-libs/m3core/src/Csupport/libgcc/: libgcc.c Log message: SOLsun needs __muldi3; just take a bunch from LGPL gcc/gcc/config/darwin-64.c (same licensing as code compiled for 64bit darwin, if any of the functions are pulled in, which the code claims is unlikely) From jkrell at elego.de Fri Dec 19 10:23:17 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 10:23:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219092317.E05B010D59C7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 10:23:17 Modified files: cm3/scripts/python/: pylib.py Log message: extra switches needed by SOLsun, SPARC64_SOLARIS, SPARC32_LINUX, SPARC64_LINUX, and need to copy .s files into boot archive and assemble them, for SOLgnu and SOLsun From jkrell at elego.de Fri Dec 19 14:39:28 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 14:39:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219133928.7C41A10D5C26@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 14:39:28 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Solaris.common Log message: put quotes where needed; in case anyone else has single-target tools, I plan to use one plain 'gcc' with -m32 and -m64 shortly From jkrell at elego.de Fri Dec 19 18:40:10 2008 From: jkrell at elego.de (Jay Krell) Date: Fri, 19 Dec 2008 18:40:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081219174010.B243510D5C55@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/19 18:40:10 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Solaris.common Log message: use gcc to drive the linker, assuming gcc works well enough (usually they do, even if mine wasn't), this way, we don't have to track down libgcc.a for the 64bit math helpers From jkrell at elego.de Wed Dec 24 07:43:38 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 24 Dec 2008 7:43:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081224064338.F031510D5E5F@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/24 07:43:38 Modified files: cm3/m3-sys/m3cc/src/: m3makefile Log message: don't use fs_exists From jkrell at elego.de Wed Dec 24 07:46:43 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 24 Dec 2008 7:46:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081224064643.3496210D5E5F@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/24 07:46:43 Modified files: cm3/m3-sys/m3cc/src/: m3makefile Log message: comment about previous From jkrell at elego.de Wed Dec 24 20:58:45 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 24 Dec 2008 20:58:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081224195845.2A8EF10D5DA6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/24 20:58:45 Modified files: cm3/m3-libs/m3core/src/unix/linux-32/: m3makefile Log message: fix typo that broke LINUXLIBC6 From jkrell at elego.de Thu Dec 25 07:15:35 2008 From: jkrell at elego.de (Jay Krell) Date: Thu, 25 Dec 2008 7:15:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081225061537.771CF10D58EA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/25 07:15:35 Modified files: cm3/scripts/python/: pylib.py Log message: fix newlines; remove conflict-prone $ From jkrell at elego.de Thu Dec 25 07:42:45 2008 From: jkrell at elego.de (Jay Krell) Date: Thu, 25 Dec 2008 7:42:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081225064245.A6DDB10D5DE0@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/25 07:42:45 Modified files: cm3/m3-libs/m3core/src/unix/linux-32/: m3makefile Log message: other way around From jkrell at elego.de Sat Dec 27 00:14:03 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 0:14:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081226231403.11E2110D5E5C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 00:14:02 Modified files: cm3/m3-libs/m3core/src/runtime/PPC_LINUX/: RTMachine.i3 cm3/m3-libs/m3core/src/thread/: m3makefile cm3/scripts/python/: pylib.py Log message: user threads long since broken (years ago I believe) switch PPC_LINUX to kernel threads bootstrapped from NT386GNU, native build then gets to m3-tools/m3totex: /cm3/bin/m3bundle -name B -F/tmp/qk unable to open file for reading: ../PPC_LINUX/B.i3: errno=2 open failed on: ../PPC_LINUX/B.i3 unable to open file for reading: ../PPC_LINUX/B.m3: errno=2 open failed on: ../PPC_LINUX/B.m3 new source -> compiling m3totex.m3 Fatal Error: unable to open file for reading: ../PPC_LINUX/B.i3: errno=2 That's way better than the alternative. When using user threads, access violate in PushEFrame accessing NULL self; ThreadF__Init not called yet pthreads and Win32 threads initialize "PushEFrame" on-demand, but doing the simplest user thread analog -- ThreadF__Init -- on-demand is too much and fails Probably need to change user thread Thread.T from an "object" to a traced ref, and then initialize it to an untraced value to start, if that is legal user threads will need fixing for hypothetical djgpp platform From jkrell at elego.de Sat Dec 27 00:15:34 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 0:15:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081226231534.65BBB10D5E5C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 00:15:34 Modified files: cm3/m3-sys/m3cc/src/: m3makefile Log message: some logging improvements; output commands to _m3.log; stay out of the native directory's _m3.log when doing cross builds; add some platforms that aren't yet active From jkrell at elego.de Sat Dec 27 00:24:51 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 0:24:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081226232451.5771C10D5E5C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 00:24:51 Removed files: cm3/m3-libs/m3core/src/runtime/PPC_LINUX/: RTStackASM.s Log message: remove dead x86 assembly source from PPC directory From jkrell at elego.de Sat Dec 27 01:35:08 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 1:35:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227003509.5F50310D5E84@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 01:35:08 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UdirC.c UstatC.c UtimeC.c Added files: cm3/m3-libs/m3core/src/unix/Common/: m3unix.h Log message: file sizes and offsets should always be 64 bits functions that traffic in file sizes offsets should always have "64" at the end? From jkrell at elego.de Sat Dec 27 01:45:13 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 1:45:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227004513.E12B710D5E5C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 01:45:13 Modified files: cm3/m3-libs/m3core/src/unix/linux-common/: Umman.i3 Unix.i3 Log message: be sure to have 64 bit file size/offset, and appropriate functions thereof (work in progress) From jkrell at elego.de Sat Dec 27 02:04:03 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 2:04:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227010404.5D42310D4936@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 02:04:03 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UdirC.c cm3/m3-libs/m3core/src/unix/cygwin/: Unix.i3 Log message: fix for Cygwin and 'tell' doesn't seem to exist ? From jkrell at elego.de Sat Dec 27 03:05:29 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 3:05:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227020529.B503910D5DE8@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 03:05:29 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Unix.i3 Unix.i3.cpp Log message: reduce cloned headers From jkrell at elego.de Sat Dec 27 03:08:13 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 3:08:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227020814.305D110D5DE8@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 03:08:13 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Utypes.i3 Utypes.i3.cpp Log message: more header reduction -- don't need the contituents of struct stat From jkrell at elego.de Sat Dec 27 05:56:30 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 5:56:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227045630.91D0F10D5DE8@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 05:56:30 Modified files: cm3/m3-libs/m3core/src/unix/openbsd-common/: Unix.i3 Log message: more header reduction From jkrell at elego.de Sat Dec 27 05:57:00 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 5:57:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227045700.9CF1E10D5DE9@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 05:57:00 Modified files: cm3/m3-libs/m3core/src/unix/linux-common/: Unix.i3 Log message: more header reduction From jkrell at elego.de Sat Dec 27 08:16:24 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 8:16:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227071624.37FFB10D54C5@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 08:16:24 Modified files: cm3/m3-libs/m3core/src/unix/: m3makefile cm3/m3-libs/m3core/src/unix/aix-3-2/: m3makefile cm3/m3-libs/m3core/src/unix/aix-ps2-1-2/: m3makefile cm3/m3-libs/m3core/src/unix/cygwin/: m3makefile cm3/m3-libs/m3core/src/unix/darwin-generic/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-1/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-2/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-3/: m3makefile cm3/m3-libs/m3core/src/unix/freebsd-4/: m3makefile cm3/m3-libs/m3core/src/unix/ibm-4-3/: m3makefile cm3/m3-libs/m3core/src/unix/linux/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/netbsd2-i386/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile cm3/m3-libs/m3core/src/unix/os2/: m3makefile cm3/m3-libs/m3core/src/unix/osf-1.generic/: m3makefile cm3/m3-libs/m3core/src/unix/solaris-2-x/: m3makefile cm3/m3-libs/m3core/src/unix/sunos-4-x/: m3makefile cm3/m3-libs/m3core/src/unix/sysv-4.0/: m3makefile cm3/m3-libs/m3core/src/unix/ultrix-3-1.generic/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/: Uutmp.txt cm3/m3-libs/m3core/src/unix/Uutmp1/: Uutmp.i3 m3makefile cm3/m3-libs/m3core/src/unix/Uutmp2/: Uutmp.i3 m3makefile cm3/m3-libs/m3core/src/unix/Uutmp3/: Uutmp.i3 m3makefile Removed files: cm3/m3-libs/m3core/src/unix/aix-3-2/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/aix-ps2-1-2/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/cygwin/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/darwin-generic/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/freebsd-1/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/freebsd-2/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/freebsd-3/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/freebsd-4/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/ibm-4-3/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/linux/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/netbsd2-i386/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/os2/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/osf-1.generic/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/solaris-2-x/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/sunos-4-x/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/sysv-4.0/: Uutmp.i3 cm3/m3-libs/m3core/src/unix/ultrix-3-1.generic/: Uutmp.i3 Log message: combine 22 Uutmp.i3 files into just the 3 shared ones and 3 custom ones From jkrell at elego.de Sat Dec 27 19:25:29 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 19:25:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227182529.34B8310D5E93@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 19:25:29 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: PPC_LINUX Log message: fix newlines From jkrell at elego.de Sat Dec 27 19:29:26 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 19:29:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227182926.5E56710D5E93@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 19:29:26 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: PPC_LINUX SOLsun SPARC64_LINUX Log message: some cleanup, esp. that I get warnings that -fPIC is redundant on PPC_LINUX From jkrell at elego.de Sat Dec 27 20:21:53 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 20:21:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227192153.AEB8910D5E92@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 20:21:53 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Utime.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Utime.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Utime.i3 Log message: make these three files almost identical (two of them actually identical) so that in the future we might be able to only have one From jkrell at elego.de Sat Dec 27 20:26:35 2008 From: jkrell at elego.de (Jay Krell) Date: Sat, 27 Dec 2008 20:26:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227192635.DFE0210D5E92@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/27 20:26:35 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Utime.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Utime.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Utime.i3 Log message: the correct versions: make these three files almost identical (two of them actually identical) so that in the future we might be able to only have one From jkrell at elego.de Sun Dec 28 00:57:24 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 0:57:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081227235724.ED56110D5E92@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 00:57:24 Modified files: cm3/m3-libs/m3core/src/runtime/PPC_LINUX/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/: m3makefile cm3/m3-libs/m3core/src/unix/: m3makefile cm3/m3-libs/m3core/src/unix/Common/: UdirC.c m3makefile cm3/m3-libs/m3core/src/unix/linux-32/: m3makefile cm3/scripts/python/: pylib.py Removed files: cm3/m3-libs/m3core/src/runtime/PPC_LINUX/: RTThread.m3 RTThreadC.c Log message: switch PPC_LINUX to trimmed down linux-common instead of larger and more error-prone linux-libc6 lose user thread support in the process, which could be preserved, but also doesn't work From jkrell at elego.de Sun Dec 28 01:00:57 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 1:00:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228000100.06A2210D5E93@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 01:00:57 Modified files: cm3/www/uploaded-archives/: update_download_index.sh Log message: add PPC_LINUX From jkrell at elego.de Sun Dec 28 01:32:57 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 1:32:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228003301.A42CA10D59A7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 01:32:57 Removed files: cm3/m3-libs/m3core/src/unix/linux-amd64/: 1.cpp 1.sh m3makefile Log message: forgot to deelete these; no longer used From jkrell at elego.de Sun Dec 28 08:10:25 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 8:10:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228071026.6BB861704023@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 08:10:25 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/Common/: Upwd.i3 Removed files: cm3/m3-libs/m3core/src/unix/cygwin/: Upwd.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Upwd.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Upwd.i3 Log message: another common file From jkrell at elego.de Sun Dec 28 08:13:38 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 8:13:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228071338.34EA5904004@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 08:13:38 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/cygwin/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/Common/: Unetdb.i3 Removed files: cm3/m3-libs/m3core/src/unix/cygwin/: Unetdb.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Unetdb.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Unetdb.i3 Log message: another common file From jkrell at elego.de Sun Dec 28 08:01:42 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 8:01:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228070143.434C6904006@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 08:01:42 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/Common/: Uuio.i3 Removed files: cm3/m3-libs/m3core/src/unix/cygwin/: Uuio.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Uuio.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Uuio.i3 Log message: make Uuio.i3 common, along with removing the unused sometimes 64bit incorrect iovec type (the length is size_t/long/ssize_t/integer, not int) From jkrell at elego.de Sun Dec 28 08:40:37 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 8:40:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228074037.7047C10D5D40@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 08:40:37 Removed files: cm3/m3-libs/m3core/src/unix/linux-ppc/: m3makefile Uucontext.i3 Log message: forgot to delete these files From jkrell at elego.de Sun Dec 28 08:42:50 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 8:42:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228074250.4E54410D5D40@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 08:42:50 Modified files: cm3/m3-libs/m3core/src/unix/linux-32/: m3makefile cm3/m3-libs/m3core/src/unix/linux-libc6/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/linux-libc6/: Ustat.i3 Removed files: cm3/m3-libs/m3core/src/unix/linux-32/: Ustat.i3 Log message: LINUXLIBC6 is now the only user of linux-32/Ustat.i3, so move the file to its specific directory. From jkrell at elego.de Sun Dec 28 08:26:46 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 8:26:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228072646.ECD7810D461B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 08:26:46 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/cygwin/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/Common/: Uugid.i3 Removed files: cm3/m3-libs/m3core/src/unix/cygwin/: Uugid.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Uugid.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Uugid.i3 Log message: another common file From jkrell at elego.de Sun Dec 28 08:57:10 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 8:57:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228075711.81493904004@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 08:57:10 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/Common/: Usched.i3 Removed files: cm3/m3-libs/m3core/src/unix/linux-common/: Usched.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Usched.i3 Log message: another common file From jkrell at elego.de Sun Dec 28 09:01:29 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 9:01:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228080129.C37C1904006@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 09:01:29 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Log message: factor some common code From jkrell at elego.de Sun Dec 28 09:31:48 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 9:31:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228083149.5D6DE10D461B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 09:31:48 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/cygwin/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/Common/: Uprocess.i3 Removed files: cm3/m3-libs/m3core/src/unix/cygwin/: Uprocess.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Uprocess.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Uprocess.i3 Log message: yet another common file From jkrell at elego.de Sun Dec 28 09:38:50 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 9:38:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228083851.570E210D461B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 09:38:50 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/cygwin/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/Common/: Uresource.i3 Removed files: cm3/m3-libs/m3core/src/unix/cygwin/: Uresource.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Uresource.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Uresource.i3 Log message: yet another common file From jkrell at elego.de Sun Dec 28 09:20:42 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 9:20:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228082042.503AC904006@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 09:20:42 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Utime.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Utime.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Utime.i3 Log message: add ctime_r, localtime_r, gmtime_r; note that Solaris's default ctime_r is different, something about Posix changing, Solaris adopting the earlier standard and then the newer one and having both implementations but with different link symbol names (of course) From jkrell at elego.de Sun Dec 28 10:23:29 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 10:23:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228092330.360A410D59C7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 10:23:29 Modified files: cm3/m3-libs/m3core/src/unix/: Uutmp.txt Log message: fix notes From jkrell at elego.de Sun Dec 28 10:35:18 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 10:35:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228093519.0F93910D5D29@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 10:35:18 Modified files: cm3/m3-libs/m3core/src/unix/solaris-2-x/: Usem.i3 Log message: fix alignment of Solaris semaphores -- 64bit alignment, not no (char) alignment) From jkrell at elego.de Sun Dec 28 11:03:34 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 11:03:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228100334.C41F3B04048@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 11:03:34 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile Added files: cm3/m3-libs/m3core/src/unix/Common/: Usem.i3 Removed files: cm3/m3-libs/m3core/src/unix/linux-common/: Usem.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Usem.i3 Log message: another common header file -- however this bought by defining sem_t to have the maximum size and alignment of any system; Solaris's 48 byte 64bit aligned version The CM3 code base has one static sem_t in the pthread code. From jkrell at elego.de Sun Dec 28 12:59:18 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 12:59:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228115918.4BD1710D5D29@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 12:59:18 Modified files: cm3/m3-libs/m3core/src/runtime/: m3makefile cm3/m3-libs/m3core/src/runtime/AMD64_LINUX/: RTMachine.i3 RTSignal.m3 m3makefile Removed files: cm3/m3-libs/m3core/src/runtime/PPC_LINUX/: RTMachine.i3 RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/SPARC32_LINUX/: RTMachine.i3 RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/SPARC64_LINUX/: RTMachine.i3 RTSignal.m3 m3makefile Log message: share more common files, albeit with a bad directory name ("AMD64_LINUX") From jkrell at elego.de Sun Dec 28 23:40:13 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 23:40:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228224013.4153710D5966@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 23:40:13 Removed files: cm3/m3-libs/m3core/src/C/PPC_LINUX/: CsetjmpASM.s Log message: remove x86 assembly from powerpc port From jkrell at elego.de Sun Dec 28 23:42:59 2008 From: jkrell at elego.de (Jay Krell) Date: Sun, 28 Dec 2008 23:42:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228224259.A2EB510D5966@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/28 23:42:59 Modified files: cm3/m3-libs/m3core/src/C/Common/: m3makefile cm3/m3-libs/m3core/src/C/PPC_LINUX/: m3makefile Removed files: cm3/m3-libs/m3core/src/C/PPC_LINUX/: Cstdio.i3 Cstdio.m3 Cstring.i3 Log message: more common files From hosking at cs.purdue.edu Sun Dec 28 23:50:37 2008 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 29 Dec 2008 09:50:37 +1100 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20081228100334.C41F3B04048@birch.elegosoft.com> References: <20081228100334.C41F3B04048@birch.elegosoft.com> Message-ID: <3AD2B7A9-A060-4E03-B8BA-08B2D6028BB4@cs.purdue.edu> This change makes me uneasy -- do you mean to say we have a uniform definition of sem_t when the different targets have different definitions? :-O On 28 Dec 2008, at 11:03, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 08/12/28 11:03:34 > > Modified files: > cm3/m3-libs/m3core/src/unix/Common/: m3makefile > cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile > cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile > Added files: > cm3/m3-libs/m3core/src/unix/Common/: Usem.i3 > Removed files: > cm3/m3-libs/m3core/src/unix/linux-common/: Usem.i3 > cm3/m3-libs/m3core/src/unix/openbsd-common/: Usem.i3 > > Log message: > another common header file -- however this bought by defining sem_t > to have the maximum size and alignment of any system; > Solaris's 48 byte 64bit aligned version > The CM3 code base has one static sem_t in the pthread code. From jkrell at elego.de Mon Dec 29 00:42:23 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 0:42:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081228234223.78CDF10D59C7@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 00:42:23 Modified files: cm3/m3-libs/m3core/src/C/PPC_LINUX/: m3makefile Removed files: cm3/m3-libs/m3core/src/C/PPC_LINUX/: Csignal.i3 Log message: delete yet another useless file -- Csignal.i3 (used only by dormant non-pthreads ports, and not provided by many ports; though also not a terrible thing, somewhat useful, and simple and portable) From jay.krell at cornell.edu Mon Dec 29 00:49:25 2008 From: jay.krell at cornell.edu (Jay) Date: Sun, 28 Dec 2008 23:49:25 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <3AD2B7A9-A060-4E03-B8BA-08B2D6028BB4@cs.purdue.edu> References: <20081228100334.C41F3B04048@birch.elegosoft.com> <3AD2B7A9-A060-4E03-B8BA-08B2D6028BB4@cs.purdue.edu> Message-ID: This one I can undo and still feel ok -- just push sem_t into Utypes.i3 and expose it from a common Usem.i3. There is only one sem_t in the system. It is global. This change just makes it usually larger and more aligned than necessary. The danger would be if sem_t is ever embedded in something else OS-defined, or if the OS ever returned a pointer to one that Modula-3 code copied. In general, I'm thinking either Utypes.i3 or some new Uinternal.i3 or Usysdep.i3 or Utypes.i3 + Uconstants.i3 should be where most/all system-dependent stuff. Even existant Utypes.i3 have much redundancy -- all the ulong/ushort/int8/int16/int32/int64 types are always the same, just stuff like nlink_t, mode_t, gid_t, uid_t, off_t vary. Though imho off_t should always be INT64 or UINT64. Usysdep.i3 seems best? - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > To: jkrell at elego.de > Date: Mon, 29 Dec 2008 09:50:37 +1100 > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > This change makes me uneasy -- do you mean to say we have a uniform > definition of sem_t when the different targets have different > definitions? :-O > > On 28 Dec 2008, at 11:03, Jay Krell wrote: > >> CVSROOT: /usr/cvs >> Changes by: jkrell at birch. 08/12/28 11:03:34 >> >> Modified files: >> cm3/m3-libs/m3core/src/unix/Common/: m3makefile >> cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile >> cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile >> Added files: >> cm3/m3-libs/m3core/src/unix/Common/: Usem.i3 >> Removed files: >> cm3/m3-libs/m3core/src/unix/linux-common/: Usem.i3 >> cm3/m3-libs/m3core/src/unix/openbsd-common/: Usem.i3 >> >> Log message: >> another common header file -- however this bought by defining sem_t >> to have the maximum size and alignment of any system; >> Solaris's 48 byte 64bit aligned version >> The CM3 code base has one static sem_t in the pthread code. > From jay.krell at cornell.edu Mon Dec 29 00:55:16 2008 From: jay.krell at cornell.edu (Jay) Date: Sun, 28 Dec 2008 23:55:16 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20081228100334.C41F3B04048@birch.elegosoft.com> <3AD2B7A9-A060-4E03-B8BA-08B2D6028BB4@cs.purdue.edu> Message-ID: Note that I've been avoiding touching "mainstream" or already existant platforms -- FreeBSD, LINUXLIBC6, *_DARWIN. Perhaps I should go ahead and cross that line, as my testability/testing allows? Slightly linked question is if user threads should remain. They don't work, I believe on any platform, but I understand could easily be made to. - Jay ---------------------------------------- > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu; jkrell at elego.de > Date: Sun, 28 Dec 2008 23:49:25 +0000 > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > > This one I can undo and still feel ok -- just push sem_t into Utypes.i3 and expose it from a common Usem.i3. > There is only one sem_t in the system. > It is global. This change just makes it usually larger and more aligned than necessary. > > > The danger would be if sem_t is ever embedded in something else OS-defined, or if the OS ever returned a pointer to one that Modula-3 code copied. > > > In general, I'm thinking either Utypes.i3 or some new Uinternal.i3 or Usysdep.i3 or Utypes.i3 + Uconstants.i3 should be where most/all system-dependent stuff. > Even existant Utypes.i3 have much redundancy -- all the ulong/ushort/int8/int16/int32/int64 types are always the same, just stuff like nlink_t, mode_t, gid_t, uid_t, off_t vary. Though imho off_t should always be INT64 or UINT64. > > > Usysdep.i3 seems best? > > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> To: jkrell at elego.de >> Date: Mon, 29 Dec 2008 09:50:37 +1100 >> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >> Subject: Re: [M3commit] CVS Update: cm3 >> >> This change makes me uneasy -- do you mean to say we have a uniform >> definition of sem_t when the different targets have different >> definitions? :-O >> >> On 28 Dec 2008, at 11:03, Jay Krell wrote: >> >>> CVSROOT: /usr/cvs >>> Changes by: jkrell at birch. 08/12/28 11:03:34 >>> >>> Modified files: >>> cm3/m3-libs/m3core/src/unix/Common/: m3makefile >>> cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile >>> cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile >>> Added files: >>> cm3/m3-libs/m3core/src/unix/Common/: Usem.i3 >>> Removed files: >>> cm3/m3-libs/m3core/src/unix/linux-common/: Usem.i3 >>> cm3/m3-libs/m3core/src/unix/openbsd-common/: Usem.i3 >>> >>> Log message: >>> another common header file -- however this bought by defining sem_t >>> to have the maximum size and alignment of any system; >>> Solaris's 48 byte 64bit aligned version >>> The CM3 code base has one static sem_t in the pthread code. >> From jkrell at elego.de Mon Dec 29 01:07:27 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 1:07:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229000727.3A273170400B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 01:07:27 Modified files: cm3/m3-libs/m3core/src/C/AMD64_DARWIN/: m3makefile cm3/m3-libs/m3core/src/C/Common/: m3makefile cm3/m3-libs/m3core/src/C/FreeBSD/: m3makefile cm3/m3-libs/m3core/src/C/FreeBSD2/: m3makefile cm3/m3-libs/m3core/src/C/FreeBSD3/: m3makefile cm3/m3-libs/m3core/src/C/FreeBSD4/: m3makefile cm3/m3-libs/m3core/src/C/I386_DARWIN/: m3makefile cm3/m3-libs/m3core/src/C/LINUX/: m3makefile cm3/m3-libs/m3core/src/C/LINUXELF/: m3makefile cm3/m3-libs/m3core/src/C/LINUXLIBC6/: m3makefile cm3/m3-libs/m3core/src/C/NetBSD2_i386/: m3makefile cm3/m3-libs/m3core/src/C/OS2/: m3makefile cm3/m3-libs/m3core/src/C/PPC_DARWIN/: m3makefile Added files: cm3/m3-libs/m3core/src/C/Common/: Csignal.i3 Removed files: cm3/m3-libs/m3core/src/C/AMD64_DARWIN/: Csignal.i3 cm3/m3-libs/m3core/src/C/FreeBSD/: Csignal.i3 cm3/m3-libs/m3core/src/C/FreeBSD2/: Csignal.i3 cm3/m3-libs/m3core/src/C/FreeBSD3/: Csignal.i3 cm3/m3-libs/m3core/src/C/FreeBSD4/: Csignal.i3 cm3/m3-libs/m3core/src/C/I386_DARWIN/: Csignal.i3 cm3/m3-libs/m3core/src/C/LINUX/: Csignal.i3 cm3/m3-libs/m3core/src/C/LINUXELF/: Csignal.i3 cm3/m3-libs/m3core/src/C/LINUXLIBC6/: Csignal.i3 cm3/m3-libs/m3core/src/C/NetBSD2_i386/: Csignal.i3 cm3/m3-libs/m3core/src/C/OS2/: Csignal.i3 cm3/m3-libs/m3core/src/C/PPC_DARWIN/: Csignal.i3 Log message: combine 12 identical files into one (modulo comments) From hosking at cs.purdue.edu Mon Dec 29 01:14:02 2008 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 29 Dec 2008 11:14:02 +1100 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20081228100334.C41F3B04048@birch.elegosoft.com> <3AD2B7A9-A060-4E03-B8BA-08B2D6028BB4@cs.purdue.edu> Message-ID: User threads used to work on Solaris (since it uses getcontext/ setcontext to do thread switching instead of setjmp/longjmp) and these should work similarly on Linux/BSD/OSX. The only problem is that we need to use makecontext on some platforms to get a proper basis context for new threads (as opposed to using the hackier code that is there in ThreadPosix.m3. On 29 Dec 2008, at 10:55, Jay wrote: > > Note that I've been avoiding touching "mainstream" or already > existant platforms -- FreeBSD, LINUXLIBC6, *_DARWIN. > > Perhaps I should go ahead and cross that line, as my testability/ > testing allows? > > Slightly linked question is if user threads should remain. > They don't work, I believe on any platform, but I understand could > easily be made to. > > - Jay > > ---------------------------------------- >> From: jay.krell at cornell.edu >> To: hosking at cs.purdue.edu; jkrell at elego.de >> Date: Sun, 28 Dec 2008 23:49:25 +0000 >> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >> Subject: Re: [M3commit] CVS Update: cm3 >> >> >> This one I can undo and still feel ok -- just push sem_t into >> Utypes.i3 and expose it from a common Usem.i3. >> There is only one sem_t in the system. >> It is global. This change just makes it usually larger and more >> aligned than necessary. >> >> >> The danger would be if sem_t is ever embedded in something else OS- >> defined, or if the OS ever returned a pointer to one that Modula-3 >> code copied. >> >> >> In general, I'm thinking either Utypes.i3 or some new Uinternal.i3 >> or Usysdep.i3 or Utypes.i3 + Uconstants.i3 should be where most/all >> system-dependent stuff. >> Even existant Utypes.i3 have much redundancy -- all the ulong/ >> ushort/int8/int16/int32/int64 types are always the same, just stuff >> like nlink_t, mode_t, gid_t, uid_t, off_t vary. Though imho off_t >> should always be INT64 or UINT64. >> >> >> Usysdep.i3 seems best? >> >> >> - Jay >> >> >> ---------------------------------------- >>> From: hosking at cs.purdue.edu >>> To: jkrell at elego.de >>> Date: Mon, 29 Dec 2008 09:50:37 +1100 >>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>> Subject: Re: [M3commit] CVS Update: cm3 >>> >>> This change makes me uneasy -- do you mean to say we have a uniform >>> definition of sem_t when the different targets have different >>> definitions? :-O >>> >>> On 28 Dec 2008, at 11:03, Jay Krell wrote: >>> >>>> CVSROOT: /usr/cvs >>>> Changes by: jkrell at birch. 08/12/28 11:03:34 >>>> >>>> Modified files: >>>> cm3/m3-libs/m3core/src/unix/Common/: m3makefile >>>> cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile >>>> cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile >>>> Added files: >>>> cm3/m3-libs/m3core/src/unix/Common/: Usem.i3 >>>> Removed files: >>>> cm3/m3-libs/m3core/src/unix/linux-common/: Usem.i3 >>>> cm3/m3-libs/m3core/src/unix/openbsd-common/: Usem.i3 >>>> >>>> Log message: >>>> another common header file -- however this bought by defining sem_t >>>> to have the maximum size and alignment of any system; >>>> Solaris's 48 byte 64bit aligned version >>>> The CM3 code base has one static sem_t in the pthread code. >>> From jay.krell at cornell.edu Mon Dec 29 01:21:17 2008 From: jay.krell at cornell.edu (Jay) Date: Mon, 29 Dec 2008 00:21:17 +0000 Subject: [M3commit] [M3devel] CVS Update: cm3 In-Reply-To: References: <20081228100334.C41F3B04048@birch.elegosoft.com> <3AD2B7A9-A060-4E03-B8BA-08B2D6028BB4@cs.purdue.edu> Message-ID: Understood. You (someone) also has to fix the initialization. I think when you (you) moved the various user thread globals (?), such as the handler chain, into one nice thread object, "switchable" via just one pointer, it broke. I didn't look at the change in depth, I'm making a leap in my description of what you did. It is a /very/ reasonable design (or even likely The Correct Design), to collect up all the globals that represent a "thread" into one heap allocated struct...except it is an "object". I don't have SOLgnu/sun handy, this week, but can try it next week. I expect it fails as PPC_LINUX was. I THINK the "object" needs to be changed to a "traced ref" and then it can be initialized using, maybe, a preallocated global, for the first thread, or at least using regular "Malloc" and not going through the garbage collection...but I'm really just not sure. If I get X86_MSDOS/DJGPP up and going, I'll be a bit more motivated..but I think I'll so I386_SOLARIS first, since it is perhaps more modern/mainstream. You know, I tried having it NEW the object on-demand, but I think that ended up recursing to about the same place -- PushEFrame. It's "difficult" to repro now for me, this week, based on hardware/OS availability,because I ripped out PPC_LINUX user thread support (unless I install NetBSD/FreeBSD in a VM or use birch, all of which are, honestly, easy). - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > To: jay.krell at cornell.edu > Date: Mon, 29 Dec 2008 11:14:02 +1100 > CC: jkrell at elego.de; m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3devel] [M3commit] CVS Update: cm3 > > User threads used to work on Solaris (since it uses getcontext/ > setcontext to do thread switching instead of setjmp/longjmp) and these > should work similarly on Linux/BSD/OSX. The only problem is that we > need to use makecontext on some platforms to get a proper basis > context for new threads (as opposed to using the hackier code that is > there in ThreadPosix.m3. > > On 29 Dec 2008, at 10:55, Jay wrote: > >> >> Note that I've been avoiding touching "mainstream" or already >> existant platforms -- FreeBSD, LINUXLIBC6, *_DARWIN. >> >> Perhaps I should go ahead and cross that line, as my testability/ >> testing allows? >> >> Slightly linked question is if user threads should remain. >> They don't work, I believe on any platform, but I understand could >> easily be made to. >> >> - Jay >> >> ---------------------------------------- >>> From: jay.krell at cornell.edu >>> To: hosking at cs.purdue.edu; jkrell at elego.de >>> Date: Sun, 28 Dec 2008 23:49:25 +0000 >>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>> Subject: Re: [M3commit] CVS Update: cm3 >>> >>> >>> This one I can undo and still feel ok -- just push sem_t into >>> Utypes.i3 and expose it from a common Usem.i3. >>> There is only one sem_t in the system. >>> It is global. This change just makes it usually larger and more >>> aligned than necessary. >>> >>> >>> The danger would be if sem_t is ever embedded in something else OS- >>> defined, or if the OS ever returned a pointer to one that Modula-3 >>> code copied. >>> >>> >>> In general, I'm thinking either Utypes.i3 or some new Uinternal.i3 >>> or Usysdep.i3 or Utypes.i3 + Uconstants.i3 should be where most/all >>> system-dependent stuff. >>> Even existant Utypes.i3 have much redundancy -- all the ulong/ >>> ushort/int8/int16/int32/int64 types are always the same, just stuff >>> like nlink_t, mode_t, gid_t, uid_t, off_t vary. Though imho off_t >>> should always be INT64 or UINT64. >>> >>> >>> Usysdep.i3 seems best? >>> >>> >>> - Jay >>> >>> >>> ---------------------------------------- >>>> From: hosking at cs.purdue.edu >>>> To: jkrell at elego.de >>>> Date: Mon, 29 Dec 2008 09:50:37 +1100 >>>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>>> Subject: Re: [M3commit] CVS Update: cm3 >>>> >>>> This change makes me uneasy -- do you mean to say we have a uniform >>>> definition of sem_t when the different targets have different >>>> definitions? :-O >>>> >>>> On 28 Dec 2008, at 11:03, Jay Krell wrote: >>>> >>>>> CVSROOT: /usr/cvs >>>>> Changes by: jkrell at birch. 08/12/28 11:03:34 >>>>> >>>>> Modified files: >>>>> cm3/m3-libs/m3core/src/unix/Common/: m3makefile >>>>> cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile >>>>> cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile >>>>> Added files: >>>>> cm3/m3-libs/m3core/src/unix/Common/: Usem.i3 >>>>> Removed files: >>>>> cm3/m3-libs/m3core/src/unix/linux-common/: Usem.i3 >>>>> cm3/m3-libs/m3core/src/unix/openbsd-common/: Usem.i3 >>>>> >>>>> Log message: >>>>> another common header file -- however this bought by defining sem_t >>>>> to have the maximum size and alignment of any system; >>>>> Solaris's 48 byte 64bit aligned version >>>>> The CM3 code base has one static sem_t in the pthread code. >>>> > From jkrell at elego.de Mon Dec 29 05:43:28 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 5:43:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229044330.56C3D10D5DA6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 05:43:28 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3unix.h Log message: fix newlines From jkrell at elego.de Mon Dec 29 05:44:47 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 5:44:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229044447.AEF8B10D5DA6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 05:44:47 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uuio.i3 Log message: fix -- ssize_t in Cstddef and not in Utypes, at least not always From jkrell at elego.de Mon Dec 29 05:47:31 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 5:47:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229044731.74CFD10D5DA6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 05:47:31 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UdirC.c Log message: isolate cygwin (and possibly other) adjustments in one place; put back not caring about alignment on x86, problem really was I guess misalignment, not that the asssert was wrong; comments that while file size/offset should be 64bits, ino size doesn't matter much From jkrell at elego.de Mon Dec 29 05:49:49 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 5:49:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229044949.7DC9410D5DA6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 05:49:49 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Ustat.i3 Log message: use explicit uint16_t instead of 'funny' u_short' From jkrell at elego.de Mon Dec 29 05:53:37 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 5:53:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229045337.4088610D5DA6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 05:53:37 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Ustat.i3 Log message: use explicit uint16_t instead of 'funny' u_short' (maybe we will able to remove u_char, u_short, u_int, u_long, but not yet) From jkrell at elego.de Mon Dec 29 05:58:18 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 5:58:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229045818.B2D2D10D5DA6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 05:58:18 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Utypes.i3.cpp Log message: beware compiling with different context From jkrell at elego.de Mon Dec 29 07:43:18 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 7:43:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229064318.8902010D5C26@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 07:43:18 Modified files: cm3/m3-libs/m3core/src/unix/linux-common/: Utypes.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Utypes.i3 Log message: remove some unused types: rlim_t, nlink_t, mode_t, ino_t, id_t, dev_t From jkrell at elego.de Mon Dec 29 08:59:44 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 8:59:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229075944.9412410D5DA8@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 08:59:44 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/AMD64_LINUX/: 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/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 Log message: correct comment for current reality (for a while now): before: page size is machine-dependent ... after: page size used to be machine-dependent ... mildly lock in that all machines are byte addressable: AdrPerHeapPage = BytesPerHeapPage; LogAdrPerHeapPage = LogBytesPerHeapPage; rather than repeating the constants twice in a row. Consider locking this in much more via removing the second pair of lines and having RTAllocator just use the first pair. Or even, having just one line and computing the other by shifting. no "real" change From jkrell at elego.de Mon Dec 29 10:16:14 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 10:16:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229091614.676DC10D5D5E@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 10:16:14 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Usem.i3 Log message: fix newlines From jkrell at elego.de Mon Dec 29 11:06:23 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 11:06:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229100623.9E96410D5F0B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 11:06:23 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Udir.i3 Log message: telldir and seekdir are never used, so remove them, though they are easily portably declared From jkrell at elego.de Mon Dec 29 11:11:09 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 11:11:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229101109.85F6D10D461B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 11:11:09 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTCollector.m3 Log message: fix for pagesize=64K (or larger?) Specifically, apparently, threshold[0] would = 0, Behind() would return TRUE, and the first (?) allocation, here: C:\dev2\cm3.2\m3-libs\m3core\src\thread\WIN32\ThreadWin32.m3 threadMu := NEW(Mutex); <<< here self := CreateT(me); self.id := nextId; INC (nextId); mutex := NEW(MUTEX); condition := NEW(Condition); << NOT YET to here would lead to UnlockHeap calling Broadcast(condition), but condition is NULL, and access violate. From jkrell at elego.de Mon Dec 29 11:21:40 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 11:21:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229102140.C316110D461B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 11:21:40 Modified files: cm3/m3-libs/m3core/src/C/Common/: m3makefile Removed files: cm3/m3-libs/m3core/src/C/Common/: Cstdarg.i3 Cstdarg.m3 Log message: remove empty and unused module From jkrell at elego.de Mon Dec 29 11:23:41 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 11:23:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229102341.8302010D461B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 11:23:41 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: m3makefile cm3/m3-libs/m3core/src/runtime/WIN32/: RTOS.m3 m3makefile cm3/m3-libs/m3core/src/runtime/common/: RTOS.i3 cm3/m3-libs/m3core/src/unix/cygwin/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile Added files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTOSbrk.c RTOSmmap.c cm3/m3-libs/m3core/src/runtime/WIN32/: RTOSc.c Removed files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTOSbrk.m3 RTOSmmap.m3 cm3/m3-libs/m3core/src/unix/cygwin/: Umman.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Umman.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Umman.i3 Log message: Remove the only use of Umman.i3 in systems without user thread support. As a side effect, since one RTOS.GetMemory shall be rewritten in C, so shall they all. It would be nice if the <*external*> was not needed as long as the names were chosen right, and I avoided m3makefile tricks of only inserting <*external*> in one of the three implementations. Punt on writing the "entire" few lines of Win32 GetMemory in C, and just a smaller subset. The whole thing is not a big deal, but does it buy much or anything? As a bonus, fix Win32 "page size" so that there is no "rounding loss", noticed watching the allocations to see if the "simplification" resulted in much lost adjacency and hole production. In the sample of watching mklib be built, the second allocation is indeed no adjacent to the first, but allocations are adjacent thereafter. Adjacency is desirable because RTAllocater/Collecter builds data structures spanning the heap, including holes. The historic Win32 allocater reserved 64M address space up front, and then individual VirtualAlloc calls thereafter. Implementation here just calls VirtualAlloc. HeapAlloc and calloc should also be viable, and calloc is portable, but the allocations are large, and never freed, so maybe not. As a bonus, found RTCollector.i3 bug for pagesize=64K (or larger?) Also eliminate an unnecessary global in Win32/RTOS.m3. From jkrell at elego.de Mon Dec 29 11:32:07 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 11:32:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229103207.A936010D5DAA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 11:32:07 Modified files: cm3/m3-libs/m3core/src/runtime/NT386/: RTMachine.i3 Log message: grow Win32 page size to 64K so that nothing is lost when VirtualAlloc rounds up to 64K (forgot to check this in immediately before, but works ok either way) From jkrell at elego.de Mon Dec 29 11:50:28 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 11:50:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229105028.D715910D5DA6@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 11:50:28 Modified files: cm3/m3-libs/m3core/src/unix/cygwin/: Usocket.i3 Log message: a few mostly minor corrections to match the header, which nicely further matches linux-common and openbsd-openbsd From jkrell at elego.de Mon Dec 29 15:19:25 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 15:19:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229141925.9DDAD10D5C26@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 15:19:25 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: avoid using native backend when cross compiling -- this is why I mistakenly removed -fPIC from PPC_LINUX From jkrell at elego.de Mon Dec 29 15:39:17 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 15:39:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229143917.12D3110D5C26@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 15:39:17 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: PPC_LINUX Log message: put back -fPIC From jkrell at elego.de Mon Dec 29 21:09:42 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 21:09:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229200942.E1FCDB04044@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 21:09:42 Modified files: cm3/scripts/python/: pylib.py Log message: fix newlines From jkrell at elego.de Mon Dec 29 21:14:17 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 21:14:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229201417.13E19B04044@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 21:14:17 Modified files: cm3/m3-libs/m3core/src/unix/openbsd-common/: Usignal.i3 Log message: add SIGHUP, SIGSEGV, SIGPIPE, sigemptyset, so that it compiles From jkrell at elego.de Mon Dec 29 21:15:30 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 21:15:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229201530.3E420B04044@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 21:15:30 Modified files: cm3/m3-libs/m3core/src/unix/openbsd-common/: Usocket.i3 Log message: remove dead imports to fix warning, and uppercase SOL_SOCKET = 16_FFFF just to reduce diff with other very similar files From jkrell at elego.de Mon Dec 29 21:19:17 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 21:19:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229201917.8FCECB04044@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 21:19:17 Modified files: cm3/m3-libs/m3core/src/runtime/POSIX/: RTOSbrk.c RTOSmmap.c m3makefile Log message: Reference m3unix.h in such a way that bootstrap archives work. That is, #include "foo.h", not #include "..blahblah../foo.h" and add h_source("..blahblah../foo") to m3makefile. This causes ..blahblah../foo.h to be copied into the build directory. (Admittedly, copying files is often a waste.) Bootstrap archives, at least the way I create them, are one flat directory. From jkrell at elego.de Mon Dec 29 21:24:14 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 21:24:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229202414.5F6E7B04044@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 21:24:14 Modified files: cm3/m3-libs/m3core/src/unix/openbsd-common/: Unix.i3 Log message: trim a few unused imports that warn: short, pid_t; trim unused/nonexistant tell; and then trim unused import: long From jkrell at elego.de Mon Dec 29 21:33:44 2008 From: jkrell at elego.de (Jay Krell) Date: Mon, 29 Dec 2008 21:33:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081229203344.692E1B04044@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/29 21:33:44 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: OSConfigPosix.m3 cm3/m3-libs/libm3/src/random/: m3makefile cm3/m3-libs/m3core/src/: m3makefile cm3/m3-libs/m3core/src/C/Common/: m3makefile cm3/m3-libs/m3core/src/Csupport/: m3makefile cm3/m3-libs/m3core/src/float/: m3makefile cm3/m3-libs/m3core/src/runtime/: m3makefile cm3/m3-libs/m3core/src/runtime/common/: Compiler.tmpl cm3/m3-libs/m3core/src/time/POSIX/: m3makefile cm3/m3-libs/m3core/src/unix/: m3makefile cm3/m3-libs/m3core/src/unix/Common/: m3makefile m3unix.h cm3/m3-sys/m3cc/src/: m3makefile cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 cm3/scripts/python/: pylib.py Added files: cm3/m3-sys/cminstall/src/config-no-install/: I386_OPENBSD Log message: enough I386_OPENBSD support to build a bootstrap package, that builds on the target, and results in a cm3 that runs and correct errors out for lack of cm3.cfg, often enough to move development and testing to the target system (unless target system is terribly slow) restructure Target.m3 some: do separate switches on platforms with characteristics in common: big endian 64 bit Solaris SPARC add in a bunch of hypothetical, but reasonable platforms -- commented out perhaps not worthwhile add a bunch of comments, also perhaps not worthwhile (more code, more bugs: comments have to be checked and maintained for technical and grammatical/spelling correctness) add options like skipgcc, omitgcc to pylib.py From jkrell at elego.de Tue Dec 30 03:08:29 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 3:08:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230020829.4030510D5DDA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 03:08:28 Added files: cm3/m3-libs/m3core/src/C/I386_OPENBSD/: Csetjmp.i3 m3makefile Log message: forgot to add these (Freudian slip? This information is duplicated in Target.i3, not great imho..) From jkrell at elego.de Tue Dec 30 03:09:29 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 3:09:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230020929.EC18D904012@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 03:09:29 Modified files: cm3/scripts/python/: pylib.py Log message: add ability to sniff I386_OPENBSD for native builds (should be able to query the compiler, like cm3 -dump-host ?) From jkrell at elego.de Tue Dec 30 03:42:12 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 3:42:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230024212.DBFC010D5DDA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 03:42:12 Modified files: cm3/www/uploaded-archives/: update_download_index.sh Added files: cm3/www/uploaded-archives/: targets.txt Log message: use a list of targets from a separate file From jkrell at elego.de Tue Dec 30 03:43:30 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 3:43:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230024330.B27C110D5DDA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 03:43:30 Modified files: cm3/www/uploaded-archives/: targets.txt Log message: add NT386GNU From jkrell at elego.de Tue Dec 30 07:56:49 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 7:56:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230065649.BD7FC10D5D40@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 07:56:49 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosixC.c OSConfigPosix.m3 Log message: fix newlines From jkrell at elego.de Tue Dec 30 08:00:29 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 8:00:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230070029.A1A2410D5C41@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 08:00:29 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosix.i3 FilePosix.m3 FilePosixC.c m3makefile Added files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosixC.i3 Log message: put the C functions in their own interface, and other small change (e.g. typedef ptrdiff_t INTEGER instead of equivalent other statement) From jkrell at elego.de Tue Dec 30 09:57:56 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 9:57:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230085756.E706D10D5D9A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 09:57:56 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile m3unix.h Added files: cm3/m3-libs/m3core/src/unix/Common/: Uwaitpid.c Uwaitpid.i3 Log message: abandoned for now proposal for portable header-clone-free waitpid, will probably just fix the endian issue and leave the header cloning From jkrell at elego.de Tue Dec 30 09:58:33 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 9:58:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230085833.26D7210D5D9A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 09:58:33 Modified files: cm3/m3-libs/m3core/src/unix/Common/: m3makefile Log message: oops From jkrell at elego.de Tue Dec 30 10:24:21 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 10:24:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230092421.07A0A10D5ABB@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 10:24:21 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uwaitpid.c Uwaitpid.i3 Log message: comments to explain the endian-dependentness and fix newlines From jkrell at elego.de Tue Dec 30 11:05:58 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 11:05:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230100558.C12AA10D5ABB@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 11:05:58 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uwaitpid.c Uwaitpid.i3 Log message: Now that I understand better, provide a 'loophole' value. This should now be an easy replacement for the various Uexec users and that should be done shortly. From jkrell at elego.de Tue Dec 30 21:21:37 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 21:21:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230202137.DD49E904001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 21:21:37 Modified files: cm3/m3-libs/sysutils/src/POSIX/: SystemPosix.m3 Log message: remove unused variable, prior to larger changes From jkrell at elego.de Tue Dec 30 22:44:31 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 22:44:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230214431.E699110D4524@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 22:44:31 Modified files: cm3/m3-libs/sysutils/src/POSIX/: m3makefile Log message: safekeeping Uwaitpid work before other approach From jkrell at elego.de Tue Dec 30 22:44:54 2008 From: jkrell at elego.de (Jay Krell) Date: Tue, 30 Dec 2008 22:44:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230214454.F11E810D4524@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/30 22:44:54 Modified files: cm3/m3-libs/sysutils/src/POSIX/: m3makefile Log message: go back a version From jkrell at elego.de Wed Dec 31 00:49:10 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 0:49:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081230234910.71B0E904001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 00:49:10 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: ProcessPosixCommon.m3 cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.m3 cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 cm3/m3-libs/m3core/src/thread/WIN32/: WaitProcessCygwin.m3 cm3/m3-libs/m3core/src/unix/Common/: m3makefile cm3/m3-libs/m3core/src/unix/cygwin/: m3makefile cm3/m3-libs/m3core/src/unix/linux-common/: m3makefile cm3/m3-libs/m3core/src/unix/openbsd-common/: m3makefile cm3/m3-libs/sysutils/src/POSIX/: SystemPosix.m3 m3makefile Added files: cm3/m3-libs/m3core/src/: Uwaitpid.quake cm3/m3-libs/m3core/src/unix/Common/: Uexec.i3 cm3/m3-sys/cm3/src/: cm3root.txt Removed files: cm3/m3-libs/m3core/src/unix/Common/: Uwaitpid.c Uwaitpid.i3 cm3/m3-libs/m3core/src/unix/cygwin/: Uexec.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Uexec.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Uexec.i3 Log message: Replace Uexec.waitpid with new portable (C-wrapped) Uwaitpid. Thus removing its endian-dependent-ness and otherwise mostly header cloning-ness. (even C wrappers resemble header cloning, but in a simpler more portable way) Take care to use Uwaitpid in m3-libs/sysutils via copying, so that bootstrapping new sysutils against old m3core works. (Thus why Uwaitpid.{c,i3} deleted and replaced by Uwaitpid.quake). This very likely fixes a bug in {I386,AMD64}_DARWIN, but that is not confirmed, and could be fixed otherwise. This also very likely fixes a bug in some platforms that use linux-common or openbsd-common. Note that as long as children processes succeed, probably no bug. zero is zero, no matter little endian or big endian. And likely the only important point is if the value is zero or non-zero, so again ok. cm3root.txt: possible spec for a change to cm3 to "reduce external automation" From jkrell at elego.de Wed Dec 31 01:25:48 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 1:25:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231002548.B5C6010D5D23@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 01:25:48 Modified files: cm3/m3-libs/m3core/src/: Uwaitpid.quake Log message: fix newlines From jkrell at elego.de Wed Dec 31 01:26:48 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 1:26:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231002648.98CEE10D5D23@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 01:26:48 Modified files: cm3/m3-libs/m3core/src/: Uwaitpid.quake Log message: not all Utypes have uint8_t, uint16_t, define them locally From jkrell at elego.de Wed Dec 31 01:37:58 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 1:37:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231003803.1AD0B10D5E6C@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 01:37:57 Modified files: cm3/m3-libs/m3core/src/: Uwaitpid.quake Log message: more parens for clarity -- cast and then shift, though operator precedence probably makes this no difference, casts are very high precedence From jkrell at elego.de Wed Dec 31 11:03:11 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 11:03:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231100311.8B4ED10D5DA1@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 11:03:11 Modified files: cm3/m3-sys/windowsResources/src/: cm3-41-hack.c Log message: microoptimize and reformat From jkrell at elego.de Wed Dec 31 11:52:08 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 11:52:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231105208.9CF4710D5DDE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 11:52:08 Modified files: cm3/m3-comm/netobj/src/: netobj-ov.tmpl cm3/m3-comm/sharedobj/src/: sharedobj-ov.tmpl cm3/m3-libs/libm3/src/bundleintf/: bundle-ov.tmpl cm3/m3-ui/zeus/src/: m3zume-ov.tmpl cm3/m3-ui/juno-2/juno-app/src/: m3makefile Log message: Partly kinda sorta fix some cross build scenarios, without affecting native builds. It's a larger more general problem though. - BUILD_DIR does not necessarily equal HOST or TARGET, because of how I structured I386_CYGWIN to be a "configuration" where TARGET is still NT386. - a cross build can run the shipped binary anyway, and probably should (I didn't have the unshipped binaries around) - There should probably be automation to ensure all the tools are build. ie: do-cm3-tools or do-cm3-crosstools. ie: build just the needed packages, for the sniffed native platform. Cross builds have other problems. I keep hitting the following annoyances: ignoring foo/bar override when foo\bar already overridden override paths should either be canonicalized to one slash type or at least when there is a duplicate, canonicalize then and only complain if canonicals vary This is due to mixing I386_NT and I386_CYGWIN. Similarly the problem demonstrated regarding m3unix.h in Uwaitpid.quake. Perhaps the change I made to allow forward slashes on Win32 was not good, esp. due to its apparent inadequacy. The "lib" directory, specifically \cm3\lib\hand.obj is target..er, configuration dependent the gcc hand.obj cannot be directly linked by Visual C++, for reasons to do with libgcc lib should probably have "target" or "build_dir" under it and/or hand.obj specifically should be merged into m3core.lib The mentor quake code generally fails in cross environments, probably due to slashes. host=NT386 (GNU?), target=LINUXLIBC6 m3zume is access violating I'm also highly suspicious of all this "override" stuff. It clearly causes too much duplication and distribution of information. I shouldn't have to know the directory structure of my dependencies, and even if I do, I should be able to share that knowledge with their many other dependents. The "scripts" directory also figures this sort of stuff out automatically.. Being able to have multiple package stores is well and good. I'm not sure they need to ever be used in an "unshipped" form, but instead just use alternate roots and create new empty roots as needed. ? From jkrell at elego.de Wed Dec 31 11:55:08 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 11:55:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231105508.4EE0F10D5DDE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 11:55:08 Modified files: cm3/m3-libs/sysutils/src/POSIX/: m3makefile Log message: fix newlines From jkrell at elego.de Wed Dec 31 11:57:14 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 11:57:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231105714.24CF710D5DDE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 11:57:14 Added files: cm3/m3-sys/windowsResources/src/: m3overrides Log message: Add missing override to fix some builds. I'm highly suspicious of all this "override" stuff. It clearly causes too much duplication and distribution of information. I shouldn't have to know the directory structure of my dependencies, and even if I do, I should be able to share that knowledge with their many other dependents. The "scripts" directory also figures this sort of stuff out automatically.. Being able to have multiple package stores is well and good. I'm not sure they need to ever be used in an "unshipped" form, but instead just use alternate roots and create new empty roots as needed. ? From jkrell at elego.de Wed Dec 31 18:57:23 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 18:57:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231175723.9015810D5F00@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 18:57:23 Modified files: cm3/m3-comm/netobj/src/: netobj-ov.tmpl cm3/m3-comm/sharedobj/src/: sharedobj-ov.tmpl cm3/m3-libs/libm3/src/bundleintf/: bundle-ov.tmpl cm3/m3-ui/juno-2/juno-app/src/: m3makefile cm3/m3-ui/zeus/src/: m3zume-ov.tmpl Log message: This should leave native I386_CYGWIN builds working as they were -- TARGET != BUILD_DIR and HOST != BUILD_DIR, native builds should use BUILD_DIR From jkrell at elego.de Wed Dec 31 21:05:27 2008 From: jkrell at elego.de (Jay Krell) Date: Wed, 31 Dec 2008 21:05:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20081231200530.68A6E10D5F04@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 08/12/31 21:05:27 Modified files: cm3/m3-libs/m3core/src/thread/: m3makefile cm3/m3-libs/m3core/src/thread/Common/: SchedulerPosix.i3 m3makefile cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.m3 cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 m3makefile cm3/m3-libs/m3core/src/unix/cygwin/: Unix.i3 Added files: cm3/m3-libs/m3core/src/thread/: ThreadInternal.i3 ThreadPScheduler.m3 ThreadPWait.m3 Removed files: cm3/m3-libs/m3core/src/thread/WIN32/: WaitProcessCygwin.m3 WaitProcessWin32.m3 Log message: move code around with the following goals fold the three implementations of WaitProcess down to two minor, would not be done if it was the only point This is ThreadPWait.m3. remove stub SchedulerPosix from NT386 AND NT386GNU presumably nobody calls the NT386 version, so also (half) minor give NT386GNU the real implementation of SchedulerPosix This is more significant then, e.g. working versions of IOWait (aka select). This is ThreadPScheduler.m3, moved out of ThreadPThread.m3. Note that the name is open to debate. There is this general problem that "P" for posix means two very different things. It means posix user/alarm threads and posix kernel threads. (Note that Win32 generalizes select to work on more than just sockets... either completion ports or WaitForMultipleObjects I assume the generalized analog..) provide a /tiny/ abstraction for Posix waitpid users to provide their own yielding if necessary This used by WaitProcess. It potentially for sysutils also, but sysutils can't depend on m3core changes due to bootstrapping against older m3core. The next step is to factor out m3core/threads/m3makefile into m3core/thread.quake so that sysutils can share its decision as to if kernel threads are in use and therefore if waitpid yields. Essentially to copy m3core ThreadPWait plus the other one liner. If we could rely on newer m3core, then sysutils could just call SchedulerPosix.DoesWaitPidYield(). This may look scary but it is mainly only moving existing code around, and very small changes otherwise. Except for Cygwin which gets the significant improvement of a real SchedulerPosix. Since code was moved -- ThreadPThread.m3 split into three files, there was also a need for an interface so that code moved out of ThreadPThread could call back to private shared code there, and the other implementation in ThreadWin32. That is ThreadInternal.i3. It could be ThreadF.i3, but that would be unnecessarily exposed and worse, export a variable outside the package, which is a bad idea. Perhaps wrap up the variable in a function? Maybe. As well, ThreadF.i3 has three similar copies and this new content would be needed in two of them. Perhaps the three copies could be combined to one, with no-op stubs where functions don't make sense (as comments already indicate exist). If cygwin used pthreads, this wouldn't be needed at all. However, it is reasonable. Maybe go back and debug Cygwin pthreads again at some point... Maybe combine ThreadInternal.i3 and ThreadF.i3. F is "friend" -- aka expose internals to special people, not the public interface, but sometimes it is needed, thus "F" and "Internal" are synonyms and you should really never have both, but here they are. From jay.krell at cornell.edu Wed Dec 31 21:13:13 2008 From: jay.krell at cornell.edu (Jay) Date: Wed, 31 Dec 2008 20:13:13 +0000 Subject: [M3commit] FW: CVS Update: cm3 In-Reply-To: <20081231200530.68A6E10D5F04@birch.elegosoft.com> References: <20081231200530.68A6E10D5F04@birch.elegosoft.com> Message-ID: It seems some of these files are marked "executable". How to fix? I know, locally, chmod -x *, but so that that cvs upd gives you non-executable files? I'm searching the web but not finding it yet. - Jay> Date: Wed, 31 Dec 2008 21:05:27 +0000> To: m3commit at elegosoft.com> From: jkrell at elego.de> Subject: [M3commit] CVS Update: cm3> > CVSROOT: /usr/cvs> Changes by: jkrell at birch. 08/12/31 21:05:27> > Modified files:> cm3/m3-libs/m3core/src/thread/: m3makefile > cm3/m3-libs/m3core/src/thread/Common/: SchedulerPosix.i3 > m3makefile > cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.m3 > cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 m3makefile > cm3/m3-libs/m3core/src/unix/cygwin/: Unix.i3 > Added files:> cm3/m3-libs/m3core/src/thread/: ThreadInternal.i3 > ThreadPScheduler.m3 > ThreadPWait.m3 > Removed files:> cm3/m3-libs/m3core/src/thread/WIN32/: WaitProcessCygwin.m3 > WaitProcessWin32.m3 > > Log message:> move code around with the following goals> > fold the three implementations of WaitProcess down to two> minor, would not be done if it was the only point> This is ThreadPWait.m3.> > remove stub SchedulerPosix from NT386 AND NT386GNU> presumably nobody calls the NT386 version, so also (half) minor> > give NT386GNU the real implementation of SchedulerPosix> This is more significant then, e.g. working versions of IOWait (aka select).> This is ThreadPScheduler.m3, moved out of ThreadPThread.m3.> Note that the name is open to debate.> There is this general problem that "P" for posix means two very different things.> It means posix user/alarm threads and posix kernel threads.> (Note that Win32 generalizes select to work on more than just sockets...> either completion ports or WaitForMultipleObjects I assume the generalized analog..)> > provide a /tiny/ abstraction for Posix waitpid users to> provide their own yielding if necessary> This used by WaitProcess.> It potentially for sysutils also, but sysutils can't depend on m3core changes> due to bootstrapping against older m3core.> > The next step is to factor out m3core/threads/m3makefile into> m3core/thread.quake so that sysutils can share its decision as to> if kernel threads are in use and therefore if waitpid yields.> Essentially to copy m3core ThreadPWait plus the other one liner.> If we could rely on newer m3core, then sysutils could just call SchedulerPosix.DoesWaitPidYield().> > This may look scary but it is mainly only moving existing code around,> and very small changes otherwise.> Except for Cygwin which gets the significant improvement of a real SchedulerPosix.> > Since code was moved -- ThreadPThread.m3 split into three files, there> was also a need for an interface so that code moved out of ThreadPThread> could call back to private shared code there, and the other implementation> in ThreadWin32. That is ThreadInternal.i3.> It could be ThreadF.i3, but that would be unnecessarily exposed and worse,> export a variable outside the package, which is a bad idea.> Perhaps wrap up the variable in a function? Maybe.> As well, ThreadF.i3 has three similar copies and this new content would be> needed in two of them. Perhaps the three copies could be combined to one,> with no-op stubs where functions don't make sense (as comments already> indicate exist).> > If cygwin used pthreads, this wouldn't be needed at all.> However, it is reasonable.> Maybe go back and debug Cygwin pthreads again at some point...> Maybe combine ThreadInternal.i3 and ThreadF.i3.> F is "friend" -- aka expose internals to special people, not the> public interface, but sometimes it is needed, thus "F" and "Internal"> are synonyms and you should really never have both, but here they are.> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Dec 31 21:22:37 2008 From: jay.krell at cornell.edu (Jay) Date: Wed, 31 Dec 2008 20:22:37 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20081231200530.68A6E10D5F04@birch.elegosoft.com> References: <20081231200530.68A6E10D5F04@birch.elegosoft.com> Message-ID: Hm, maybe it doesn't matter? I have a bunch of executable source files. But still, seems wrong. I could try delete and re-add, but seems not good for so many files, only maybe if it had been the three new ones.. jay at ppca:/dev2/cm3/m3-libs/m3core$ ls -lR | grep "x " | grep -v ^dlrwxrwxrwx 1 jay jay 14 2008-12-30 17:33 libm3core.so -> libm3core.so.5-rwxr-xr-x 1 jay jay 1506111 2008-12-30 17:33 libm3core.so.5-rwxr-xr-x 1 jay jay 9206 2008-12-30 16:22 Uwaitpid.quake-rwxr-xr-x 1 jay jay 404 2008-12-28 16:07 Csignal.i3-rwxr-xr-x 1 jay jay 1318 2008-06-03 04:01 Cstdint.i3-rwxr-xr-x 1 jay jay 95 2008-11-11 05:41 Cstdio.i3-rwxr-xr-x 1 jay jay 2158 2008-11-11 05:41 Cstring.i3-rwxr-xr-x 1 jay jay 323 2008-11-12 03:35 Csetjmp.i3-rwxr-xr-x 1 jay jay 23 2008-11-11 06:27 m3makefile-rwxr-xr-x 1 jay jay 14 2008-11-11 05:57 m3makefile-rwxr-xr-x 1 jay jay 207 2008-11-11 20:27 Csetjmp.i3-rwxr-xr-x 1 jay jay 23 2008-11-11 06:27 m3makefile-rwxr-xr-x 1 jay jay 207 2008-11-11 20:27 Csetjmp.i3-rwxr-xr-x 1 jay jay 22 2008-11-11 06:27 m3makefile-rwxr-xr-x 1 jay jay 206 2008-11-11 20:27 Csetjmp.i3-rwxr-xr-x 1 jay jay 23 2008-11-11 06:27 m3makefile-rwxr-xr-x 1 jay jay 207 2008-11-11 20:27 Csetjmp.i3-rwxr-xr-x 1 jay jay 23 2008-11-11 06:27 m3makefile-rwxr-xr-x 1 jay jay 432 2008-05-24 20:08 dtoa.c-rwxr-xr-x 1 jay jay 70 2008-05-24 20:02 m3makefile-rwxr-xr-x 1 jay jay 432 2008-05-24 20:08 dtoa.c-rwxr-xr-x 1 jay jay 70 2008-05-24 20:02 m3makefile-rwxr-xr-x 1 jay jay 18 2008-12-28 03:48 dif1.txt etc. - Jay From: jay.krell at cornell.eduTo: m3commit at elegosoft.comSubject: FW: [M3commit] CVS Update: cm3Date: Wed, 31 Dec 2008 20:13:13 +0000 It seems some of these files are marked "executable".How to fix?I know, locally, chmod -x *, but so that that cvs upd gives you non-executable files?I'm searching the web but not finding it yet. - Jay> Date: Wed, 31 Dec 2008 21:05:27 +0000> To: m3commit at elegosoft.com> From: jkrell at elego.de> Subject: [M3commit] CVS Update: cm3> > CVSROOT: /usr/cvs> Changes by: jkrell at birch. 08/12/31 21:05:27> > Modified files:> cm3/m3-libs/m3core/src/thread/: m3makefile > cm3/m3-libs/m3core/src/thread/Common/: SchedulerPosix.i3 > m3makefile > cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.m3 > cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 > cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32.m3 m3makefile > cm3/m3-libs/m3core/src/unix/cygwin/: Unix.i3 > Added files:> cm3/m3-libs/m3core/src/thread/: ThreadInternal.i3 > ThreadPScheduler.m3 > ThreadPWait.m3 > Removed files:> cm3/m3-libs/m3core/src/thread/WIN32/: WaitProcessCygwin.m3 > WaitProcessWin32.m3 > > Log message:> move code around with the following goals> > fold the three implementations of WaitProcess down to two> minor, would not be done if it was the only point> This is ThreadPWait.m3.> > remove stub SchedulerPosix from NT386 AND NT386GNU> presumably nobody calls the NT386 version, so also (half) minor> > give NT386GNU the real implementation of SchedulerPosix> This is more significant then, e.g. working versions of IOWait (aka select).> This is ThreadPScheduler.m3, moved out of ThreadPThread.m3.> Note that the name is open to debate.> There is this general problem that "P" for posix means two very different things.> It means posix user/alarm threads and posix kernel threads.> (Note that Win32 generalizes select to work on more than just sockets...> either completion ports or WaitForMultipleObjects I assume the generalized analog..)> > provide a /tiny/ abstraction for Posix waitpid users to> provide their own yielding if necessary> This used by WaitProcess.> It potentially for sysutils also, but sysutils can't depend on m3core changes> due to bootstrapping against older m3core.> > The next step is to factor out m3core/threads/m3makefile into> m3core/thread.quake so that sysutils can share its decision as to> if kernel threads are in use and therefore if waitpid yields.> Essentially to copy m3core ThreadPWait plus the other one liner.> If we could rely on newer m3core, then sysutils could just call SchedulerPosix.DoesWaitPidYield().> > This may look scary but it is mainly only moving existing code around,> and very small changes otherwise.> Except for Cygwin which gets the significant improvement of a real SchedulerPosix.> > Since code was moved -- ThreadPThread.m3 split into three files, there> was also a need for an interface so that code moved out of ThreadPThread> could call back to private shared code there, and the other implementation> in ThreadWin32. That is ThreadInternal.i3.> It could be ThreadF.i3, but that would be unnecessarily exposed and worse,> export a variable outside the package, which is a bad idea.> Perhaps wrap up the variable in a function? Maybe.> As well, ThreadF.i3 has three similar copies and this new content would be> needed in two of them. Perhaps the three copies could be combined to one,> with no-op stubs where functions don't make sense (as comments already> indicate exist).> > If cygwin used pthreads, this wouldn't be needed at all.> However, it is reasonable.> Maybe go back and debug Cygwin pthreads again at some point...> Maybe combine ThreadInternal.i3 and ThreadF.i3.> F is "friend" -- aka expose internals to special people, not the> public interface, but sometimes it is needed, thus "F" and "Internal"> are synonyms and you should really never have both, but here they are.> -------------- next part -------------- An HTML attachment was scrubbed... URL: