From hosking at cs.purdue.edu Fri Jan 1 20:41:42 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 1 Jan 2010 14:41:42 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091230000021.6DA362474001@birch.elegosoft.com> References: <20091230000021.6DA362474001@birch.elegosoft.com> Message-ID: <7B80CC37-9E07-4A51-A8E7-473039FAF4F2@cs.purdue.edu> Huh? On 30 Dec 2009, at 01:00, Randy Coleburn wrote: > CVSROOT: /usr/cvs > Changes by: rcoleburn at birch. 09/12/30 01:00:21 > > Modified files: > cm3/m3-libs/libm3/src/: m3makefile > > Log message: > repair broken build process by commenting out the inclusion of "Types" folder because this folder is not in the source tree right now. -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 1 20:43:36 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 1 Jan 2010 14:43:36 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091230144007.081152474001@birch.elegosoft.com> References: <20091230144007.081152474001@birch.elegosoft.com> Message-ID: <21B2F22D-C1E9-46F2-8434-4CD78DCD7E96@cs.purdue.edu> That's a bug in m3tk scope management. Probably needs a ticket in the bugs database... On 30 Dec 2009, at 15:40, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/30 15:40:06 > > Modified files: > cm3/m3-libs/m3core/src/word/: Long.i3 Long.m3 Word.i3 Word.m3 > m3makefile > Added files: > cm3/m3-libs/m3core/src/word/: GenWord.ig GenWord.mg > Removed files: > cm3/m3-libs/m3core/src/word/: Word.ig Word.mg > > Log message: > go back to GenWord > the other front end (Olivetti m3-tk) > doesn't understand > INTERFACE Word = Word(WordRep) END Word. > but it does't understand > INTERFACE Word = GenWord(WordRep) END Word. -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 1 22:06:13 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 1 Jan 2010 16:06:13 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <7B80CC37-9E07-4A51-A8E7-473039FAF4F2@cs.purdue.edu> References: <20091230000021.6DA362474001@birch.elegosoft.com> <7B80CC37-9E07-4A51-A8E7-473039FAF4F2@cs.purdue.edu> Message-ID: <1ED6097C-6AE0-4DE6-A8E8-C035A934B67F@cs.purdue.edu> Oh, yes, of course. On 1 Jan 2010, at 14:41, Tony Hosking wrote: > Huh? > > On 30 Dec 2009, at 01:00, Randy Coleburn wrote: > >> CVSROOT: /usr/cvs >> Changes by: rcoleburn at birch. 09/12/30 01:00:21 >> >> Modified files: >> cm3/m3-libs/libm3/src/: m3makefile >> >> Log message: >> repair broken build process by commenting out the inclusion of "Types" folder because this folder is not in the source tree right now. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Sat Jan 2 22:31:49 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 2 Jan 2010 22:31:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100102213149.816072474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/02 22:31:49 Modified files: cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 cm3/m3-sys/m3front/src/exprs/: SetExpr.m3 Log message: Add more information to the error "set domain too large", admittedly fairly cryptic internal information. From jkrell at elego.de Sat Jan 2 22:40:42 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 2 Jan 2010 22:40:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100102214042.4A7CF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/02 22:40:42 Modified files: cm3/m3-sys/m3middle/src/: TInt.m3 Log message: a 64bit hosted compiler fails when targeting a 32bit platform due to the use of TYPE Regno = [-1 .. NRegs]; -1 is represented as Target.Int:4,{0xFF,0xFF,0xFF,0xFF,0,0,0,0} The problem is presumably that CheckSign doesn't like the trailing zeros. I believe the point of CheckSign(r.n:=4 to n:=8) is really for the case of n > r.n, i.e.: If you were to truncate 8:0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF to 4:0xFF,0xFF,0xFF,0x00 that would be an error (it probably fail earlier, when Target.Int doesn't fit in n = 4) CheckSign should always succeed when widening, when host integer is bigger than target integer. The for loops should already be empty for that case. From jkrell at elego.de Sat Jan 2 23:29:18 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 2 Jan 2010 23:29:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100102222918.498CC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/02 23:29:18 Modified files: cm3/m3-sys/m3middle/src/: Tag: release_branch_cm3_5_8 TInt.m3 Log message: from head: fix 64bit to 32bit cross compilation with regard converting the value -1 to a host integer From jkrell at elego.de Sun Jan 3 00:27:40 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 3 Jan 2010 0:27:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100102232741.0B760CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/03 00:27:40 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 cm3/scripts/python/: pylib.py cm3/m3-libs/m3core/src/: thread.quake cm3/m3-libs/m3core/src/C/PPC32_OPENBSD/: Csetjmp.i3 Log message: move all OpenBSD platforms to user threads PPC32_OPENBSD: fix warning in setjmp, clarify setjmp size/alignment, as doesn't like --32 From jkrell at elego.de Sun Jan 3 00:36:31 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 3 Jan 2010 0:36:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100102233631.7769A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/03 00:36:31 Removed files: cm3/doc/: add Log message: remove zero size file From hosking at cs.purdue.edu Sun Jan 3 21:55:22 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 3 Jan 2010 15:55:22 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100102214042.4A7CF2474001@birch.elegosoft.com> References: <20100102214042.4A7CF2474001@birch.elegosoft.com> Message-ID: But why is 64-bit checksign being used in the first place? Surely it should be using CheckSign for the target not the host? On 2 Jan 2010, at 22:40, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/02 22:40:42 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.m3 > > Log message: > a 64bit hosted compiler fails when targeting > a 32bit platform due to the use of > TYPE Regno = [-1 .. NRegs]; > > -1 is represented as Target.Int:4,{0xFF,0xFF,0xFF,0xFF,0,0,0,0} > The problem is presumably that CheckSign doesn't like > the trailing zeros. > > I believe the point of CheckSign(r.n:=4 to n:=8) is really > for the case of n > r.n, i.e.: > If you were to truncate > 8:0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF > to > 4:0xFF,0xFF,0xFF,0x00 > > that would be an error (it probably > fail earlier, when Target.Int doesn't > fit in n = 4) > > CheckSign should always succeed when widening, > when host integer is bigger than target integer. > > The for loops should already be empty for that case. -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at elego.de Sun Jan 3 22:36:04 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 3 Jan 2010 22:36:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100103213604.2D4662474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/03 22:36:04 Modified files: cm3/m3-sys/m3middle/src/: TInt.m3 Log message: A slightly cleaner version of Jay's fix. CheckSign should never be invoked with a desired precision greater than that of the target integer being checked. The only place this can occur is in ToInt when converting from a (smaller) target to a (larger) host integer. From jkrell at elego.de Mon Jan 4 03:18:57 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 4 Jan 2010 3:18:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100104021857.BF6182474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/04 03:18:57 Modified files: cm3/m3-sys/m3middle/src/: Tag: release_branch_cm3_5_8 TInt.m3 Log message: take Tony's version From jkrell at elego.de Mon Jan 4 12:13:22 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 4 Jan 2010 12:13:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100104111322.0B1F92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/04 12:13:22 Added files: cm3/m3-sys/cminstall/src/config-no-install/: PPC64.common PPC64_DARWIN Log message: initial config files for PPC64_DARWIN From jkrell at elego.de Mon Jan 4 12:29:20 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 4 Jan 2010 12:29:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100104112921.026912474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/04 12:29:20 Modified files: cm3/m3-libs/m3core/src/: platforms.quake Log message: add PPC64_DARWIN From jkrell at elego.de Mon Jan 4 12:30:30 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 4 Jan 2010 12:30:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100104113030.BC3162474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/04 12:30:30 Modified files: cm3/m3-libs/m3core/src/unix/: m3makefile Log message: add PPC64_DARWIN From jkrell at elego.de Mon Jan 4 13:24:51 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 4 Jan 2010 13:24:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100104122451.853742474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/04 13:24:51 Added files: cm3/m3-libs/m3core/src/C/PPC64_DARWIN/: Csetjmp.i3 m3makefile Log message: add PPC64_DARWIN From jkrell at elego.de Tue Jan 5 12:26:28 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 12:26:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105112628.811622474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 12:26:28 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: minor cleanup From jkrell at elego.de Tue Jan 5 12:44:29 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 12:44:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105114429.767182474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 12:44:29 Modified files: cm3/m3-libs/m3core/src/C/AIX386/: m3makefile cm3/m3-libs/m3core/src/C/ALPHA_OSF/: m3makefile cm3/m3-libs/m3core/src/C/AP3000/: m3makefile cm3/m3-libs/m3core/src/C/ARM/: m3makefile cm3/m3-libs/m3core/src/C/DS3100/: 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/HP300/: m3makefile cm3/m3-libs/m3core/src/C/HPPA/: m3makefile cm3/m3-libs/m3core/src/C/I386_DARWIN/: m3makefile cm3/m3-libs/m3core/src/C/IBMR2/: m3makefile cm3/m3-libs/m3core/src/C/IBMRT/: m3makefile cm3/m3-libs/m3core/src/C/IRIX5/: 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/NEXT/: m3makefile cm3/m3-libs/m3core/src/C/NT386/: m3makefile cm3/m3-libs/m3core/src/C/NetBSD2_i386/: m3makefile cm3/m3-libs/m3core/src/C/OKI/: m3makefile cm3/m3-libs/m3core/src/C/OS2/: m3makefile cm3/m3-libs/m3core/src/C/PPC_DARWIN/: m3makefile cm3/m3-libs/m3core/src/C/PPC_LINUX/: m3makefile cm3/m3-libs/m3core/src/C/SEQUENT/: m3makefile cm3/m3-libs/m3core/src/C/SOLgnu/: m3makefile cm3/m3-libs/m3core/src/C/SOLsun/: m3makefile cm3/m3-libs/m3core/src/C/SPARC/: m3makefile cm3/m3-libs/m3core/src/C/SPARC64_OPENBSD/: m3makefile cm3/m3-libs/m3core/src/C/SUN3/: m3makefile cm3/m3-libs/m3core/src/C/SUN386/: m3makefile cm3/m3-libs/m3core/src/C/UMAX/: m3makefile cm3/m3-libs/m3core/src/C/VAX/: m3makefile Removed files: cm3/m3-libs/m3core/src/C/AIX386/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/ALPHA_OSF/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/AP3000/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/ARM/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/DS3100/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/FreeBSD/: Cstdio.i3 Cstdio.m3 Cstring.i3 cm3/m3-libs/m3core/src/C/FreeBSD2/: Cstdio.i3 Cstdio.m3 Cstring.i3 cm3/m3-libs/m3core/src/C/FreeBSD3/: Cstdio.i3 Cstdio.m3 Cstring.i3 cm3/m3-libs/m3core/src/C/HP300/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/HPPA/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/IBMR2/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/IBMRT/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/IRIX5/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/LINUX/: Cstdio.i3 Cstdio.m3 Cstring.i3 cm3/m3-libs/m3core/src/C/LINUXELF/: Cstdio.i3 Cstdio.m3 Cstring.i3 cm3/m3-libs/m3core/src/C/LINUXLIBC6/: CsetjmpASM.s cm3/m3-libs/m3core/src/C/NEXT/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/OKI/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/OS2/: Cstdio.i3 Cstdio.m3 Cstring.i3 cm3/m3-libs/m3core/src/C/SEQUENT/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/SPARC/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/SUN3/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/SUN386/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/UMAX/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/VAX/: Cstdio.i3 Cstring.i3 Log message: reduce platform specific code to just Csetjmp.i3 (except OKI) From jkrell at elego.de Tue Jan 5 12:46:49 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 12:46:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105114649.C1C452474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 12:46:49 Removed files: cm3/m3-libs/m3core/src/C/FreeBSD/: CstdioC.c cm3/m3-libs/m3core/src/C/FreeBSD2/: CstdioC.c cm3/m3-libs/m3core/src/C/FreeBSD3/: CstdioC.c Log message: remove more (dead) platform specific code From jkrell at elego.de Tue Jan 5 13:00:53 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:00:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105120053.8C4082474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:00:53 Modified files: cm3/m3-libs/m3core/src/C/AIX386/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/ALPHA_OSF/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/AMD64_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/AP3000/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/ARM/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/DS3100/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/FreeBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/FreeBSD2/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/FreeBSD3/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/FreeBSD4/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/HP300/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/HPPA/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/I386_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/I386_OPENBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/IBMR2/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/IBMRT/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/IRIX5/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/LINUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/LINUXELF/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/LINUXLIBC6/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/MIPS64_OPENBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/NEXT/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/NT386/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/NetBSD2_i386/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/OKI/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/OS2/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/PPC_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/PPC_LINUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SEQUENT/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SOLgnu/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SOLsun/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SPARC/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SUN3/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SUN386/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/UMAX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/VAX/: Csetjmp.i3 Log message: remove all functions except for ulongjmp remove sigjmp_buf remove unused constants (still have JBLEN in some but we should remove those) From jkrell at elego.de Tue Jan 5 13:19:42 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:19:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105121942.4A75E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:19:42 Modified files: cm3/m3-libs/m3core/src/C/AMD64_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/AMD64_FREEBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/AMD64_LINUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/AMD64_NETBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/AMD64_OPENBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/ARM_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/FreeBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/FreeBSD2/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/FreeBSD3/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/FreeBSD4/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/I386_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/I386_INTERIX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/I386_OPENBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/IRIX5/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/LINUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/LINUXELF/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/LINUXLIBC6/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/MIPS64_OPENBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/NT386/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/NetBSD2_i386/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/OS2/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/PA32_HPUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/PA64_HPUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/PPC32_OPENBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/PPC64_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/PPC_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/PPC_LINUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SOLgnu/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SOLsun/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SPARC32_LINUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SPARC64_LINUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SPARC64_OPENBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SPARC64_SOLARIS/: Csetjmp.i3 Log message: some uniformity and reduction in Csetjmp.i3 remove all "JBLEN" constants don't leak out more identifiers where some platforms had jmp_buf = RECORD ARRAY opaque [0..n] of int END; and some had jmp_buf = ARRAY [0..n] of int; use ARRAY for all since it is "smaller" (in source/text) if there is a reason to favor the opaque record, then they should all use that imho make all arrays 0-based reduce some cases from sigjmp_buf to jmpbuf but for the most part that done here until I setup and run more machines From jkrell at elego.de Tue Jan 5 13:21:02 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:21:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105122102.AEC8ACC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:21:02 Modified files: cm3/m3-libs/m3core/src/C/I386_DARWIN/: Csetjmp.i3 Log message: make it a jmp_buf instead of a sigjmp_buf From jkrell at elego.de Tue Jan 5 13:21:35 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:21:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105122135.AEFA42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:21:35 Modified files: cm3/m3-libs/m3core/src/C/AMD64_DARWIN/: Csetjmp.i3 Log message: make it a jmp_buf instead of a sigjmp_buf From jkrell at elego.de Tue Jan 5 13:22:37 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:22:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105122237.964A1CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:22:37 Modified files: cm3/m3-libs/m3core/src/C/PPC_DARWIN/: Csetjmp.i3 Log message: make it a jmp_buf instead of a sigjmp_buf From jkrell at elego.de Tue Jan 5 13:25:33 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:25:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105122533.708E12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:25:33 Modified files: cm3/m3-libs/m3core/src/C/ARM_DARWIN/: Csetjmp.i3 Log message: remove incorrect comment and copy the expression from the official SDK From jkrell at elego.de Tue Jan 5 13:27:02 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:27:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105122702.A1E582474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:27:02 Modified files: cm3/m3-libs/m3core/src/C/SPARC64_SOLARIS/: Csetjmp.i3 Log message: use a zero-based array and decimal like the others From jkrell at elego.de Tue Jan 5 13:28:38 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:28:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105122838.A42462474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:28:38 Modified files: cm3/m3-libs/m3core/src/C/AMD64_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/NetBSD2_i386/: Csetjmp.i3 Log message: whitespace only From jkrell at elego.de Tue Jan 5 13:33:00 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:33:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105123300.D16A52474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:33:00 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.m3 Log message: copy from head: remove lock acquire/release from condition wait credit another reference for the algorithm add SetState calls to match pthread better handling of low resources assert that counters are actually booleans like pthread From jkrell at elego.de Tue Jan 5 13:34:48 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:34:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105123448.666772474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:34:48 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: use _setjmp instead of setjmp on all Solaris and Darwin platforms in fact, now, all platforms use _setjmp I foresee this might change on e.g. IA64_NT, AMD64_NT so leave the configurability (I386_NT prepends underscores to all identifiers) From jkrell at elego.de Tue Jan 5 14:08:53 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 14:08:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105130853.205B92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 14:08:53 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: reconcile with Csetjmp.i3 and some available systems including shrinking Darwin and Linux/x86 jmpbuf from sigjmpbuf leave NetBSD/x86 alone for now (no machine available) use "larger types" e.g. Address.size or Int32.size instead of Char.size to sort of mimic alignment/Csetjmp.i3, though alignment is set separately from size use decimal to mimic Csetjmp.i3 (and many but not all /usr/include/setjmp.h) From jkrell at elego.de Tue Jan 5 14:10:57 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 14:10:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105131057.879972474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 14:10:57 Modified files: cm3/m3-libs/m3core/src/C/PPC_LINUX/: Csetjmp.i3 Log message: comment about alignment: 16 is ideal, 4 is ok, we use 8 because we can't ask for 16 From wagner at elego.de Wed Jan 6 00:46:46 2010 From: wagner at elego.de (Olaf Wagner) Date: Wed, 6 Jan 2010 0:46:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105234647.33F292474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 10/01/06 00:46:46 Modified files: cm3/scripts/: Tag: release_branch_cm3_5_8 version Log message: 5.8.4 is past From hosking at elego.de Wed Jan 6 03:08:53 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 3:08:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106020854.070862474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 03:08:53 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: Format comments. From hosking at elego.de Wed Jan 6 03:26:31 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 3:26:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106022631.6BFB42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 03:26:31 Modified files: cm3/m3-sys/m3middle/src/: Target.i3 Log message: Format comment. From hosking at elego.de Wed Jan 6 08:34:38 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 8:34:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106073438.E0B2E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 08:34:38 Modified files: cm3/m3-sys/m3front/src/: m3makefile cm3/m3-sys/m3front/src/builtinTypes/: Int.i3 Int.m3 LInt.i3 LInt.m3 cm3/m3-sys/m3front/src/builtinWord/: WordAnd.i3 WordAnd.m3 WordDivide.i3 WordDivide.m3 WordExtract.i3 WordExtract.m3 WordGE.i3 WordGE.m3 WordGT.i3 WordGT.m3 WordInsert.i3 WordInsert.m3 WordLE.i3 WordLE.m3 WordLT.i3 WordLT.m3 WordMinus.i3 WordMinus.m3 WordMod.i3 WordMod.m3 WordModule.i3 WordModule.m3 WordNot.i3 WordNot.m3 WordOr.i3 WordOr.m3 WordPlus.i3 WordPlus.m3 WordRotate.i3 WordRotate.m3 WordShift.i3 WordShift.m3 WordTimes.i3 WordTimes.m3 WordXor.i3 WordXor.m3 m3makefile cm3/m3-sys/m3front/src/misc/: M3Front.m3 Added files: cm3/m3-sys/m3front/src/builtinWord/: GenAnd.ig GenAnd.mg GenDivide.ig GenDivide.mg GenExtract.ig GenExtract.mg GenGE.ig GenGE.mg GenGT.ig GenGT.mg GenInsert.ig GenInsert.mg GenLE.ig GenLE.mg GenLT.ig GenLT.mg GenMinus.ig GenMinus.mg GenMod.ig GenMod.mg GenModule.ig GenModule.mg GenNot.ig GenNot.mg GenOr.ig GenOr.mg GenPlus.ig GenPlus.mg GenRotate.ig GenRotate.mg GenShift.ig GenShift.mg GenTimes.ig GenTimes.mg GenXor.ig GenXor.mg LongAnd.i3 LongAnd.m3 LongDivide.i3 LongDivide.m3 LongExtract.i3 LongExtract.m3 LongGE.i3 LongGE.m3 LongGT.i3 LongGT.m3 LongInsert.i3 LongInsert.m3 LongLE.i3 LongLE.m3 LongLT.i3 LongLT.m3 LongMinus.i3 LongMinus.m3 LongMod.i3 LongMod.m3 LongModule.i3 LongModule.m3 LongNot.i3 LongNot.m3 LongOr.i3 LongOr.m3 LongPlus.i3 LongPlus.m3 LongRotate.i3 LongRotate.m3 LongShift.i3 LongShift.m3 LongTimes.i3 LongTimes.m3 LongXor.i3 LongXor.m3 Removed files: cm3/m3-sys/m3front/src/builtinLong/: LongAnd.i3 LongAnd.m3 LongDivide.i3 LongDivide.m3 LongExtract.i3 LongExtract.m3 LongGE.i3 LongGE.m3 LongGT.i3 LongGT.m3 LongInsert.i3 LongInsert.m3 LongLE.i3 LongLE.m3 LongLT.i3 LongLT.m3 LongMinus.i3 LongMinus.m3 LongMod.i3 LongMod.m3 LongModule.i3 LongModule.m3 LongNot.i3 LongNot.m3 LongOr.i3 LongOr.m3 LongPlus.i3 LongPlus.m3 LongRotate.i3 LongRotate.m3 LongShift.i3 LongShift.m3 LongTimes.i3 LongTimes.m3 LongXor.i3 LongXor.m3 m3makefile Log message: Fold implementation of builtin Word and Long interfaces into generics, instantiated for representations using INTEGER and LONGINT. From jkrell at elego.de Wed Jan 6 12:36:38 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 12:36:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106113638.E696B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 12:36:38 Modified files: cm3/m3-libs/m3core/src/C/AMD64_NETBSD/: Csetjmp.i3 Log message: shrink jmp_buf to correct size From jkrell at elego.de Wed Jan 6 12:37:30 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 12:37:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106113730.ED9CACC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 12:37:30 Modified files: cm3/m3-libs/m3core/src/C/NetBSD2_i386/: Csetjmp.i3 Log message: comments only: remove incorrect comment and put a comment that makes it sound like we know what we are doing here and that the code is correct, which I believe is true From jkrell at elego.de Wed Jan 6 12:50:31 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 12:50:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106115031.E64582474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 12:50:31 Modified files: cm3/m3-libs/m3core/src/C/AMD64_FREEBSD/: Csetjmp.i3 Log message: comments only: put a comment that makes it sound like we know what we are doing here and that the code is correct, which I believe is true From jkrell at elego.de Wed Jan 6 13:39:26 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 13:39:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106123926.B9FC42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 13:39:26 Modified files: cm3/m3-libs/m3core/src/unix/solaris-2-x/: m3makefile Log message: remove duplicate Usignal.i3 From jkrell at elego.de Wed Jan 6 14:08:56 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 14:08:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106130857.C4A382474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 14:08:56 Modified files: cm3/m3-libs/m3core/src/runtime/NT386GNU/: RTMachine.i3 Log message: remove unused import From jkrell at elego.de Wed Jan 6 14:13:17 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 14:13:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106131317.A57402474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 14:13:17 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.i3 cm3/m3-libs/m3core/src/unix/cygwin/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/darwin-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/freebsd-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/hpux-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/interix-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/netbsd-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/solaris-common/: Usysdep.i3 Log message: MaxPathLen is apparently 1024 everywhere, except Irix 4096 For now remove it from Usysdep. Maybe in future we exactly undo this. Maybe in future all MaxPathLen uses are in C. Maybe in future all MaxPathLen users allow any length (heap allocated). Maybe in future we raise it to 4096 everywhere (I believe cygwin actually supports 32K) From jkrell at elego.de Wed Jan 6 15:50:35 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 15:50:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106145036.172B92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 15:50:35 Modified files: cm3/scripts/python/: pylib.py Log message: SOLgnu etc. bootstrap archives don't use PIC due to special case in config files and passing PIC flag to assembler here makes cm3 crash, because the base doesn't get added to the offset... From jkrell at elego.de Wed Jan 6 16:34:16 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 16:34:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106153416.D48512474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 16:34:16 Modified files: cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: m3makefile cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/novm/: m3makefile cm3/m3-libs/m3core/src/runtime/DS3100/: m3makefile cm3/m3-libs/m3core/src/runtime/HP300/: m3makefile cm3/m3-libs/m3core/src/runtime/NEXT/: m3makefile cm3/m3-libs/m3core/src/runtime/SUN3/: m3makefile cm3/m3-libs/m3core/src/runtime/UMAX/: m3makefile Removed files: cm3/m3-libs/m3core/src/runtime/AIX386/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: RTSignal.m3 cm3/m3-libs/m3core/src/runtime/AP3000/: RTSignal.m3 m3makefile setjmp.asm setjmp.o cm3/m3-libs/m3core/src/runtime/ARM/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/ARM_DARWIN/: m3makefile cm3/m3-libs/m3core/src/runtime/DS3100/: RTSignal.m3 cm3/m3-libs/m3core/src/runtime/FreeBSD/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/FreeBSD2/: COPYRIGHT RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/FreeBSD3/: COPYRIGHT RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/HP300/: RTSignal.m3 cm3/m3-libs/m3core/src/runtime/HPPA/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/IBMR2/: RTSignal.m3 m3makefile notest_longjmp.o notest_longjmp.s cm3/m3-libs/m3core/src/runtime/IBMRT/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/IRIX5/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/LINUX/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/LINUXELF/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/NEXT/: RTSignal.m3 cm3/m3-libs/m3core/src/runtime/OKI/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/OS2/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/SEQUENT/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/SPARC/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/SUN3/: RTSignal.m3 cm3/m3-libs/m3core/src/runtime/SUN386/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/UMAX/: RTSignal.m3 cm3/m3-libs/m3core/src/runtime/VAX/: RTSignal.m3 m3makefile Log message: delete various per-platform files on dead/dormant platforms esp. since most platforms use one portable version now anyway also delete .s/.o files not listed in m3makefile also delete empty ARM_DARWIN/m3makefile for now keep FreeBSD4/NetBSD RTSignal.m3 until machine available for testing From jkrell at elego.de Wed Jan 6 16:35:15 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 16:35:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106153515.B02342474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 16:35:15 Removed files: cm3/m3-libs/m3core/src/runtime/VAX/: setjmp.s Log message: delete more From hosking at elego.de Wed Jan 6 18:49:02 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 18:49:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106174902.B3E39CC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 18:49:02 Modified files: cm3/m3-libs/m3core/src/atomic/: Atomic.ig m3makefile Added files: cm3/m3-libs/m3core/src/atomic/: AtomicRep.ig atomic.tmpl Removed files: cm3/m3-libs/m3core/src/atomic/: AtomicAddress.i3 AtomicBoolean.i3 AtomicChar.i3 AtomicInteger.i3 AtomicLongint.i3 AtomicRefany.i3 AtomicWideChar.i3 AtomicWord.i3 Log message: Return to using a template to generate the variants of Atomic.ig. (Sorry Jay, I'd forgotten that we can precisely control visibility of these things...) From hosking at elego.de Wed Jan 6 19:00:47 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 19:00:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106180047.6CCDA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 19:00:47 Modified files: cm3/m3-libs/m3core/src/word/: m3makefile Log message: Representation interfaces should be hidden. From hosking at elego.de Wed Jan 6 19:43:12 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 19:43:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106184312.BEACD2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 19:43:12 Modified files: cm3/m3-sys/m3front/src/builtinWord/: GenAnd.mg GenDivide.mg GenGE.mg GenGT.mg GenLE.mg GenLT.mg GenMinus.mg GenMod.mg GenOr.mg GenTimes.mg GenXor.mg m3makefile Added files: cm3/m3-sys/m3front/src/builtinWord/: word.tmpl Removed files: cm3/m3-sys/m3front/src/builtinWord/: LongAnd.i3 LongAnd.m3 LongDivide.i3 LongDivide.m3 LongExtract.i3 LongExtract.m3 LongGE.i3 LongGE.m3 LongGT.i3 LongGT.m3 LongInsert.i3 LongInsert.m3 LongLE.i3 LongLE.m3 LongLT.i3 LongLT.m3 LongMinus.i3 LongMinus.m3 LongMod.i3 LongMod.m3 LongModule.i3 LongModule.m3 LongNot.i3 LongNot.m3 LongOr.i3 LongOr.m3 LongPlus.i3 LongPlus.m3 LongRotate.i3 LongRotate.m3 LongShift.i3 LongShift.m3 LongTimes.i3 LongTimes.m3 LongXor.i3 LongXor.m3 WordAnd.i3 WordAnd.m3 WordDivide.i3 WordDivide.m3 WordExtract.i3 WordExtract.m3 WordGE.i3 WordGE.m3 WordGT.i3 WordGT.m3 WordInsert.i3 WordInsert.m3 WordLE.i3 WordLE.m3 WordLT.i3 WordLT.m3 WordMinus.i3 WordMinus.m3 WordMod.i3 WordMod.m3 WordModule.i3 WordModule.m3 WordNot.i3 WordNot.m3 WordOr.i3 WordOr.m3 WordPlus.i3 WordPlus.m3 WordRotate.i3 WordRotate.m3 WordShift.i3 WordShift.m3 WordTimes.i3 WordTimes.m3 WordXor.i3 WordXor.m3 Log message: Generate the variants using a template. From hosking at elego.de Wed Jan 6 21:22:19 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 21:22:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106202219.D03C9CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 21:22:19 Modified files: cm3/m3-sys/m3front/src/builtinTypes/: Int.i3 Int.m3 LInt.i3 LInt.m3 cm3/m3-sys/m3front/src/builtinWord/: GenAnd.mg GenDivide.mg GenExtract.mg GenGE.mg GenGT.mg GenInsert.mg GenLE.mg GenLT.mg GenMinus.mg GenMod.mg GenModule.mg GenNot.mg GenOr.mg GenPlus.mg GenRotate.mg GenShift.mg GenTimes.mg GenXor.mg Log message: Forgot to commit the extensions to Int/LInt for generic expansions. From hosking at elego.de Wed Jan 6 21:40:20 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 21:40:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106204020.6D3B7CC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 21:40:20 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: Add a few more constants. From hosking at elego.de Wed Jan 6 22:34:03 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 22:34:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106213404.04EAA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 22:34:03 Modified files: cm3/m3-libs/m3core/src/atomic/: Atomic.ig atomic.tmpl m3makefile Removed files: cm3/m3-libs/m3core/src/atomic/: AtomicRep.ig Log message: Simplify the implementation in the compiler by omitting hidden Rep fun and games. From hosking at elego.de Thu Jan 7 16:19:43 2010 From: hosking at elego.de (Antony Hosking) Date: Thu, 7 Jan 2010 16:19:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100107151944.0CDB6CC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/07 16:19:43 Modified files: cm3/m3-libs/m3core/src/word/: m3makefile Log message: Make WordRep and LongRep visible to stubgen and other tools. From hosking at elego.de Thu Jan 7 21:42:58 2010 From: hosking at elego.de (Antony Hosking) Date: Thu, 7 Jan 2010 21:42:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100107204258.C1FD72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/07 21:42:58 Modified files: cm3/m3-sys/m3front/src/builtinTypes/: Int.i3 Int.m3 LInt.i3 LInt.m3 cm3/m3-sys/m3front/src/builtinWord/: GenAnd.ig GenAnd.mg GenDivide.ig GenDivide.mg GenExtract.ig GenExtract.mg GenGE.ig GenGE.mg GenGT.ig GenGT.mg GenInsert.ig GenInsert.mg GenLE.ig GenLE.mg GenLT.ig GenLT.mg GenMinus.ig GenMinus.mg GenMod.ig GenMod.mg GenModule.mg GenNot.ig GenNot.mg GenOr.ig GenOr.mg GenPlus.ig GenPlus.mg GenRotate.ig GenRotate.mg GenShift.ig GenShift.mg GenTimes.ig GenTimes.mg GenXor.ig GenXor.mg Log message: A cleaner solution to determining representation CG type information. From hosking at elego.de Fri Jan 8 17:06:48 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 8 Jan 2010 17:06:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100108160648.E10242474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/08 17:06:48 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Dec.m3 Inc.m3 Log message: Fix bounds checking on INC/DEC. This was incorrectly implemented to allow success for: VAR v: CARDINAL := LAST(INTEGER); BEGIN INC(v) END; because it did not check for integer increment wrapping to an illegal CARDINAL value. From hosking at elego.de Fri Jan 8 18:59:12 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 8 Jan 2010 18:59:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100108175912.531E02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/08 18:59:12 Modified files: cm3/m3-libs/libm3/src/rw/: IO.i3 IO.m3 Log message: Implement PutLongInt, GetLongInt. From hosking at elego.de Fri Jan 8 22:06:20 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 8 Jan 2010 22:06:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100108210620.983A42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/08 22:06:20 Modified files: cm3/m3-libs/m3core/src/atomic/: Atomic.ig Log message: Corrections and adjustments to match C1x stdatomic compare and swap. From jkrell at elego.de Sat Jan 9 09:44:03 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 9 Jan 2010 9:44:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100109084404.2BACA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/09 09:44:03 Modified files: cm3/m3-comm/events/src/: Tag: branch_feature_longint_offset EventHandle.i3 EventPort.m3 EventRd.m3 EventStubLib.m3 EventWr.m3 cm3/m3-comm/netobj/src/netobjrt/: Tag: branch_feature_longint_offset StubLib.m3 VoucherStubs.m3 cm3/m3-comm/rdwr/src/: Tag: branch_feature_longint_offset RdWrPipe.m3 SimpleMsgRW.m3 TeeWr.m3 cm3/m3-comm/tcp/src/common/: Tag: branch_feature_longint_offset ConnMsgRW.m3 ConnRW.m3 cm3/m3-db/smalldb/src/: Tag: branch_feature_longint_offset OSSupportWIN32.m3 SmallDB.i3 SmallDB.m3 cm3/m3-libs/libbuf/src/: Tag: branch_feature_longint_offset Buf.m3 cm3/m3-libs/libm3/src/os/Common/: Tag: branch_feature_longint_offset File.i3 RegularFile.i3 cm3/m3-libs/libm3/src/os/POSIX/: Tag: branch_feature_longint_offset FilePosix.m3 cm3/m3-libs/libm3/src/os/WIN32/: Tag: branch_feature_longint_offset FileWin32.m3 cm3/m3-libs/libm3/src/rw/: Tag: branch_feature_longint_offset AutoFlushWr.m3 FileRd.m3 FileWr.m3 NullRd.m3 NullWr.m3 Rd.i3 Rd.m3 RdClass.i3 RdCopy.i3 RdCopy.m3 RdUtils.i3 RdUtils.m3 TextRd.m3 TextWr.m3 UnsafeWr.i3 Wr.i3 Wr.m3 WrClass.i3 cm3/m3-libs/libm3/src/sx/: Tag: branch_feature_longint_offset Sx.m3 cm3/m3-libs/slisp/src/: Tag: branch_feature_longint_offset SLisp.m3 cm3/m3-libs/sysutils/src/: Tag: branch_feature_longint_offset ConnectRdWr.m3 cm3/m3-obliq/obliqlibm3/src/: Tag: branch_feature_longint_offset ObLibM3.m3 cm3/m3-sys/cm3/src/: Tag: branch_feature_longint_offset WebFile.m3 cm3/m3-sys/cm3ide/src/misc/: Tag: branch_feature_longint_offset LineWr.m3 cm3/m3-sys/cm3ide/src/nodes/: Tag: branch_feature_longint_offset Type.m3 cm3/m3-sys/cm3ide/src/utils/: Tag: branch_feature_longint_offset Buf.m3 cm3/m3-sys/fix_nl/src/: Tag: branch_feature_longint_offset Main.m3 cm3/m3-sys/libdump/src/: Tag: branch_feature_longint_offset Main.m3 cm3/m3-sys/m3front/src/builtinOps/: Tag: branch_feature_longint_offset Dec.m3 Max.m3 Min.m3 cm3/m3-sys/m3front/src/exprs/: Tag: branch_feature_longint_offset AddExpr.m3 CompareExpr.m3 DivExpr.m3 ModExpr.m3 MultiplyExpr.m3 SubtractExpr.m3 cm3/m3-sys/m3front/src/types/: Tag: branch_feature_longint_offset Type.m3 cm3/m3-sys/m3quake/src/: Tag: branch_feature_longint_offset QScanner.m3 cm3/m3-sys/m3scanner/src/: Tag: branch_feature_longint_offset M3Scanner.m3 cm3/m3-sys/mklib/src/: Tag: branch_feature_longint_offset Main.m3 cm3/m3-tools/cmpdir/src/: Tag: branch_feature_longint_offset Main.m3 cm3/m3-tools/dirfp/src/: Tag: branch_feature_longint_offset Main.m3 cm3/m3-tools/m3bundle/src/: Tag: branch_feature_longint_offset m3bundle.m3 cm3/m3-tools/m3scan/src/: Tag: branch_feature_longint_offset M3Scanner.m3 cm3/m3-tools/m3tk/src/files/Common/: Tag: branch_feature_longint_offset M3DirFindFile.m3 cm3/m3-tools/m3tohtml/src/: Tag: branch_feature_longint_offset DBRd.m3 MarkUp.m3 cm3/m3-tools/rehearsecode/src/: Tag: branch_feature_longint_offset RehearseCode.m3 cm3/m3-ui/codeview/src/: Tag: branch_feature_longint_offset CodeView.m3 cm3/m3-ui/formsedit/src/: Tag: branch_feature_longint_offset FormsEditVBT.m3 cm3/m3-ui/formsvbt/src/: Tag: branch_feature_longint_offset FVRuntime.m3 Manpage.m3 cm3/m3-ui/juno-2/juno-app/src/: Tag: branch_feature_longint_offset Editor.m3 Source.m3 cm3/m3-ui/juno-2/juno-compiler/src/: Tag: branch_feature_longint_offset JunoLex.m3 cm3/m3-ui/mgkit/src/: Tag: branch_feature_longint_offset MGRd.m3 cm3/m3-ui/vbtkit/src/etext/: Tag: branch_feature_longint_offset MTextUnit.m3 TextPortClass.m3 TypescriptVBT.m3 cm3/m3-ui/vbtkit/src/mtext/: Tag: branch_feature_longint_offset MTextRd.m3 cm3/m3-ui/vbtkit/src/vtext/: Tag: branch_feature_longint_offset VTRd.m3 cm3/m3-www/http/src/: Tag: branch_feature_longint_offset HTTP.m3 Log message: one version of 64bit file size support, in a branch features of this version: compiler supports assignment INTEGER to LONGINT compiler supports various mixed operations FOR loop in compiler not changed, but should be compiler doesn't quite get assignability correct ramifications: no need for VAL(expr, LONGINT) sprinkled everywhere except for a few, due to compiler not quite right need for ORD sprinkled because don't support LONGINT to INTEGER There are many bits to decide and this is just combination. Also, this only has the support for Windows, not Posix. And the Windows support isn't "real" in that the compiler makes LONGINT only 32bits, and the few places that get file sizes from the underlying system, still truncate to 32bits. However, this diff is "mostly real", given the "decision bits" it has made. And one can consider this file list useful, depending on where we end up. From hosking at elego.de Sat Jan 9 23:05:05 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 9 Jan 2010 23:05:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100109220505.B30EC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/09 23:05:05 Modified files: cm3/m3-sys/m3cc/gcc/gcc/m3cg/: m3cg.h parse.c Log message: First cut rework of support for atomic primitives as documented in Atomic.ig. From hosking at elego.de Sat Jan 9 23:10:13 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 9 Jan 2010 23:10:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100109221013.AB8E62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/09 23:10:13 Modified files: cm3/m3-sys/m3front/src/misc/: M3Front.m3 Log message: Forgot to add extra parameter to Initialize function for Word/Long. From hosking at elego.de Sat Jan 9 23:11:44 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 9 Jan 2010 23:11:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100109221144.7CACC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/09 23:11:44 Modified files: cm3/m3-sys/m3front/src/misc/: Token.m3 Log message: Drop CAS/CASP. From hosking at elego.de Sun Jan 10 06:12:06 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 10 Jan 2010 6:12:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110051206.C6C792474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/10 06:12:06 Modified files: cm3/m3-sys/m3front/src/exprs/: AddExpr.m3 Log message: Adjust bounds to be different than the type's bounds only if both sum bounds are known exactly. From hosking at elego.de Sun Jan 10 06:12:18 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 10 Jan 2010 6:12:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110051218.2F3C42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/10 06:12:18 Modified files: cm3/m3-sys/m3front/src/exprs/: SubtractExpr.m3 Log message: Adjust bounds to be different than the type's bounds only if both sum bounds are known exactly. From hosking at elego.de Sun Jan 10 06:16:05 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 10 Jan 2010 6:16:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110051605.9041B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/10 06:16:05 Modified files: cm3/m3-sys/m3front/src/exprs/: CheckExpr.m3 Log message: Comparisons should be performed on the signed type of the expression. From hosking at elego.de Sun Jan 10 06:24:44 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 10 Jan 2010 6:24:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110052445.26E762474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/10 06:24:44 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Inc.m3 Log message: Need to used appropriate signed type (Integer or Longint) for operation and range checks. From hosking at elego.de Sun Jan 10 06:26:45 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 10 Jan 2010 6:26:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110052645.EC4142474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/10 06:26:45 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Dec.m3 Log message: Need to used appropriate signed type (Integer or Longint) for operation and range checks. From hosking at elego.de Sun Jan 10 07:54:48 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 10 Jan 2010 7:54:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110065448.C0B692474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/10 07:54:48 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Last.m3 Log message: Let's be super-careful here and avoid CGType. From hosking at elego.de Sun Jan 10 07:57:13 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 10 Jan 2010 7:57:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110065714.13EF22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/10 07:57:13 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Last.m3 Log message: Oops. Fix typo. From hosking at elego.de Sun Jan 10 07:57:34 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 10 Jan 2010 7:57:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110065734.CFC5B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/10 07:57:34 Modified files: cm3/m3-sys/m3front/src/builtinOps/: First.m3 Log message: Let's be super-careful here and avoid CGType. From jkrell at elego.de Sun Jan 10 11:45:16 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 10 Jan 2010 11:45:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110104516.A0E532474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/10 11:45:16 Modified files: cm3/m3-sys/m3front/src/builtinOps/: BuiltinOps.m3 m3makefile cm3/m3-sys/m3front/src/misc/: CG.i3 CG.m3 Log message: finish removing cas/casp, in order to fix this problem: *** *** runtime error: *** An array subscript was out of range. *** file "..\src\misc\Scanner.m3", line 351 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x12f774 0x49c8e2 NoteReserved + 0x44 in ..\src\misc\Scanner.m3 0x12f7ac 0x4cb247 Define + 0xf9 in ..\src\values\Procedure.m3 0x12f7d4 0x517b7b Initialize + 0xd5 in ..\src\builtinOps\Cas.m3 0x12f7e8 0x4b0320 Initialize + 0x30 in ..\src\builtinOps\BuiltinOps.m3 0x12f804 0x499341 Initialize + 0x9a in ..\src\misc\M3Front.m3 0x12f834 0x498f81 ParseImports + 0x151 in ..\src\misc\M3Front.m3 0x12f860 0x40a6eb Pass0_CheckImports + 0xa4 in ..\src\Builder.m3 0x12f8ac 0x409e87 RunM3 + 0x215 in ..\src\Builder.m3 0x12f8e8 0x40862c PushOneM3 + 0x10a in ..\src\Builder.m3 0x12f918 0x4084f9 CompileM3 + 0x21d in ..\src\Builder.m3 ......... ......... ... more frames ... From jkrell at elego.de Sun Jan 10 11:46:36 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 10 Jan 2010 11:46:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110104636.2C3AB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/10 11:46:36 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Dec.m3 Log message: make DEC decrement instead of increment From jkrell at elego.de Sun Jan 10 11:50:00 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 10 Jan 2010 11:50:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110105001.08B8E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/10 11:50:00 Removed files: cm3/m3-sys/m3front/src/builtinOps/: Cas.i3 Cas.m3 CasP.i3 CasP.m3 Log message: really, finish removing cas/casp From hosking at elego.de Mon Jan 11 19:19:12 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 19:19:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111181912.6B2642474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 19:19:12 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Ord.m3 Log message: Rework so that ORD always returns the underlying type of its argument. Thus ORD(LONGINT) returns LONGINT. From hosking at elego.de Mon Jan 11 19:20:07 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 19:20:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111182007.D2C522474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 19:20:07 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Val.m3 Log message: Rework to allow arbitrary conversions (range checked of course) to/from LONGINT/INTEGER. From hosking at elego.de Mon Jan 11 19:28:44 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 19:28:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111182844.D7C432474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 19:28:44 Modified files: cm3/doc/reference/: typeops.html Log message: Fix definitions of ORD and VAL to match current implementation. From hosking at elego.de Mon Jan 11 19:31:20 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 19:31:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111183120.D6CD62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 19:31:20 Modified files: cm3/doc/reference/: conventions.html Log message: Also fix example that uses ORD to match its actual definition. From hosking at elego.de Mon Jan 11 19:32:51 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 19:32:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111183251.13CB92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 19:32:51 Modified files: cm3/doc/reference/complete/: m3-defn-complete.tex Log message: Fix definitions of ORD and VAL to match current implementation. From hosking at elego.de Mon Jan 11 19:34:04 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 19:34:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111183404.A69E92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 19:34:04 Modified files: cm3/doc/reference/complete/: m3-defn-complete.ps Log message: Regenerate Postscript. From hosking at elego.de Mon Jan 11 19:34:26 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 19:34:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111183426.D8EF82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 19:34:26 Added files: cm3/doc/reference/complete/: m3-defn-complete.pdf Log message: Let's have PDF as well. From hosking at elego.de Mon Jan 11 20:19:16 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:19:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111191916.618872474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:19:16 Modified files: cm3/m3-libs/m3core/src/convert/: Convert.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 20:23:48 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:23:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111192348.4B9382474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:23:48 Modified files: cm3/m3-sys/m3cggen/src/: Main.m3 Log message: Reconcile with new M3CG_Binary.Op. From hosking at elego.de Mon Jan 11 20:26:03 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:26:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111192603.B97172474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:26:03 Modified files: cm3/m3-libs/libm3/src/fmtlex/: Fmt.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 20:26:20 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:26:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111192620.E40D62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:26:20 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FSPosix.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 20:26:34 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:26:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111192634.C34D32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:26:34 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosix.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 20:26:49 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:26:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111192649.16A7B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:26:49 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: SocketPosix.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 20:31:49 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:31:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111193149.8D5932474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:31:49 Modified files: cm3/m3-tools/m3tk/src/target/: M3CBackEnd_C.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 20:42:33 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:42:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111194233.0A7C42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:42:33 Modified files: cm3/m3-sys/m3middle/src/: TInt.m3 Log message: Need support for precision conversions under new VAL/ORD. From hosking at elego.de Mon Jan 11 20:44:00 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:44:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111194400.A25DA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:44:00 Modified files: cm3/m3-tools/m3tk/src/target/: M3CBackEnd_C.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 20:44:15 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:44:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111194415.D3A4B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:44:15 Modified files: cm3/m3-tools/m3tk/src/target/: M3CBackEnd_Int.mg Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 20:54:02 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:54:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111195402.457802474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:54:02 Modified files: cm3/m3-tools/cvsup/suplib/src/: TokScan.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 21:05:39 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 21:05:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111200539.64F3D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 21:05:39 Modified files: cm3/m3-tools/cvsup/suplib/src/: FileAttr.m3 RCSFile.m3 RsyncFile.m3 UnixMisc.m3 cm3/m3-tools/cvsup/suplib/src/dev_t_posix/: DevT.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 21:38:30 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 21:38:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111203830.6A3562474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 21:38:30 Modified files: cm3/doc/reference/: typeops.html Log message: Typeset T as tt. From hosking at elego.de Mon Jan 11 23:04:48 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 23:04:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111220449.003432474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 23:04:48 Modified files: cm3/m3-sys/m3middle/src/: M3CG.i3 M3CG.m3 M3CG_BinRd.m3 M3CG_BinWr.m3 M3CG_Binary.i3 M3CG_Check.m3 M3CG_Ops.i3 M3CG_Rd.m3 M3CG_Wr.m3 Target.i3 Log message: Rework atomics to allow targeting of atomic ops like those of C1x . From jkrell at elego.de Tue Jan 12 11:20:39 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 12 Jan 2010 11:20:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100112102039.C3F672474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/12 11:20:39 Modified files: cm3/m3-db/stable/src/: LogManager.m3 cm3/m3-libs/libbuf/src/: Buf.m3 cm3/m3-libs/libm3/src/os/Common/: File.i3 cm3/m3-libs/libm3/src/os/POSIX/: FSPosix.m3 FilePosix.m3 SocketPosix.m3 cm3/m3-libs/libm3/src/os/WIN32/: FSWin32.m3 FileWin32.m3 LazyConsole.m3 cm3/m3-libs/libm3/src/rw/: FileRd.m3 FileWr.m3 cm3/m3-sys/cm3/src/: WebFile.m3 cm3/m3-sys/cm3ide/src/utils/: Buf.m3 cm3/m3-sys/fix_nl/src/: Main.m3 cm3/m3-sys/m3quake/src/: QScanner.m3 cm3/m3-sys/mklib/src/: Main.m3 cm3/m3-tools/cmpdir/src/: Main.m3 cm3/m3-tools/dirfp/src/: Main.m3 cm3/m3-tools/m3tohtml/src/: DBRd.m3 Log message: Change File.i3/Status.size from CARDINAL to [0L..LAST(LONGINT)]. (Notice that some code checks if it is < 0, though don't confuse that with <= 0.) Leave rd/wr essentially unchanged. This is probably enough to fix the exception when browsing to a directory with large files. Not that much/any code can read/write such files on 32bit system -- all the direct users of File.i3 appear to read the entire file into memory. From jay.krell at cornell.edu Tue Jan 12 11:23:24 2010 From: jay.krell at cornell.edu (Jay K) Date: Tue, 12 Jan 2010 10:23:24 +0000 Subject: [M3commit] Change File.i3/Status.size from CARDINAL to [0L..LAST(LONGINT)]. In-Reply-To: <20100112102039.C3F672474001@birch.elegosoft.com> References: <20100112102039.C3F672474001@birch.elegosoft.com> Message-ID: diff attached (cvs is lame..) - Jay > Date: Tue, 12 Jan 2010 11:20:39 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/12 11:20:39 > > Modified files: > cm3/m3-db/stable/src/: LogManager.m3 > cm3/m3-libs/libbuf/src/: Buf.m3 > cm3/m3-libs/libm3/src/os/Common/: File.i3 > cm3/m3-libs/libm3/src/os/POSIX/: FSPosix.m3 FilePosix.m3 > SocketPosix.m3 > cm3/m3-libs/libm3/src/os/WIN32/: FSWin32.m3 FileWin32.m3 > LazyConsole.m3 > cm3/m3-libs/libm3/src/rw/: FileRd.m3 FileWr.m3 > cm3/m3-sys/cm3/src/: WebFile.m3 > cm3/m3-sys/cm3ide/src/utils/: Buf.m3 > cm3/m3-sys/fix_nl/src/: Main.m3 > cm3/m3-sys/m3quake/src/: QScanner.m3 > cm3/m3-sys/mklib/src/: Main.m3 > cm3/m3-tools/cmpdir/src/: Main.m3 > cm3/m3-tools/dirfp/src/: Main.m3 > cm3/m3-tools/m3tohtml/src/: DBRd.m3 > > Log message: > Change File.i3/Status.size from CARDINAL to [0L..LAST(LONGINT)]. > (Notice that some code checks if it is < 0, though don't > confuse that with <= 0.) > Leave rd/wr essentially unchanged. > This is probably enough to fix the exception when browsing to a directory with large files. > Not that much/any code can read/write such files on 32bit system -- all the direct users of File.i3 > appear to read the entire file into memory. > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 2.txt URL: From jkrell at elego.de Tue Jan 12 12:16:59 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 12 Jan 2010 12:16:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100112111659.4207E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/12 12:16:59 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: add portable possible functions for implementing overflow checking of add/sub/mult of int, int64, uint, uint64 From jkrell at elego.de Tue Jan 12 18:23:12 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 12 Jan 2010 18:23:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100112172312.20D6C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/12 18:23:12 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: comments From jkrell at elego.de Tue Jan 12 18:29:19 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 12 Jan 2010 18:29:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100112172920.05DFA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/12 18:29:19 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: use min/max from limits.h From jkrell at elego.de Tue Jan 12 18:31:31 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 12 Jan 2010 18:31:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100112173131.76A542474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/12 18:31:31 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: use BOOL for clarify From hosking at cs.purdue.edu Tue Jan 12 19:18:27 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 12 Jan 2010 13:18:27 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100112111659.4207E2474001@birch.elegosoft.com> References: <20100112111659.4207E2474001@birch.elegosoft.com> Message-ID: <11F12316-4C80-41C3-AAF5-6F4D5E1F14BC@cs.purdue.edu> Do we really want to do this via compilation and out-of-line functions? Surely we would prefer to implement the FloatMode interface to catch hardware traps... I haven't looked at the details but that seems to be the intent... On 12 Jan 2010, at 12:16, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/12 12:16:59 > > Modified files: > cm3/m3-libs/m3core/src/Csupport/Common/: hand.c > > Log message: > add portable possible functions for implementing overflow checking of add/sub/mult of int, int64, uint, uint64 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Jan 12 19:47:44 2010 From: jay.krell at cornell.edu (Jay K) Date: Tue, 12 Jan 2010 18:47:44 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <11F12316-4C80-41C3-AAF5-6F4D5E1F14BC@cs.purdue.edu> References: <20100112111659.4207E2474001@birch.elegosoft.com>, <11F12316-4C80-41C3-AAF5-6F4D5E1F14BC@cs.purdue.edu> Message-ID: What hardware traps? Sure, maybe integer divide by zero. Unlikely I think for integer overflow. I agree out of line inefficient. Probably want "check the carry flag" generated inline, in whatever machine-specific way that is done, may or may not require extra work in m3cg. I might try this soon though, where a command line option (for now) uses function calls and raises exceptions. My slightly refined thinking is that the generate code will look like: a := b + c * d; Foo() d := a + b * c; Bar() overflow = 0; a = add(b, mult(c, d), &overflow); if (overflow) Raise... Foo(); overflow = 0; a = add(a, mult(b, c), &overflow); if (overflow) Raise... That is -- the overflow flag need only be checked "occasionally", such as before any function call, maybe at the start of any loop. Or at the very least, if a statement contains no function calls, only at the end of the statement, not after evaluating each term in an expression. Once overflow occurs, there's little requirement on how the statement proceeds. Though divide by zero shouldn't result. Probably if an expression contains any division, check overflow at each step. ? But maybe "check the overflow flag" is easy enough and right surely far more efficient. - Jay ________________________________ > From: hosking at cs.purdue.edu > Date: Tue, 12 Jan 2010 13:18:27 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > > > Do we really want to do this via compilation and out-of-line functions? Surely we would prefer to implement the FloatMode interface to catch hardware traps... I haven't looked at the details but that seems to be the intent... > > > > On 12 Jan 2010, at 12:16, Jay Krell wrote: > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/12 12:16:59 > > Modified files: > cm3/m3-libs/m3core/src/Csupport/Common/: hand.c > > Log message: > add portable possible functions for implementing overflow checking of add/sub/mult of int, int64, uint, uint64 > From jay.krell at cornell.edu Tue Jan 12 20:17:18 2010 From: jay.krell at cornell.edu (Jay K) Date: Tue, 12 Jan 2010 19:17:18 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100112111659.4207E2474001@birch.elegosoft.com>, , <11F12316-4C80-41C3-AAF5-6F4D5E1F14BC@cs.purdue.edu>, Message-ID: further clarification: We should be able to inject these functions as inlines at the start of any module, in terms of the gcc backend. That is something we might want to explore a bit in general. - Jay ---------------------------------------- > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu; jkrell at elego.de > Date: Tue, 12 Jan 2010 18:47:44 +0000 > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > > What hardware traps? > > Sure, maybe integer divide by zero. > > > Unlikely I think for integer overflow. > I agree out of line inefficient. > Probably want "check the carry flag" generated inline, > in whatever machine-specific way that is done, may > or may not require extra work in m3cg. > > > I might try this soon though, where a command line option (for now) > uses function calls and raises exceptions. > My slightly refined thinking is that the generate code will look like: > > > a := b + c * d; > Foo() > d := a + b * c; > Bar() > > > overflow = 0; > a = add(b, mult(c, d), &overflow); > if (overflow) Raise... > Foo(); > overflow = 0; > a = add(a, mult(b, c), &overflow); > if (overflow) Raise... > > > That is -- the overflow flag need only be checked "occasionally", such as before any function call, maybe at the start of any loop. > Or at the very least, if a statement contains no function calls, only at the end of the statement, not after evaluating each term in an expression. > > > Once overflow occurs, there's little requirement on how the statement proceeds. Though divide by zero shouldn't result. Probably if an expression contains any division, check overflow at each step. > ? > > > But maybe "check the overflow flag" is easy enough and right surely far more efficient. > > > > - Jay > > > > ________________________________ >> From: hosking at cs.purdue.edu >> Date: Tue, 12 Jan 2010 13:18:27 -0500 >> To: jkrell at elego.de >> CC: m3commit at elegosoft.com >> Subject: Re: [M3commit] CVS Update: cm3 >> >> >> >> Do we really want to do this via compilation and out-of-line functions? Surely we would prefer to implement the FloatMode interface to catch hardware traps... I haven't looked at the details but that seems to be the intent... >> >> >> >> On 12 Jan 2010, at 12:16, Jay Krell wrote: >> >> CVSROOT: /usr/cvs >> Changes by: jkrell at birch. 10/01/12 12:16:59 >> >> Modified files: >> cm3/m3-libs/m3core/src/Csupport/Common/: hand.c >> >> Log message: >> add portable possible functions for implementing overflow checking of add/sub/mult of int, int64, uint, uint64 >> From hosking at cs.purdue.edu Tue Jan 12 20:39:06 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 12 Jan 2010 14:39:06 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100112111659.4207E2474001@birch.elegosoft.com>, <11F12316-4C80-41C3-AAF5-6F4D5E1F14BC@cs.purdue.edu> Message-ID: <65E71272-AEF8-4D3F-82EC-C96FC18BE87E@cs.purdue.edu> The MIPS for example has overflow traps on signed arithmetic. SPARC has tagged arithmetic that causes an overflow trap. x86 probably needs explicit test of the condition codes -- sigh! That's why C is silent about integer arithmetic overflow... because Intel can't support it via traps... On 12 Jan 2010, at 13:47, Jay K wrote: > > What hardware traps? > > Sure, maybe integer divide by zero. > > > Unlikely I think for integer overflow. > I agree out of line inefficient. > Probably want "check the carry flag" generated inline, > in whatever machine-specific way that is done, may > or may not require extra work in m3cg. > > > I might try this soon though, where a command line option (for now) > uses function calls and raises exceptions. > My slightly refined thinking is that the generate code will look like: > > > a := b + c * d; > Foo() > d := a + b * c; > Bar() > > > overflow = 0; > a = add(b, mult(c, d), &overflow); > if (overflow) Raise... > Foo(); > overflow = 0; > a = add(a, mult(b, c), &overflow); > if (overflow) Raise... > > > That is -- the overflow flag need only be checked "occasionally", such as before any function call, maybe at the start of any loop. > Or at the very least, if a statement contains no function calls, only at the end of the statement, not after evaluating each term in an expression. > > > Once overflow occurs, there's little requirement on how the statement proceeds. Though divide by zero shouldn't result. Probably if an expression contains any division, check overflow at each step. > ? > > > But maybe "check the overflow flag" is easy enough and right surely far more efficient. > > > > - Jay > > > > ________________________________ >> From: hosking at cs.purdue.edu >> Date: Tue, 12 Jan 2010 13:18:27 -0500 >> To: jkrell at elego.de >> CC: m3commit at elegosoft.com >> Subject: Re: [M3commit] CVS Update: cm3 >> >> >> >> Do we really want to do this via compilation and out-of-line functions? Surely we would prefer to implement the FloatMode interface to catch hardware traps... I haven't looked at the details but that seems to be the intent... >> >> >> >> On 12 Jan 2010, at 12:16, Jay Krell wrote: >> >> CVSROOT: /usr/cvs >> Changes by: jkrell at birch. 10/01/12 12:16:59 >> >> Modified files: >> cm3/m3-libs/m3core/src/Csupport/Common/: hand.c >> >> Log message: >> add portable possible functions for implementing overflow checking of add/sub/mult of int, int64, uint, uint64 >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcoleburn at elego.de Wed Jan 13 02:34:52 2010 From: rcoleburn at elego.de (Randy Coleburn) Date: Wed, 13 Jan 2010 2:34:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100113013452.7A2222474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 10/01/13 02:34:52 Modified files: cm3/scripts/dev/windows/: do-cm3.cmd Log message: repair multiple bugs in "if defined xxx if exist %xxx% del %xxx%" construct From jkrell at elego.de Wed Jan 13 23:03:05 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 13 Jan 2010 23:03:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100113220305.4DE8C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/13 23:03:05 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: parens and a fix, but not really working on this right now From jkrell at elego.de Wed Jan 13 23:06:47 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 13 Jan 2010 23:06:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100113220647.7213D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/13 23:06:47 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: fix gcc warning about overflow, and then msc warning about negating an unsigned value From jkrell at elego.de Wed Jan 13 23:10:13 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 13 Jan 2010 23:10:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100113221013.740C82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/13 23:10:13 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: more cumbersome version From rcoleburn at elego.de Thu Jan 14 03:03:50 2010 From: rcoleburn at elego.de (Randy Coleburn) Date: Thu, 14 Jan 2010 3:03:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114020350.D33932474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 10/01/14 03:03:50 Modified files: cm3/scripts/dev/windows/: do-cm3.cmd Log message: 01/13/2010, R.Coleburn, add "-skip" directive. Force argument keywords to be prefixed by "-". From rcoleburn at elego.de Thu Jan 14 04:22:06 2010 From: rcoleburn at elego.de (Randy Coleburn) Date: Thu, 14 Jan 2010 4:22:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114032206.B91A12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 10/01/14 04:22:06 Modified files: cm3/scripts/dev/windows/: RCC_upgradeCM3.cmd Log message: 01/13/2010, R.Coleburn, skip m3core, libm3, and mklib in 1st phase; using revised do-cm3.cmd. Force argument keywords to be prefixed by "-". Pass thru control args to do-cm3.cmd. Add -all argument keyword. From jkrell at elego.de Thu Jan 14 10:53:55 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 10:53:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114095355.814D62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 10:53:55 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Tag: release_branch_cm3_5_8 BuiltinOps.m3 m3makefile cm3/m3-sys/m3front/src/misc/: Tag: release_branch_cm3_5_8 CG.i3 CG.m3 Token.m3 Removed files: cm3/m3-sys/m3front/src/builtinOps/: Tag: release_branch_cm3_5_8 Cas.i3 Cas.m3 CasP.i3 CasP.m3 Log message: partial merge from head: remove cas/casp (compare and swap, compare and swap predicate (boolean return)) From jkrell at elego.de Thu Jan 14 11:45:36 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 11:45:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114104536.4BAB62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 11:45:36 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 Log message: add convenience functions: NE, GT, GE add constants: Ten, MinS32, MaxS32, MinS64, MAXS64, MinU32, MaxU32, MinU64, MaxU64 S is Signed, U is Unsigned (M is for Minus, which seems like a misnomer, it should be N for negative?, minus is an operator (verb??, "to minus" sounds wrong), negative is an adjective) From jkrell at elego.de Thu Jan 14 11:45:58 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 11:45:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114104558.CC54C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 11:45:58 Modified files: cm3/m3-sys/m3middle/src/: Target.i3 Log message: initialize Int.n := 0 From jkrell at elego.de Thu Jan 14 11:47:07 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 11:47:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114104709.077632474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 11:47:07 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: terser From jkrell at elego.de Thu Jan 14 11:47:38 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 11:47:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114104740.05F422474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 11:47:38 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: comment only (minus vs. negative, but not so verbose as previous checkin comment!) From jkrell at elego.de Thu Jan 14 11:49:55 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 11:49:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114104955.A73872474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 11:49:55 Modified files: cm3/m3-sys/m3middle/src/: Target.i3 Log message: initialize Int.n := 1, 0 appears not legal From jkrell at elego.de Thu Jan 14 12:11:42 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 12:11:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114111142.BE1282474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 12:11:42 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 Log message: imm > -16_81 is more clearly stated as imm >= -16_80, right? > -129 vs. >= -128 From jkrell at elego.de Thu Jan 14 12:20:16 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 12:20:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114112016.49D6B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 12:20:16 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: add 8bit and 16bit constants too From jkrell at elego.de Thu Jan 14 12:28:45 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 12:28:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114112845.789B62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 12:28:45 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 Log message: add ToText, small wrapper around ToChars From jkrell at elego.de Thu Jan 14 12:29:18 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 12:29:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114112918.A09942474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 12:29:18 Modified files: cm3/m3-sys/m3middle/src/: m3makefile Log message: fix newlines From jkrell at elego.de Thu Jan 14 13:33:42 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 13:33:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114123342.98F412474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 13:33:42 Modified files: cm3/m3-libs/m3core/src/convert/: Tag: release_branch_cm3_5_8 Convert.m3 cm3/m3-libs/libm3/src/fmtlex/: Tag: release_branch_cm3_5_8 Fmt.m3 cm3/m3-sys/m3front/src/builtinOps/: Tag: release_branch_cm3_5_8 Val.m3 Ord.m3 cm3/m3-tools/m3tk/src/target/: Tag: release_branch_cm3_5_8 M3CBackEnd_Int.mg M3CBackEnd_C.m3 Log message: copy LONGINT changes from head From jay.krell at cornell.edu Thu Jan 14 13:36:25 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 14 Jan 2010 12:36:25 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100114123342.98F412474001@birch.elegosoft.com> References: <20100114123342.98F412474001@birch.elegosoft.com> Message-ID: In the continuing series of: cvs/cvsweb is so lame, it is way too difficult to see what any change is, diffs attached, hopefully they match the checkin.. - Jay > Date: Thu, 14 Jan 2010 13:33:42 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/14 13:33:42 > > Modified files: > cm3/m3-libs/m3core/src/convert/: Tag: release_branch_cm3_5_8 > Convert.m3 > cm3/m3-libs/libm3/src/fmtlex/: Tag: release_branch_cm3_5_8 > Fmt.m3 > cm3/m3-sys/m3front/src/builtinOps/: Tag: release_branch_cm3_5_8 > Val.m3 Ord.m3 > cm3/m3-tools/m3tk/src/target/: Tag: release_branch_cm3_5_8 > M3CBackEnd_Int.mg M3CBackEnd_C.m3 > > Log message: > copy LONGINT changes from head > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 1.txt URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 2.txt URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 3.txt URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 4.txt URL: From jay.krell at cornell.edu Thu Jan 14 13:37:45 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 14 Jan 2010 12:37:45 +0000 Subject: [M3commit] longint changes to release branch In-Reply-To: References: <20100114123342.98F412474001@birch.elegosoft.com>, Message-ID: Also, I'm slightly guessing here as to what should go to release. - Jay From: jay.krell at cornell.edu To: m3commit at elegosoft.com; m3devel at elegosoft.com Date: Thu, 14 Jan 2010 12:36:25 +0000 Subject: Re: [M3devel] [M3commit] CVS Update: cm3 In the continuing series of: cvs/cvsweb is so lame, it is way too difficult to see what any change is, diffs attached, hopefully they match the checkin.. - Jay > Date: Thu, 14 Jan 2010 13:33:42 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/14 13:33:42 > > Modified files: > cm3/m3-libs/m3core/src/convert/: Tag: release_branch_cm3_5_8 > Convert.m3 > cm3/m3-libs/libm3/src/fmtlex/: Tag: release_branch_cm3_5_8 > Fmt.m3 > cm3/m3-sys/m3front/src/builtinOps/: Tag: release_branch_cm3_5_8 > Val.m3 Ord.m3 > cm3/m3-tools/m3tk/src/target/: Tag: release_branch_cm3_5_8 > M3CBackEnd_Int.mg M3CBackEnd_C.m3 > > Log message: > copy LONGINT changes from head > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Thu Jan 14 13:44:28 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 13:44:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114124428.2A2532474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 13:44:28 Modified files: cm3/doc/reference/: Tag: release_branch_cm3_5_8 typeops.html Log message: copy ord/val/longint documentation change from head From jkrell at elego.de Thu Jan 14 13:48:15 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 13:48:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114124815.313932474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 13:48:15 Modified files: cm3/doc/reference/: Tag: release_branch_cm3_5_8 conventions.html cm3/doc/reference/complete/: Tag: release_branch_cm3_5_8 m3-defn-complete.ps m3-defn-complete.tex Added files: cm3/doc/reference/complete/: Tag: release_branch_cm3_5_8 m3-defn-complete.pdf Log message: copy documentation updates from head, mostly regarding LONGINT/ORD/VAL From jkrell at elego.de Thu Jan 14 13:50:47 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 13:50:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114125048.05EA32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 13:50:47 Removed files: cm3/doc/: Tag: release_branch_cm3_5_8 add Log message: remove zero length file that surely isn't needed here From hosking at cs.purdue.edu Thu Jan 14 14:49:46 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 14 Jan 2010 08:49:46 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100114104536.4BAB62474001@birch.elegosoft.com> References: <20100114104536.4BAB62474001@birch.elegosoft.com> Message-ID: <89A2020C-968A-4592-AD81-2DF160B19833@cs.purdue.edu> I'm not sure I buy all of these. I'll have to take a look. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 14 Jan 2010, at 11:45, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/14 11:45:36 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > add convenience functions: NE, GT, GE > add constants: Ten, MinS32, MaxS32, MinS64, MAXS64, MinU32, MaxU32, MinU64, > MaxU64 > S is Signed, U is Unsigned (M is for Minus, which seems like > a misnomer, it should be N for negative?, minus is an operator (verb??, > "to minus" sounds wrong), negative is an adjective) -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Jan 14 14:50:58 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 14 Jan 2010 08:50:58 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100114112016.49D6B2474001@birch.elegosoft.com> References: <20100114112016.49D6B2474001@birch.elegosoft.com> Message-ID: <9D8FDD3C-FB5B-44CF-A71E-51FD0AD14548@cs.purdue.edu> You should not need these at all. What's going on here? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 14 Jan 2010, at 12:20, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/14 12:20:16 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 > > Log message: > add 8bit and 16bit constants too -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Jan 14 14:50:14 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 14 Jan 2010 08:50:14 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100114104955.A73872474001@birch.elegosoft.com> References: <20100114104955.A73872474001@birch.elegosoft.com> Message-ID: <9CA0F0B8-1760-40D5-9137-8F47433FE32C@cs.purdue.edu> What are you trying to achieve? On 14 Jan 2010, at 11:49, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/14 11:49:55 > > Modified files: > cm3/m3-sys/m3middle/src/: Target.i3 > > Log message: > initialize Int.n := 1, 0 appears not legal -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Jan 14 14:51:17 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 14 Jan 2010 08:51:17 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100114112845.789B62474001@birch.elegosoft.com> References: <20100114112845.789B62474001@birch.elegosoft.com> Message-ID: <81DB828C-042F-4263-AA9F-896B4ED9587E@cs.purdue.edu> Again, this means allocation. We want to avoid that! Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 14 Jan 2010, at 12:28, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/14 12:28:45 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > add ToText, small wrapper around ToChars -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at elego.de Thu Jan 14 14:57:50 2010 From: hosking at elego.de (Antony Hosking) Date: Thu, 14 Jan 2010 14:57:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114135750.080852474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/14 14:57:49 Modified files: cm3/m3-sys/m3middle/src/: Target.i3 Log message: This is deliberately uninitialised! It defaults to 0 anyway. From hosking at elego.de Thu Jan 14 19:58:59 2010 From: hosking at elego.de (Antony Hosking) Date: Thu, 14 Jan 2010 19:58:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114185859.2A2442474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/14 19:58:59 Modified files: cm3/m3-db/stable/src/: LogManager.m3 Log message: De-obfuscate prior commit. From hosking at elego.de Thu Jan 14 20:03:30 2010 From: hosking at elego.de (Antony Hosking) Date: Thu, 14 Jan 2010 20:03:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114190330.F2AC02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/14 20:03:30 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosix.m3 Log message: Match original formatting. From jay.krell at cornell.edu Thu Jan 14 23:07:57 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 14 Jan 2010 22:07:57 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <81DB828C-042F-4263-AA9F-896B4ED9587E@cs.purdue.edu> References: <20100114112845.789B62474001@birch.elegosoft.com>, <81DB828C-042F-4263-AA9F-896B4ED9587E@cs.purdue.edu> Message-ID: I expect to use these in m3back. ToChars is unfriendly, unless the interface provides a type or range to size the array adequately. - Jay From: hosking at cs.purdue.edu Date: Thu, 14 Jan 2010 08:51:17 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 Again, this means allocation. We want to avoid that! Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 On 14 Jan 2010, at 12:28, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 12:28:45 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 Log message: add ToText, small wrapper around ToChars -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 14 23:09:17 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 14 Jan 2010 22:09:17 +0000 Subject: [M3commit] initializing Target.Int In-Reply-To: <20100114135750.080852474001@birch.elegosoft.com> References: <20100114135750.080852474001@birch.elegosoft.com> Message-ID: Uninitialized seems pretty much always bad. n := 0 appears to be illegal. - Jay > Date: Thu, 14 Jan 2010 14:57:50 +0000 > To: m3commit at elegosoft.com > From: hosking at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: hosking at birch. 10/01/14 14:57:49 > > Modified files: > cm3/m3-sys/m3middle/src/: Target.i3 > > Log message: > This is deliberately uninitialised! > It defaults to 0 anyway. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 14 23:25:31 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 14 Jan 2010 22:25:31 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <9D8FDD3C-FB5B-44CF-A71E-51FD0AD14548@cs.purdue.edu> References: <20100114112016.49D6B2474001@birch.elegosoft.com>, <9D8FDD3C-FB5B-44CF-A71E-51FD0AD14548@cs.purdue.edu> Message-ID: I definitely have a use for the signed 8 bit ones. I know I could just form them myself. The rest maybe, maybe not. I think these are fine though. - Jay From: hosking at cs.purdue.edu Date: Thu, 14 Jan 2010 08:50:58 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 You should not need these at all. What's going on here? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 On 14 Jan 2010, at 12:20, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 12:20:16 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: add 8bit and 16bit constants too -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 14 23:26:26 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 14 Jan 2010 22:26:26 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <89A2020C-968A-4592-AD81-2DF160B19833@cs.purdue.edu> References: <20100114104536.4BAB62474001@birch.elegosoft.com>, <89A2020C-968A-4592-AD81-2DF160B19833@cs.purdue.edu> Message-ID: NE, GT, GE, well, at least GT, GE will provide a slightly more direct change from INTEGER to Target.Int in m3back, which I think I need to do, like at least to provide for constant folding of LONGINT. - Jay From: hosking at cs.purdue.edu Date: Thu, 14 Jan 2010 08:49:46 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 I'm not sure I buy all of these. I'll have to take a look. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 On 14 Jan 2010, at 11:45, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 11:45:36 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 Log message: add convenience functions: NE, GT, GE add constants: Ten, MinS32, MaxS32, MinS64, MAXS64, MinU32, MaxU32, MinU64, MaxU64 S is Signed, U is Unsigned (M is for Minus, which seems like a misnomer, it should be N for negative?, minus is an operator (verb??, "to minus" sounds wrong), negative is an adjective) -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 15 00:24:59 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 14 Jan 2010 18:24:59 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100114104536.4BAB62474001@birch.elegosoft.com>, <89A2020C-968A-4592-AD81-2DF160B19833@cs.purdue.edu> Message-ID: <9809083C-FD5E-4415-9464-BAB838C1C8C8@cs.purdue.edu> Sorry, these all seem fine. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 14 Jan 2010, at 17:26, Jay K wrote: > NE, GT, GE, well, at least GT, GE will provide a slightly more direct > change from INTEGER to Target.Int in m3back, which I think I need to do, > like at least to provide for constant folding of LONGINT. > > - Jay > > From: hosking at cs.purdue.edu > Date: Thu, 14 Jan 2010 08:49:46 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > I'm not sure I buy all of these. > I'll have to take a look. > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 > > > > > On 14 Jan 2010, at 11:45, Jay Krell wrote: > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/14 11:45:36 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > add convenience functions: NE, GT, GE > add constants: Ten, MinS32, MaxS32, MinS64, MAXS64, MinU32, MaxU32, MinU64, > MaxU64 > S is Signed, U is Unsigned (M is for Minus, which seems like > a misnomer, it should be N for negative?, minus is an operator (verb??, > "to minus" sounds wrong), negative is an adjective) > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Fri Jan 15 11:55:25 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 11:55:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115105525.1475B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 11:55:25 Modified files: cm3/m3-sys/m3front/src/: m3makefile cm3/m3-sys/m3front/src/misc/: m3makefile cm3/m3-sys/m3front/src/types/: m3makefile Log message: remove excess newlines from ends of files From jkrell at elego.de Fri Jan 15 12:02:20 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 12:02:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115110220.8F5892474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 12:02:20 Modified files: cm3/m3-sys/m3front/src/: Tag: release_branch_cm3_5_8 m3makefile cm3/m3-sys/m3front/src/builtinOps/: Tag: release_branch_cm3_5_8 Adr.m3 Dec.m3 Dispose.m3 First.m3 Inc.m3 Last.m3 Loophole.m3 Subarray.m3 cm3/m3-sys/m3front/src/exprs/: Tag: release_branch_cm3_5_8 AddExpr.m3 CallExpr.i3 CallExpr.m3 CastExpr.m3 CheckExpr.m3 DerefExpr.m3 Expr.i3 Expr.m3 ExprRep.i3 KeywordExpr.m3 NamedExpr.m3 QualifyExpr.m3 RecordExpr.m3 SetExpr.m3 SubscriptExpr.m3 SubtractExpr.m3 VarExpr.m3 cm3/m3-sys/m3front/src/misc/: Tag: release_branch_cm3_5_8 CG.i3 CG.m3 M3Front.m3 m3makefile cm3/m3-sys/m3front/src/stmts/: Tag: release_branch_cm3_5_8 AssignStmt.m3 WithStmt.m3 cm3/m3-sys/m3front/src/types/: Tag: release_branch_cm3_5_8 m3makefile cm3/m3-sys/m3front/src/values/: Tag: release_branch_cm3_5_8 Formal.m3 Value.i3 Value.m3 ValueRep.i3 Variable.m3 cm3/m3-sys/m3front/src/builtinWord/: Tag: release_branch_cm3_5_8 m3makefile Added files: cm3/m3-sys/m3front/src/builtinWord/: Tag: release_branch_cm3_5_8 GenAnd.ig GenAnd.mg GenDivide.ig GenDivide.mg GenExtract.ig GenExtract.mg GenGE.ig GenGE.mg GenGT.ig GenGT.mg GenInsert.ig GenInsert.mg GenLE.ig GenLE.mg GenLT.ig GenLT.mg GenMinus.ig GenMinus.mg GenMod.ig GenMod.mg GenModule.ig GenModule.mg GenNot.ig GenNot.mg GenOr.ig GenOr.mg GenPlus.ig GenPlus.mg GenRotate.ig GenRotate.mg GenShift.ig GenShift.mg GenTimes.ig GenTimes.mg GenXor.ig GenXor.mg word.tmpl Removed files: cm3/m3-sys/m3front/src/builtinWord/: Tag: release_branch_cm3_5_8 WordAnd.i3 WordAnd.m3 WordDivide.i3 WordDivide.m3 WordExtract.i3 WordExtract.m3 WordGE.i3 WordGE.m3 WordGT.i3 WordGT.m3 WordInsert.i3 WordInsert.m3 WordLE.i3 WordLE.m3 WordLT.i3 WordLT.m3 WordMinus.i3 WordMinus.m3 WordMod.i3 WordMod.m3 WordModule.i3 WordModule.m3 WordNot.i3 WordNot.m3 WordOr.i3 WordOr.m3 WordPlus.i3 WordPlus.m3 WordRotate.i3 WordRotate.m3 WordShift.i3 WordShift.m3 WordTimes.i3 WordTimes.m3 WordXor.i3 WordXor.m3 cm3/m3-sys/m3front/src/builtinLong/: Tag: release_branch_cm3_5_8 LongAnd.i3 LongAnd.m3 LongDivide.i3 LongDivide.m3 LongExtract.i3 LongExtract.m3 LongGE.i3 LongGE.m3 LongGT.i3 LongGT.m3 LongInsert.i3 LongInsert.m3 LongLE.i3 LongLE.m3 LongLT.i3 LongLT.m3 LongMinus.i3 LongMinus.m3 LongMod.i3 LongMod.m3 LongModule.i3 LongModule.m3 LongNot.i3 LongNot.m3 LongOr.i3 LongOr.m3 LongPlus.i3 LongPlus.m3 LongRotate.i3 LongRotate.m3 LongShift.i3 LongShift.m3 LongTimes.i3 LongTimes.m3 LongXor.i3 LongXor.m3 m3makefile Log message: wholesale copy of m3front from head to release From jkrell at elego.de Fri Jan 15 12:11:03 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 12:11:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115111103.307132474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 12:11:03 Modified files: cm3/m3-sys/m3front/src/exprs/: Tag: release_branch_cm3_5_8 SetExpr.m3 Log message: remove minor dependency on other minor change in head (restore less informative diagnostic) From jkrell at elego.de Fri Jan 15 12:13:43 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 12:13:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115111343.9840B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 12:13:43 Modified files: cm3/m3-sys/m3front/src/exprs/: Tag: release_branch_cm3_5_8 SetExpr.m3 Log message: another instance: remove minor dependency on other minor change in head (restore less informative diagnostic) From jkrell at elego.de Fri Jan 15 12:37:27 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 12:37:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115113727.C6D012474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 12:37:27 Modified files: cm3/m3-libs/m3core/src/convert/: Convert.m3 Log message: hack: avoid using VAL to convert from LONGINT to INTEGER in order to work with recent but not current compilers From jkrell at elego.de Fri Jan 15 12:41:02 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 12:41:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115114102.E3AEF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 12:41:02 Modified files: cm3/m3-libs/m3core/src/convert/: Tag: release_branch_cm3_5_8 Convert.m3 Log message: from head: minor hack to avoid using VAL to convert from LONGINT, in order to work with older compilers that do already support LONGINT, but with slightly older implementation From jkrell at elego.de Fri Jan 15 13:03:10 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 13:03:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115120311.0B4B32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 13:03:10 Modified files: cm3/m3-db/stable/src/: LogManager.m3 Log message: something is broken in the history here: put my version back, there is a semantic difference as to which file path is passed to FS.Status and I didn't invent the 'obfuscated' form, though the history is indeed confusing (did somebody mention that cvs and cvsweb don't work well?) From jkrell at elego.de Fri Jan 15 13:31:02 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 13:31:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115123102.EE3582474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 13:31:02 Modified files: cm3/m3-db/stable/src/: Tag: release_branch_cm3_5_8 LogManager.m3 cm3/m3-libs/libbuf/src/: Tag: release_branch_cm3_5_8 Buf.m3 cm3/m3-libs/libm3/src/os/Common/: Tag: release_branch_cm3_5_8 File.i3 cm3/m3-libs/libm3/src/os/POSIX/: Tag: release_branch_cm3_5_8 FSPosix.m3 FilePosix.m3 SocketPosix.m3 cm3/m3-libs/libm3/src/os/WIN32/: Tag: release_branch_cm3_5_8 FSWin32.m3 FileWin32.m3 LazyConsole.m3 cm3/m3-libs/libm3/src/rw/: Tag: release_branch_cm3_5_8 FileRd.m3 FileWr.m3 cm3/m3-sys/cm3/src/: Tag: release_branch_cm3_5_8 WebFile.m3 cm3/m3-sys/cm3ide/src/utils/: Tag: release_branch_cm3_5_8 Buf.m3 cm3/m3-sys/fix_nl/src/: Tag: release_branch_cm3_5_8 Main.m3 cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 QScanner.m3 cm3/m3-sys/mklib/src/: Tag: release_branch_cm3_5_8 Main.m3 cm3/m3-tools/cmpdir/src/: Tag: release_branch_cm3_5_8 Main.m3 cm3/m3-tools/dirfp/src/: Tag: release_branch_cm3_5_8 Main.m3 cm3/m3-tools/m3tohtml/src/: Tag: release_branch_cm3_5_8 DBRd.m3 Log message: bring over from head changes so that file sizes are 64bits even on 32bit platforms; but rd/wr are still 32bits This will again hit bootstrap problems, of an even sort of newer type because of the the cm3/src/WebFile.m3 change; stay tuned From jkrell at elego.de Fri Jan 15 14:13:16 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 14:13:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115131317.05DA72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 14:13:16 Modified files: cm3/m3-sys/cm3/src/: Utils.i3 WebFile.m3 m3makefile Added files: cm3/m3-sys/cm3/src/: UtilsC.c Log message: don't use File.T.status().size because it varies between INTEGER and LONGINT, depending on the version of m3core/libm3, and there is no (?) Modula-3-portable way to use something that varies like that (right?) From jkrell at elego.de Fri Jan 15 14:16:20 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 14:16:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115131620.276F12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 14:16:20 Modified files: cm3/m3-sys/cm3/src/: UtilsC.c Log message: cleanup From jkrell at elego.de Fri Jan 15 14:17:39 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 14:17:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115131739.BBBD02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 14:17:39 Modified files: cm3/m3-sys/cm3/src/: Tag: release_branch_cm3_5_8 Utils.i3 WebFile.m3 m3makefile Added files: cm3/m3-sys/cm3/src/: Tag: release_branch_cm3_5_8 UtilsC.c Log message: from head: we can't use File.T.status().size because it varies between INTEGER and LONGINT, and we need to be able to build cm3 against either old or new From jkrell at elego.de Fri Jan 15 14:41:00 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 14:41:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115134101.B053F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 14:41:00 Modified files: cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 m3makefile Added files: cm3/m3-sys/m3quake/src/: QScannerC.c Log message: m3quake also can't use libm3 File.T.status().size and be compatible with both old and new libm3 (INTEGER vs. LONGINT) From jkrell at elego.de Fri Jan 15 14:43:44 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 14:43:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115134345.5CB7D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 14:43:44 Modified files: cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 QCompiler.m3 QScanner.i3 QScanner.m3 m3makefile Added files: cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 QScannerC.c Log message: from head: don't use libm3 File.T.status().size, so it can vary between INTEGER in old versions and LONGINT in new versions (This is only a problem for a small part of the system, that has to work with old libm3.) From jkrell at elego.de Fri Jan 15 14:45:32 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 14:45:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115134532.BF3892474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 14:45:32 Modified files: cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 QScanner.m3 Log message: actually remove the use of File.T.status().size From jkrell at elego.de Fri Jan 15 14:46:39 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 14:46:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115134642.CF8502474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 14:46:39 Modified files: cm3/m3-sys/m3quake/src/: QScanner.m3 Log message: actually remove the use of File.T.status().size From jkrell at elego.de Fri Jan 15 15:17:33 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 15:17:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115141734.0AAD22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 15:17:33 Modified files: cm3/m3-libs/sysutils/src/: FSUtils.i3 m3makefile cm3/m3-libs/sysutils/src/POSIX/: FSUnix_cm3.m3 FSUnix_pm3.m3 cm3/m3-libs/sysutils/src/WIN32/: FSysWin32.m3 Added files: cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c FSUtilsUnsafe.i3 Log message: provide GetFileSize32 in a sensible common place From jkrell at elego.de Fri Jan 15 15:26:17 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 15:26:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115142617.39C472474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 15:26:17 Modified files: cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c Log message: cleanup From jkrell at elego.de Fri Jan 15 15:33:46 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 15:33:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115143346.AAB372474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 15:33:46 Modified files: cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.i3 Log message: oops: remove VAR From jkrell at elego.de Fri Jan 15 15:39:42 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 15:39:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115143943.013292474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 15:39:42 Modified files: cm3/m3-sys/cm3/src/: Utils.i3 WebFile.m3 m3makefile cm3/m3-sys/m3quake/src/: QScanner.i3 QScanner.m3 m3makefile Removed files: cm3/m3-sys/cm3/src/: UtilsC.c cm3/m3-sys/m3quake/src/: QScannerC.c Log message: use common code in sysutils FSUtils.GetFileSize32 From jkrell at elego.de Fri Jan 15 15:42:01 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 15:42:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115144201.ADA872474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 15:42:01 Modified files: cm3/m3-libs/sysutils/src/: Tag: release_branch_cm3_5_8 FSUtils.i3 System.i3 m3makefile cm3/m3-libs/sysutils/src/POSIX/: Tag: release_branch_cm3_5_8 FSUnix_cm3.m3 FSUnix_pm3.m3 m3makefile cm3/m3-libs/sysutils/src/WIN32/: Tag: release_branch_cm3_5_8 FSysWin32.m3 Added files: cm3/m3-libs/sysutils/src/: Tag: release_branch_cm3_5_8 FSUtilsUnsafe.c FSUtilsUnsafe.i3 Log message: common code: FSUtils.GetFileSize32 From jkrell at elego.de Fri Jan 15 15:46:06 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 15:46:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115144607.550D72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 15:46:06 Modified files: cm3/m3-sys/cm3/src/: Tag: release_branch_cm3_5_8 Utils.i3 WebFile.m3 m3makefile cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 QScanner.i3 QScanner.m3 m3makefile Removed files: cm3/m3-sys/cm3/src/: Tag: release_branch_cm3_5_8 UtilsC.c cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 QScannerC.c Log message: use sysutils FSUtils.GetFileSize32 From jkrell at elego.de Fri Jan 15 15:59:04 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 15:59:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115145906.681C32474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 15:59:04 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: Tag: release_branch_cm3_5_8 ProcessPosixCommon.m3 Log message: from head: retry upon EAGAIN like bash (in bash's case, it seems to help on Interix, since I see a warning often) From jkrell at elego.de Fri Jan 15 15:59:35 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 15:59:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115145935.623F92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 15:59:35 Modified files: cm3/m3-libs/libm3/src/rw/: Tag: release_branch_cm3_5_8 IO.i3 IO.m3 Log message: from head: PutLongInt, GetLongInt From hosking at cs.purdue.edu Fri Jan 15 16:04:48 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 10:04:48 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100115120311.0B4B32474001@birch.elegosoft.com> References: <20100115120311.0B4B32474001@birch.elegosoft.com> Message-ID: <9CD84849-55B8-4F3D-A5CD-A415337C3807@cs.purdue.edu> Here's the diff between 1.1 and 1.2, which you committed. You seem to have changed the meaning. I don't understand the change. *** LogManager.m3.~1.1~ Thu Jan 14 13:56:42 2010 --- LogManager.m3.~1.2~ Fri Jan 15 09:59:41 2010 *************** *** 236,241 **** --- 236,242 ---- PROCEDURE EmptyLog (lm: Default; nm: Pathname.T): BOOLEAN RAISES {OSError.E} = + VAR log: TEXT; BEGIN IF NOT lm.recoverable(nm) THEN RAISE OSError.E( *************** *** 243,253 **** Atom.FromText( "no checkpointfile for log in " & nm))); END; ! IF TestFile(lm.logfn(nm)) THEN ! RETURN FS.Status(nm).size > 0 ! ELSE ! RETURN TRUE ! END; END EmptyLog; PROCEDURE Dispose (lm: Default; nm: Pathname.T) RAISES {OSError.E} = --- 244,251 ---- Atom.FromText( "no checkpointfile for log in " & nm))); END; ! log := lm.logfn(nm); ! RETURN (NOT TestFile(log)) OR (FS.Status(log).size = 0L); END EmptyLog; PROCEDURE Dispose (lm: Default; nm: Pathname.T) RAISES {OSError.E} = On 15 Jan 2010, at 13:03, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/15 13:03:10 > > Modified files: > cm3/m3-db/stable/src/: LogManager.m3 > > Log message: > something is broken in the history here: put my version back, there is a semantic difference as to which file path is passed to FS.Status and I didn't invent the 'obfuscated' form, though the history is indeed confusing (did somebody mention that cvs and cvsweb don't work well?) From hosking at cs.purdue.edu Fri Jan 15 16:13:06 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 10:13:06 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100115134101.B053F2474001@birch.elegosoft.com> References: <20100115134101.B053F2474001@birch.elegosoft.com> Message-ID: Jay, all of these changes seem unnecessary (and worse, clutter the source with a variety of hacks). I had no problem building against both versions of m3core and libm3 in order to bootstrap a new compiler. What is going on here? On 15 Jan 2010, at 14:41, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/15 14:41:00 > > Modified files: > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > m3makefile > Added files: > cm3/m3-sys/m3quake/src/: QScannerC.c > > Log message: > m3quake also can't use libm3 File.T.status().size and be compatible > with both old and new libm3 (INTEGER vs. LONGINT) From hosking at cs.purdue.edu Fri Jan 15 16:20:50 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 10:20:50 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100115141734.0AAD22474001@birch.elegosoft.com> References: <20100115141734.0AAD22474001@birch.elegosoft.com> Message-ID: <973EBDE6-1CB0-4732-AB0D-1A274E7B015B@cs.purdue.edu> Isn't this simply entrenching a 32-bit file size? On 15 Jan 2010, at 15:17, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/15 15:17:33 > > Modified files: > cm3/m3-libs/sysutils/src/: FSUtils.i3 m3makefile > cm3/m3-libs/sysutils/src/POSIX/: FSUnix_cm3.m3 FSUnix_pm3.m3 > cm3/m3-libs/sysutils/src/WIN32/: FSysWin32.m3 > Added files: > cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c FSUtilsUnsafe.i3 > > Log message: > provide GetFileSize32 in a sensible common place From hosking at elego.de Fri Jan 15 17:26:56 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 15 Jan 2010 17:26:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115162656.82E592474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/15 17:26:56 Modified files: cm3/m3-libs/m3core/src/convert/: Convert.m3 Log message: Let's not clutter the main trunk with multi-version cruft going forward. An up-to-date bootstrapped compiler should always be used to compile the main trunk. From hosking at elego.de Fri Jan 15 21:02:29 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 15 Jan 2010 21:02:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115200229.80C6E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/15 21:02:29 Modified files: cm3/m3-libs/sysutils/src/POSIX/: FSUnix_cm3.m3 Log message: Fix compile errors. From jay.krell at cornell.edu Fri Jan 15 21:48:12 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 20:48:12 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <973EBDE6-1CB0-4732-AB0D-1A274E7B015B@cs.purdue.edu> References: <20100115141734.0AAD22474001@birch.elegosoft.com>, <973EBDE6-1CB0-4732-AB0D-1A274E7B015B@cs.purdue.edu> Message-ID: For some code, yes. What to do in QScanner and WebFile? Entrenching INTEGER-size would be ok for them. Leaving this in only temporarily might be ok too. If we just need to move forward, and then not suport building with old compiler/libm3. - Jay > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 10:20:50 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Isn't this simply entrenching a 32-bit file size? > > On 15 Jan 2010, at 15:17, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/15 15:17:33 > > > > Modified files: > > cm3/m3-libs/sysutils/src/: FSUtils.i3 m3makefile > > cm3/m3-libs/sysutils/src/POSIX/: FSUnix_cm3.m3 FSUnix_pm3.m3 > > cm3/m3-libs/sysutils/src/WIN32/: FSysWin32.m3 > > Added files: > > cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c FSUtilsUnsafe.i3 > > > > Log message: > > provide GetFileSize32 in a sensible common place > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Jan 15 21:53:51 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 20:53:51 +0000 Subject: [M3commit] LogManager.EmptyLog FS.Status(nm) vs. FS.Status(logfn(nm)) In-Reply-To: <9CD84849-55B8-4F3D-A5CD-A415337C3807@cs.purdue.edu> References: <20100115120311.0B4B32474001@birch.elegosoft.com>, <9CD84849-55B8-4F3D-A5CD-A415337C3807@cs.purdue.edu> Message-ID: I know. But see here from 2001: http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-db/stable/src/LogManager.m3.diff?r1=1.1.1.1;r2=1.1.1.2 Something is wierd here, I agree. I think I somehow had the 1.1.1.2 version (odd), and if you look through all the other uses of TestFile, I think it is more correct. It seems some of the 4.1/5.1 changes never made it from a branch to head?? - Jay > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 10:04:48 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Here's the diff between 1.1 and 1.2, which you committed. You seem to have changed the meaning. I don't understand the change. > > *** LogManager.m3.~1.1~ Thu Jan 14 13:56:42 2010 > --- LogManager.m3.~1.2~ Fri Jan 15 09:59:41 2010 > *************** > *** 236,241 **** > --- 236,242 ---- > > PROCEDURE EmptyLog (lm: Default; nm: Pathname.T): BOOLEAN > RAISES {OSError.E} = > + VAR log: TEXT; > BEGIN > IF NOT lm.recoverable(nm) THEN > RAISE OSError.E( > *************** > *** 243,253 **** > Atom.FromText( > "no checkpointfile for log in " & nm))); > END; > ! IF TestFile(lm.logfn(nm)) THEN > ! RETURN FS.Status(nm).size > 0 > ! ELSE > ! RETURN TRUE > ! END; > END EmptyLog; > > PROCEDURE Dispose (lm: Default; nm: Pathname.T) RAISES {OSError.E} = > --- 244,251 ---- > Atom.FromText( > "no checkpointfile for log in " & nm))); > END; > ! log := lm.logfn(nm); > ! RETURN (NOT TestFile(log)) OR (FS.Status(log).size = 0L); > END EmptyLog; > > PROCEDURE Dispose (lm: Default; nm: Pathname.T) RAISES {OSError.E} = > > > On 15 Jan 2010, at 13:03, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/15 13:03:10 > > > > Modified files: > > cm3/m3-db/stable/src/: LogManager.m3 > > > > Log message: > > something is broken in the history here: put my version back, there is a semantic difference as to which file path is passed to FS.Status and I didn't invent the 'obfuscated' form, though the history is indeed confusing (did somebody mention that cvs and cvsweb don't work well?) > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Jan 15 21:57:58 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 20:57:58 +0000 Subject: [M3commit] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) In-Reply-To: References: <20100115134101.B053F2474001@birch.elegosoft.com>, Message-ID: I at least did move the hacks to one place. I agree it isn't nice. This is due to my changes, not yours -- changing File.T.status().size to LONGINT. There's no way to use that in the "compiler" and still support old compiler/libm3, right? Ok now that I centralized it to sysutils? Leave status() alone as using INTEGER and introduce statusL()? Or leave size alone and introduce sizeL? That's not a complete solution because you have to set size to something. -1 if it doesn't fit? Or just get past the bootstrapping and put it back using VAL? It seems a tough situation..the compiler is otherwise I believe very compatible with old compiler/libm3. - Jay > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 10:13:06 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Jay, all of these changes seem unnecessary (and worse, clutter the source with a variety of hacks). I had no problem building against both versions of m3core and libm3 in order to bootstrap a new compiler. What is going on here? > > On 15 Jan 2010, at 14:41, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/15 14:41:00 > > > > Modified files: > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > m3makefile > > Added files: > > cm3/m3-sys/m3quake/src/: QScannerC.c > > > > Log message: > > m3quake also can't use libm3 File.T.status().size and be compatible > > with both old and new libm3 (INTEGER vs. LONGINT) > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 15 22:17:15 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 16:17:15 -0500 Subject: [M3commit] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) In-Reply-To: References: <20100115134101.B053F2474001@birch.elegosoft.com>, Message-ID: <09B41766-F3E3-4321-A568-AFE76959B787@cs.purdue.edu> On 15 Jan 2010, at 15:57, Jay K wrote: > I at least did move the hacks to one place. > I agree it isn't nice. > This is due to my changes, not yours -- changing File.T.status().size to LONGINT. > There's no way to use that in the "compiler" and still support old compiler/libm3, right? RIght. Except we should not try to maintain compatibility between among trunk versions. If you want to build as of a particular version then use libraries that match that version. My next set of commits for LONGCARD make this even more critical because the library has hardwired stuff that that makes it require a particular version of the compiler to compile it. ;-) > Ok now that I centralized it to sysutils? > > > Leave status() alone as using INTEGER and introduce statusL()? > > > Or leave size alone and introduce sizeL? > That's not a complete solution because you have to set size to something. > -1 if it doesn't fit? > > > Or just get past the bootstrapping and put it back using VAL? Yes. > It seems a tough situation..the compiler is otherwise I believe > very compatible with old compiler/libm3. It very soon will not be. > > > - Jay > > > > From: hosking at cs.purdue.edu > > Date: Fri, 15 Jan 2010 10:13:06 -0500 > > To: jkrell at elego.de > > CC: m3commit at elegosoft.com > > Subject: Re: [M3commit] CVS Update: cm3 > > > > Jay, all of these changes seem unnecessary (and worse, clutter the source with a variety of hacks). I had no problem building against both versions of m3core and libm3 in order to bootstrap a new compiler. What is going on here? > > > > On 15 Jan 2010, at 14:41, Jay Krell wrote: > > > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 10/01/15 14:41:00 > > > > > > Modified files: > > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > > m3makefile > > > Added files: > > > cm3/m3-sys/m3quake/src/: QScannerC.c > > > > > > Log message: > > > m3quake also can't use libm3 File.T.status().size and be compatible > > > with both old and new libm3 (INTEGER vs. LONGINT) > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 15 22:20:03 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 16:20:03 -0500 Subject: [M3commit] LogManager.EmptyLog FS.Status(nm) vs. FS.Status(logfn(nm)) In-Reply-To: References: <20100115120311.0B4B32474001@birch.elegosoft.com>, <9CD84849-55B8-4F3D-A5CD-A415337C3807@cs.purdue.edu> Message-ID: <9CA89F2F-4065-480D-A20C-87B983CE511B@cs.purdue.edu> Aha! Weird! I'll leave it alone. On 15 Jan 2010, at 15:53, Jay K wrote: > I know. But see here from 2001: > > http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-db/stable/src/LogManager.m3.diff?r1=1.1.1.1;r2=1.1.1.2 > > > Something is wierd here, I agree. I think I somehow had the 1.1.1.2 version (odd), and if you look through all the other uses of TestFile, I think it is more correct. > > It seems some of the 4.1/5.1 changes never made it from a branch to head?? > > - Jay > > > > From: hosking at cs.purdue.edu > > Date: Fri, 15 Jan 2010 10:04:48 -0500 > > To: jkrell at elego.de > > CC: m3commit at elegosoft.com > > Subject: Re: [M3commit] CVS Update: cm3 > > > > Here's the diff between 1.1 and 1.2, which you committed. You seem to have changed the meaning. I don't understand the change. > > > > *** LogManager.m3.~1.1~ Thu Jan 14 13:56:42 2010 > > --- LogManager.m3.~1.2~ Fri Jan 15 09:59:41 2010 > > *************** > > *** 236,241 **** > > --- 236,242 ---- > > > > PROCEDURE EmptyLog (lm: Default; nm: Pathname.T): BOOLEAN > > RAISES {OSError.E} = > > + VAR log: TEXT; > > BEGIN > > IF NOT lm.recoverable(nm) THEN > > RAISE OSError.E( > > *************** > > *** 243,253 **** > > Atom.FromText( > > "no checkpointfile for log in " & nm))); > > END; > > ! IF TestFile(lm.logfn(nm)) THEN > > ! RETURN FS.Status(nm).size > 0 > > ! ELSE > > ! RETURN TRUE > > ! END; > > END EmptyLog; > > > > PROCEDURE Dispose (lm: Default; nm: Pathname.T) RAISES {OSError.E} = > > --- 244,251 ---- > > Atom.FromText( > > "no checkpointfile for log in " & nm))); > > END; > > ! log := lm.logfn(nm); > > ! RETURN (NOT TestFile(log)) OR (FS.Status(log).size = 0L); > > END EmptyLog; > > > > PROCEDURE Dispose (lm: Default; nm: Pathname.T) RAISES {OSError.E} = > > > > > > On 15 Jan 2010, at 13:03, Jay Krell wrote: > > > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 10/01/15 13:03:10 > > > > > > Modified files: > > > cm3/m3-db/stable/src/: LogManager.m3 > > > > > > Log message: > > > something is broken in the history here: put my version back, there is a semantic difference as to which file path is passed to FS.Status and I didn't invent the 'obfuscated' form, though the history is indeed confusing (did somebody mention that cvs and cvsweb don't work well?) > > From hosking at elego.de Fri Jan 15 22:26:26 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 15 Jan 2010 22:26:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115212627.0EF702474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/15 22:26:26 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTBuiltin.mx RTTipe.i3 RTTipe.m3 Log message: Add LONGCARD. From rcoleburn at elego.de Fri Jan 15 22:28:46 2010 From: rcoleburn at elego.de (Randy Coleburn) Date: Fri, 15 Jan 2010 22:28:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115212846.B78742474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 10/01/15 22:28:46 Modified files: cm3/scripts/dev/windows/: RCC_upgradeCM3.cmd Log message: 01/15/2010, R.Coleburn, add extra checks at end of each stage to ensure new cm3.exe was produced and copied to target bin folder. All this per Jay's assertion that -ship doesn't always result in cm3.exe getting copied to the "bin" folder. From jay.krell at cornell.edu Fri Jan 15 22:34:11 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 21:34:11 +0000 Subject: [M3commit] [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) In-Reply-To: <09B41766-F3E3-4321-A568-AFE76959B787@cs.purdue.edu> References: <20100115134101.B053F2474001@birch.elegosoft.com>, , , , <09B41766-F3E3-4321-A568-AFE76959B787@cs.purdue.edu> Message-ID: We were in a state where neither m3core nor cm3/m3quake could be built with old tools/libraries. That is more ok for m3core, less ok for cm3/m3quake. As well, m3core also couldn't be built with recent but slightly old compiler. See, I didn't remove the use of LONGINT, just the use of VAL(LONGINT, INTEGER). As well, maybe cm3/m3quake couldn't be built with recent tools/libraries. The sysutils/m3quake/cm3 changes should stand? Ok removing "32" from the name and letting it return >4GB on 64bit platforms. But I think either it can't use libm3.File.T.status().size, OR we have to make status().size more compatible such as by introducing statusL or sizeL. 32bit code wouldn't see >4GB file sizes unless actively changed. Maybe not a bad idea. - Jay From: hosking at cs.purdue.edu Date: Fri, 15 Jan 2010 16:17:15 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com; m3commit at elegosoft.com Subject: Re: [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) On 15 Jan 2010, at 15:57, Jay K wrote: I at least did move the hacks to one place. I agree it isn't nice. This is due to my changes, not yours -- changing File.T.status().size to LONGINT. There's no way to use that in the "compiler" and still support old compiler/libm3, right? RIght. Except we should not try to maintain compatibility between among trunk versions. If you want to build as of a particular version then use libraries that match that version. My next set of commits for LONGCARD make this even more critical because the library has hardwired stuff that that makes it require a particular version of the compiler to compile it. ;-) Ok now that I centralized it to sysutils? Leave status() alone as using INTEGER and introduce statusL()? Or leave size alone and introduce sizeL? That's not a complete solution because you have to set size to something. -1 if it doesn't fit? Or just get past the bootstrapping and put it back using VAL? Yes. It seems a tough situation..the compiler is otherwise I believe very compatible with old compiler/libm3. It very soon will not be. - Jay > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 10:13:06 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Jay, all of these changes seem unnecessary (and worse, clutter the source with a variety of hacks). I had no problem building against both versions of m3core and libm3 in order to bootstrap a new compiler. What is going on here? > > On 15 Jan 2010, at 14:41, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/15 14:41:00 > > > > Modified files: > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > m3makefile > > Added files: > > cm3/m3-sys/m3quake/src/: QScannerC.c > > > > Log message: > > m3quake also can't use libm3 File.T.status().size and be compatible > > with both old and new libm3 (INTEGER vs. LONGINT) > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Fri Jan 15 22:42:27 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 22:42:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115214227.DFDD32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 22:42:27 Modified files: cm3/m3-libs/sysutils/src/POSIX/: Tag: release_branch_cm3_5_8 FSUnix_cm3.m3 Log message: copy fix from head From hosking at elego.de Fri Jan 15 22:47:06 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 15 Jan 2010 22:47:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115214706.897CF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/15 22:47:06 Modified files: cm3/m3-libs/libm3/src/pickle/ver2/: ConvertPacking.m3 Log message: Add LONGCARD. From hosking at elego.de Fri Jan 15 22:50:12 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 15 Jan 2010 22:50:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115215012.E458A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/15 22:50:12 Modified files: cm3/m3-sys/m3front/src/builtinTypes/: BuiltinTypes.m3 m3makefile cm3/m3-sys/m3front/src/misc/: CG.i3 CG.m3 TipeDesc.i3 Token.m3 cm3/m3-sys/m3front/src/types/: RecordType.i3 RecordType.m3 SubrangeType.m3 Added files: cm3/m3-sys/m3front/src/builtinTypes/: LCard.i3 LCard.m3 Log message: Add LONGCARD From hosking at elego.de Fri Jan 15 22:51:15 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 15 Jan 2010 22:51:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115215118.A9F482474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/15 22:51:15 Modified files: cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 Log message: Revert to VAL. From hosking at elego.de Fri Jan 15 22:52:32 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 15 Jan 2010 22:52:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115215232.8AC7E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/15 22:52:32 Modified files: cm3/m3-sys/cm3/src/: WebFile.m3 Log message: Revert to VAL. From jay.krell at cornell.edu Fri Jan 15 22:56:19 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 21:56:19 +0000 Subject: [M3commit] LONGINT used by m3quake/cm3 packages In-Reply-To: <20100115215118.A9F482474001@birch.elegosoft.com> References: <20100115215118.A9F482474001@birch.elegosoft.com> Message-ID: VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, but I think what I had is the way to go. The bootstrapping pain is otherwise novel. The compiler doesn't otherwise use LONGINT. (My doing that it started using it.) It ought not until after the current release? - Jay > Date: Fri, 15 Jan 2010 22:51:15 +0000 > To: m3commit at elegosoft.com > From: hosking at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: hosking at birch. 10/01/15 22:51:15 > > Modified files: > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > Log message: > Revert to VAL. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 15 23:08:08 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 17:08:08 -0500 Subject: [M3commit] [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) In-Reply-To: References: <20100115134101.B053F2474001@birch.elegosoft.com>, , , , <09B41766-F3E3-4321-A568-AFE76959B787@cs.purdue.edu> Message-ID: <1E52AB69-2D52-496D-AB5B-AF5FDA21744B@cs.purdue.edu> Fact. New versions of m3core won't be able to build with old tools/libraries. We have to live with that. On 15 Jan 2010, at 16:34, Jay K wrote: > We were in a state where neither m3core nor cm3/m3quake could be built with old tools/libraries. > That is more ok for m3core, less ok for cm3/m3quake. > As well, m3core also couldn't be built with recent but slightly old compiler. > See, I didn't remove the use of LONGINT, just the use of VAL(LONGINT, INTEGER). > As well, maybe cm3/m3quake couldn't be built with recent tools/libraries. > > > The sysutils/m3quake/cm3 changes should stand? > Ok removing "32" from the name and letting it return >4GB on 64bit platforms. > But I think either it can't use libm3.File.T.status().size, OR we have to > make status().size more compatible such as by introducing statusL or sizeL. > 32bit code wouldn't see >4GB file sizes unless actively changed. > Maybe not a bad idea. > > > - Jay > > > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 16:17:15 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) > > On 15 Jan 2010, at 15:57, Jay K wrote: > > I at least did move the hacks to one place. > I agree it isn't nice. > This is due to my changes, not yours -- changing File.T.status().size to LONGINT. > There's no way to use that in the "compiler" and still support old compiler/libm3, right? > > RIght. Except we should not try to maintain compatibility between among trunk versions. If you want to build as of a particular version then use libraries that match that version. > > My next set of commits for LONGCARD make this even more critical because the library has hardwired stuff that that makes it require a particular version of the compiler to compile it. ;-) > > Ok now that I centralized it to sysutils? > > > Leave status() alone as using INTEGER and introduce statusL()? > > > Or leave size alone and introduce sizeL? > That's not a complete solution because you have to set size to something. > -1 if it doesn't fit? > > > Or just get past the bootstrapping and put it back using VAL? > > Yes. > > It seems a tough situation..the compiler is otherwise I believe > very compatible with old compiler/libm3. > > It very soon will not be. > > > > - Jay > > > > From: hosking at cs.purdue.edu > > Date: Fri, 15 Jan 2010 10:13:06 -0500 > > To: jkrell at elego.de > > CC: m3commit at elegosoft.com > > Subject: Re: [M3commit] CVS Update: cm3 > > > > Jay, all of these changes seem unnecessary (and worse, clutter the source with a variety of hacks). I had no problem building against both versions of m3core and libm3 in order to bootstrap a new compiler. What is going on here? > > > > On 15 Jan 2010, at 14:41, Jay Krell wrote: > > > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 10/01/15 14:41:00 > > > > > > Modified files: > > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > > m3makefile > > > Added files: > > > cm3/m3-sys/m3quake/src/: QScannerC.c > > > > > > Log message: > > > m3quake also can't use libm3 File.T.status().size and be compatible > > > with both old and new libm3 (INTEGER vs. LONGINT) > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 15 23:13:38 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 17:13:38 -0500 Subject: [M3commit] LONGINT used by m3quake/cm3 packages In-Reply-To: References: <20100115215118.A9F482474001@birch.elegosoft.com> Message-ID: <6CF0A42A-940C-4FB5-9CFD-CBA18EC9CAFA@cs.purdue.edu> Jay, the bootstrapping pain is inherent. The compiler and libraries are bound together. Currently, the old library and new libraries are incompatible with their respective compilers. Both ways. On 15 Jan 2010, at 16:56, Jay K wrote: > VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, > but I think what I had is the way to go. > The bootstrapping pain is otherwise novel. > The compiler doesn't otherwise use LONGINT. > (My doing that it started using it.) > It ought not until after the current release? > > > - Jay > > > > Date: Fri, 15 Jan 2010 22:51:15 +0000 > > To: m3commit at elegosoft.com > > From: hosking at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: hosking at birch. 10/01/15 22:51:15 > > > > Modified files: > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > > > Log message: > > Revert to VAL. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Jan 15 23:13:46 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 22:13:46 +0000 Subject: [M3commit] [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) In-Reply-To: <1E52AB69-2D52-496D-AB5B-AF5FDA21744B@cs.purdue.edu> References: <20100115134101.B053F2474001@birch.elegosoft.com>, , , , , , , <09B41766-F3E3-4321-A568-AFE76959B787@cs.purdue.edu>, , <1E52AB69-2D52-496D-AB5B-AF5FDA21744B@cs.purdue.edu> Message-ID: That is ok but what about building new cm3/m3quake/sysutils packages with old tools/libraries? They previously never used LONGINT, including converting LONGINT to INTEGER. *I* changed that, not you. But then I decided it was a mistake. - Jay From: hosking at cs.purdue.edu Date: Fri, 15 Jan 2010 17:08:08 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com; m3commit at elegosoft.com Subject: Re: [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) Fact. New versions of m3core won't be able to build with old tools/libraries. We have to live with that. On 15 Jan 2010, at 16:34, Jay K wrote: We were in a state where neither m3core nor cm3/m3quake could be built with old tools/libraries. That is more ok for m3core, less ok for cm3/m3quake. As well, m3core also couldn't be built with recent but slightly old compiler. See, I didn't remove the use of LONGINT, just the use of VAL(LONGINT, INTEGER). As well, maybe cm3/m3quake couldn't be built with recent tools/libraries. The sysutils/m3quake/cm3 changes should stand? Ok removing "32" from the name and letting it return >4GB on 64bit platforms. But I think either it can't use libm3.File.T.status().size, OR we have to make status().size more compatible such as by introducing statusL or sizeL. 32bit code wouldn't see >4GB file sizes unless actively changed. Maybe not a bad idea. - Jay From: hosking at cs.purdue.edu Date: Fri, 15 Jan 2010 16:17:15 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com; m3commit at elegosoft.com Subject: Re: [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) On 15 Jan 2010, at 15:57, Jay K wrote: I at least did move the hacks to one place. I agree it isn't nice. This is due to my changes, not yours -- changing File.T.status().size to LONGINT. There's no way to use that in the "compiler" and still support old compiler/libm3, right? RIght. Except we should not try to maintain compatibility between among trunk versions. If you want to build as of a particular version then use libraries that match that version. My next set of commits for LONGCARD make this even more critical because the library has hardwired stuff that that makes it require a particular version of the compiler to compile it. ;-) Ok now that I centralized it to sysutils? Leave status() alone as using INTEGER and introduce statusL()? Or leave size alone and introduce sizeL? That's not a complete solution because you have to set size to something. -1 if it doesn't fit? Or just get past the bootstrapping and put it back using VAL? Yes. It seems a tough situation..the compiler is otherwise I believe very compatible with old compiler/libm3. It very soon will not be. - Jay > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 10:13:06 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Jay, all of these changes seem unnecessary (and worse, clutter the source with a variety of hacks). I had no problem building against both versions of m3core and libm3 in order to bootstrap a new compiler. What is going on here? > > On 15 Jan 2010, at 14:41, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/15 14:41:00 > > > > Modified files: > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > m3makefile > > Added files: > > cm3/m3-sys/m3quake/src/: QScannerC.c > > > > Log message: > > m3quake also can't use libm3 File.T.status().size and be compatible > > with both old and new libm3 (INTEGER vs. LONGINT) > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Fri Jan 15 23:31:32 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 23:31:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115223132.B806E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 23:31:32 Modified files: cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c Log message: provide 32bit, 64bit, and integer, though we can't expose the 64bit one From jkrell at elego.de Fri Jan 15 23:32:14 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 23:32:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115223214.D6B342474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 23:32:14 Modified files: cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c Log message: cleanup (remove 'signed') From jkrell at elego.de Fri Jan 15 23:36:52 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 23:36:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115223654.2D06A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 23:36:52 Modified files: cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c Log message: don't allow negative sizes From jay.krell at cornell.edu Fri Jan 15 23:42:58 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 22:42:58 +0000 Subject: [M3commit] LONGINT used by m3quake/cm3 packages In-Reply-To: <6CF0A42A-940C-4FB5-9CFD-CBA18EC9CAFA@cs.purdue.edu> References: <20100115215118.A9F482474001@birch.elegosoft.com>, , <6CF0A42A-940C-4FB5-9CFD-CBA18EC9CAFA@cs.purdue.edu> Message-ID: The compiler is not very dependent on newer compiler/libraries, until now, that I changed File.T.status().size to LONGINT. I was just able to upgrade.py from cm3-min-WIN32-NT386-5.2.6 for example. 5.1.3a failed though. (It's still in progress, but far long.) m3core/libm3 can depend on current compiler, agreed. - Jay From: hosking at cs.purdue.edu Date: Fri, 15 Jan 2010 17:13:38 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com; m3commit at elegosoft.com Subject: Re: [M3commit] LONGINT used by m3quake/cm3 packages Jay, the bootstrapping pain is inherent. The compiler and libraries are bound together. Currently, the old library and new libraries are incompatible with their respective compilers. Both ways. On 15 Jan 2010, at 16:56, Jay K wrote: VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, but I think what I had is the way to go. The bootstrapping pain is otherwise novel. The compiler doesn't otherwise use LONGINT. (My doing that it started using it.) It ought not until after the current release? - Jay > Date: Fri, 15 Jan 2010 22:51:15 +0000 > To: m3commit at elegosoft.com > From: hosking at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: hosking at birch. 10/01/15 22:51:15 > > Modified files: > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > Log message: > Revert to VAL. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 15 23:48:09 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 17:48:09 -0500 Subject: [M3commit] [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) In-Reply-To: References: <20100115134101.B053F2474001@birch.elegosoft.com>, , , , , , , <09B41766-F3E3-4321-A568-AFE76959B787@cs.purdue.edu>, , <1E52AB69-2D52-496D-AB5B-AF5FDA21744B@cs.purdue.edu> Message-ID: My point is that you need to bootstrap a new compiler as follows: Build new compiler against old libraries. Compile new libraries using new compiler. Recompile new compiler against new libraries. Throw away old libraries. On 15 Jan 2010, at 17:13, Jay K wrote: > That is ok but what about building new cm3/m3quake/sysutils packages with old tools/libraries? > They previously never used LONGINT, including converting LONGINT to INTEGER. > *I* changed that, not you. > But then I decided it was a mistake. > > > - Jay > > > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 17:08:08 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) > > Fact. New versions of m3core won't be able to build with old tools/libraries. We have to live with that. > > On 15 Jan 2010, at 16:34, Jay K wrote: > > We were in a state where neither m3core nor cm3/m3quake could be built with old tools/libraries. > That is more ok for m3core, less ok for cm3/m3quake. > As well, m3core also couldn't be built with recent but slightly old compiler. > See, I didn't remove the use of LONGINT, just the use of VAL(LONGINT, INTEGER). > As well, maybe cm3/m3quake couldn't be built with recent tools/libraries. > > > The sysutils/m3quake/cm3 changes should stand? > Ok removing "32" from the name and letting it return >4GB on 64bit platforms. > But I think either it can't use libm3.File.T.status().size, OR we have to > make status().size more compatible such as by introducing statusL or sizeL. > 32bit code wouldn't see >4GB file sizes unless actively changed. > Maybe not a bad idea. > > > - Jay > > > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 16:17:15 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) > > On 15 Jan 2010, at 15:57, Jay K wrote: > > I at least did move the hacks to one place. > I agree it isn't nice. > This is due to my changes, not yours -- changing File.T.status().size to LONGINT. > There's no way to use that in the "compiler" and still support old compiler/libm3, right? > > RIght. Except we should not try to maintain compatibility between among trunk versions. If you want to build as of a particular version then use libraries that match that version. > > My next set of commits for LONGCARD make this even more critical because the library has hardwired stuff that that makes it require a particular version of the compiler to compile it. ;-) > > Ok now that I centralized it to sysutils? > > > Leave status() alone as using INTEGER and introduce statusL()? > > > Or leave size alone and introduce sizeL? > That's not a complete solution because you have to set size to something. > -1 if it doesn't fit? > > > Or just get past the bootstrapping and put it back using VAL? > > Yes. > > It seems a tough situation..the compiler is otherwise I believe > very compatible with old compiler/libm3. > > It very soon will not be. > > > > - Jay > > > > From: hosking at cs.purdue.edu > > Date: Fri, 15 Jan 2010 10:13:06 -0500 > > To: jkrell at elego.de > > CC: m3commit at elegosoft.com > > Subject: Re: [M3commit] CVS Update: cm3 > > > > Jay, all of these changes seem unnecessary (and worse, clutter the source with a variety of hacks). I had no problem building against both versions of m3core and libm3 in order to bootstrap a new compiler. What is going on here? > > > > On 15 Jan 2010, at 14:41, Jay Krell wrote: > > > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 10/01/15 14:41:00 > > > > > > Modified files: > > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > > m3makefile > > > Added files: > > > cm3/m3-sys/m3quake/src/: QScannerC.c > > > > > > Log message: > > > m3quake also can't use libm3 File.T.status().size and be compatible > > > with both old and new libm3 (INTEGER vs. LONGINT) > > > > > > From hosking at cs.purdue.edu Fri Jan 15 23:50:17 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 17:50:17 -0500 Subject: [M3commit] LONGINT used by m3quake/cm3 packages In-Reply-To: References: <20100115215118.A9F482474001@birch.elegosoft.com> Message-ID: <46AFC820-D62E-472B-A0D0-6957153ECE17@cs.purdue.edu> On 15 Jan 2010, at 16:56, Jay K wrote: > VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, > but I think what I had is the way to go. > The bootstrapping pain is otherwise novel. The bootstrapping pain is now no more novel than when LONGINT was first introduced... > The compiler doesn't otherwise use LONGINT. > (My doing that it started using it.) > It ought not until after the current release? ... so it is pointless trying to build new libraries with an old compiler because the old compiler is built to compile files against old libraries. > > > - Jay > > > > Date: Fri, 15 Jan 2010 22:51:15 +0000 > > To: m3commit at elegosoft.com > > From: hosking at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: hosking at birch. 10/01/15 22:51:15 > > > > Modified files: > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > > > Log message: > > Revert to VAL. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 15 23:51:47 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 17:51:47 -0500 Subject: [M3commit] LONGINT used by m3quake/cm3 packages In-Reply-To: References: <20100115215118.A9F482474001@birch.elegosoft.com>, , <6CF0A42A-940C-4FB5-9CFD-CBA18EC9CAFA@cs.purdue.edu> Message-ID: <35CA5D39-E2B2-4576-82D3-108CC21F34AC@cs.purdue.edu> It's not the presence of LONGINT in the libraries or not. It is the presence of changes type type-map information (see RTTipe and its correspondence with TipeMap) which mean that the new libraries are incompatible with old compilers. On 15 Jan 2010, at 17:42, Jay K wrote: > The compiler is not very dependent on newer compiler/libraries, until now, that I changed File.T.status().size to LONGINT. > > I was just able to upgrade.py from cm3-min-WIN32-NT386-5.2.6 for example. 5.1.3a failed though. > (It's still in progress, but far long.) > > m3core/libm3 can depend on current compiler, agreed. > > - Jay > > > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 17:13:38 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3commit] LONGINT used by m3quake/cm3 packages > > Jay, the bootstrapping pain is inherent. The compiler and libraries are bound together. Currently, the old library and new libraries are incompatible with their respective compilers. Both ways. > > On 15 Jan 2010, at 16:56, Jay K wrote: > > VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, > but I think what I had is the way to go. > The bootstrapping pain is otherwise novel. > The compiler doesn't otherwise use LONGINT. > (My doing that it started using it.) > It ought not until after the current release? > > > - Jay > > > > Date: Fri, 15 Jan 2010 22:51:15 +0000 > > To: m3commit at elegosoft.com > > From: hosking at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: hosking at birch. 10/01/15 22:51:15 > > > > Modified files: > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > > > Log message: > > Revert to VAL. > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Jan 16 00:45:36 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 23:45:36 +0000 Subject: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages In-Reply-To: <46AFC820-D62E-472B-A0D0-6957153ECE17@cs.purdue.edu> References: <20100115215118.A9F482474001@birch.elegosoft.com>, , <46AFC820-D62E-472B-A0D0-6957153ECE17@cs.purdue.edu> Message-ID: I'm able to bootstrap the current system from pre-LONGINT using upgrade.py. I'm not sure, but our regular builds might do that. Not so now though. I think you might be saying however that such a compiler might have bugs in it? - Jay ________________________________ > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 17:50:17 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3devel] LONGINT used by m3quake/cm3 packages > > > > On 15 Jan 2010, at 16:56, Jay K wrote: > > VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, > but I think what I had is the way to go. > The bootstrapping pain is otherwise novel. > > The bootstrapping pain is now no more novel than when LONGINT was first introduced... > > The compiler doesn't otherwise use LONGINT. > (My doing that it started using it.) > It ought not until after the current release? > > ... so it is pointless trying to build new libraries with an old compiler because the old compiler is built to compile files against old libraries. > > > > - Jay > > >> Date: Fri, 15 Jan 2010 22:51:15 +0000 >> To: m3commit at elegosoft.com >> From: hosking at elego.de >> Subject: [M3commit] CVS Update: cm3 >> >> CVSROOT: /usr/cvs >> Changes by: hosking at birch. 10/01/15 22:51:15 >> >> Modified files: >> cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 >> >> Log message: >> Revert to VAL. >> > From jay.krell at cornell.edu Sat Jan 16 00:50:17 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 23:50:17 +0000 Subject: [M3commit] LONGINT used by m3quake/cm3 packages In-Reply-To: <35CA5D39-E2B2-4576-82D3-108CC21F34AC@cs.purdue.edu> References: <20100115215118.A9F482474001@birch.elegosoft.com>, , , , <6CF0A42A-940C-4FB5-9CFD-CBA18EC9CAFA@cs.purdue.edu>, , <35CA5D39-E2B2-4576-82D3-108CC21F34AC@cs.purdue.edu> Message-ID: Interesting. Can the new values be added "at the end" to remain compatible, or they must be inserted where they are? Well, granted, it was already done, so it's hard to be compatible with old and older. Even so, if you use an old compiler and its old libraries to build new compiler (but not its libraries), and then new compiler to rebuild libraries and compiler... isn't that ok? One of us seems confused. I'm not sure who. Again, old pre-LONGINT compiler can be used to build the current system in a way that we have plenty well enough automated. We first build "up to cm3", skipping libm3/m3core, then clean all and rebuild all with that new cm3. 5.2.6 works. 5.1.3a does not, I believe because sysutils needs a newer m3core. That could be fixed. I realize that it is grey and not clear how far to run this race. You go far enough back, you hit transitions, like m3front being written in C and generatin C, you go further back and you write a C compiler in assembly, keep going and you edit the assembler into memory with switches or somesuch.. One metric has been that you can build with the previous "release". I'm not sure which that is. - Jay ________________________________ > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 17:51:47 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3commit] LONGINT used by m3quake/cm3 packages > > > > It's not the presence of LONGINT in the libraries or not. It is the presence of changes type type-map information (see RTTipe and its correspondence with TipeMap) which mean that the new libraries are incompatible with old compilers. > > > > On 15 Jan 2010, at 17:42, Jay K wrote: > > The compiler is not very dependent on newer compiler/libraries, until now, that I changed File.T.status().size to LONGINT. > > I was just able to upgrade.py from cm3-min-WIN32-NT386-5.2.6 for example. 5.1.3a failed though. > (It's still in progress, but far long.) > > m3core/libm3 can depend on current compiler, agreed. > > - Jay > > > ________________________________ > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 17:13:38 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3commit] LONGINT used by m3quake/cm3 packages > > Jay, the bootstrapping pain is inherent. The compiler and libraries are bound together. Currently, the old library and new libraries are incompatible with their respective compilers. Both ways. > > On 15 Jan 2010, at 16:56, Jay K wrote: > > VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, > but I think what I had is the way to go. > The bootstrapping pain is otherwise novel. > The compiler doesn't otherwise use LONGINT. > (My doing that it started using it.) > It ought not until after the current release? > > > - Jay > > >> Date: Fri, 15 Jan 2010 22:51:15 +0000 >> To: m3commit at elegosoft.com >> From: hosking at elego.de >> Subject: [M3commit] CVS Update: cm3 >> >> CVSROOT: /usr/cvs >> Changes by: hosking at birch. 10/01/15 22:51:15 >> >> Modified files: >> cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 >> >> Log message: >> Revert to VAL. >> > > > From hosking at cs.purdue.edu Sat Jan 16 00:57:30 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 18:57:30 -0500 Subject: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages In-Reply-To: References: <20100115215118.A9F482474001@birch.elegosoft.com>, , <46AFC820-D62E-472B-A0D0-6957153ECE17@cs.purdue.edu> Message-ID: <8089316A-A262-4CC7-8886-7350FC532D0F@cs.purdue.edu> You can bootstrap (non-Windows) from pre-LONGINT, building and shipping in the following order: Using old (release) cm3 m3middle m3linker m3front m3quake cm3 This cm3 uses old run-time libraries, but now understands LONGINT and LONGCARD. m3core (new, with LONGINT/LONGCARD) libm3 (new, with LONGINT/LONGCARD) sysutils m3middle m3linker m3front m3quake cm3 This cm3 uses new run-time libraries. On 15 Jan 2010, at 18:45, Jay K wrote: > > I'm able to bootstrap the current system from pre-LONGINT using upgrade.py. > I'm not sure, but our regular builds might do that. > Not so now though. > I think you might be saying however that such a compiler might have bugs in it? > > - Jay > > > > ________________________________ >> From: hosking at cs.purdue.edu >> Date: Fri, 15 Jan 2010 17:50:17 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >> Subject: Re: [M3devel] LONGINT used by m3quake/cm3 packages >> >> >> >> On 15 Jan 2010, at 16:56, Jay K wrote: >> >> VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, >> but I think what I had is the way to go. >> The bootstrapping pain is otherwise novel. >> >> The bootstrapping pain is now no more novel than when LONGINT was first introduced... >> >> The compiler doesn't otherwise use LONGINT. >> (My doing that it started using it.) >> It ought not until after the current release? >> >> ... so it is pointless trying to build new libraries with an old compiler because the old compiler is built to compile files against old libraries. >> >> >> >> - Jay >> >> >>> Date: Fri, 15 Jan 2010 22:51:15 +0000 >>> To: m3commit at elegosoft.com >>> From: hosking at elego.de >>> Subject: [M3commit] CVS Update: cm3 >>> >>> CVSROOT: /usr/cvs >>> Changes by: hosking at birch. 10/01/15 22:51:15 >>> >>> Modified files: >>> cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 >>> >>> Log message: >>> Revert to VAL. >>> >> From hosking at cs.purdue.edu Sat Jan 16 00:58:27 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 18:58:27 -0500 Subject: [M3commit] LONGINT used by m3quake/cm3 packages In-Reply-To: References: <20100115215118.A9F482474001@birch.elegosoft.com>, , , , <6CF0A42A-940C-4FB5-9CFD-CBA18EC9CAFA@cs.purdue.edu>, , <35CA5D39-E2B2-4576-82D3-108CC21F34AC@cs.purdue.edu> Message-ID: <13D6BE0C-2B40-474D-8743-B4F95F7A1D1A@cs.purdue.edu> On 15 Jan 2010, at 18:50, Jay K wrote: > > Interesting. Can the new values be added "at the end" to remain compatible, or they must be inserted where they are? Well, granted, it was already done, so it's hard to be compatible with old and older. Not easily. > Even so, if you use an old compiler and its old libraries to build new compiler (but not its libraries), and then new compiler to rebuild libraries and compiler... isn't that ok? By old, you mean pre-LONGINT, right? > One of us seems confused. I'm not sure who. Not me! ;-) > Again, old pre-LONGINT compiler can be used to build the current system in a way that we have plenty well enough automated. We first build "up to cm3", skipping libm3/m3core, then clean all and rebuild all with that new cm3. > 5.2.6 works. > 5.1.3a does not, I believe because sysutils needs a newer m3core. That could be fixed. > > > I realize that it is grey and not clear how far to run this race. > You go far enough back, you hit transitions, like m3front being written in C and generatin C, you go further back and you write a C compiler in assembly, keep going and you edit the assembler into memory with switches or somesuch.. > > > One metric has been that you can build with the previous "release". > I'm not sure which that is. > > > > - Jay > > > ________________________________ >> From: hosking at cs.purdue.edu >> Date: Fri, 15 Jan 2010 17:51:47 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >> Subject: Re: [M3commit] LONGINT used by m3quake/cm3 packages >> >> >> >> It's not the presence of LONGINT in the libraries or not. It is the presence of changes type type-map information (see RTTipe and its correspondence with TipeMap) which mean that the new libraries are incompatible with old compilers. >> >> >> >> On 15 Jan 2010, at 17:42, Jay K wrote: >> >> The compiler is not very dependent on newer compiler/libraries, until now, that I changed File.T.status().size to LONGINT. >> >> I was just able to upgrade.py from cm3-min-WIN32-NT386-5.2.6 for example. 5.1.3a failed though. >> (It's still in progress, but far long.) >> >> m3core/libm3 can depend on current compiler, agreed. >> >> - Jay >> >> >> ________________________________ >> From: hosking at cs.purdue.edu >> Date: Fri, 15 Jan 2010 17:13:38 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >> Subject: Re: [M3commit] LONGINT used by m3quake/cm3 packages >> >> Jay, the bootstrapping pain is inherent. The compiler and libraries are bound together. Currently, the old library and new libraries are incompatible with their respective compilers. Both ways. >> >> On 15 Jan 2010, at 16:56, Jay K wrote: >> >> VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, >> but I think what I had is the way to go. >> The bootstrapping pain is otherwise novel. >> The compiler doesn't otherwise use LONGINT. >> (My doing that it started using it.) >> It ought not until after the current release? >> >> >> - Jay >> >> >>> Date: Fri, 15 Jan 2010 22:51:15 +0000 >>> To: m3commit at elegosoft.com >>> From: hosking at elego.de >>> Subject: [M3commit] CVS Update: cm3 >>> >>> CVSROOT: /usr/cvs >>> Changes by: hosking at birch. 10/01/15 22:51:15 >>> >>> Modified files: >>> cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 >>> >>> Log message: >>> Revert to VAL. >>> >> >> >> From hosking at elego.de Sat Jan 16 03:24:13 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 16 Jan 2010 3:24:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116022414.0394E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/16 03:24:13 Modified files: cm3/examples/win32-dll/src/: RTMain.m3 Log message: Newline. From hosking at elego.de Sat Jan 16 03:27:13 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 16 Jan 2010 3:27:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116022713.1E2642474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/16 03:27:13 Modified files: cm3/m3-tools/m3browser/src/: Main.m3 cm3/m3-tools/m3tk/src/fe/: StandardAsText.m3 WiredStandard.m3 cm3/m3-tools/m3tk/src/pl/: M3LTextToType.m3 M3LTypeEquiv.m3 M3LTypeToText.i3 M3LTypeToText.m3 cm3/m3-tools/m3tk/src/sem/: M3CMkStd.m3 M3CStdTypes.i3 M3CStdTypes.m3 M3CTypeChkUtil.i3 M3CTypeChkUtil.m3 cm3/m3-tools/m3tk/src/syn/: M3CLex.m3 M3CParse.m3 M3CToken.i3 Log message: More complete support for LONGINT and LONGCARD. Not clear that constant folding is implemented properly here yet. From hosking at elego.de Sat Jan 16 03:29:11 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 16 Jan 2010 3:29:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116022912.60CAE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/16 03:29:11 Modified files: cm3/m3-sys/m3tools/src/: M3Const.m3 M3Type.i3 M3Type.m3 Log message: Support for LONGINT and LONGCARD. From hosking at elego.de Sat Jan 16 03:33:04 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 16 Jan 2010 3:33:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116023304.9ABF12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/16 03:33:04 Modified files: cm3/m3-comm/events/src/: EventStubLib.m3 cm3/m3-comm/sharedobjgen/src/: AstToType.m3 CodeForType.m3 Type.i3 Type.m3 Value.m3 cm3/m3-comm/stubgen/src/: AstToType.m3 CodeForType.m3 Type.i3 Type.m3 Value.m3 cm3/m3-db/stable/src/: StableLog.i3 StableLog.m3 cm3/m3-db/stablegen/src/: AstToType.m3 GenModuleCode.m3 GenTypeCode.m3 Type.i3 Type.m3 Value.m3 Log message: Initial support for LONGINT and LONGCARD. Still needs vetting for proper conversion of 64-bit and 32-bit LONGINT/LONGCARD (the integrated Win32 backend still treats LONGINT as 32 bits). From hosking at elego.de Sat Jan 16 04:11:30 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 16 Jan 2010 4:11:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116031130.748512474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/16 04:11:30 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTPacking.i3 RTPacking.m3 RTTipe.m3 cm3/m3-libs/libm3/src/pickle/ver2/: ConvertPacking.m3 PickleStubs.i3 PickleStubs.m3 Log message: Add pickle stubs for LONGINT and LONGCARD. Need testing. From hosking at elego.de Sat Jan 16 04:13:44 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 16 Jan 2010 4:13:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116031344.225E82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/16 04:13:44 Modified files: cm3/m3-libs/libm3/src/pickle/ver2/: PickleStubs.m3 Log message: longConvKind not wordConvKind. From hosking at elego.de Sat Jan 16 04:22:15 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 16 Jan 2010 4:22:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116032216.1EC972474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/16 04:22:15 Modified files: cm3/m3-tools/gnuemacs/src/: modula3.el Log message: Add LONGCARD. From jay.krell at cornell.edu Sat Jan 16 05:15:20 2010 From: jay.krell at cornell.edu (Jay K) Date: Sat, 16 Jan 2010 04:15:20 +0000 Subject: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages In-Reply-To: <8089316A-A262-4CC7-8886-7350FC532D0F@cs.purdue.edu> References: <20100115215118.A9F482474001@birch.elegosoft.com>, , , , <46AFC820-D62E-472B-A0D0-6957153ECE17@cs.purdue.edu>, , <8089316A-A262-4CC7-8886-7350FC532D0F@cs.purdue.edu> Message-ID: I strongly suspect(ed) this bootstrapping is broken, by my changing libm3.File.T.status().size to LONGINT, and then using VAL(LONGINT, INTEGER) in m3quake/m3scanner. However, with the older libraries, duh, it is VAL(INTEGER, INTEGER). Is that legal? Ok, probably, sorry, I was confused. - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 18:57:30 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages > > You can bootstrap (non-Windows) from pre-LONGINT, building and shipping in the following order: > > Using old (release) cm3 > > m3middle > m3linker > m3front > m3quake > cm3 > > This cm3 uses old run-time libraries, but now understands LONGINT and LONGCARD. > > m3core (new, with LONGINT/LONGCARD) > libm3 (new, with LONGINT/LONGCARD) > sysutils > m3middle > m3linker > m3front > m3quake > cm3 > > This cm3 uses new run-time libraries. > > On 15 Jan 2010, at 18:45, Jay K wrote: > >> >> I'm able to bootstrap the current system from pre-LONGINT using upgrade.py. >> I'm not sure, but our regular builds might do that. >> Not so now though. >> I think you might be saying however that such a compiler might have bugs in it? >> >> - Jay >> >> >> >> ________________________________ >>> From: hosking at cs.purdue.edu >>> Date: Fri, 15 Jan 2010 17:50:17 -0500 >>> To: jay.krell at cornell.edu >>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>> Subject: Re: [M3devel] LONGINT used by m3quake/cm3 packages >>> >>> >>> >>> On 15 Jan 2010, at 16:56, Jay K wrote: >>> >>> VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, >>> but I think what I had is the way to go. >>> The bootstrapping pain is otherwise novel. >>> >>> The bootstrapping pain is now no more novel than when LONGINT was first introduced... >>> >>> The compiler doesn't otherwise use LONGINT. >>> (My doing that it started using it.) >>> It ought not until after the current release? >>> >>> ... so it is pointless trying to build new libraries with an old compiler because the old compiler is built to compile files against old libraries. >>> >>> >>> >>> - Jay >>> >>> >>>> Date: Fri, 15 Jan 2010 22:51:15 +0000 >>>> To: m3commit at elegosoft.com >>>> From: hosking at elego.de >>>> Subject: [M3commit] CVS Update: cm3 >>>> >>>> CVSROOT: /usr/cvs >>>> Changes by: hosking at birch. 10/01/15 22:51:15 >>>> >>>> Modified files: >>>> cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 >>>> >>>> Log message: >>>> Revert to VAL. >>>> >>> > From hosking at cs.purdue.edu Sat Jan 16 05:29:27 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 23:29:27 -0500 Subject: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages In-Reply-To: References: <20100115215118.A9F482474001@birch.elegosoft.com>, , , , <46AFC820-D62E-472B-A0D0-6957153ECE17@cs.purdue.edu>, , <8089316A-A262-4CC7-8886-7350FC532D0F@cs.purdue.edu> Message-ID: <635BE76B-3EFD-4930-8029-DBBB14468869@cs.purdue.edu> The old (release) libraries don't have the VAL stuff do they? On 15 Jan 2010, at 23:15, Jay K wrote: > > I strongly suspect(ed) this bootstrapping is broken, by my changing libm3.File.T.status().size to LONGINT, and then using VAL(LONGINT, INTEGER) in m3quake/m3scanner. However, with the older libraries, duh, it is VAL(INTEGER, INTEGER). Is that legal? Ok, probably, sorry, I was confused. > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Fri, 15 Jan 2010 18:57:30 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >> Subject: Re: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages >> >> You can bootstrap (non-Windows) from pre-LONGINT, building and shipping in the following order: >> >> Using old (release) cm3 >> >> m3middle >> m3linker >> m3front >> m3quake >> cm3 >> >> This cm3 uses old run-time libraries, but now understands LONGINT and LONGCARD. >> >> m3core (new, with LONGINT/LONGCARD) >> libm3 (new, with LONGINT/LONGCARD) >> sysutils >> m3middle >> m3linker >> m3front >> m3quake >> cm3 >> >> This cm3 uses new run-time libraries. >> >> On 15 Jan 2010, at 18:45, Jay K wrote: >> >>> >>> I'm able to bootstrap the current system from pre-LONGINT using upgrade.py. >>> I'm not sure, but our regular builds might do that. >>> Not so now though. >>> I think you might be saying however that such a compiler might have bugs in it? >>> >>> - Jay >>> >>> >>> >>> ________________________________ >>>> From: hosking at cs.purdue.edu >>>> Date: Fri, 15 Jan 2010 17:50:17 -0500 >>>> To: jay.krell at cornell.edu >>>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>>> Subject: Re: [M3devel] LONGINT used by m3quake/cm3 packages >>>> >>>> >>>> >>>> On 15 Jan 2010, at 16:56, Jay K wrote: >>>> >>>> VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, >>>> but I think what I had is the way to go. >>>> The bootstrapping pain is otherwise novel. >>>> >>>> The bootstrapping pain is now no more novel than when LONGINT was first introduced... >>>> >>>> The compiler doesn't otherwise use LONGINT. >>>> (My doing that it started using it.) >>>> It ought not until after the current release? >>>> >>>> ... so it is pointless trying to build new libraries with an old compiler because the old compiler is built to compile files against old libraries. >>>> >>>> >>>> >>>> - Jay >>>> >>>> >>>>> Date: Fri, 15 Jan 2010 22:51:15 +0000 >>>>> To: m3commit at elegosoft.com >>>>> From: hosking at elego.de >>>>> Subject: [M3commit] CVS Update: cm3 >>>>> >>>>> CVSROOT: /usr/cvs >>>>> Changes by: hosking at birch. 10/01/15 22:51:15 >>>>> >>>>> Modified files: >>>>> cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 >>>>> >>>>> Log message: >>>>> Revert to VAL. >>>>> >>>> >> From jay.krell at cornell.edu Sat Jan 16 06:14:16 2010 From: jay.krell at cornell.edu (Jay K) Date: Sat, 16 Jan 2010 05:14:16 +0000 Subject: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages In-Reply-To: <635BE76B-3EFD-4930-8029-DBBB14468869@cs.purdue.edu> References: <20100115215118.A9F482474001@birch.elegosoft.com>, ,,, , , <46AFC820-D62E-472B-A0D0-6957153ECE17@cs.purdue.edu>, , , , <8089316A-A262-4CC7-8886-7350FC532D0F@cs.purdue.edu>, , <635BE76B-3EFD-4930-8029-DBBB14468869@cs.purdue.edu> Message-ID: No. They have File.T.status().size is INTEGER, and then m3quake/m3scanner call VAL(x, INTEGER) on that. I guess that is legal though. It doesn't matter if x is INTEGER or not, right? (In newer libraries, it is LONGINT). - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 23:29:27 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages > > The old (release) libraries don't have the VAL stuff do they? > > On 15 Jan 2010, at 23:15, Jay K wrote: > >> >> I strongly suspect(ed) this bootstrapping is broken, by my changing libm3.File.T.status().size to LONGINT, and then using VAL(LONGINT, INTEGER) in m3quake/m3scanner. However, with the older libraries, duh, it is VAL(INTEGER, INTEGER). Is that legal? Ok, probably, sorry, I was confused. >> >> - Jay >> >> >> ---------------------------------------- >>> From: hosking at cs.purdue.edu >>> Date: Fri, 15 Jan 2010 18:57:30 -0500 >>> To: jay.krell at cornell.edu >>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>> Subject: Re: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages >>> >>> You can bootstrap (non-Windows) from pre-LONGINT, building and shipping in the following order: >>> >>> Using old (release) cm3 >>> >>> m3middle >>> m3linker >>> m3front >>> m3quake >>> cm3 >>> >>> This cm3 uses old run-time libraries, but now understands LONGINT and LONGCARD. >>> >>> m3core (new, with LONGINT/LONGCARD) >>> libm3 (new, with LONGINT/LONGCARD) >>> sysutils >>> m3middle >>> m3linker >>> m3front >>> m3quake >>> cm3 >>> >>> This cm3 uses new run-time libraries. >>> >>> On 15 Jan 2010, at 18:45, Jay K wrote: >>> >>>> >>>> I'm able to bootstrap the current system from pre-LONGINT using upgrade.py. >>>> I'm not sure, but our regular builds might do that. >>>> Not so now though. >>>> I think you might be saying however that such a compiler might have bugs in it? >>>> >>>> - Jay >>>> >>>> >>>> >>>> ________________________________ >>>>> From: hosking at cs.purdue.edu >>>>> Date: Fri, 15 Jan 2010 17:50:17 -0500 >>>>> To: jay.krell at cornell.edu >>>>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>>>> Subject: Re: [M3devel] LONGINT used by m3quake/cm3 packages >>>>> >>>>> >>>>> >>>>> On 15 Jan 2010, at 16:56, Jay K wrote: >>>>> >>>>> VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, >>>>> but I think what I had is the way to go. >>>>> The bootstrapping pain is otherwise novel. >>>>> >>>>> The bootstrapping pain is now no more novel than when LONGINT was first introduced... >>>>> >>>>> The compiler doesn't otherwise use LONGINT. >>>>> (My doing that it started using it.) >>>>> It ought not until after the current release? >>>>> >>>>> ... so it is pointless trying to build new libraries with an old compiler because the old compiler is built to compile files against old libraries. >>>>> >>>>> >>>>> >>>>> - Jay >>>>> >>>>> >>>>>> Date: Fri, 15 Jan 2010 22:51:15 +0000 >>>>>> To: m3commit at elegosoft.com >>>>>> From: hosking at elego.de >>>>>> Subject: [M3commit] CVS Update: cm3 >>>>>> >>>>>> CVSROOT: /usr/cvs >>>>>> Changes by: hosking at birch. 10/01/15 22:51:15 >>>>>> >>>>>> Modified files: >>>>>> cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 >>>>>> >>>>>> Log message: >>>>>> Revert to VAL. >>>>>> >>>>> >>> > From hosking at cs.purdue.edu Sat Jan 16 06:20:22 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 16 Jan 2010 00:20:22 -0500 Subject: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages In-Reply-To: References: <20100115215118.A9F482474001@birch.elegosoft.com>, , , , , , <46AFC820-D62E-472B-A0D0-6957153ECE17@cs.purdue.edu>, , , , <8089316A-A262-4CC7-8886-7350FC532D0F@cs.purdue.edu>, , <635BE76B-3EFD-4930-8029-DBBB14468869@cs.purdue.edu> Message-ID: That's fine. On 16 Jan 2010, at 00:14, Jay K wrote: > > No. They have File.T.status().size is INTEGER, and then m3quake/m3scanner call VAL(x, INTEGER) on that. I guess that is legal though. > It doesn't matter if x is INTEGER or not, right? > (In newer libraries, it is LONGINT). > > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Fri, 15 Jan 2010 23:29:27 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >> Subject: Re: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages >> >> The old (release) libraries don't have the VAL stuff do they? >> >> On 15 Jan 2010, at 23:15, Jay K wrote: >> >>> >>> I strongly suspect(ed) this bootstrapping is broken, by my changing libm3.File.T.status().size to LONGINT, and then using VAL(LONGINT, INTEGER) in m3quake/m3scanner. However, with the older libraries, duh, it is VAL(INTEGER, INTEGER). Is that legal? Ok, probably, sorry, I was confused. >>> >>> - Jay >>> >>> >>> ---------------------------------------- >>>> From: hosking at cs.purdue.edu >>>> Date: Fri, 15 Jan 2010 18:57:30 -0500 >>>> To: jay.krell at cornell.edu >>>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>>> Subject: Re: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages >>>> >>>> You can bootstrap (non-Windows) from pre-LONGINT, building and shipping in the following order: >>>> >>>> Using old (release) cm3 >>>> >>>> m3middle >>>> m3linker >>>> m3front >>>> m3quake >>>> cm3 >>>> >>>> This cm3 uses old run-time libraries, but now understands LONGINT and LONGCARD. >>>> >>>> m3core (new, with LONGINT/LONGCARD) >>>> libm3 (new, with LONGINT/LONGCARD) >>>> sysutils >>>> m3middle >>>> m3linker >>>> m3front >>>> m3quake >>>> cm3 >>>> >>>> This cm3 uses new run-time libraries. >>>> >>>> On 15 Jan 2010, at 18:45, Jay K wrote: >>>> >>>>> >>>>> I'm able to bootstrap the current system from pre-LONGINT using upgrade.py. >>>>> I'm not sure, but our regular builds might do that. >>>>> Not so now though. >>>>> I think you might be saying however that such a compiler might have bugs in it? >>>>> >>>>> - Jay >>>>> >>>>> >>>>> >>>>> ________________________________ >>>>>> From: hosking at cs.purdue.edu >>>>>> Date: Fri, 15 Jan 2010 17:50:17 -0500 >>>>>> To: jay.krell at cornell.edu >>>>>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>>>>> Subject: Re: [M3devel] LONGINT used by m3quake/cm3 packages >>>>>> >>>>>> >>>>>> >>>>>> On 15 Jan 2010, at 16:56, Jay K wrote: >>>>>> >>>>>> VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, >>>>>> but I think what I had is the way to go. >>>>>> The bootstrapping pain is otherwise novel. >>>>>> >>>>>> The bootstrapping pain is now no more novel than when LONGINT was first introduced... >>>>>> >>>>>> The compiler doesn't otherwise use LONGINT. >>>>>> (My doing that it started using it.) >>>>>> It ought not until after the current release? >>>>>> >>>>>> ... so it is pointless trying to build new libraries with an old compiler because the old compiler is built to compile files against old libraries. >>>>>> >>>>>> >>>>>> >>>>>> - Jay >>>>>> >>>>>> >>>>>>> Date: Fri, 15 Jan 2010 22:51:15 +0000 >>>>>>> To: m3commit at elegosoft.com >>>>>>> From: hosking at elego.de >>>>>>> Subject: [M3commit] CVS Update: cm3 >>>>>>> >>>>>>> CVSROOT: /usr/cvs >>>>>>> Changes by: hosking at birch. 10/01/15 22:51:15 >>>>>>> >>>>>>> Modified files: >>>>>>> cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 >>>>>>> >>>>>>> Log message: >>>>>>> Revert to VAL. >>>>>>> >>>>>> >>>> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Sat Jan 16 11:44:55 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 11:44:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116104455.D3ACC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 11:44:55 Modified files: cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c SystemC.c Log message: quash warnings, be more compatible with more compilers, optimize, be compatible with libcmt.lib, etc. From jkrell at elego.de Sat Jan 16 11:46:14 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 11:46:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116104614.EC5AB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 11:46:14 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c Uexec.c Ugrp.c Uin.c Unetdb.c UnixC.c UnixLink.c Uprocess.c Usocket.c UstatC.c UtimeC.c Uuio.c Log message: quash warnings, be more compatible, etc. From jkrell at elego.de Sat Jan 16 11:55:39 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 11:55:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116105539.6F06A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 11:55:39 Modified files: cm3/m3-libs/m3core/src/: m3core.h cm3/m3-libs/m3core/src/C/Common/: CerrnoC.c CsignalC.c CstdioC.c CstdlibC.c CstringC.c cm3/m3-libs/m3core/src/Csupport/Common/: hand.c cm3/m3-libs/m3core/src/runtime/WIN32/: RTOSc.c cm3/m3-libs/m3core/src/runtime/common/: RTIOc.c RTLinkerC.c RTMiscC.c RTUntracedMemoryC.c cm3/m3-libs/m3core/src/unix/Common/: Uexec.c Uin.c Unetdb.c UnixC.c UnixLink.c Uprocess.c UstatC.c UtimeC.c Uuio.c Log message: quash warnings, don't enable frame point omission -- keep the stack easily walked From jkrell at elego.de Sat Jan 16 12:23:35 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:23:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116112335.C39752474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:23:35 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: dtoa.h Log message: add some parens; compare with http://www.netlib.org/fp/dtoa.c From jkrell at elego.de Sat Jan 16 12:34:56 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:34:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116113456.F09812474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:34:56 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: dtoa.h Log message: quash warnings with #pragma and with two more small changes from http://www.netlib.org/fp/dtoa.c From jkrell at elego.de Sat Jan 16 12:35:33 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:35:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116113533.3CD532474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:35:33 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: fix warning caused by bug in new unused code From jkrell at elego.de Sat Jan 16 12:36:58 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:36:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116113658.58F2A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:36:58 Modified files: cm3/m3-libs/m3core/src/win32/: WinNTc.c Log message: quash warning From jkrell at elego.de Sat Jan 16 12:37:53 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:37:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116113753.1B0B22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:37:53 Modified files: cm3/m3-libs/m3core/src/Csupport/libgcc/: libgcc.c Log message: quash warnings From jkrell at elego.de Sat Jan 16 12:44:13 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:44:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116114413.9A1352474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:44:13 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: fix warnings, optimize, calling conventions; though it seems maybe we could implement this in Modula-3 well enough?, maybe even in m3middle? From jkrell at elego.de Sat Jan 16 12:46:20 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:46:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116114621.09E892474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:46:20 Modified files: cm3/m3-libs/m3core/src/Csupport/libgcc/: libgcc.c Log message: put in calling conventions; doesn't likely matter here, this file is mostly for SOLgnu -- gcc backend without gcc linker (maybe also Irix, AIX, HP-UX) From jkrell at elego.de Sat Jan 16 12:47:48 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:47:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116114748.CDB5D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:47:48 Modified files: cm3/m3-libs/m3core/src/Csupport/libgcc/: libgcc.c Log message: limit quashing a clearly Darwin-specific warning to Darwin (Apple, MacOSX, whatever) From jkrell at elego.de Sat Jan 16 12:54:54 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:54:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116115454.D0AC22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:54:54 Modified files: cm3/m3-libs/m3core/src/: m3core.h Log message: add calling conventions (point being to be independent of the default as specified on the command line and for this code to always have the same meaning; there are tradeoffs either way, granted From jkrell at elego.de Sat Jan 16 13:15:52 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:15:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116121552.E1AAC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:15:52 Modified files: cm3/m3-libs/m3core/src/: m3makefile Log message: fix newlines From jkrell at elego.de Sat Jan 16 13:17:09 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:17:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116121709.DD3EE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:17:09 Modified files: cm3/m3-libs/m3core/src/: m3core.h cm3/m3-libs/m3core/src/unix/Common/: UtimeC.c Log message: Win32 time_t varies between the old bad 32bit and the new good 64bit. So just don't expose anything time_t related. From jkrell at elego.de Sat Jan 16 13:27:55 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:27:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116122755.AE0E12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:27:55 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uexec.c Log message: fix char** vs. char * const * when compiling Win32/C++ From jkrell at elego.de Sat Jan 16 13:29:16 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:29:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116122916.AD4D22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:29:16 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uexec.c Log message: fix another Win32/C++ const cast, and change #ifdef to #ifndef (and move the bodies) From jkrell at elego.de Sat Jan 16 13:35:37 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:35:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116123537.94F8A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:35:37 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UnixC.c Log message: be wary of truncating int to size_t in getcwd and gethostname -- don't expose them (this code isn't actually compiled for Win32, but it very well could be From jkrell at elego.de Sat Jan 16 13:41:31 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:41:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116124132.3E3E02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:41:31 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UnixLink.c Log message: fix unsigned/signed warning and workaround nonsensical warning that seems to trigger for any function pointer cast at all; note that these warnings, like others, have not been getting issued all along, it takes particular command lines to trigger them From jkrell at elego.de Sat Jan 16 13:44:16 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:44:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116124416.DA69C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:44:16 Modified files: cm3/m3-libs/m3core/src/: m3core.h Log message: #ifdef _WIN32 #ifndef WIN32 #define WIN32 #endif #endif for compat with old headers From jkrell at elego.de Sat Jan 16 13:44:56 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:44:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116124456.BB9402474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:44:56 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: quash warnings that aren't usually seen, add calling convention, compat with old headers From jkrell at elego.de Sat Jan 16 13:46:56 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:46:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116124658.5D3EB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:46:56 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UtimeInternal.i3 Log message: fix newlines (file not alive, I haven't decided what to do here about the platform-specificity of related code, probably use version rewritten in C, but might use an 'if platform' in Modula-3) From jkrell at elego.de Sat Jan 16 13:55:14 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:55:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116125514.564DF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:55:14 Modified files: cm3/scripts/: Tag: release_branch_cm3_5_8 make-dist.sh Log message: chmod 755 setup.cmd I had around, not sure it is needed, and a newline From jkrell at elego.de Sat Jan 16 14:07:49 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 14:07:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116130749.2DF3B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 14:07:49 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Tag: release_branch_cm3_5_8 NT386.common Log message: from head: support for bootstrapping from older releases without 'pos'; also put back local, though that might break some releases From jkrell at elego.de Sat Jan 16 14:15:30 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 14:15:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116131530.60C3F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 14:15:30 Modified files: cm3/m3-sys/m3middle/src/: Tag: release_branch_cm3_5_8 m3makefile Log message: fix newlines From jkrell at elego.de Sat Jan 16 14:22:33 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 14:22:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116132233.642A92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 14:22:33 Modified files: cm3/m3-comm/events/src/: Tag: release_branch_cm3_5_8 m3overrides cm3/m3-comm/sharedobjgen/src/: Tag: release_branch_cm3_5_8 m3overrides cm3/m3-comm/stubgen/src/: Tag: release_branch_cm3_5_8 m3overrides Log message: some m3override centralization I had From jkrell at elego.de Sat Jan 16 14:30:36 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 14:30:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116133037.A2E552474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 14:30:36 Modified files: cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 QScanner.m3 Log message: from head: go back to VAL: VAL(INTEGER, INTEGER) is legal, there's no dependency here on LONGINT if the underlying library doesn't use it From jkrell at elego.de Sat Jan 16 14:31:35 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 14:31:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116133136.0726D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 14:31:35 Modified files: cm3/m3-sys/cm3/src/: Tag: release_branch_cm3_5_8 WebFile.m3 Log message: from head: go back to VAL: VAL(INTEGER, INTEGER) is legal, there's no dependency here on LONGINT if the underlying library doesn't use it From jkrell at elego.de Sat Jan 16 14:42:09 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 14:42:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116134209.79B3A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 14:42:09 Modified files: cm3/m3-comm/events/src/: Tag: release_branch_cm3_5_8 EventStubLib.m3 cm3/m3-comm/sharedobjgen/src/: Tag: release_branch_cm3_5_8 AstToType.m3 CodeForType.m3 Type.i3 Type.m3 Value.m3 cm3/m3-comm/stubgen/src/: Tag: release_branch_cm3_5_8 AstToType.m3 CodeForType.m3 Type.i3 Type.m3 Value.m3 cm3/m3-db/stable/src/: Tag: release_branch_cm3_5_8 StableLog.i3 StableLog.m3 cm3/m3-db/stablegen/src/: Tag: release_branch_cm3_5_8 AstToType.m3 GenModuleCode.m3 GenTypeCode.m3 Type.i3 Type.m3 Value.m3 cm3/m3-libs/libm3/src/pickle/ver2/: Tag: release_branch_cm3_5_8 ConvertPacking.m3 PickleStubs.i3 PickleStubs.m3 cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTBuiltin.mx RTPacking.i3 RTPacking.m3 RTTipe.i3 RTTipe.m3 cm3/m3-sys/m3cggen/src/: Tag: release_branch_cm3_5_8 Main.m3 cm3/m3-sys/m3front/src/builtinTypes/: Tag: release_branch_cm3_5_8 BuiltinTypes.m3 m3makefile cm3/m3-sys/m3front/src/misc/: Tag: release_branch_cm3_5_8 CG.i3 CG.m3 TipeDesc.i3 Token.m3 cm3/m3-sys/m3front/src/types/: Tag: release_branch_cm3_5_8 RecordType.i3 RecordType.m3 SubrangeType.m3 cm3/m3-sys/m3middle/src/: Tag: release_branch_cm3_5_8 M3CG.i3 M3CG.m3 M3CG_BinRd.m3 M3CG_BinWr.m3 M3CG_Binary.i3 M3CG_Check.m3 M3CG_Ops.i3 M3CG_Rd.m3 M3CG_Wr.m3 cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 QCompiler.m3 QScanner.i3 cm3/m3-sys/m3tools/src/: Tag: release_branch_cm3_5_8 M3Const.m3 M3Type.i3 M3Type.m3 cm3/m3-tools/m3browser/src/: Tag: release_branch_cm3_5_8 Main.m3 cm3/m3-tools/m3tk/src/fe/: Tag: release_branch_cm3_5_8 StandardAsText.m3 WiredStandard.m3 cm3/m3-tools/m3tk/src/pl/: Tag: release_branch_cm3_5_8 M3LTextToType.m3 M3LTypeEquiv.m3 M3LTypeToText.i3 M3LTypeToText.m3 cm3/m3-tools/m3tk/src/sem/: Tag: release_branch_cm3_5_8 M3CMkStd.m3 M3CStdTypes.i3 M3CStdTypes.m3 M3CTypeChkUtil.i3 M3CTypeChkUtil.m3 cm3/m3-tools/m3tk/src/syn/: Tag: release_branch_cm3_5_8 M3CLex.m3 M3CParse.m3 M3CToken.i3 Added files: cm3/m3-sys/m3front/src/builtinTypes/: Tag: release_branch_cm3_5_8 LCard.i3 LCard.m3 Log message: copy from head: LONGINT, LONGCARD, and atomics come along for the ride From jay.krell at cornell.edu Sat Jan 16 14:45:22 2010 From: jay.krell at cornell.edu (Jay K) Date: Sat, 16 Jan 2010 13:45:22 +0000 Subject: [M3commit] longint/longcard/atomics copied from head to release In-Reply-To: <20100116134209.79B3A2474001@birch.elegosoft.com> References: <20100116134209.79B3A2474001@birch.elegosoft.com> Message-ID: There's also more "val" reversion here. Attached should match this. Pity no cvs command or web page can show it. (I try to make up for CVS lameness just by remembering a lot...not a good technique..) - Jay > Date: Sat, 16 Jan 2010 14:42:09 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/16 14:42:09 > > Modified files: > cm3/m3-comm/events/src/: Tag: release_branch_cm3_5_8 > EventStubLib.m3 > cm3/m3-comm/sharedobjgen/src/: Tag: release_branch_cm3_5_8 > AstToType.m3 CodeForType.m3 > Type.i3 Type.m3 Value.m3 > cm3/m3-comm/stubgen/src/: Tag: release_branch_cm3_5_8 > AstToType.m3 CodeForType.m3 Type.i3 > Type.m3 Value.m3 > cm3/m3-db/stable/src/: Tag: release_branch_cm3_5_8 StableLog.i3 > StableLog.m3 > cm3/m3-db/stablegen/src/: Tag: release_branch_cm3_5_8 > AstToType.m3 GenModuleCode.m3 > GenTypeCode.m3 Type.i3 Type.m3 > Value.m3 > cm3/m3-libs/libm3/src/pickle/ver2/: Tag: release_branch_cm3_5_8 > ConvertPacking.m3 > PickleStubs.i3 > PickleStubs.m3 > cm3/m3-libs/m3core/src/runtime/common/: Tag: > release_branch_cm3_5_8 > RTBuiltin.mx > RTPacking.i3 > RTPacking.m3 RTTipe.i3 > RTTipe.m3 > cm3/m3-sys/m3cggen/src/: Tag: release_branch_cm3_5_8 Main.m3 > cm3/m3-sys/m3front/src/builtinTypes/: Tag: > release_branch_cm3_5_8 > BuiltinTypes.m3 m3makefile > cm3/m3-sys/m3front/src/misc/: Tag: release_branch_cm3_5_8 CG.i3 > CG.m3 TipeDesc.i3 Token.m3 > cm3/m3-sys/m3front/src/types/: Tag: release_branch_cm3_5_8 > RecordType.i3 RecordType.m3 > SubrangeType.m3 > cm3/m3-sys/m3middle/src/: Tag: release_branch_cm3_5_8 M3CG.i3 > M3CG.m3 M3CG_BinRd.m3 M3CG_BinWr.m3 > M3CG_Binary.i3 M3CG_Check.m3 > M3CG_Ops.i3 M3CG_Rd.m3 M3CG_Wr.m3 > cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 > QCompiler.m3 QScanner.i3 > cm3/m3-sys/m3tools/src/: Tag: release_branch_cm3_5_8 M3Const.m3 > M3Type.i3 M3Type.m3 > cm3/m3-tools/m3browser/src/: Tag: release_branch_cm3_5_8 Main.m3 > cm3/m3-tools/m3tk/src/fe/: Tag: release_branch_cm3_5_8 > StandardAsText.m3 WiredStandard.m3 > cm3/m3-tools/m3tk/src/pl/: Tag: release_branch_cm3_5_8 > M3LTextToType.m3 M3LTypeEquiv.m3 > M3LTypeToText.i3 M3LTypeToText.m3 > cm3/m3-tools/m3tk/src/sem/: Tag: release_branch_cm3_5_8 > M3CMkStd.m3 M3CStdTypes.i3 > M3CStdTypes.m3 M3CTypeChkUtil.i3 > M3CTypeChkUtil.m3 > cm3/m3-tools/m3tk/src/syn/: Tag: release_branch_cm3_5_8 > M3CLex.m3 M3CParse.m3 M3CToken.i3 > Added files: > cm3/m3-sys/m3front/src/builtinTypes/: Tag: > release_branch_cm3_5_8 > LCard.i3 LCard.m3 > > Log message: > copy from head: LONGINT, LONGCARD, and atomics come along for the ride > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 4.txt URL: From hosking at cs.purdue.edu Sat Jan 16 19:51:41 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 16 Jan 2010 13:51:41 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100116114413.9A1352474001@birch.elegosoft.com> References: <20100116114413.9A1352474001@birch.elegosoft.com> Message-ID: <176BC4BE-B881-49C1-A24E-ABBED1AE46EC@cs.purdue.edu> m3middle? On 16 Jan 2010, at 12:44, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/16 12:44:13 > > Modified files: > cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c > > Log message: > fix warnings, optimize, calling conventions; though it seems maybe we could implement this in Modula-3 well enough?, maybe even in m3middle? -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Jan 16 20:53:51 2010 From: jay.krell at cornell.edu (Jay K) Date: Sat, 16 Jan 2010 19:53:51 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <176BC4BE-B881-49C1-A24E-ABBED1AE46EC@cs.purdue.edu> References: <20100116114413.9A1352474001@birch.elegosoft.com>, <176BC4BE-B881-49C1-A24E-ABBED1AE46EC@cs.purdue.edu> Message-ID: What I meant was, somewhere, either m3middle or m3front, or with extern pragmas, you could generate calls to abort instead of functions that call abort. Not a big deal. - Jay From: hosking at cs.purdue.edu Date: Sat, 16 Jan 2010 13:51:41 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 m3middle? On 16 Jan 2010, at 12:44, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:44:13 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: fix warnings, optimize, calling conventions; though it seems maybe we could implement this in Modula-3 well enough?, maybe even in m3middle? -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Jan 16 20:54:35 2010 From: jay.krell at cornell.edu (Jay K) Date: Sat, 16 Jan 2010 19:54:35 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <176BC4BE-B881-49C1-A24E-ABBED1AE46EC@cs.purdue.edu> References: <20100116114413.9A1352474001@birch.elegosoft.com>, <176BC4BE-B881-49C1-A24E-ABBED1AE46EC@cs.purdue.edu> Message-ID: m3middle/Target.m3 knows which platforms have a stack walker. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; jkrell at elego.de CC: m3commit at elegosoft.com Subject: RE: [M3commit] CVS Update: cm3 Date: Sat, 16 Jan 2010 19:53:51 +0000 What I meant was, somewhere, either m3middle or m3front, or with extern pragmas, you could generate calls to abort instead of functions that call abort. Not a big deal. - Jay From: hosking at cs.purdue.edu Date: Sat, 16 Jan 2010 13:51:41 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 m3middle? On 16 Jan 2010, at 12:44, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:44:13 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: fix warnings, optimize, calling conventions; though it seems maybe we could implement this in Modula-3 well enough?, maybe even in m3middle? -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Sat Jan 16 20:58:23 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 20:58:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116195823.50BAB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 20:58:23 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: dtoa.h Log message: use error directive instead of plain text; ok, maybe that's a 'new' feature, use both From jkrell at elego.de Sat Jan 16 20:59:33 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 20:59:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116195933.215C82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 20:59:33 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: dtoa.h Log message: quash an innocuous warning From jkrell at elego.de Sat Jan 16 21:13:44 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 21:13:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116201344.29C5C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 21:13:44 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: dtoa.h Log message: quash all but one assignment within conditional warning with gcc -Wall by adding parens where the current source does the same From jkrell at elego.de Sat Jan 16 21:26:33 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 21:26:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116202633.196A02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 21:26:33 Modified files: cm3/m3-libs/m3core/src/C/Common/: CerrnoC.c CsignalC.c CstdioC.c CstdlibC.c CstringC.c cm3/m3-libs/m3core/src/Csupport/Common/: hand.c cm3/m3-libs/m3core/src/runtime/WIN32/: RTOSc.c cm3/m3-libs/m3core/src/runtime/common/: RTIOc.c RTLinkerC.c RTMiscC.c RTUntracedMemoryC.c cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c cm3/m3-libs/m3core/src/unix/Common/: Uexec.c Uin.c Unetdb.c UnixC.c UnixLink.c Uprocess.c UstatC.c UtimeC.c Uuio.c Log message: just remove all the #pragma optimize, not a big deal either way From jkrell at elego.de Sat Jan 16 21:27:49 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 21:27:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116202749.7F60C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 21:27:49 Modified files: cm3/m3-libs/sysutils/src/: FSUtils.i3 FSUtilsUnsafe.i3 cm3/m3-libs/sysutils/src/POSIX/: FSUnix_cm3.m3 FSUnix_pm3.m3 cm3/m3-libs/sysutils/src/WIN32/: FSysWin32.m3 Log message: expose GetFileSize():INTEGER for >2GB on 64 bit maybe just remove this though, no current users From jkrell at elego.de Sat Jan 16 21:28:26 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 21:28:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116202826.B88D32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 21:28:26 Modified files: cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c SystemC.c Log message: remove #pragma optimize, not a big deal either way From jkrell at elego.de Sat Jan 16 21:29:57 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 21:29:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116202957.DD54A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 21:29:57 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTUntracedMemoryC.c Log message: missing an important muliplication; code not used yet From hosking at cs.purdue.edu Sun Jan 17 01:25:29 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 16 Jan 2010 19:25:29 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100116114413.9A1352474001@birch.elegosoft.com>, <176BC4BE-B881-49C1-A24E-ABBED1AE46EC@cs.purdue.edu> Message-ID: It would be an unnecessary complication of the compiler. Better to leave the aborts in the library. On 16 Jan 2010, at 14:54, Jay K wrote: > m3middle/Target.m3 knows which platforms have a stack walker. > > - Jay > > > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu; jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: RE: [M3commit] CVS Update: cm3 > Date: Sat, 16 Jan 2010 19:53:51 +0000 > > What I meant was, somewhere, either m3middle or m3front, or with extern pragmas, you could generate calls to abort instead of functions that call abort. Not a big deal. > > - Jay > > > > From: hosking at cs.purdue.edu > Date: Sat, 16 Jan 2010 13:51:41 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > m3middle? > > On 16 Jan 2010, at 12:44, Jay Krell wrote: > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/16 12:44:13 > > Modified files: > cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c > > Log message: > fix warnings, optimize, calling conventions; though it seems maybe we could implement this in Modula-3 well enough?, maybe even in m3middle? > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Jan 17 01:58:45 2010 From: jay.krell at cornell.edu (Jay K) Date: Sun, 17 Jan 2010 00:58:45 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100116114413.9A1352474001@birch.elegosoft.com>, <176BC4BE-B881-49C1-A24E-ABBED1AE46EC@cs.purdue.edu> , Message-ID: ok Subject: Re: [M3commit] CVS Update: cm3 From: hosking at cs.purdue.edu Date: Sat, 16 Jan 2010 19:25:29 -0500 CC: jkrell at elego.de; m3commit at elegosoft.com To: jay.krell at cornell.edu It would be an unnecessary complication of the compiler. Better to leave the aborts in the library. On 16 Jan 2010, at 14:54, Jay K wrote: m3middle/Target.m3 knows which platforms have a stack walker. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; jkrell at elego.de CC: m3commit at elegosoft.com Subject: RE: [M3commit] CVS Update: cm3 Date: Sat, 16 Jan 2010 19:53:51 +0000 What I meant was, somewhere, either m3middle or m3front, or with extern pragmas, you could generate calls to abort instead of functions that call abort. Not a big deal. - Jay From: hosking at cs.purdue.edu Date: Sat, 16 Jan 2010 13:51:41 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 m3middle? On 16 Jan 2010, at 12:44, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:44:13 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: fix warnings, optimize, calling conventions; though it seems maybe we could implement this in Modula-3 well enough?, maybe even in m3middle? -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Sun Jan 17 04:04:38 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 4:04:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117030438.ACDEF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 04:04:38 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: spaces in comments From jkrell at elego.de Sun Jan 17 07:18:29 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 7:18:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117061829.EA6042474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 07:18:29 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: fix bugs, warnings, and crashes (though the crashes are perhaps appropriate) unoptimized LONG_MIN divided by negative numbers give negative result but should be positive optimized version gives correct result gcc 4.2 optimized LONG_MIN divided by -1 raises an exception (possibly ok) gcc-4.2 -O2 -Wstrict-overflow=4 gives warnings about signed overlfow; guidance is to use unsigned The magnitude of no result should be changed here. Test code is included. Old versions are retained and exercised by test code, compared to new versions, altered only to avoid the exception. Passing int64 in K&R style also doesn't work; always use ANSI form; I do have HP-UX with K&R only compiler, revisit that later. All testing done on Darwin/x86 and Darwin/amd64, with gcc 4.2.1. Will test others shortly but hard to imagine there is anything wrong here. Unsigned operations are much better defined across all platforms and Darwin/x86/amd64 merit fixing. From jkrell at elego.de Sun Jan 17 07:31:38 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 7:31:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117063138.CD78C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 07:31:38 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: support strange limits.h that has maximum 64bit integer but not minimum (Linux/powerpc at least with no special switches) From jkrell at elego.de Sun Jan 17 07:48:00 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 7:48:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117064800.611D12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 07:48:00 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: cleanup: remove ugly indentation use macros and typedefs for genericity and incidentally for inlining move test code out of main into TestDiv nest last part in else no semantic change From jkrell at elego.de Sun Jan 17 07:51:14 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 7:51:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117065114.BBEAA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 07:51:14 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: disabl test code From jkrell at elego.de Sun Jan 17 08:02:31 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 8:02:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117070232.1EB242474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 08:02:31 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: fix all non-NT platforms (__cdecl) and always use ANSI instead of K&R for now From jkrell at elego.de Sun Jan 17 08:16:08 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 8:16:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117071608.AC28C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 08:16:08 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: support more limits.h (VC 2.0) and quash warnings From jkrell at elego.de Sun Jan 17 08:27:08 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 8:27:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117072708.5AEAC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 08:27:08 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: I forgot to put parens in the macros, but it was ok. From jkrell at elego.de Sun Jan 17 09:41:33 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 9:41:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117084133.C22722474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 09:41:33 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: better: use direct division for anything with a zero or same signs only use unsigned if signs vary From jkrell at elego.de Sun Jan 17 09:44:06 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 9:44:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117084406.701342474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 09:44:06 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: fix comment: -Wstrict-overflow=4 is required to see the problem (or just run a test of unoptimized code..) From jkrell at elego.de Sun Jan 17 09:45:06 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 9:45:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117084506.A6CD32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 09:45:06 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: p.s.: restore trap for LONG_MIN / -1, depending on optimization, it seems reasonable From jkrell at elego.de Sun Jan 17 09:59:54 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 9:59:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117085954.8618B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 09:59:54 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: move up typedefs just to eliminate cascade error on ancient compilers From jkrell at elego.de Sun Jan 17 10:02:24 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 10:02:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117090224.C99552474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 10:02:24 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: use friendly macro From jkrell at elego.de Sun Jan 17 14:23:01 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 14:23:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117132301.52D252474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 14:23:01 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: also fix mod where inputs are minimum and negative Modula-3 mod (as opposed to every other programming language) is always supposed to have the sign of its second input, or be 0 However it was backwards, depending on compiler and optimizer (optimizer tends to *fix* the bug) test code included, much cleaner this time (see http://www.modula3.com/cm3/doc/reference/arithmetic.html) From jkrell at elego.de Sun Jan 17 14:28:22 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 14:28:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117132822.97DCC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 14:28:22 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: slight cleanup: #includes, better names for test functions, count more of the errors in the old versions From jkrell at elego.de Sun Jan 17 14:33:11 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 14:33:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117133311.B749D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 14:33:10 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: Tag: release_branch_cm3_5_8 ProcessPosixCommon.m3 Log message: go back a version: Unix.sleep isn't available in release branch From jkrell at elego.de Sun Jan 17 15:08:18 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 15:08:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117140818.B1AE62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 15:08:18 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: test more inputs, and random numbers (though not very random) From jkrell at elego.de Sun Jan 17 15:15:05 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 15:15:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117141505.E31142474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 15:15:05 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: test yet more values From jkrell at elego.de Sun Jan 17 15:50:54 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 15:50:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117145055.89C8B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 15:50:54 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: cleanup test code and get a little more coverage; there seems to be a problem From jkrell at elego.de Sun Jan 17 15:55:54 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 15:55:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117145554.C4A0F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 15:55:54 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: avoid test cases that overflow, that was the problem; mainline code doesn't special case overflow though From jkrell at elego.de Mon Jan 18 02:26:54 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 2:26:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118012654.326B82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 02:26:54 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: only compute a < 0 and b < 0 once per function (div and mod) From jkrell at elego.de Mon Jan 18 10:36:11 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 10:36:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118093612.13A502474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 10:36:11 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: move matching runctions next to each other, remove inconsistent extra parens From jkrell at elego.de Mon Jan 18 10:37:19 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 10:37:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118093719.86D582474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 10:37:19 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: check common case first From jkrell at elego.de Mon Jan 18 11:02:05 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 11:02:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118100205.8AB912474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 11:02:05 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Tag: release_branch_cm3_5_8 Unix.i3 UnixC.c Log message: bring over sleep wrapper from head From jkrell at elego.de Mon Jan 18 11:06:09 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 11:06:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118100609.40AA92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 11:06:09 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Tag: release_branch_cm3_5_8 Unix.i3 Log message: import unsigned From jkrell at elego.de Mon Jan 18 12:12:25 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 12:12:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118111225.C48D32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 12:12:25 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 Log message: add Negate function From jkrell at elego.de Mon Jan 18 14:15:50 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 14:15:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118131550.59A2B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 14:15:50 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: disable test code From jkrell at elego.de Mon Jan 18 14:18:18 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 14:18:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118131818.A8FDE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 14:18:18 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: rename 'nu' to 'current' ('new' shouldn't be used, it conflicts with C++) From jkrell at elego.de Mon Jan 18 14:28:43 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 14:28:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118132843.E768D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 14:28:43 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: add more constants for m3back; restore more verbose form that makes it easier to see these are arrays of bytes From hosking at cs.purdue.edu Mon Jan 18 15:11:02 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 18 Jan 2010 09:11:02 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100118132843.E768D2474001@birch.elegosoft.com> References: <20100118132843.E768D2474001@birch.elegosoft.com> Message-ID: Jay, m3middle is intended for m3front as the client. Not m3back. If you need all these constants you should put them somewhere in m3back. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 18 Jan 2010, at 14:28, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/18 14:28:43 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 > > Log message: > add more constants for m3back; restore more verbose form that makes it easier to see these are arrays of bytes -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at elego.de Mon Jan 18 15:25:00 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 18 Jan 2010 15:25:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118142500.5BC8A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/18 15:25:00 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: Restore some readability! IBytes is declared as bytes so these values can *only* be bytes statically! Jay, these probably really don't belong here anyway. Shouldn't you be making use of the Target types instead? All of the constants you need are declared there. I don't see why you need to clutter up TInt. [Moreover, you have unsigned constants in the signed integer interface (TInt instead of TWord).] But I don't think any of this belongs here in the first place! For example: Target.Int16.min Target.Word8.max etc. From jay.krell at cornell.edu Mon Jan 18 21:52:36 2010 From: jay.krell at cornell.edu (Jay K) Date: Mon, 18 Jan 2010 20:52:36 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100118132843.E768D2474001@birch.elegosoft.com>, Message-ID: Putting them elsewhere violates the opacity. Not using this code in m3back would require duplication. m3back does recieve plenty of Target.Int parameters, and already uses TInt and maybe TWord, and TFloat. Hard to deal with the opaque parameters unless TInt is available... - Jay From: hosking at cs.purdue.edu Date: Mon, 18 Jan 2010 09:11:02 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 Jay, m3middle is intended for m3front as the client. Not m3back. If you need all these constants you should put them somewhere in m3back. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 On 18 Jan 2010, at 14:28, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 14:28:43 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: add more constants for m3back; restore more verbose form that makes it easier to see these are arrays of bytes -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Jan 18 22:57:24 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 18 Jan 2010 16:57:24 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100118132843.E768D2474001@birch.elegosoft.com>, Message-ID: <2C0A6815-97C9-48D0-AFF6-A1252636BE04@cs.purdue.edu> On 18 Jan 2010, at 15:52, Jay K wrote: > Putting them elsewhere violates the opacity. What's wrong with Target.Int8.max/min, etc.? Also, why should unsigned values be in TInt instead of TWord? > Not using this code in m3back would require duplication. Understood. > m3back does recieve plenty of Target.Int parameters, and already uses TInt and maybe TWord, and TFloat. > Hard to deal with the opaque parameters unless TInt is available... Nothing wrong with using TInt. Just use Target.x.min/max, instead of TInt consts. > > - Jay > > From: hosking at cs.purdue.edu > Date: Mon, 18 Jan 2010 09:11:02 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Jay, > > m3middle is intended for m3front as the client. > Not m3back. If you need all these constants you should put them somewhere in m3back. > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 > > > > > On 18 Jan 2010, at 14:28, Jay Krell wrote: > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/18 14:28:43 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 > > Log message: > add more constants for m3back; restore more verbose form that makes it easier to see these are arrays of bytes > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Jan 18 23:57:08 2010 From: jay.krell at cornell.edu (Jay K) Date: Mon, 18 Jan 2010 22:57:08 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <2C0A6815-97C9-48D0-AFF6-A1252636BE04@cs.purdue.edu> References: <20100118132843.E768D2474001@birch.elegosoft.com>, , , , <2C0A6815-97C9-48D0-AFF6-A1252636BE04@cs.purdue.edu> Message-ID: Maybe I'll use those. I like a very direct mechanical translation where I can. IF foo> bar => IF TInt.GT(foo, bar) whereas I could have used: => IF TInt.LT(bar, foo) and not introduced GT. imm := 16_FFFF => imm := TInt.FFFF whereas I could have used, had I known/though of it. Target.UInt16.max or such. TInt vs. TWord, ok. Their distinction is not always clear to me. For example TWord doesn't have as many conversion functions. I think NT386 mainly needs this stuff for efficiency not actually making it work. In particular it does constant folding. And it checks for it hi/lo/range checks can be eliminated -- which I suspect is redundant with m3front. I find the "n" parameter to FromInt confusing. Most uses I see use Target.Integer.bytes so I do too, but I'm not sure. That's a reason for forming constants, to avoid the unclear FromInt function. Why can't I just pass a host integer? Is that ambiguous? - Jay ________________________________ > From: hosking at cs.purdue.edu > Date: Mon, 18 Jan 2010 16:57:24 -0500 > To: jay.krell at cornell.edu > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > > > On 18 Jan 2010, at 15:52, Jay K wrote: > > Putting them elsewhere violates the opacity. > > What's wrong with Target.Int8.max/min, etc.? > > Also, why should unsigned values be in TInt instead of TWord? > > Not using this code in m3back would require duplication. > > Understood. > > m3back does recieve plenty of Target.Int parameters, and already uses TInt and maybe TWord, and TFloat. > Hard to deal with the opaque parameters unless TInt is available... > > Nothing wrong with using TInt. Just use Target.x.min/max, instead of TInt consts. > > > - Jay > > ________________________________ > From: hosking at cs.purdue.edu > Date: Mon, 18 Jan 2010 09:11:02 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Jay, > > m3middle is intended for m3front as the client. > Not m3back. If you need all these constants you should put them somewhere in m3back. > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 > > > > > On 18 Jan 2010, at 14:28, Jay Krell wrote: > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/18 14:28:43 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 > > Log message: > add more constants for m3back; restore more verbose form that makes it easier to see these are arrays of bytes > > > From jay.krell at cornell.edu Tue Jan 19 08:56:31 2010 From: jay.krell at cornell.edu (Jay K) Date: Tue, 19 Jan 2010 07:56:31 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100118142500.5BC8A2474001@birch.elegosoft.com> References: <20100118142500.5BC8A2474001@birch.elegosoft.com> Message-ID: > Restore some readability! fyi, the terser forms were my own recent introduction. There is some readability value in padding out to two digits, and as a side affect, it frees up "FF" and such to be actual Target.Int. - Jay > Date: Mon, 18 Jan 2010 15:25:00 +0000 > To: m3commit at elegosoft.com > From: hosking at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: hosking at birch. 10/01/18 15:25:00 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 > > Log message: > Restore some readability! IBytes is declared as bytes so these values can > *only* be bytes statically! Jay, these probably really don't belong here > anyway. Shouldn't you be making use of the Target types instead? All of the > constants you need are declared there. I don't see why you need to clutter up > TInt. [Moreover, you have unsigned constants in the signed integer interface > (TInt instead of TWord).] But I don't think any of this belongs here in the > first place! > > For example: > > Target.Int16.min > Target.Word8.max > etc. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Wed Jan 20 12:44:57 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 20 Jan 2010 12:44:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100120114458.064CE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/20 12:44:57 Modified files: cm3/m3-sys/m3front/src/misc/: Error.i3 Log message: fix typo in comment From jkrell at elego.de Wed Jan 20 13:56:22 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 20 Jan 2010 13:56:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100120125622.A7DA52474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/20 13:56:22 Modified files: cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 Stackx86.i3 Stackx86.m3 cm3/m3-sys/m3front/src/misc/: CG.m3 Error.i3 Error.m3 cm3/m3-sys/m3middle/src/: M3CG_BinWr.m3 M3CG_Check.m3 M3CG_Ops.i3 M3CG_Wr.m3 cm3/m3-sys/m3staloneback/src/: Main.m3 Log message: at warning callback so backends can issue warnings, not just errors From jay.krell at cornell.edu Wed Jan 20 13:57:42 2010 From: jay.krell at cornell.edu (Jay K) Date: Wed, 20 Jan 2010 12:57:42 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100120125622.A7DA52474001@birch.elegosoft.com> References: <20100120125622.A7DA52474001@birch.elegosoft.com> Message-ID: diff is attached (not sure how else you can easily find it with cvs...) > Date: Wed, 20 Jan 2010 13:56:22 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/20 13:56:22 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > Stackx86.i3 Stackx86.m3 > cm3/m3-sys/m3front/src/misc/: CG.m3 Error.i3 Error.m3 > cm3/m3-sys/m3middle/src/: M3CG_BinWr.m3 M3CG_Check.m3 > M3CG_Ops.i3 M3CG_Wr.m3 > cm3/m3-sys/m3staloneback/src/: Main.m3 > > Log message: > at warning callback so backends can issue warnings, not just errors > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 3.txt URL: From jkrell at elego.de Wed Jan 20 16:01:32 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 20 Jan 2010 16:01:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100120150133.04F542474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/20 16:01:32 Modified files: cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 M3x86Rep.i3 Stackx86.i3 Stackx86.m3 cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 Log message: convert much of m3back to use Target.Int instead of INTEGER This should at least allow it to propagate constant LONGINTs as well as perhaps otherwise help with implementing LONGINT, since the virtual stack is now of Target.Int instead of INTEGER Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead Also note that there's still a lot of "INTEGER" used. From jay.krell at cornell.edu Wed Jan 20 16:02:27 2010 From: jay.krell at cornell.edu (Jay K) Date: Wed, 20 Jan 2010 15:02:27 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100120150133.04F542474001@birch.elegosoft.com> References: <20100120150133.04F542474001@birch.elegosoft.com> Message-ID: diff attached > Date: Wed, 20 Jan 2010 16:01:32 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/20 16:01:32 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > convert much of m3back to use Target.Int instead of INTEGER > This should at least allow it to propagate constant LONGINTs > as well as perhaps otherwise help with implementing LONGINT, > since the virtual stack is now of Target.Int instead of INTEGER > > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead > > Also note that there's still a lot of "INTEGER" used. > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 1.txt URL: From jay.krell at cornell.edu Wed Jan 20 16:05:23 2010 From: jay.krell at cornell.edu (Jay K) Date: Wed, 20 Jan 2010 15:05:23 +0000 Subject: [M3commit] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: References: <20100120150133.04F542474001@birch.elegosoft.com>, Message-ID: This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. I did look through pretty much every single line in search of the one bug I saw working on it. It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. Which broke INC, it was adding 0 instead 1. You could see the bug in RTIO.PutString where it just kept outputing the first character. So I use TInt.Multiply instead. - Jay From: jay.krell at cornell.edu To: jkrell at elego.de; m3commit at elegosoft.com Date: Wed, 20 Jan 2010 15:02:27 +0000 Subject: Re: [M3commit] CVS Update: cm3 diff attached > Date: Wed, 20 Jan 2010 16:01:32 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/20 16:01:32 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > convert much of m3back to use Target.Int instead of INTEGER > This should at least allow it to propagate constant LONGINTs > as well as perhaps otherwise help with implementing LONGINT, > since the virtual stack is now of Target.Int instead of INTEGER > > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead > > Also note that there's still a lot of "INTEGER" used. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Wed Jan 20 16:09:07 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 20 Jan 2010 16:09:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100120150908.0B3BB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/20 16:09:07 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Log message: remove assert that was hunting for the 1 => 0 corruption, turns out it was TWord.Multiply From hosking at cs.purdue.edu Thu Jan 21 00:52:36 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 20 Jan 2010 18:52:36 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100120125622.A7DA52474001@birch.elegosoft.com> References: <20100120125622.A7DA52474001@birch.elegosoft.com> Message-ID: I don't understand what is going on here. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 20 Jan 2010, at 13:56, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/20 13:56:22 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > Stackx86.i3 Stackx86.m3 > cm3/m3-sys/m3front/src/misc/: CG.m3 Error.i3 Error.m3 > cm3/m3-sys/m3middle/src/: M3CG_BinWr.m3 M3CG_Check.m3 > M3CG_Ops.i3 M3CG_Wr.m3 > cm3/m3-sys/m3staloneback/src/: Main.m3 > > Log message: > at warning callback so backends can issue warnings, not just errors -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Jan 21 00:54:18 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 20 Jan 2010 18:54:18 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100120125622.A7DA52474001@birch.elegosoft.com> Message-ID: <2B939D34-18BE-48B8-9C60-6AF7F3E5CF06@cs.purdue.edu> OK, I see what's going on. Why would you *ever* have a warning instead of an error in the backend? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 20 Jan 2010, at 07:57, Jay K wrote: > diff is attached (not sure how else you can easily find it with cvs...) > > > > Date: Wed, 20 Jan 2010 13:56:22 +0000 > > To: m3commit at elegosoft.com > > From: jkrell at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/20 13:56:22 > > > > Modified files: > > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > > Stackx86.i3 Stackx86.m3 > > cm3/m3-sys/m3front/src/misc/: CG.m3 Error.i3 Error.m3 > > cm3/m3-sys/m3middle/src/: M3CG_BinWr.m3 M3CG_Check.m3 > > M3CG_Ops.i3 M3CG_Wr.m3 > > cm3/m3-sys/m3staloneback/src/: Main.m3 > > > > Log message: > > at warning callback so backends can issue warnings, not just errors > > > <3.txt> -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Jan 21 00:56:10 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 20 Jan 2010 18:56:10 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100120150133.04F542474001@birch.elegosoft.com> References: <20100120150133.04F542474001@birch.elegosoft.com> Message-ID: On 20 Jan 2010, at 16:01, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/20 16:01:32 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > convert much of m3back to use Target.Int instead of INTEGER > This should at least allow it to propagate constant LONGINTs > as well as perhaps otherwise help with implementing LONGINT, > since the virtual stack is now of Target.Int instead of INTEGER > > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead What???????? > > Also note that there's still a lot of "INTEGER" used. From hosking at cs.purdue.edu Thu Jan 21 00:59:30 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 20 Jan 2010 18:59:30 -0500 Subject: [M3commit] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: References: <20100120150133.04F542474001@birch.elegosoft.com>, Message-ID: <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu> Where's the bug in TWord.Multiply? If there were a bug we would have seen it by now surely? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 20 Jan 2010, at 10:05, Jay K wrote: > This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. > I did look through pretty much every single line in search of the one bug I saw working on it. > It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. > Which broke INC, it was adding 0 instead 1. > You could see the bug in RTIO.PutString where it just kept outputing the first character. > So I use TInt.Multiply instead. > > - Jay > > From: jay.krell at cornell.edu > To: jkrell at elego.de; m3commit at elegosoft.com > Date: Wed, 20 Jan 2010 15:02:27 +0000 > Subject: Re: [M3commit] CVS Update: cm3 > > diff attached > > > > > > > > Date: Wed, 20 Jan 2010 16:01:32 +0000 > > To: m3commit at elegosoft.com > > From: jkrell at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/20 16:01:32 > > > > Modified files: > > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 > > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > > > Log message: > > convert much of m3back to use Target.Int instead of INTEGER > > This should at least allow it to propagate constant LONGINTs > > as well as perhaps otherwise help with implementing LONGINT, > > since the virtual stack is now of Target.Int instead of INTEGER > > > > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead > > > > Also note that there's still a lot of "INTEGER" used. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Jan 21 02:00:39 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 20 Jan 2010 20:00:39 -0500 Subject: [M3commit] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu> References: <20100120150133.04F542474001@birch.elegosoft.com>, <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu> Message-ID: Jay, I don't know what you are talking about there being a bug in TWord.Multiply. This little program prints out 2, as would be expected: MODULE Main; IMPORT RTIO, TInt, TWord, Target; VAR i := TInt.Two; j: Target.Int; buf: ARRAY[0..10] OF CHAR; BEGIN TWord.Multiply (i, TInt.One, j); FOR k := 0 TO TInt.ToChars (i, buf) DO RTIO.PutChar(buf[k]); END; RTIO.PutChar('\n'); RTIO.Flush(); END Main. On 20 Jan 2010, at 18:59, Tony Hosking wrote: > Where's the bug in TWord.Multiply? > If there were a bug we would have seen it by now surely? > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 | Mobile +1 765 427 5484 > > > > > On 20 Jan 2010, at 10:05, Jay K wrote: > >> This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. >> I did look through pretty much every single line in search of the one bug I saw working on it. >> It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. >> Which broke INC, it was adding 0 instead 1. >> You could see the bug in RTIO.PutString where it just kept outputing the first character. >> So I use TInt.Multiply instead. >> >> - Jay >> >> From: jay.krell at cornell.edu >> To: jkrell at elego.de; m3commit at elegosoft.com >> Date: Wed, 20 Jan 2010 15:02:27 +0000 >> Subject: Re: [M3commit] CVS Update: cm3 >> >> diff attached >> >> >> >> >> >> >> > Date: Wed, 20 Jan 2010 16:01:32 +0000 >> > To: m3commit at elegosoft.com >> > From: jkrell at elego.de >> > Subject: [M3commit] CVS Update: cm3 >> > >> > CVSROOT: /usr/cvs >> > Changes by: jkrell at birch. 10/01/20 16:01:32 >> > >> > Modified files: >> > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 >> > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 >> > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 >> > >> > Log message: >> > convert much of m3back to use Target.Int instead of INTEGER >> > This should at least allow it to propagate constant LONGINTs >> > as well as perhaps otherwise help with implementing LONGINT, >> > since the virtual stack is now of Target.Int instead of INTEGER >> > >> > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead >> > >> > Also note that there's still a lot of "INTEGER" used. >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 21 03:52:13 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 21 Jan 2010 02:52:13 +0000 Subject: [M3commit] [M3devel] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: References: <20100120150133.04F542474001@birch.elegosoft.com>, , , , <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu>, Message-ID: I'll look into it again. There's definitely a problem somewhere. Maybe in my change. Maybe. Using TInt.Multiply vs. TWord.Multiply made the difference between INC() incrementing by zero or the correct amount. I had some number, I multiplied it by a variable that also happened to be 1, and I got zero. This was the only problem I ran into in changing from INTEGER to Target.Int. - Jay ________________________________ > From: hosking at cs.purdue.edu > Date: Wed, 20 Jan 2010 20:00:39 -0500 > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com; jay.krell at cornell.edu > Subject: Re: [M3devel] [M3commit] m3back using Target.Int in place of INTEGER a lot now > > > > > Jay, I don't know what you are talking about there being a bug in TWord.Multiply. > > This little program prints out 2, as would be expected: > > MODULE Main; > IMPORT RTIO, TInt, TWord, Target; > > VAR i := TInt.Two; > j: Target.Int; > buf: ARRAY[0..10] OF CHAR; > BEGIN > TWord.Multiply (i, TInt.One, j); > FOR k := 0 TO TInt.ToChars (i, buf) DO > RTIO.PutChar(buf[k]); > END; > RTIO.PutChar('\n'); > RTIO.Flush(); > END Main. > > > On 20 Jan 2010, at 18:59, Tony Hosking wrote: > > Where's the bug in TWord.Multiply? > If there were a bug we would have seen it by now surely? > > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 | Mobile +1 765 427 5484 > > > > > > > On 20 Jan 2010, at 10:05, Jay K wrote: > > This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. > I did look through pretty much every single line in search of the one bug I saw working on it. > It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. > Which broke INC, it was adding 0 instead 1. > You could see the bug in RTIO.PutString where it just kept outputing the first character. > So I use TInt.Multiply instead. > > - Jay > > ________________________________ > From: jay.krell at cornell.edu > To: jkrell at elego.de; m3commit at elegosoft.com > Date: Wed, 20 Jan 2010 15:02:27 +0000 > Subject: Re: [M3commit] CVS Update: cm3 > > diff attached > > > > > > >> Date: Wed, 20 Jan 2010 16:01:32 +0000 >> To: m3commit at elegosoft.com >> From: jkrell at elego.de >> Subject: [M3commit] CVS Update: cm3 >> >> CVSROOT: /usr/cvs >> Changes by: jkrell at birch. 10/01/20 16:01:32 >> >> Modified files: >> cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 >> M3x86Rep.i3 Stackx86.i3 Stackx86.m3 >> cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 >> >> Log message: >> convert much of m3back to use Target.Int instead of INTEGER >> This should at least allow it to propagate constant LONGINTs >> as well as perhaps otherwise help with implementing LONGINT, >> since the virtual stack is now of Target.Int instead of INTEGER >> >> Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead >> >> Also note that there's still a lot of "INTEGER" used. >> > > From jay.krell at cornell.edu Thu Jan 21 08:02:41 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 21 Jan 2010 07:02:41 +0000 Subject: [M3commit] [M3devel] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: References: <20100120150133.04F542474001@birch.elegosoft.com>, , , , <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu>, Message-ID: Hm. Ok. TInt.Multiply allows aliasing but TWord.Multiply does not. MODULE Main; IMPORT RTIO, Target, TInt, TWord; VAR a,b:Target.Int; BEGIN EVAL TInt.FromInt(1, BYTESIZE(INTEGER), a); EVAL TInt.FromInt(1, BYTESIZE(INTEGER), b); TWord.Multiply(a, b, a); RTIO.PutText(TInt.ToText(a)); RTIO.Flush(); END Main. prints 0. The code in m3back: PROCEDURE doindex_address (t: T; shift, size: INTEGER; neg: BOOLEAN) = ... (* Beware TWord.Multiply: x * 1 = 0 *) IF NOT TInt.Multiply(stop0.imm, tsize, stop0.imm) THEN t.Err("doindex_address: multiply overflowed"); END; - Jay From: hosking at cs.purdue.edu Date: Wed, 20 Jan 2010 20:00:39 -0500 To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com; m3commit at elegosoft.com; jay.krell at cornell.edu Subject: Re: [M3devel] [M3commit] m3back using Target.Int in place of INTEGER a lot now Jay, I don't know what you are talking about there being a bug in TWord.Multiply. This little program prints out 2, as would be expected: MODULE Main; IMPORT RTIO, TInt, TWord, Target; VAR i := TInt.Two; j: Target.Int; buf: ARRAY[0..10] OF CHAR; BEGIN TWord.Multiply (i, TInt.One, j); FOR k := 0 TO TInt.ToChars (i, buf) DO RTIO.PutChar(buf[k]); END; RTIO.PutChar('\n'); RTIO.Flush(); END Main. On 20 Jan 2010, at 18:59, Tony Hosking wrote: Where's the bug in TWord.Multiply? If there were a bug we would have seen it by now surely? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 On 20 Jan 2010, at 10:05, Jay K wrote: This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. I did look through pretty much every single line in search of the one bug I saw working on it. It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. Which broke INC, it was adding 0 instead 1. You could see the bug in RTIO.PutString where it just kept outputing the first character. So I use TInt.Multiply instead. - Jay From: jay.krell at cornell.edu To: jkrell at elego.de; m3commit at elegosoft.com Date: Wed, 20 Jan 2010 15:02:27 +0000 Subject: Re: [M3commit] CVS Update: cm3 diff attached > Date: Wed, 20 Jan 2010 16:01:32 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/20 16:01:32 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > convert much of m3back to use Target.Int instead of INTEGER > This should at least allow it to propagate constant LONGINTs > as well as perhaps otherwise help with implementing LONGINT, > since the virtual stack is now of Target.Int instead of INTEGER > > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead > > Also note that there's still a lot of "INTEGER" used. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 21 08:14:40 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 21 Jan 2010 07:14:40 +0000 Subject: [M3commit] [M3devel] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: References: <20100120150133.04F542474001@birch.elegosoft.com>, , , , , , , <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu>, , , Message-ID: TInt.Multiply is reasonable anyway, since the code wasn't using Word.Multiply but just INTEGER *. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Thu, 21 Jan 2010 07:02:41 +0000 CC: m3devel at elegosoft.com; m3commit at elegosoft.com Subject: Re: [M3commit] [M3devel] m3back using Target.Int in place of INTEGER a lot now Hm. Ok. TInt.Multiply allows aliasing but TWord.Multiply does not. MODULE Main; IMPORT RTIO, Target, TInt, TWord; VAR a,b:Target.Int; BEGIN EVAL TInt.FromInt(1, BYTESIZE(INTEGER), a); EVAL TInt.FromInt(1, BYTESIZE(INTEGER), b); TWord.Multiply(a, b, a); RTIO.PutText(TInt.ToText(a)); RTIO.Flush(); END Main. prints 0. The code in m3back: PROCEDURE doindex_address (t: T; shift, size: INTEGER; neg: BOOLEAN) = ... (* Beware TWord.Multiply: x * 1 = 0 *) IF NOT TInt.Multiply(stop0.imm, tsize, stop0.imm) THEN t.Err("doindex_address: multiply overflowed"); END; - Jay From: hosking at cs.purdue.edu Date: Wed, 20 Jan 2010 20:00:39 -0500 To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com; m3commit at elegosoft.com; jay.krell at cornell.edu Subject: Re: [M3devel] [M3commit] m3back using Target.Int in place of INTEGER a lot now Jay, I don't know what you are talking about there being a bug in TWord.Multiply. This little program prints out 2, as would be expected: MODULE Main; IMPORT RTIO, TInt, TWord, Target; VAR i := TInt.Two; j: Target.Int; buf: ARRAY[0..10] OF CHAR; BEGIN TWord.Multiply (i, TInt.One, j); FOR k := 0 TO TInt.ToChars (i, buf) DO RTIO.PutChar(buf[k]); END; RTIO.PutChar('\n'); RTIO.Flush(); END Main. On 20 Jan 2010, at 18:59, Tony Hosking wrote: Where's the bug in TWord.Multiply? If there were a bug we would have seen it by now surely? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 On 20 Jan 2010, at 10:05, Jay K wrote: This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. I did look through pretty much every single line in search of the one bug I saw working on it. It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. Which broke INC, it was adding 0 instead 1. You could see the bug in RTIO.PutString where it just kept outputing the first character. So I use TInt.Multiply instead. - Jay From: jay.krell at cornell.edu To: jkrell at elego.de; m3commit at elegosoft.com Date: Wed, 20 Jan 2010 15:02:27 +0000 Subject: Re: [M3commit] CVS Update: cm3 diff attached > Date: Wed, 20 Jan 2010 16:01:32 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/20 16:01:32 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > convert much of m3back to use Target.Int instead of INTEGER > This should at least allow it to propagate constant LONGINTs > as well as perhaps otherwise help with implementing LONGINT, > since the virtual stack is now of Target.Int instead of INTEGER > > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead > > Also note that there's still a lot of "INTEGER" used. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Thu Jan 21 08:40:35 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 8:40:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121074035.6FD8C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 08:40:35 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Stackx86.m3 Log message: restore accidentally removed constant folding in doabs rename 't' to 'tint' avoid aliasing in TInt.Multiply; remove comment about TWord.Multiply From jkrell at elego.de Thu Jan 21 09:06:36 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 9:06:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121080636.143682474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 09:06:36 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 Stackx86.i3 Stackx86.m3 Log message: more Target.Int, less INTEGER we have to special case -FIRST(INTEGER) and let it convert to an integer, even though it doesn't fit I call this AbsMinS32 in TInt, absolute value of MinS32 From jay.krell at cornell.edu Thu Jan 21 09:09:11 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 21 Jan 2010 08:09:11 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100121080636.143682474001@birch.elegosoft.com> References: <20100121080636.143682474001@birch.elegosoft.com> Message-ID: diff attached (not otherwise discoverable with CVS as far as I know) This -FIRST(INTEGER) thing is still bugging me. Maybe we can change Lex.m3 to not use it? - Jay > Date: Thu, 21 Jan 2010 09:06:36 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/21 09:06:36 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 > cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 Stackx86.i3 > Stackx86.m3 > > Log message: > more Target.Int, less INTEGER > we have to special case -FIRST(INTEGER) and let it convert > to an integer, even though it doesn't fit > I call this AbsMinS32 in TInt, absolute value of MinS32 > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 1.txt URL: From hosking at cs.purdue.edu Thu Jan 21 09:38:45 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 21 Jan 2010 03:38:45 -0500 Subject: [M3commit] [M3devel] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: References: <20100120150133.04F542474001@birch.elegosoft.com>, , , , <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu>, Message-ID: <1DFF961A-09C7-4BAF-8593-D8128577786D@cs.purdue.edu> INC is defined on INTEGER values, not Word.T. I think your problem is somewhere else. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 20 Jan 2010, at 21:52, Jay K wrote: > > I'll look into it again. > There's definitely a problem somewhere. > Maybe in my change. Maybe. > > > Using TInt.Multiply vs. TWord.Multiply made the difference > between INC() incrementing by zero or the correct amount. > I had some number, I multiplied it by a variable > that also happened to be 1, and I got zero. > This was the only problem I ran into in changing > from INTEGER to Target.Int. > > > - Jay > > ________________________________ >> From: hosking at cs.purdue.edu >> Date: Wed, 20 Jan 2010 20:00:39 -0500 >> To: hosking at cs.purdue.edu >> CC: m3devel at elegosoft.com; m3commit at elegosoft.com; jay.krell at cornell.edu >> Subject: Re: [M3devel] [M3commit] m3back using Target.Int in place of INTEGER a lot now >> >> >> >> >> Jay, I don't know what you are talking about there being a bug in TWord.Multiply. >> >> This little program prints out 2, as would be expected: >> >> MODULE Main; >> IMPORT RTIO, TInt, TWord, Target; >> >> VAR i := TInt.Two; >> j: Target.Int; >> buf: ARRAY[0..10] OF CHAR; >> BEGIN >> TWord.Multiply (i, TInt.One, j); >> FOR k := 0 TO TInt.ToChars (i, buf) DO >> RTIO.PutChar(buf[k]); >> END; >> RTIO.PutChar('\n'); >> RTIO.Flush(); >> END Main. >> >> >> On 20 Jan 2010, at 18:59, Tony Hosking wrote: >> >> Where's the bug in TWord.Multiply? >> If there were a bug we would have seen it by now surely? >> >> >> Antony Hosking | Associate Professor | Computer Science | Purdue University >> 305 N. University Street | West Lafayette | IN 47907 | USA >> Office +1 765 494 6001 | Mobile +1 765 427 5484 >> >> >> >> >> >> >> On 20 Jan 2010, at 10:05, Jay K wrote: >> >> This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. >> I did look through pretty much every single line in search of the one bug I saw working on it. >> It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. >> Which broke INC, it was adding 0 instead 1. >> You could see the bug in RTIO.PutString where it just kept outputing the first character. >> So I use TInt.Multiply instead. >> >> - Jay >> >> ________________________________ >> From: jay.krell at cornell.edu >> To: jkrell at elego.de; m3commit at elegosoft.com >> Date: Wed, 20 Jan 2010 15:02:27 +0000 >> Subject: Re: [M3commit] CVS Update: cm3 >> >> diff attached >> >> >> >> >> >> >>> Date: Wed, 20 Jan 2010 16:01:32 +0000 >>> To: m3commit at elegosoft.com >>> From: jkrell at elego.de >>> Subject: [M3commit] CVS Update: cm3 >>> >>> CVSROOT: /usr/cvs >>> Changes by: jkrell at birch. 10/01/20 16:01:32 >>> >>> Modified files: >>> cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 >>> M3x86Rep.i3 Stackx86.i3 Stackx86.m3 >>> cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 >>> >>> Log message: >>> convert much of m3back to use Target.Int instead of INTEGER >>> This should at least allow it to propagate constant LONGINTs >>> as well as perhaps otherwise help with implementing LONGINT, >>> since the virtual stack is now of Target.Int instead of INTEGER >>> >>> Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead >>> >>> Also note that there's still a lot of "INTEGER" used. >>> >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Jan 21 09:40:36 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 21 Jan 2010 03:40:36 -0500 Subject: [M3commit] [M3devel] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: References: <20100120150133.04F542474001@birch.elegosoft.com>, , , , <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu>, Message-ID: <8AB90935-0C2B-4BF7-80A7-D0EBA22636AC@cs.purdue.edu> You should not assume that aliasing works for any of these operations. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 21 Jan 2010, at 02:02, Jay K wrote: > Hm. Ok. TInt.Multiply allows aliasing but TWord.Multiply does not. > > > MODULE Main; > IMPORT RTIO, Target, TInt, TWord; > VAR a,b:Target.Int; > BEGIN > EVAL TInt.FromInt(1, BYTESIZE(INTEGER), a); > EVAL TInt.FromInt(1, BYTESIZE(INTEGER), b); > TWord.Multiply(a, b, a); > RTIO.PutText(TInt.ToText(a)); > RTIO.Flush(); > END Main. > > > prints 0. > > The code in m3back: > > > PROCEDURE doindex_address (t: T; shift, size: INTEGER; neg: BOOLEAN) = > ... > (* Beware TWord.Multiply: x * 1 = 0 *) > IF NOT TInt.Multiply(stop0.imm, tsize, stop0.imm) THEN > t.Err("doindex_address: multiply overflowed"); > END; > > > > - Jay > > > From: hosking at cs.purdue.edu > Date: Wed, 20 Jan 2010 20:00:39 -0500 > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com; jay.krell at cornell.edu > Subject: Re: [M3devel] [M3commit] m3back using Target.Int in place of INTEGER a lot now > > Jay, I don't know what you are talking about there being a bug in TWord.Multiply. > > This little program prints out 2, as would be expected: > > MODULE Main; > IMPORT RTIO, TInt, TWord, Target; > > VAR i := TInt.Two; > j: Target.Int; > buf: ARRAY[0..10] OF CHAR; > BEGIN > TWord.Multiply (i, TInt.One, j); > FOR k := 0 TO TInt.ToChars (i, buf) DO > RTIO.PutChar(buf[k]); > END; > RTIO.PutChar('\n'); > RTIO.Flush(); > END Main. > > > On 20 Jan 2010, at 18:59, Tony Hosking wrote: > > Where's the bug in TWord.Multiply? > If there were a bug we would have seen it by now surely? > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 > > > > > On 20 Jan 2010, at 10:05, Jay K wrote: > > This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. > I did look through pretty much every single line in search of the one bug I saw working on it. > It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. > Which broke INC, it was adding 0 instead 1. > You could see the bug in RTIO.PutString where it just kept outputing the first character. > So I use TInt.Multiply instead. > > - Jay > > From: jay.krell at cornell.edu > To: jkrell at elego.de; m3commit at elegosoft.com > Date: Wed, 20 Jan 2010 15:02:27 +0000 > Subject: Re: [M3commit] CVS Update: cm3 > > diff attached > > > > > > > > Date: Wed, 20 Jan 2010 16:01:32 +0000 > > To: m3commit at elegosoft.com > > From: jkrell at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/20 16:01:32 > > > > Modified files: > > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 > > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > > > Log message: > > convert much of m3back to use Target.Int instead of INTEGER > > This should at least allow it to propagate constant LONGINTs > > as well as perhaps otherwise help with implementing LONGINT, > > since the virtual stack is now of Target.Int instead of INTEGER > > > > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead > > > > Also note that there's still a lot of "INTEGER" used. > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 21 09:42:40 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 21 Jan 2010 08:42:40 +0000 Subject: [M3commit] [M3devel] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: <8AB90935-0C2B-4BF7-80A7-D0EBA22636AC@cs.purdue.edu> References: <20100120150133.04F542474001@birch.elegosoft.com>, , , , , , , <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu>, , , , <8AB90935-0C2B-4BF7-80A7-D0EBA22636AC@cs.purdue.edu> Message-ID: I changed it to no longer: IF NOT TInt.Multiply(stop0.imm, tsize, tint) THEN t.Err("doindex_address: multiply overflowed"); END; stop0.imm := tint; - Jay From: hosking at cs.purdue.edu Date: Thu, 21 Jan 2010 03:40:36 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com; m3commit at elegosoft.com Subject: Re: [M3commit] [M3devel] m3back using Target.Int in place of INTEGER a lot now You should not assume that aliasing works for any of these operations. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 On 21 Jan 2010, at 02:02, Jay K wrote: Hm. Ok. TInt.Multiply allows aliasing but TWord.Multiply does not. MODULE Main; IMPORT RTIO, Target, TInt, TWord; VAR a,b:Target.Int; BEGIN EVAL TInt.FromInt(1, BYTESIZE(INTEGER), a); EVAL TInt.FromInt(1, BYTESIZE(INTEGER), b); TWord.Multiply(a, b, a); RTIO.PutText(TInt.ToText(a)); RTIO.Flush(); END Main. prints 0. The code in m3back: PROCEDURE doindex_address (t: T; shift, size: INTEGER; neg: BOOLEAN) = ... (* Beware TWord.Multiply: x * 1 = 0 *) IF NOT TInt.Multiply(stop0.imm, tsize, stop0.imm) THEN t.Err("doindex_address: multiply overflowed"); END; - Jay From: hosking at cs.purdue.edu Date: Wed, 20 Jan 2010 20:00:39 -0500 To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com; m3commit at elegosoft.com; jay.krell at cornell.edu Subject: Re: [M3devel] [M3commit] m3back using Target.Int in place of INTEGER a lot now Jay, I don't know what you are talking about there being a bug in TWord.Multiply. This little program prints out 2, as would be expected: MODULE Main; IMPORT RTIO, TInt, TWord, Target; VAR i := TInt.Two; j: Target.Int; buf: ARRAY[0..10] OF CHAR; BEGIN TWord.Multiply (i, TInt.One, j); FOR k := 0 TO TInt.ToChars (i, buf) DO RTIO.PutChar(buf[k]); END; RTIO.PutChar('\n'); RTIO.Flush(); END Main. On 20 Jan 2010, at 18:59, Tony Hosking wrote: Where's the bug in TWord.Multiply? If there were a bug we would have seen it by now surely? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 On 20 Jan 2010, at 10:05, Jay K wrote: This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. I did look through pretty much every single line in search of the one bug I saw working on it. It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. Which broke INC, it was adding 0 instead 1. You could see the bug in RTIO.PutString where it just kept outputing the first character. So I use TInt.Multiply instead. - Jay From: jay.krell at cornell.edu To: jkrell at elego.de; m3commit at elegosoft.com Date: Wed, 20 Jan 2010 15:02:27 +0000 Subject: Re: [M3commit] CVS Update: cm3 diff attached > Date: Wed, 20 Jan 2010 16:01:32 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/20 16:01:32 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > convert much of m3back to use Target.Int instead of INTEGER > This should at least allow it to propagate constant LONGINTs > as well as perhaps otherwise help with implementing LONGINT, > since the virtual stack is now of Target.Int instead of INTEGER > > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead > > Also note that there's still a lot of "INTEGER" used. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Thu Jan 21 10:48:18 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 10:48:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121094818.A01B12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 10:48:18 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Log message: preserve locked across corrupt as before From jkrell at elego.de Thu Jan 21 10:48:55 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 10:48:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121094855.7308A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 10:48:55 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 Log message: fix newlines From jkrell at elego.de Thu Jan 21 12:52:27 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 12:52:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121115227.AACBD2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 12:52:27 Modified files: cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 M3x86Rep.i3 Stackx86.m3 Log message: initial guesses for: fence, store_ordered, load_ordered, compare_exchange, exchange MIA: fetch_and_op, any testing (is there frontend support?), support for other than 32 bit types, much clue how this stuff works :( compare_exchange should be willing to use other registers, presumably From jkrell at elego.de Thu Jan 21 14:00:23 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 14:00:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121130023.9AECA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 14:00:23 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Codex86.m3 Codex86.i3 Log message: a more convincing compare_exchange that doesn't hardcode the register allocation and seems to fit the spec From jkrell at elego.de Thu Jan 21 14:02:07 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 14:02:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121130207.5E82E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 14:02:07 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: the return type of compare_exchange doesn't need to be checked like the others From jkrell at elego.de Thu Jan 21 14:06:37 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 14:06:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121130637.DAB232474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 14:06:37 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 Log message: I forgot the lock prefix. From jkrell at elego.de Thu Jan 21 14:54:34 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 14:54:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121135434.5EA0D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 14:54:34 Modified files: cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 Log message: an initial fairly convincing implementation of fetch_and_op - but it returns the new value not the old value - still not tested, not sure frontend supports it From hosking at cs.purdue.edu Thu Jan 21 15:19:11 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 21 Jan 2010 09:19:11 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100121135434.5EA0D2474001@birch.elegosoft.com> References: <20100121135434.5EA0D2474001@birch.elegosoft.com> Message-ID: <4C4366F4-7064-4FA1-873F-179CA0721B10@cs.purdue.edu> These will all be supported in the front end soon. You should be able to extract example sequences for x86 from the gcc intrinsics. Once I get that stuff working in the gcc-based backend you'll have an alternative to seeing example sequences. On 21 Jan 2010, at 14:54, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/21 14:54:34 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > > Log message: > an initial fairly convincing implementation of fetch_and_op > - but it returns the new value not the old value > - still not tested, not sure frontend supports it -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Fri Jan 22 13:28:33 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 22 Jan 2010 13:28:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100122122833.7FBCC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/22 13:28:33 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Log message: fix another case where I broke copying 'locked' across register reinitialization (found by code inspection, not by any resulting incorrect codegen, surprising, I thought using self would make more bugs appear when they exist From jkrell at elego.de Fri Jan 22 14:02:47 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 22 Jan 2010 14:02:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100122130247.F07BA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/22 14:02:47 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 M3x86Rep.i3 Stackx86.m3 Log message: change reg from integer to array [0..1] of integer so we that we *might* enregister 64bit values and not just load, store, op all .reg uses changed to .reg[0] note that this does *not* actually add any functionality, certainly not longint many/most/all such places would need to be loops and longint needs certain special codegen (maybe some function calls -- after all, C uses function calls in a few places) From jkrell at elego.de Sat Jan 23 06:55:54 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 23 Jan 2010 6:55:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100123055554.70BD82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/23 06:55:54 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: by pattern matching I believe these are fixes From jkrell at elego.de Sat Jan 23 07:17:53 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 23 Jan 2010 7:17:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100123061753.31AB62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/23 07:17:53 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Log message: nicer way to preserve locked through InitRegister() From jkrell at elego.de Sat Jan 23 09:58:40 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 23 Jan 2010 9:58:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100123085840.F3A022474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/23 09:58:40 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: cleanup (a little less duplication) From jkrell at elego.de Sat Jan 23 16:09:07 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 23 Jan 2010 16:09:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100123150907.AE8CF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/23 16:09:07 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: just some comments: the stack protocol from M3CG_Ops.i3 missing on a few functions From jkrell at elego.de Sat Jan 23 20:34:50 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 23 Jan 2010 20:34:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100123193450.B98712474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/23 20:34:50 Modified files: cm3/m3-libs/libm3/src/fmtlex/: Lex.m3 Log message: avoid integer overflow on two's complement systems: replace -FIRST(INTEGER) with Word.Plus(-(FIRST(INTEGER) + 1), 1) (The value is then passed to Word.GT.) From jkrell at elego.de Sat Jan 23 20:42:03 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 23 Jan 2010 20:42:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100123194203.F16D72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/23 20:42:03 Modified files: cm3/m3-libs/libm3/src/fmtlex/: Lex.m3 Log message: avoid overflow on -FIRST(LONGINT) as well From jkrell at elego.de Sat Jan 23 20:42:28 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 23 Jan 2010 20:42:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100123194228.97C542474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/23 20:42:28 Modified files: cm3/m3-libs/libm3/src/fmtlex/: Lex.m3 Log message: oops 1 => 1L From jkrell at elego.de Sat Jan 23 20:44:00 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 23 Jan 2010 20:44:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100123194400.83B662474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/23 20:44:00 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Codex86.m3 Log message: no longer allow integer overflow at compiel time (no longer using warning support then) From jkrell at elego.de Sun Jan 24 03:26:16 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 3:26:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124022616.79ED32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 03:26:16 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: remove unnecessary optimization (not in the generated code, just in some simple initialization) From hosking at cs.purdue.edu Sun Jan 24 10:26:26 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 24 Jan 2010 04:26:26 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100123193450.B98712474001@birch.elegosoft.com> References: <20100123193450.B98712474001@birch.elegosoft.com> Message-ID: <2BE78F60-01EF-4401-AD30-4668DC34407B@cs.purdue.edu> Seems overdone... On 23 Jan 2010, at 20:34, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/23 20:34:50 > > Modified files: > cm3/m3-libs/libm3/src/fmtlex/: Lex.m3 > > Log message: > avoid integer overflow on two's complement systems: > replace -FIRST(INTEGER) with Word.Plus(-(FIRST(INTEGER) + 1), 1) > (The value is then passed to Word.GT.) From hosking at cs.purdue.edu Sun Jan 24 10:28:01 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 24 Jan 2010 04:28:01 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100123194228.97C542474001@birch.elegosoft.com> References: <20100123194228.97C542474001@birch.elegosoft.com> Message-ID: I really don't like this... what's wrong with allowing compile-time overflow other than that it exposes 2-s complement representation? On 23 Jan 2010, at 20:42, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/23 20:42:28 > > Modified files: > cm3/m3-libs/libm3/src/fmtlex/: Lex.m3 > > Log message: > oops 1 => 1L From jay.krell at cornell.edu Sun Jan 24 11:57:09 2010 From: jay.krell at cornell.edu (Jay K) Date: Sun, 24 Jan 2010 10:57:09 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100123194228.97C542474001@birch.elegosoft.com>, Message-ID: Imagine if FloatMode worked. And if the compile-time evaluation wasn't performed. This code would fail. Though really..you know.. I don't think making FloatMode work makes sense. It should be an interface/type thing that determines statically at compile time if overflow is trapped. - Jay > From: hosking at cs.purdue.edu > Date: Sun, 24 Jan 2010 04:28:01 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > I really don't like this... > what's wrong with allowing compile-time overflow other than that it exposes 2-s complement representation? > > On 23 Jan 2010, at 20:42, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/23 20:42:28 > > > > Modified files: > > cm3/m3-libs/libm3/src/fmtlex/: Lex.m3 > > > > Log message: > > oops 1 => 1L > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Jan 24 12:00:35 2010 From: jay.krell at cornell.edu (Jay K) Date: Sun, 24 Jan 2010 11:00:35 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <2BE78F60-01EF-4401-AD30-4668DC34407B@cs.purdue.edu> References: <20100123193450.B98712474001@birch.elegosoft.com>, <2BE78F60-01EF-4401-AD30-4668DC34407B@cs.purdue.edu> Message-ID: The previous form is not portable to systems that trap on overflow...if such a thing really makes sense. It is good practise to avoid that in C too, since signed overflow is undefined, and gcc actually sometimes mangles code that depends on signed overflow. Really, look at how I got here. By using Target.Int in m3back and not ignoring errors. And look at what I had to do to get it to compile with a warning. I had to check for a specific value and hardcode the result. This is actually needed in multiple places. When I wrote test code that resembles the Lex code, it triggered a failure to convert Target.Int to INTEGER in a different place in m3back. - Jay > From: hosking at cs.purdue.edu > Date: Sun, 24 Jan 2010 04:26:26 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Seems overdone... > > On 23 Jan 2010, at 20:34, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/23 20:34:50 > > > > Modified files: > > cm3/m3-libs/libm3/src/fmtlex/: Lex.m3 > > > > Log message: > > avoid integer overflow on two's complement systems: > > replace -FIRST(INTEGER) with Word.Plus(-(FIRST(INTEGER) + 1), 1) > > (The value is then passed to Word.GT.) > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Sun Jan 24 13:02:22 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 13:02:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124120222.A87852474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 13:02:22 Modified files: cm3/m3-sys/m3middle/src/: TWord.i3 TWord.m3 Log message: add functions LeftShift and RightShift, by moving the code out of Shift, and have Shift call them From jkrell at elego.de Sun Jan 24 13:07:41 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 13:07:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124120741.F05FF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 13:07:41 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 Log message: when pushing immediate values in the range [-128,127], use the two byte form (0x6A value) instead of 5 byte form (0x68 value..) From jkrell at elego.de Sun Jan 24 13:08:43 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 13:08:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124120843.3492A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 13:08:43 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: let 64bit types through FixReturnValue and remove redundant code from this function From jkrell at elego.de Sun Jan 24 13:12:12 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 13:12:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124121212.93C402474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 13:12:12 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: add a bunch of functions under #ifdef _WIN32 that I strongly believe will be used for initial int64 support (and may drop out as the support improves) in particular, the backend will need mainly pushimm(64bit) pushvar(64bit) and calls to these functions Once the compiler generates calls to these functions, there will be bootstrapping pain -- current m3core will be needed. make unused functions static From jkrell at elego.de Sun Jan 24 13:29:15 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 13:29:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124122915.9475D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 13:29:15 Modified files: cm3/m3-sys/m3middle/src/: TWord.i3 TWord.m3 Log message: add EQ, NE, GE, GT to augment the existing LT, LE From jkrell at elego.de Sun Jan 24 14:34:09 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 14:34:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124133410.5141C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 14:34:09 Modified files: cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 M3x86Rep.i3 Stackx86.m3 Log message: work in progress on supporting 64bit integers in particular splitting up 64bit operands into two 32bit operands also traffic a little bit more in Target.Int instead of INTEGER, but not much and more needed From jkrell at elego.de Sun Jan 24 14:41:03 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 14:41:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124134103.183892474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 14:41:03 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 Log message: split pushImm function out of pushOp From jkrell at elego.de Sun Jan 24 21:32:18 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 21:32:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124203220.7C2992474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 21:32:18 Modified files: cm3/scripts/python/: Tag: release_branch_cm3_5_8 pylib.py Log message: no change, just trigger PPC_LINUX build From jkrell at elego.de Sun Jan 24 22:20:31 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 22:20:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124212031.C24AD2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 22:20:31 Modified files: cm3/m3-sys/m3objfile/src/: M3ObjFile.i3 NTObjFile.m3 Log message: add appendBytes support that takes an ARRAY OF [0..255] This will be used by the int64/longint support. Otherwise the common way to add was via an INTEGER (look at how -default:libc is added, yuck, we scan remove that anyway) From jkrell at elego.de Mon Jan 25 08:17:46 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 25 Jan 2010 8:17:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100125071746.D26622474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/25 08:17:46 Modified files: cm3/m3-sys/m3objfile/src/: NTObjFile.m3 Log message: much cleaner albeit less safe (can we have it both ways?) From jkrell at elego.de Mon Jan 25 08:38:19 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 25 Jan 2010 8:38:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100125073820.52E2C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/25 08:38:19 Modified files: cm3/m3-sys/m3objfile/src/: NTObjFile.m3 Log message: remove entire drective section its only use was inappropriate -- for -defaultlib:libc libc.lib was always a bad idea and doesn't exist any longer and we have long since been countermanding this with -nodefaultlib in the link commands in the config file besides that, "defaultlibc:libc" was encoded as an "integer", gross From jkrell at elego.de Mon Jan 25 09:08:48 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 25 Jan 2010 9:08:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100125080849.71B1C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/25 09:08:48 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: work in progress: longint/int64 aggressively using function calls: add, subtract, multiply, divide, mod, negate, min, max, no, shift, shift_left, shift_right, rotate, rotate_left, rotate_right, swap, pop, and, or, xor, abs slight hack here is that we mangle the 64bit functions signatures and calling conventions such as to have the C compiler maintain the stack This should probably be among the first things fixed once things are working or partly working or earlier (though really the constant folding is target-independent and should be elsewhere, like in m3front) This requires updating m3core (or at least hand.obj). still to handle: insert, extract load, store (partly implemented) function parameters and return value From jkrell at elego.de Mon Jan 25 10:09:43 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 25 Jan 2010 10:09:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100125090944.0D15E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/25 10:09:43 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 Log message: rethink the pushOp changes a bit From hosking at cs.purdue.edu Tue Jan 26 00:32:30 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 25 Jan 2010 18:32:30 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100123194228.97C542474001@birch.elegosoft.com>, Message-ID: <21F5C8CD-0CCE-4155-B2FC-B5CBE61D97C3@cs.purdue.edu> Finally got a chance to check this out. It turns out that the expression -FIRST(INTEGER) actually does overflow at compile time, so it is actually a compile-time error to write: CONST v = -FIRST(INTEGER); Even worse, on a system where overflow causes a trap that code in Lex.m3 would have failed. The expression you wrote doesn't overflow at compile-time, so it is much safer, allowing: CONST v = Word.Plus(-(FIRST(INTEGER)+1), 1); Good catch! On 24 Jan 2010, at 05:57, Jay K wrote: > Imagine if FloatMode worked. > And if the compile-time evaluation wasn't performed. > This code would fail. > > > Though really..you know.. I don't think making FloatMode work makes sense. > It should be an interface/type thing that determines statically at compile time > if overflow is trapped. > > > - Jay > > > From: hosking at cs.purdue.edu > > Date: Sun, 24 Jan 2010 04:28:01 -0500 > > To: jkrell at elego.de > > CC: m3commit at elegosoft.com > > Subject: Re: [M3commit] CVS Update: cm3 > > > > I really don't like this... > > what's wrong with allowing compile-time overflow other than that it exposes 2-s complement representation? > > > > On 23 Jan 2010, at 20:42, Jay Krell wrote: > > > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 10/01/23 20:42:28 > > > > > > Modified files: > > > cm3/m3-libs/libm3/src/fmtlex/: Lex.m3 > > > > > > Log message: > > > oops 1 => 1L > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Tue Jan 26 12:12:35 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 26 Jan 2010 12:12:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126111235.D961E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/26 12:12:35 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Log message: one variable per line when using "WITH" use "WITH" to shorten some source From jkrell at elego.de Tue Jan 26 13:24:02 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 26 Jan 2010 13:24:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126122402.D54DB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/26 13:24:02 Modified files: cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 Log message: add simple helper functions: PROCEDURE TypeByteSize(t: CGType): CARDINAL; PROCEDURE TypeByteAlign(t: CGType): CARDINAL; PROCEDURE TypeBitAlign(t: CGType): CARDINAL; PROCEDURE TypeBitSize(t: CGType): CARDINAL; that I believe I'll need. From jkrell at elego.de Tue Jan 26 13:28:23 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 26 Jan 2010 13:28:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126122823.1AAFE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/26 13:28:23 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: assert false for void and struct (we'll see how this works out; structs do have size/alignment, but per-struct, and it should be possible to enregister small structs) From jkrell at elego.de Tue Jan 26 13:36:29 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 26 Jan 2010 13:36:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126123631.AA69BCC103@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/26 13:36:29 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: use lookup table for most types From jkrell at elego.de Tue Jan 26 13:47:05 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 26 Jan 2010 13:47:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126124705.94E272474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/26 13:47:05 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 M3x86Rep.i3 Stackx86.i3 Stackx86.m3 Log message: - the virtual stack needs types (similar to my previous idea of sizes, but more general) - at certain places, split procedure foo into foo and foo1, where foo "splits" its operand(s), loops over them calling foo1 This should suffice for several operations like push/pop/mov/load/store, and, not, or, xor though notable not quite for add, sub, cmp also "find" needs work, and the "reguse" data being indexed by virtual stack pointer worries me This might provide such that most of the code is unchanged for int64, and we continue to have both constant folding and enregistration; I wouldn't try so hard for these, but it seems a good approach in the interest of making parameter passing work. From jkrell at elego.de Tue Jan 26 14:14:39 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 26 Jan 2010 14:14:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126131439.E8CDC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/26 14:14:39 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: allow for 8 byte alignment From jkrell at elego.de Tue Jan 26 14:18:19 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 26 Jan 2010 14:18:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126131819.E579E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/26 14:18:19 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: leave max_align := 64 for NT386, Cygwin, MinGWin, Interix (still 32 for NetBSD/Linux/FreeBSD/x86); this probably breaks pickles with 64bit types, e.g. longreal From hosking at cs.purdue.edu Tue Jan 26 18:40:39 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 26 Jan 2010 12:40:39 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100126122402.D54DB2474001@birch.elegosoft.com> References: <20100126122402.D54DB2474001@birch.elegosoft.com> Message-ID: <25588017-D52E-4775-A134-9C61617E2422@cs.purdue.edu> You don't need these! Use TargetMap.CG_Align/CG_Align_bytes/CG_Size/CG_Bytes instead. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 26 Jan 2010, at 13:24, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/26 13:24:02 > > Modified files: > cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 > > Log message: > add simple helper functions: > PROCEDURE TypeByteSize(t: CGType): CARDINAL; > PROCEDURE TypeByteAlign(t: CGType): CARDINAL; > PROCEDURE TypeBitAlign(t: CGType): CARDINAL; > PROCEDURE TypeBitSize(t: CGType): CARDINAL; > > that I believe I'll need. -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at elego.de Tue Jan 26 20:51:07 2010 From: hosking at elego.de (Antony Hosking) Date: Tue, 26 Jan 2010 20:51:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126195107.EAE62CC308@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/26 20:51:07 Modified files: cm3/doc/reference/: syntax.html Log message: Some minor corrections. From hosking at elego.de Tue Jan 26 20:52:14 2010 From: hosking at elego.de (Antony Hosking) Date: Tue, 26 Jan 2010 20:52:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126195214.2AB902474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/26 20:52:14 Modified files: cm3/doc/reference/complete/: m3-defn-complete.tex Log message: Ident -> Id From hosking at elego.de Tue Jan 26 20:52:53 2010 From: hosking at elego.de (Antony Hosking) Date: Tue, 26 Jan 2010 20:52:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126195253.A5CF92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/26 20:52:53 Modified files: cm3/doc/reference/complete/: m3-defn-complete.pdf m3-defn-complete.ps Log message: Regenerate. From jay.krell at cornell.edu Tue Jan 26 23:36:20 2010 From: jay.krell at cornell.edu (Jay K) Date: Tue, 26 Jan 2010 22:36:20 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <25588017-D52E-4775-A134-9C61617E2422@cs.purdue.edu> References: <20100126122402.D54DB2474001@birch.elegosoft.com>, <25588017-D52E-4775-A134-9C61617E2422@cs.purdue.edu> Message-ID: oops, ok. I had only seen constant arrays that didn't handle Addr. I'll use what you say instead. - Jay From: hosking at cs.purdue.edu Date: Tue, 26 Jan 2010 12:40:39 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 You don't need these! Use TargetMap.CG_Align/CG_Align_bytes/CG_Size/CG_Bytes instead. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 26 Jan 2010, at 13:24, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/26 13:24:02 Modified files: cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 Log message: add simple helper functions: PROCEDURE TypeByteSize(t: CGType): CARDINAL; PROCEDURE TypeByteAlign(t: CGType): CARDINAL; PROCEDURE TypeBitAlign(t: CGType): CARDINAL; PROCEDURE TypeBitSize(t: CGType): CARDINAL; that I believe I'll need. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Wed Jan 27 14:34:57 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 27 Jan 2010 14:34:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100127133457.5E1D32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/27 14:34:57 Modified files: cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 Log message: remove TypeByteSize, TypeByteAlign, TypeBitAlign, TypeBitSize From jkrell at elego.de Wed Jan 27 14:53:24 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 27 Jan 2010 14:53:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100127135324.F2EF02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/27 14:53:24 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: slightly more algorithmic-based-on-strings target configuration should even fix some bugs: FreeBSD/x86 first readable address is 4K byte, not 4K bits Setting this value higher is just a very slight optimization. Likewise for PA{32,64}_HPUX. aligned_procedures based on architecture, not OS This leaves jumpbuf as basically the only thing that varies per precise target, everything else is factored on something with fewer variants. (ok, Has_stack_walker also) also max_align, which seems often wrong From jkrell at elego.de Thu Jan 28 08:16:02 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 28 Jan 2010 8:16:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100128071602.EAAF92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/28 08:16:02 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: fix incorrect but possibly safe edit to how comparison conditions are computed From jkrell at elego.de Thu Jan 28 08:17:21 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 28 Jan 2010 8:17:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100128071721.42AFA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/28 08:17:21 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: undo longint/int64 change that isn't going to be correct From jkrell at elego.de Thu Jan 28 14:28:20 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 28 Jan 2010 14:28:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100128132821.161762474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/28 14:28:20 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 M3x86Rep.i3 Stackx86.m3 Log message: rename some fields more verbosely for better searchabilty t => vartype type => mvartype type => proctype s => size (varsize?) a => align (varalign?) searching for whole word "t" and "type" wasn't very helpful and the existing of both vartype and mvartype is confusing From jkrell at elego.de Thu Jan 28 14:42:19 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 28 Jan 2010 14:42:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100128134219.BE6EA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/28 14:42:19 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 M3x86Rep.i3 Stackx86.m3 Log message: more renaming for readability (some just altering style of previous, but also renaming more fields) size => flit_size proctype => proc_type varsize => var_size mvarsize => mvar_size align => var_align size => var_size mvaroffset => mvar_offset mvartype => mvar_type etc. From rodney_bates at lcwb.coop Thu Jan 28 17:22:28 2010 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Thu, 28 Jan 2010 10:22:28 -0600 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100128134219.BE6EA2474001@birch.elegosoft.com> References: <20100128134219.BE6EA2474001@birch.elegosoft.com> Message-ID: <4B61B9C4.5020800@lcwb.coop> I highly support this kind of change. Very short identifiers are classic cases of sacrificing readability in favor of saving keystrokes during writing--a very bad tradeoff. The poor wretches who get/have to maintain the code pay the price for somebody else's laziness. Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/28 14:42:19 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 M3x86Rep.i3 > Stackx86.m3 > > Log message: > more renaming for readability (some just altering style of previous, > but also renaming more fields) > size => flit_size > proctype => proc_type > varsize => var_size > mvarsize => mvar_size > align => var_align > size => var_size > mvaroffset => mvar_offset > mvartype => mvar_type > etc. > > From hosking at elego.de Thu Jan 28 19:02:46 2010 From: hosking at elego.de (Antony Hosking) Date: Thu, 28 Jan 2010 19:02:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100128180246.C38A92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/28 19:02:46 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Ord.m3 Log message: Fix typing of ORD for the fact that it varies (INTEGER/LONGINT) depending on the underlying type of its argument. From jay.krell at cornell.edu Fri Jan 29 06:00:46 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 29 Jan 2010 05:00:46 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <4B61B9C4.5020800@lcwb.coop> References: <20100128134219.BE6EA2474001@birch.elegosoft.com>, <4B61B9C4.5020800@lcwb.coop> Message-ID: Thanks. I depend heavily on plain text search, including "whole word". I find that "language aware" tools are generally lacking in availability, features, scale, ease of use. Plain text search, augmented with a file system cache and/or possibly an index, is available and scales and handles all languages potentially. This is an area where C really trumps C++, because of the existance of namespaces and classes to scope names that are broadly visible, you end up with function names like "Init" instead of "WindowInit", etc. Operator overloading is a problem too -- I can't search for "+" on a particular type. Modula-3 encourages these problems too I believe. C's global namespace is usually considered a problem, and it is, but it is also a feature. This is also a reason to not use "file level static" in C. Parameter names and local variable names don't seem to matter, as they truly have small visiblity (well, parameter names in Modula-3 don't). But function names, type names, record/object fields.. I am often lazy myself, but just forward me this email, call me a hypocrite, go ahead and lengthen names I made too short. :) I'm not sure what the difference is between var.vartype and mvar.mvartype. mvar contains var. I suspect var.vartype is "more correct for the data" and mvar.mvartype is the "type of the access". Like, if I were to "split" an acces to a 64bit variable into two access, var.vartype should be unchanged, mvar.mvartype can be changed. I was going to be lazy and ask here, but then decided to try to read the code more. These changes are not condusive to diffing, granted. They add a lot of noise. Stuck between two bad things I'm afraid there. - Jay > Date: Thu, 28 Jan 2010 10:22:28 -0600 > From: rodney_bates at lcwb.coop > To: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > I highly support this kind of change. Very short identifiers > are classic cases of sacrificing readability in favor of > saving keystrokes during writing--a very bad tradeoff. > The poor wretches who get/have to maintain the code pay the > price for somebody else's laziness. > > Jay Krell wrote: > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/28 14:42:19 > > > > Modified files: > > cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 M3x86Rep.i3 > > Stackx86.m3 > > > > Log message: > > more renaming for readability (some just altering style of previous, > > but also renaming more fields) > > size => flit_size > > proctype => proc_type > > varsize => var_size > > mvarsize => mvar_size > > align => var_align > > size => var_size > > mvaroffset => mvar_offset > > mvartype => mvar_type > > etc. > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Fri Jan 29 09:34:50 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 9:34:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129083450.D0E56CC362@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 09:34:50 Modified files: cm3/m3-sys/m3back/src/: Wrx86.m3 Log message: more verbose debug output n:8,x:0,0,0,80,ff,ff,ff,ff is getting changed to n:8,x:0,0,0,80,0,0,0,0 this shows at least that the frontend isn't to blame, probably my "SplitOperand" From jkrell at elego.de Fri Jan 29 09:57:33 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 9:57:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129085733.63129CC308@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 09:57:33 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: in ToInt and IntI, do the conversion even if there is overflow (still returning FALSE for overflow) From jkrell at elego.de Fri Jan 29 09:58:11 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 9:58:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129085811.B3242CC308@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 09:58:11 Modified files: cm3/m3-sys/m3middle/src/: TInt.m3 Log message: in ToInt and IntI, do the conversion even if there is overflow (still returning FALSE for overflow) From jkrell at elego.de Fri Jan 29 09:59:08 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 9:59:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129085908.32881CC308@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 09:59:08 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: go back a version, checked in wrong file (Target.m3 vs. TInt.m3) From jkrell at elego.de Fri Jan 29 12:25:16 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 12:25:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129112516.B9DF42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 12:25:16 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: fix important comments in set_union, intersection, difference, sym_difference that document the inputs/outputs in terms of the virtual stack merge pop_param and load_stack_param moving pop_param's floating point support to load_stack_param though given, floating point probably requires depth = 0 use load_stack_param in set_union, etc. for clarity pop_param is just shorthand for load_stack_param(0) + discard(1) Given 1) the incorrect comments and 2) the varying use of load_stack_param(!=0) and pop_param, the code was quite confusing, and therefore hard to base other function-call based operations on, such as int64 stuff. a little bit of re-formating and adding comments From jay.krell at cornell.edu Fri Jan 29 12:26:17 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 29 Jan 2010 11:26:17 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100129112516.B9DF42474001@birch.elegosoft.com> References: <20100129112516.B9DF42474001@birch.elegosoft.com> Message-ID: diff attached > Date: Fri, 29 Jan 2010 12:25:16 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/29 12:25:16 > > Modified files: > cm3/m3-sys/m3back/src/: M3x86.m3 > > Log message: > fix important comments in set_union, intersection, difference, sym_difference > that document the inputs/outputs in terms of the virtual stack > > merge pop_param and load_stack_param > moving pop_param's floating point support to load_stack_param > though given, floating point probably requires depth = 0 > > use load_stack_param in set_union, etc. for clarity > pop_param is just shorthand for load_stack_param(0) + discard(1) > > Given 1) the incorrect comments and 2) the varying use of > load_stack_param(!=0) and pop_param, the code was quite confusing, > and therefore hard to base other function-call based operations > on, such as int64 stuff. > > a little bit of re-formating and adding comments > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 1.txt URL: From jkrell at elego.de Fri Jan 29 12:32:24 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 12:32:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129113224.89F332474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 12:32:24 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: use unsigned types for set sizes and indices, esp. since they are used with div and mod From jkrell at elego.de Fri Jan 29 12:36:07 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 12:36:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129113607.EBCFBCC362@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 12:36:07 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: declare rotate intrinsics and fix warning about unused parameter -- I think we will use most of these functions after all, at least initially From jkrell at elego.de Fri Jan 29 12:36:36 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 12:36:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129113636.88CE7CC362@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 12:36:36 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: use 'uint64' shorthand From jkrell at elego.de Fri Jan 29 12:40:27 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 12:40:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129114027.B4E932474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 12:40:27 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: just add some comments and an assert From jkrell at elego.de Fri Jan 29 12:50:41 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 12:50:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129115042.1B8DA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 12:50:41 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: use unsigned types for set indices, esp. since they are used with div and mod From jkrell at elego.de Fri Jan 29 13:10:44 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 13:10:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129121044.7FE922474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 13:10:44 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: prepare new version of set_range that uses shifting instead of a cache-hogging lookup table; not yet active, and really need to change the compiler to not reference the other variant of the lookup table From jkrell at elego.de Fri Jan 29 13:44:39 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 13:44:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129124439.87E702474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 13:44:39 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: test code for set_range From jkrell at elego.de Fri Jan 29 14:22:06 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 14:22:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129132206.76864CC362@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 14:22:06 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: m3makefile Log message: new set of int64 functions, for win32 only, in a separate file for now, probably all but three of these will be used (and/or/xor are *particularly* easy to implement inline, you just operate on the two halves independently) From jkrell at elego.de Fri Jan 29 14:29:54 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 14:29:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129132954.ACDFB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 14:29:54 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: m3makefile Log message: disable for now, it causes a link error From jkrell at elego.de Fri Jan 29 15:52:53 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 15:52:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129145253.69E7F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 15:52:53 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: remove the new 64bit builtings pending getting more working From hosking at cs.purdue.edu Fri Jan 29 16:31:35 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 29 Jan 2010 10:31:35 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100129085733.63129CC308@birch.elegosoft.com> References: <20100129085733.63129CC308@birch.elegosoft.com> Message-ID: <06B64727-043A-47EC-BFF1-2680AA899A89@cs.purdue.edu> Why do you need that? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 29 Jan 2010, at 09:57, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/29 09:57:33 > > Modified files: > cm3/m3-sys/m3middle/src/: Target.m3 > > Log message: > in ToInt and IntI, do the conversion even if there is overflow (still returning FALSE for overflow) -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Fri Jan 29 16:32:46 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 16:32:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129153246.1818D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 16:32:46 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Log message: remove partial inlining that earlier optimizationg programmers were fond of authoring in particular, every call to expand_stack is preceded by the check: IF t.stacktop = t.vstacklimit; have expand_stack do the check A really good compiler (not this one, alas) might inline the check in the caller. From jkrell at elego.de Fri Jan 29 16:48:37 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 16:48:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129154837.5D2142474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 16:48:37 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 M3x86Rep.i3 Stackx86.m3 Log message: longint/int64 work in progress no real change unless you make the edit in Target.m3 From jkrell at elego.de Fri Jan 29 17:08:55 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 17:08:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129160856.050AF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 17:08:55 Modified files: cm3/m3-sys/m3middle/src/: M3ID.i3 M3ID.m3 Log message: add Length function From jkrell at elego.de Fri Jan 29 17:11:12 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 17:11:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129161112.ADC952474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 17:11:12 Modified files: cm3/m3-sys/m3middle/src/: M3ID.m3 Log message: be sure Length works for NoID From jkrell at elego.de Fri Jan 29 17:17:53 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 17:17:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129161753.ACF5B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 17:17:53 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: oops: NTObjFile.m3 doesn't like importing the same symbol repeatedly so our temporary filler 'abort' wasn't good From jkrell at elego.de Fri Jan 29 17:28:21 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 17:28:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129162821.C5AAA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 17:28:21 Added files: cm3/m3-libs/m3core/src/Csupport/Common/: hand2.c Log message: forgot to add this, ok From jay.krell at cornell.edu Fri Jan 29 17:48:50 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 29 Jan 2010 16:48:50 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <06B64727-043A-47EC-BFF1-2680AA899A89@cs.purdue.edu> References: <20100129085733.63129CC308@birch.elegosoft.com>, <06B64727-043A-47EC-BFF1-2680AA899A89@cs.purdue.edu> Message-ID: For now I'm treating the error as a warning and continuing on. - Jay From: hosking at cs.purdue.edu Date: Fri, 29 Jan 2010 10:31:35 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 Why do you need that? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 29 Jan 2010, at 09:57, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 09:57:33 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: in ToInt and IntI, do the conversion even if there is overflow (still returning FALSE for overflow) -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Sat Jan 30 11:45:25 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 30 Jan 2010 11:45:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100130104525.9DD262474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/30 11:45:25 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 Stackx86.m3 Log message: - use the return value of findbin rather than something kind of incidental, but assert the coincidence - comparison # 4 should generally be < 4 From jkrell at elego.de Sat Jan 30 12:26:11 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 30 Jan 2010 12:26:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100130112611.8C4FA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/30 12:26:11 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Log message: add back assertions From hosking at elego.de Sat Jan 30 22:28:34 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 30 Jan 2010 22:28:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100130212834.5F7B52474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/30 22:28:34 Modified files: cm3/m3-sys/m3middle/src/: M3CG_Rd.m3 Log message: Reformat. From hosking at elego.de Sat Jan 30 22:29:49 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 30 Jan 2010 22:29:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100130212949.8B6E22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/30 22:29:49 Modified files: cm3/m3-sys/m3middle/src/: M3CG.m3 Log message: Rename params. From hosking at elego.de Sat Jan 30 23:03:35 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 30 Jan 2010 23:03:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100130220335.6A1382474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/30 23:03:35 Modified files: cm3/m3-sys/m3cc/gcc/gcc/m3cg/: parse.c Log message: Some fixes. From hosking at elego.de Sat Jan 30 23:03:59 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 30 Jan 2010 23:03:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100130220359.DC5BF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/30 23:03:59 Modified files: cm3/m3-sys/m3middle/src/: M3CG_BinWr.m3 M3CG_Check.m3 M3CG_Ops.i3 M3CG_Wr.m3 M3ID.i3 M3ID.m3 TInt.i3 TInt.m3 Target.i3 Target.m3 Log message: Update support for atomic operations. From hosking at elego.de Sat Jan 30 23:07:06 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 30 Jan 2010 23:07:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100130220707.2CF452474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/30 23:07:06 Modified files: cm3/m3-sys/m3front/src/misc/: CG.m3 Log message: Reformat only. From hosking at elego.de Sat Jan 30 23:11:31 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 30 Jan 2010 23:11:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100130221131.B11BF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/30 23:11:31 Modified files: cm3/m3-sys/m3front/src/: m3makefile cm3/m3-sys/m3front/src/misc/: CG.i3 Error.i3 Error.m3 M3Front.m3 cm3/m3-sys/m3front/src/types/: ProcType.i3 ProcType.m3 cm3/m3-sys/m3front/src/values/: Formal.i3 Formal.m3 Added files: cm3/m3-sys/m3front/src/builtinAtomic/: AtomicModule.ig AtomicModule.mg CompareSwap.ig CompareSwap.mg Fence.ig Fence.mg FetchAnd.ig FetchAnd.mg FetchDec.ig FetchDec.mg FetchInc.ig FetchInc.mg FetchOr.ig FetchOr.mg FetchXOr.mg FetchXor.ig IsLockFree.ig IsLockFree.mg Load.ig Load.mg Store.ig Store.mg Swap.ig Swap.mg atomic.tmpl m3makefile Log message: Initial support for builtin atomic values (see Atomic.ig). From jkrell at elego.de Sun Jan 31 13:11:30 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 31 Jan 2010 13:11:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100131121130.994512474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/31 13:11:30 Modified files: cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 Stackx86.i3 Stackx86.m3 Log message: adapt so it builds with recent m3middle changes: comment out warnings TInt.MaxS8 => Target.Int8.max TInt.MinS8 => Target.Int8.min TInt.FF => Target.Word8.max TInt.FFFF => Target.Word16.max TInt.FFFFFFFF => Target.Word32.max TInt.MinS32 => Target.Int32.min (notice loss of const-ness; it is only pack/align that is *perhaps* not constant, perhaps platform-specific, but not really, perhaps only if you absolutely need to match C structs and have them tightly packed; we generally don't do that, we might as well adapt conservative platform-independent packing/alignment results (there seems to be something wrong with Darwin targets here though, some missing align pragma or such, NT386 has a related problem e.g. in mklib) M3ID.Length(a) > 0 => t := M3ID.ToText(a); t # NIL AND Text.Length(t) > 0 (notice loss of avoiding heap allocation) From jkrell at elego.de Sun Jan 31 13:12:22 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 31 Jan 2010 13:12:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100131121222.4E2342474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/31 13:12:22 Modified files: cm3/m3-sys/m3staloneback/src/: Main.m3 Log message: remove warning stuff per m3middle changes From jkrell at elego.de Sun Jan 31 13:37:00 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 31 Jan 2010 13:37:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100131123700.D06532474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/31 13:37:00 Modified files: cm3/m3-sys/m3front/src/values/: Module.m3 Log message: allow for more builtiins From jkrell at elego.de Sun Jan 31 13:38:37 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 31 Jan 2010 13:38:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100131123837.5CADE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/31 13:38:37 Modified files: cm3/m3-sys/mklib/src/: Main.m3 Log message: turn ignored unaligned pragma into comment From jkrell at elego.de Sun Jan 31 13:41:24 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 31 Jan 2010 13:41:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100131124126.6A6B12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/31 13:41:24 Modified files: cm3/m3-sys/mklib/src/: Main.m3 Log message: BYTE => UINT8 From jkrell at elego.de Sun Jan 31 13:47:45 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 31 Jan 2010 13:47:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100131124745.2A16B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/31 13:47:45 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: reduce interface slightly From jkrell at elego.de Sun Jan 31 13:54:31 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 31 Jan 2010 13:54:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100131125431.4F8062474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/31 13:54:31 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: smaller From jkrell at elego.de Sun Jan 31 13:58:40 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 31 Jan 2010 13:58:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100131125840.7E44B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/31 13:58:40 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Log message: quash warnings (code still in flux) From hosking at cs.purdue.edu Fri Jan 1 20:41:42 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 1 Jan 2010 14:41:42 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091230000021.6DA362474001@birch.elegosoft.com> References: <20091230000021.6DA362474001@birch.elegosoft.com> Message-ID: <7B80CC37-9E07-4A51-A8E7-473039FAF4F2@cs.purdue.edu> Huh? On 30 Dec 2009, at 01:00, Randy Coleburn wrote: > CVSROOT: /usr/cvs > Changes by: rcoleburn at birch. 09/12/30 01:00:21 > > Modified files: > cm3/m3-libs/libm3/src/: m3makefile > > Log message: > repair broken build process by commenting out the inclusion of "Types" folder because this folder is not in the source tree right now. -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 1 20:43:36 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 1 Jan 2010 14:43:36 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091230144007.081152474001@birch.elegosoft.com> References: <20091230144007.081152474001@birch.elegosoft.com> Message-ID: <21B2F22D-C1E9-46F2-8434-4CD78DCD7E96@cs.purdue.edu> That's a bug in m3tk scope management. Probably needs a ticket in the bugs database... On 30 Dec 2009, at 15:40, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/30 15:40:06 > > Modified files: > cm3/m3-libs/m3core/src/word/: Long.i3 Long.m3 Word.i3 Word.m3 > m3makefile > Added files: > cm3/m3-libs/m3core/src/word/: GenWord.ig GenWord.mg > Removed files: > cm3/m3-libs/m3core/src/word/: Word.ig Word.mg > > Log message: > go back to GenWord > the other front end (Olivetti m3-tk) > doesn't understand > INTERFACE Word = Word(WordRep) END Word. > but it does't understand > INTERFACE Word = GenWord(WordRep) END Word. -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 1 22:06:13 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 1 Jan 2010 16:06:13 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <7B80CC37-9E07-4A51-A8E7-473039FAF4F2@cs.purdue.edu> References: <20091230000021.6DA362474001@birch.elegosoft.com> <7B80CC37-9E07-4A51-A8E7-473039FAF4F2@cs.purdue.edu> Message-ID: <1ED6097C-6AE0-4DE6-A8E8-C035A934B67F@cs.purdue.edu> Oh, yes, of course. On 1 Jan 2010, at 14:41, Tony Hosking wrote: > Huh? > > On 30 Dec 2009, at 01:00, Randy Coleburn wrote: > >> CVSROOT: /usr/cvs >> Changes by: rcoleburn at birch. 09/12/30 01:00:21 >> >> Modified files: >> cm3/m3-libs/libm3/src/: m3makefile >> >> Log message: >> repair broken build process by commenting out the inclusion of "Types" folder because this folder is not in the source tree right now. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Sat Jan 2 22:31:49 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 2 Jan 2010 22:31:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100102213149.816072474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/02 22:31:49 Modified files: cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 cm3/m3-sys/m3front/src/exprs/: SetExpr.m3 Log message: Add more information to the error "set domain too large", admittedly fairly cryptic internal information. From jkrell at elego.de Sat Jan 2 22:40:42 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 2 Jan 2010 22:40:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100102214042.4A7CF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/02 22:40:42 Modified files: cm3/m3-sys/m3middle/src/: TInt.m3 Log message: a 64bit hosted compiler fails when targeting a 32bit platform due to the use of TYPE Regno = [-1 .. NRegs]; -1 is represented as Target.Int:4,{0xFF,0xFF,0xFF,0xFF,0,0,0,0} The problem is presumably that CheckSign doesn't like the trailing zeros. I believe the point of CheckSign(r.n:=4 to n:=8) is really for the case of n > r.n, i.e.: If you were to truncate 8:0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF to 4:0xFF,0xFF,0xFF,0x00 that would be an error (it probably fail earlier, when Target.Int doesn't fit in n = 4) CheckSign should always succeed when widening, when host integer is bigger than target integer. The for loops should already be empty for that case. From jkrell at elego.de Sat Jan 2 23:29:18 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 2 Jan 2010 23:29:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100102222918.498CC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/02 23:29:18 Modified files: cm3/m3-sys/m3middle/src/: Tag: release_branch_cm3_5_8 TInt.m3 Log message: from head: fix 64bit to 32bit cross compilation with regard converting the value -1 to a host integer From jkrell at elego.de Sun Jan 3 00:27:40 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 3 Jan 2010 0:27:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100102232741.0B760CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/03 00:27:40 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 cm3/scripts/python/: pylib.py cm3/m3-libs/m3core/src/: thread.quake cm3/m3-libs/m3core/src/C/PPC32_OPENBSD/: Csetjmp.i3 Log message: move all OpenBSD platforms to user threads PPC32_OPENBSD: fix warning in setjmp, clarify setjmp size/alignment, as doesn't like --32 From jkrell at elego.de Sun Jan 3 00:36:31 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 3 Jan 2010 0:36:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100102233631.7769A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/03 00:36:31 Removed files: cm3/doc/: add Log message: remove zero size file From hosking at cs.purdue.edu Sun Jan 3 21:55:22 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 3 Jan 2010 15:55:22 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100102214042.4A7CF2474001@birch.elegosoft.com> References: <20100102214042.4A7CF2474001@birch.elegosoft.com> Message-ID: But why is 64-bit checksign being used in the first place? Surely it should be using CheckSign for the target not the host? On 2 Jan 2010, at 22:40, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/02 22:40:42 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.m3 > > Log message: > a 64bit hosted compiler fails when targeting > a 32bit platform due to the use of > TYPE Regno = [-1 .. NRegs]; > > -1 is represented as Target.Int:4,{0xFF,0xFF,0xFF,0xFF,0,0,0,0} > The problem is presumably that CheckSign doesn't like > the trailing zeros. > > I believe the point of CheckSign(r.n:=4 to n:=8) is really > for the case of n > r.n, i.e.: > If you were to truncate > 8:0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF > to > 4:0xFF,0xFF,0xFF,0x00 > > that would be an error (it probably > fail earlier, when Target.Int doesn't > fit in n = 4) > > CheckSign should always succeed when widening, > when host integer is bigger than target integer. > > The for loops should already be empty for that case. -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at elego.de Sun Jan 3 22:36:04 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 3 Jan 2010 22:36:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100103213604.2D4662474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/03 22:36:04 Modified files: cm3/m3-sys/m3middle/src/: TInt.m3 Log message: A slightly cleaner version of Jay's fix. CheckSign should never be invoked with a desired precision greater than that of the target integer being checked. The only place this can occur is in ToInt when converting from a (smaller) target to a (larger) host integer. From jkrell at elego.de Mon Jan 4 03:18:57 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 4 Jan 2010 3:18:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100104021857.BF6182474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/04 03:18:57 Modified files: cm3/m3-sys/m3middle/src/: Tag: release_branch_cm3_5_8 TInt.m3 Log message: take Tony's version From jkrell at elego.de Mon Jan 4 12:13:22 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 4 Jan 2010 12:13:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100104111322.0B1F92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/04 12:13:22 Added files: cm3/m3-sys/cminstall/src/config-no-install/: PPC64.common PPC64_DARWIN Log message: initial config files for PPC64_DARWIN From jkrell at elego.de Mon Jan 4 12:29:20 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 4 Jan 2010 12:29:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100104112921.026912474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/04 12:29:20 Modified files: cm3/m3-libs/m3core/src/: platforms.quake Log message: add PPC64_DARWIN From jkrell at elego.de Mon Jan 4 12:30:30 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 4 Jan 2010 12:30:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100104113030.BC3162474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/04 12:30:30 Modified files: cm3/m3-libs/m3core/src/unix/: m3makefile Log message: add PPC64_DARWIN From jkrell at elego.de Mon Jan 4 13:24:51 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 4 Jan 2010 13:24:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100104122451.853742474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/04 13:24:51 Added files: cm3/m3-libs/m3core/src/C/PPC64_DARWIN/: Csetjmp.i3 m3makefile Log message: add PPC64_DARWIN From jkrell at elego.de Tue Jan 5 12:26:28 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 12:26:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105112628.811622474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 12:26:28 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: minor cleanup From jkrell at elego.de Tue Jan 5 12:44:29 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 12:44:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105114429.767182474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 12:44:29 Modified files: cm3/m3-libs/m3core/src/C/AIX386/: m3makefile cm3/m3-libs/m3core/src/C/ALPHA_OSF/: m3makefile cm3/m3-libs/m3core/src/C/AP3000/: m3makefile cm3/m3-libs/m3core/src/C/ARM/: m3makefile cm3/m3-libs/m3core/src/C/DS3100/: 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/HP300/: m3makefile cm3/m3-libs/m3core/src/C/HPPA/: m3makefile cm3/m3-libs/m3core/src/C/I386_DARWIN/: m3makefile cm3/m3-libs/m3core/src/C/IBMR2/: m3makefile cm3/m3-libs/m3core/src/C/IBMRT/: m3makefile cm3/m3-libs/m3core/src/C/IRIX5/: 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/NEXT/: m3makefile cm3/m3-libs/m3core/src/C/NT386/: m3makefile cm3/m3-libs/m3core/src/C/NetBSD2_i386/: m3makefile cm3/m3-libs/m3core/src/C/OKI/: m3makefile cm3/m3-libs/m3core/src/C/OS2/: m3makefile cm3/m3-libs/m3core/src/C/PPC_DARWIN/: m3makefile cm3/m3-libs/m3core/src/C/PPC_LINUX/: m3makefile cm3/m3-libs/m3core/src/C/SEQUENT/: m3makefile cm3/m3-libs/m3core/src/C/SOLgnu/: m3makefile cm3/m3-libs/m3core/src/C/SOLsun/: m3makefile cm3/m3-libs/m3core/src/C/SPARC/: m3makefile cm3/m3-libs/m3core/src/C/SPARC64_OPENBSD/: m3makefile cm3/m3-libs/m3core/src/C/SUN3/: m3makefile cm3/m3-libs/m3core/src/C/SUN386/: m3makefile cm3/m3-libs/m3core/src/C/UMAX/: m3makefile cm3/m3-libs/m3core/src/C/VAX/: m3makefile Removed files: cm3/m3-libs/m3core/src/C/AIX386/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/ALPHA_OSF/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/AP3000/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/ARM/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/DS3100/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/FreeBSD/: Cstdio.i3 Cstdio.m3 Cstring.i3 cm3/m3-libs/m3core/src/C/FreeBSD2/: Cstdio.i3 Cstdio.m3 Cstring.i3 cm3/m3-libs/m3core/src/C/FreeBSD3/: Cstdio.i3 Cstdio.m3 Cstring.i3 cm3/m3-libs/m3core/src/C/HP300/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/HPPA/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/IBMR2/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/IBMRT/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/IRIX5/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/LINUX/: Cstdio.i3 Cstdio.m3 Cstring.i3 cm3/m3-libs/m3core/src/C/LINUXELF/: Cstdio.i3 Cstdio.m3 Cstring.i3 cm3/m3-libs/m3core/src/C/LINUXLIBC6/: CsetjmpASM.s cm3/m3-libs/m3core/src/C/NEXT/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/OKI/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/OS2/: Cstdio.i3 Cstdio.m3 Cstring.i3 cm3/m3-libs/m3core/src/C/SEQUENT/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/SPARC/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/SUN3/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/SUN386/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/UMAX/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/VAX/: Cstdio.i3 Cstring.i3 Log message: reduce platform specific code to just Csetjmp.i3 (except OKI) From jkrell at elego.de Tue Jan 5 12:46:49 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 12:46:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105114649.C1C452474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 12:46:49 Removed files: cm3/m3-libs/m3core/src/C/FreeBSD/: CstdioC.c cm3/m3-libs/m3core/src/C/FreeBSD2/: CstdioC.c cm3/m3-libs/m3core/src/C/FreeBSD3/: CstdioC.c Log message: remove more (dead) platform specific code From jkrell at elego.de Tue Jan 5 13:00:53 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:00:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105120053.8C4082474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:00:53 Modified files: cm3/m3-libs/m3core/src/C/AIX386/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/ALPHA_OSF/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/AMD64_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/AP3000/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/ARM/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/DS3100/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/FreeBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/FreeBSD2/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/FreeBSD3/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/FreeBSD4/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/HP300/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/HPPA/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/I386_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/I386_OPENBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/IBMR2/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/IBMRT/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/IRIX5/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/LINUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/LINUXELF/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/LINUXLIBC6/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/MIPS64_OPENBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/NEXT/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/NT386/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/NetBSD2_i386/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/OKI/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/OS2/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/PPC_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/PPC_LINUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SEQUENT/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SOLgnu/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SOLsun/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SPARC/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SUN3/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SUN386/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/UMAX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/VAX/: Csetjmp.i3 Log message: remove all functions except for ulongjmp remove sigjmp_buf remove unused constants (still have JBLEN in some but we should remove those) From jkrell at elego.de Tue Jan 5 13:19:42 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:19:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105121942.4A75E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:19:42 Modified files: cm3/m3-libs/m3core/src/C/AMD64_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/AMD64_FREEBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/AMD64_LINUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/AMD64_NETBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/AMD64_OPENBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/ARM_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/FreeBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/FreeBSD2/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/FreeBSD3/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/FreeBSD4/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/I386_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/I386_INTERIX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/I386_OPENBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/IRIX5/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/LINUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/LINUXELF/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/LINUXLIBC6/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/MIPS64_OPENBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/NT386/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/NetBSD2_i386/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/OS2/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/PA32_HPUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/PA64_HPUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/PPC32_OPENBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/PPC64_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/PPC_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/PPC_LINUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SOLgnu/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SOLsun/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SPARC32_LINUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SPARC64_LINUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SPARC64_OPENBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SPARC64_SOLARIS/: Csetjmp.i3 Log message: some uniformity and reduction in Csetjmp.i3 remove all "JBLEN" constants don't leak out more identifiers where some platforms had jmp_buf = RECORD ARRAY opaque [0..n] of int END; and some had jmp_buf = ARRAY [0..n] of int; use ARRAY for all since it is "smaller" (in source/text) if there is a reason to favor the opaque record, then they should all use that imho make all arrays 0-based reduce some cases from sigjmp_buf to jmpbuf but for the most part that done here until I setup and run more machines From jkrell at elego.de Tue Jan 5 13:21:02 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:21:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105122102.AEC8ACC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:21:02 Modified files: cm3/m3-libs/m3core/src/C/I386_DARWIN/: Csetjmp.i3 Log message: make it a jmp_buf instead of a sigjmp_buf From jkrell at elego.de Tue Jan 5 13:21:35 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:21:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105122135.AEFA42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:21:35 Modified files: cm3/m3-libs/m3core/src/C/AMD64_DARWIN/: Csetjmp.i3 Log message: make it a jmp_buf instead of a sigjmp_buf From jkrell at elego.de Tue Jan 5 13:22:37 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:22:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105122237.964A1CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:22:37 Modified files: cm3/m3-libs/m3core/src/C/PPC_DARWIN/: Csetjmp.i3 Log message: make it a jmp_buf instead of a sigjmp_buf From jkrell at elego.de Tue Jan 5 13:25:33 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:25:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105122533.708E12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:25:33 Modified files: cm3/m3-libs/m3core/src/C/ARM_DARWIN/: Csetjmp.i3 Log message: remove incorrect comment and copy the expression from the official SDK From jkrell at elego.de Tue Jan 5 13:27:02 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:27:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105122702.A1E582474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:27:02 Modified files: cm3/m3-libs/m3core/src/C/SPARC64_SOLARIS/: Csetjmp.i3 Log message: use a zero-based array and decimal like the others From jkrell at elego.de Tue Jan 5 13:28:38 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:28:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105122838.A42462474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:28:38 Modified files: cm3/m3-libs/m3core/src/C/AMD64_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/NetBSD2_i386/: Csetjmp.i3 Log message: whitespace only From jkrell at elego.de Tue Jan 5 13:33:00 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:33:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105123300.D16A52474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:33:00 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.m3 Log message: copy from head: remove lock acquire/release from condition wait credit another reference for the algorithm add SetState calls to match pthread better handling of low resources assert that counters are actually booleans like pthread From jkrell at elego.de Tue Jan 5 13:34:48 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:34:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105123448.666772474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:34:48 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: use _setjmp instead of setjmp on all Solaris and Darwin platforms in fact, now, all platforms use _setjmp I foresee this might change on e.g. IA64_NT, AMD64_NT so leave the configurability (I386_NT prepends underscores to all identifiers) From jkrell at elego.de Tue Jan 5 14:08:53 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 14:08:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105130853.205B92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 14:08:53 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: reconcile with Csetjmp.i3 and some available systems including shrinking Darwin and Linux/x86 jmpbuf from sigjmpbuf leave NetBSD/x86 alone for now (no machine available) use "larger types" e.g. Address.size or Int32.size instead of Char.size to sort of mimic alignment/Csetjmp.i3, though alignment is set separately from size use decimal to mimic Csetjmp.i3 (and many but not all /usr/include/setjmp.h) From jkrell at elego.de Tue Jan 5 14:10:57 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 14:10:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105131057.879972474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 14:10:57 Modified files: cm3/m3-libs/m3core/src/C/PPC_LINUX/: Csetjmp.i3 Log message: comment about alignment: 16 is ideal, 4 is ok, we use 8 because we can't ask for 16 From wagner at elego.de Wed Jan 6 00:46:46 2010 From: wagner at elego.de (Olaf Wagner) Date: Wed, 6 Jan 2010 0:46:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105234647.33F292474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 10/01/06 00:46:46 Modified files: cm3/scripts/: Tag: release_branch_cm3_5_8 version Log message: 5.8.4 is past From hosking at elego.de Wed Jan 6 03:08:53 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 3:08:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106020854.070862474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 03:08:53 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: Format comments. From hosking at elego.de Wed Jan 6 03:26:31 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 3:26:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106022631.6BFB42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 03:26:31 Modified files: cm3/m3-sys/m3middle/src/: Target.i3 Log message: Format comment. From hosking at elego.de Wed Jan 6 08:34:38 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 8:34:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106073438.E0B2E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 08:34:38 Modified files: cm3/m3-sys/m3front/src/: m3makefile cm3/m3-sys/m3front/src/builtinTypes/: Int.i3 Int.m3 LInt.i3 LInt.m3 cm3/m3-sys/m3front/src/builtinWord/: WordAnd.i3 WordAnd.m3 WordDivide.i3 WordDivide.m3 WordExtract.i3 WordExtract.m3 WordGE.i3 WordGE.m3 WordGT.i3 WordGT.m3 WordInsert.i3 WordInsert.m3 WordLE.i3 WordLE.m3 WordLT.i3 WordLT.m3 WordMinus.i3 WordMinus.m3 WordMod.i3 WordMod.m3 WordModule.i3 WordModule.m3 WordNot.i3 WordNot.m3 WordOr.i3 WordOr.m3 WordPlus.i3 WordPlus.m3 WordRotate.i3 WordRotate.m3 WordShift.i3 WordShift.m3 WordTimes.i3 WordTimes.m3 WordXor.i3 WordXor.m3 m3makefile cm3/m3-sys/m3front/src/misc/: M3Front.m3 Added files: cm3/m3-sys/m3front/src/builtinWord/: GenAnd.ig GenAnd.mg GenDivide.ig GenDivide.mg GenExtract.ig GenExtract.mg GenGE.ig GenGE.mg GenGT.ig GenGT.mg GenInsert.ig GenInsert.mg GenLE.ig GenLE.mg GenLT.ig GenLT.mg GenMinus.ig GenMinus.mg GenMod.ig GenMod.mg GenModule.ig GenModule.mg GenNot.ig GenNot.mg GenOr.ig GenOr.mg GenPlus.ig GenPlus.mg GenRotate.ig GenRotate.mg GenShift.ig GenShift.mg GenTimes.ig GenTimes.mg GenXor.ig GenXor.mg LongAnd.i3 LongAnd.m3 LongDivide.i3 LongDivide.m3 LongExtract.i3 LongExtract.m3 LongGE.i3 LongGE.m3 LongGT.i3 LongGT.m3 LongInsert.i3 LongInsert.m3 LongLE.i3 LongLE.m3 LongLT.i3 LongLT.m3 LongMinus.i3 LongMinus.m3 LongMod.i3 LongMod.m3 LongModule.i3 LongModule.m3 LongNot.i3 LongNot.m3 LongOr.i3 LongOr.m3 LongPlus.i3 LongPlus.m3 LongRotate.i3 LongRotate.m3 LongShift.i3 LongShift.m3 LongTimes.i3 LongTimes.m3 LongXor.i3 LongXor.m3 Removed files: cm3/m3-sys/m3front/src/builtinLong/: LongAnd.i3 LongAnd.m3 LongDivide.i3 LongDivide.m3 LongExtract.i3 LongExtract.m3 LongGE.i3 LongGE.m3 LongGT.i3 LongGT.m3 LongInsert.i3 LongInsert.m3 LongLE.i3 LongLE.m3 LongLT.i3 LongLT.m3 LongMinus.i3 LongMinus.m3 LongMod.i3 LongMod.m3 LongModule.i3 LongModule.m3 LongNot.i3 LongNot.m3 LongOr.i3 LongOr.m3 LongPlus.i3 LongPlus.m3 LongRotate.i3 LongRotate.m3 LongShift.i3 LongShift.m3 LongTimes.i3 LongTimes.m3 LongXor.i3 LongXor.m3 m3makefile Log message: Fold implementation of builtin Word and Long interfaces into generics, instantiated for representations using INTEGER and LONGINT. From jkrell at elego.de Wed Jan 6 12:36:38 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 12:36:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106113638.E696B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 12:36:38 Modified files: cm3/m3-libs/m3core/src/C/AMD64_NETBSD/: Csetjmp.i3 Log message: shrink jmp_buf to correct size From jkrell at elego.de Wed Jan 6 12:37:30 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 12:37:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106113730.ED9CACC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 12:37:30 Modified files: cm3/m3-libs/m3core/src/C/NetBSD2_i386/: Csetjmp.i3 Log message: comments only: remove incorrect comment and put a comment that makes it sound like we know what we are doing here and that the code is correct, which I believe is true From jkrell at elego.de Wed Jan 6 12:50:31 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 12:50:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106115031.E64582474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 12:50:31 Modified files: cm3/m3-libs/m3core/src/C/AMD64_FREEBSD/: Csetjmp.i3 Log message: comments only: put a comment that makes it sound like we know what we are doing here and that the code is correct, which I believe is true From jkrell at elego.de Wed Jan 6 13:39:26 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 13:39:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106123926.B9FC42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 13:39:26 Modified files: cm3/m3-libs/m3core/src/unix/solaris-2-x/: m3makefile Log message: remove duplicate Usignal.i3 From jkrell at elego.de Wed Jan 6 14:08:56 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 14:08:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106130857.C4A382474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 14:08:56 Modified files: cm3/m3-libs/m3core/src/runtime/NT386GNU/: RTMachine.i3 Log message: remove unused import From jkrell at elego.de Wed Jan 6 14:13:17 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 14:13:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106131317.A57402474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 14:13:17 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.i3 cm3/m3-libs/m3core/src/unix/cygwin/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/darwin-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/freebsd-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/hpux-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/interix-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/netbsd-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/solaris-common/: Usysdep.i3 Log message: MaxPathLen is apparently 1024 everywhere, except Irix 4096 For now remove it from Usysdep. Maybe in future we exactly undo this. Maybe in future all MaxPathLen uses are in C. Maybe in future all MaxPathLen users allow any length (heap allocated). Maybe in future we raise it to 4096 everywhere (I believe cygwin actually supports 32K) From jkrell at elego.de Wed Jan 6 15:50:35 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 15:50:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106145036.172B92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 15:50:35 Modified files: cm3/scripts/python/: pylib.py Log message: SOLgnu etc. bootstrap archives don't use PIC due to special case in config files and passing PIC flag to assembler here makes cm3 crash, because the base doesn't get added to the offset... From jkrell at elego.de Wed Jan 6 16:34:16 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 16:34:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106153416.D48512474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 16:34:16 Modified files: cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: m3makefile cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/novm/: m3makefile cm3/m3-libs/m3core/src/runtime/DS3100/: m3makefile cm3/m3-libs/m3core/src/runtime/HP300/: m3makefile cm3/m3-libs/m3core/src/runtime/NEXT/: m3makefile cm3/m3-libs/m3core/src/runtime/SUN3/: m3makefile cm3/m3-libs/m3core/src/runtime/UMAX/: m3makefile Removed files: cm3/m3-libs/m3core/src/runtime/AIX386/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: RTSignal.m3 cm3/m3-libs/m3core/src/runtime/AP3000/: RTSignal.m3 m3makefile setjmp.asm setjmp.o cm3/m3-libs/m3core/src/runtime/ARM/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/ARM_DARWIN/: m3makefile cm3/m3-libs/m3core/src/runtime/DS3100/: RTSignal.m3 cm3/m3-libs/m3core/src/runtime/FreeBSD/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/FreeBSD2/: COPYRIGHT RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/FreeBSD3/: COPYRIGHT RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/HP300/: RTSignal.m3 cm3/m3-libs/m3core/src/runtime/HPPA/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/IBMR2/: RTSignal.m3 m3makefile notest_longjmp.o notest_longjmp.s cm3/m3-libs/m3core/src/runtime/IBMRT/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/IRIX5/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/LINUX/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/LINUXELF/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/NEXT/: RTSignal.m3 cm3/m3-libs/m3core/src/runtime/OKI/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/OS2/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/SEQUENT/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/SPARC/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/SUN3/: RTSignal.m3 cm3/m3-libs/m3core/src/runtime/SUN386/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/UMAX/: RTSignal.m3 cm3/m3-libs/m3core/src/runtime/VAX/: RTSignal.m3 m3makefile Log message: delete various per-platform files on dead/dormant platforms esp. since most platforms use one portable version now anyway also delete .s/.o files not listed in m3makefile also delete empty ARM_DARWIN/m3makefile for now keep FreeBSD4/NetBSD RTSignal.m3 until machine available for testing From jkrell at elego.de Wed Jan 6 16:35:15 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 16:35:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106153515.B02342474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 16:35:15 Removed files: cm3/m3-libs/m3core/src/runtime/VAX/: setjmp.s Log message: delete more From hosking at elego.de Wed Jan 6 18:49:02 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 18:49:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106174902.B3E39CC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 18:49:02 Modified files: cm3/m3-libs/m3core/src/atomic/: Atomic.ig m3makefile Added files: cm3/m3-libs/m3core/src/atomic/: AtomicRep.ig atomic.tmpl Removed files: cm3/m3-libs/m3core/src/atomic/: AtomicAddress.i3 AtomicBoolean.i3 AtomicChar.i3 AtomicInteger.i3 AtomicLongint.i3 AtomicRefany.i3 AtomicWideChar.i3 AtomicWord.i3 Log message: Return to using a template to generate the variants of Atomic.ig. (Sorry Jay, I'd forgotten that we can precisely control visibility of these things...) From hosking at elego.de Wed Jan 6 19:00:47 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 19:00:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106180047.6CCDA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 19:00:47 Modified files: cm3/m3-libs/m3core/src/word/: m3makefile Log message: Representation interfaces should be hidden. From hosking at elego.de Wed Jan 6 19:43:12 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 19:43:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106184312.BEACD2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 19:43:12 Modified files: cm3/m3-sys/m3front/src/builtinWord/: GenAnd.mg GenDivide.mg GenGE.mg GenGT.mg GenLE.mg GenLT.mg GenMinus.mg GenMod.mg GenOr.mg GenTimes.mg GenXor.mg m3makefile Added files: cm3/m3-sys/m3front/src/builtinWord/: word.tmpl Removed files: cm3/m3-sys/m3front/src/builtinWord/: LongAnd.i3 LongAnd.m3 LongDivide.i3 LongDivide.m3 LongExtract.i3 LongExtract.m3 LongGE.i3 LongGE.m3 LongGT.i3 LongGT.m3 LongInsert.i3 LongInsert.m3 LongLE.i3 LongLE.m3 LongLT.i3 LongLT.m3 LongMinus.i3 LongMinus.m3 LongMod.i3 LongMod.m3 LongModule.i3 LongModule.m3 LongNot.i3 LongNot.m3 LongOr.i3 LongOr.m3 LongPlus.i3 LongPlus.m3 LongRotate.i3 LongRotate.m3 LongShift.i3 LongShift.m3 LongTimes.i3 LongTimes.m3 LongXor.i3 LongXor.m3 WordAnd.i3 WordAnd.m3 WordDivide.i3 WordDivide.m3 WordExtract.i3 WordExtract.m3 WordGE.i3 WordGE.m3 WordGT.i3 WordGT.m3 WordInsert.i3 WordInsert.m3 WordLE.i3 WordLE.m3 WordLT.i3 WordLT.m3 WordMinus.i3 WordMinus.m3 WordMod.i3 WordMod.m3 WordModule.i3 WordModule.m3 WordNot.i3 WordNot.m3 WordOr.i3 WordOr.m3 WordPlus.i3 WordPlus.m3 WordRotate.i3 WordRotate.m3 WordShift.i3 WordShift.m3 WordTimes.i3 WordTimes.m3 WordXor.i3 WordXor.m3 Log message: Generate the variants using a template. From hosking at elego.de Wed Jan 6 21:22:19 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 21:22:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106202219.D03C9CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 21:22:19 Modified files: cm3/m3-sys/m3front/src/builtinTypes/: Int.i3 Int.m3 LInt.i3 LInt.m3 cm3/m3-sys/m3front/src/builtinWord/: GenAnd.mg GenDivide.mg GenExtract.mg GenGE.mg GenGT.mg GenInsert.mg GenLE.mg GenLT.mg GenMinus.mg GenMod.mg GenModule.mg GenNot.mg GenOr.mg GenPlus.mg GenRotate.mg GenShift.mg GenTimes.mg GenXor.mg Log message: Forgot to commit the extensions to Int/LInt for generic expansions. From hosking at elego.de Wed Jan 6 21:40:20 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 21:40:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106204020.6D3B7CC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 21:40:20 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: Add a few more constants. From hosking at elego.de Wed Jan 6 22:34:03 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 22:34:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106213404.04EAA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 22:34:03 Modified files: cm3/m3-libs/m3core/src/atomic/: Atomic.ig atomic.tmpl m3makefile Removed files: cm3/m3-libs/m3core/src/atomic/: AtomicRep.ig Log message: Simplify the implementation in the compiler by omitting hidden Rep fun and games. From hosking at elego.de Thu Jan 7 16:19:43 2010 From: hosking at elego.de (Antony Hosking) Date: Thu, 7 Jan 2010 16:19:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100107151944.0CDB6CC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/07 16:19:43 Modified files: cm3/m3-libs/m3core/src/word/: m3makefile Log message: Make WordRep and LongRep visible to stubgen and other tools. From hosking at elego.de Thu Jan 7 21:42:58 2010 From: hosking at elego.de (Antony Hosking) Date: Thu, 7 Jan 2010 21:42:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100107204258.C1FD72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/07 21:42:58 Modified files: cm3/m3-sys/m3front/src/builtinTypes/: Int.i3 Int.m3 LInt.i3 LInt.m3 cm3/m3-sys/m3front/src/builtinWord/: GenAnd.ig GenAnd.mg GenDivide.ig GenDivide.mg GenExtract.ig GenExtract.mg GenGE.ig GenGE.mg GenGT.ig GenGT.mg GenInsert.ig GenInsert.mg GenLE.ig GenLE.mg GenLT.ig GenLT.mg GenMinus.ig GenMinus.mg GenMod.ig GenMod.mg GenModule.mg GenNot.ig GenNot.mg GenOr.ig GenOr.mg GenPlus.ig GenPlus.mg GenRotate.ig GenRotate.mg GenShift.ig GenShift.mg GenTimes.ig GenTimes.mg GenXor.ig GenXor.mg Log message: A cleaner solution to determining representation CG type information. From hosking at elego.de Fri Jan 8 17:06:48 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 8 Jan 2010 17:06:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100108160648.E10242474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/08 17:06:48 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Dec.m3 Inc.m3 Log message: Fix bounds checking on INC/DEC. This was incorrectly implemented to allow success for: VAR v: CARDINAL := LAST(INTEGER); BEGIN INC(v) END; because it did not check for integer increment wrapping to an illegal CARDINAL value. From hosking at elego.de Fri Jan 8 18:59:12 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 8 Jan 2010 18:59:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100108175912.531E02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/08 18:59:12 Modified files: cm3/m3-libs/libm3/src/rw/: IO.i3 IO.m3 Log message: Implement PutLongInt, GetLongInt. From hosking at elego.de Fri Jan 8 22:06:20 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 8 Jan 2010 22:06:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100108210620.983A42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/08 22:06:20 Modified files: cm3/m3-libs/m3core/src/atomic/: Atomic.ig Log message: Corrections and adjustments to match C1x stdatomic compare and swap. From jkrell at elego.de Sat Jan 9 09:44:03 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 9 Jan 2010 9:44:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100109084404.2BACA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/09 09:44:03 Modified files: cm3/m3-comm/events/src/: Tag: branch_feature_longint_offset EventHandle.i3 EventPort.m3 EventRd.m3 EventStubLib.m3 EventWr.m3 cm3/m3-comm/netobj/src/netobjrt/: Tag: branch_feature_longint_offset StubLib.m3 VoucherStubs.m3 cm3/m3-comm/rdwr/src/: Tag: branch_feature_longint_offset RdWrPipe.m3 SimpleMsgRW.m3 TeeWr.m3 cm3/m3-comm/tcp/src/common/: Tag: branch_feature_longint_offset ConnMsgRW.m3 ConnRW.m3 cm3/m3-db/smalldb/src/: Tag: branch_feature_longint_offset OSSupportWIN32.m3 SmallDB.i3 SmallDB.m3 cm3/m3-libs/libbuf/src/: Tag: branch_feature_longint_offset Buf.m3 cm3/m3-libs/libm3/src/os/Common/: Tag: branch_feature_longint_offset File.i3 RegularFile.i3 cm3/m3-libs/libm3/src/os/POSIX/: Tag: branch_feature_longint_offset FilePosix.m3 cm3/m3-libs/libm3/src/os/WIN32/: Tag: branch_feature_longint_offset FileWin32.m3 cm3/m3-libs/libm3/src/rw/: Tag: branch_feature_longint_offset AutoFlushWr.m3 FileRd.m3 FileWr.m3 NullRd.m3 NullWr.m3 Rd.i3 Rd.m3 RdClass.i3 RdCopy.i3 RdCopy.m3 RdUtils.i3 RdUtils.m3 TextRd.m3 TextWr.m3 UnsafeWr.i3 Wr.i3 Wr.m3 WrClass.i3 cm3/m3-libs/libm3/src/sx/: Tag: branch_feature_longint_offset Sx.m3 cm3/m3-libs/slisp/src/: Tag: branch_feature_longint_offset SLisp.m3 cm3/m3-libs/sysutils/src/: Tag: branch_feature_longint_offset ConnectRdWr.m3 cm3/m3-obliq/obliqlibm3/src/: Tag: branch_feature_longint_offset ObLibM3.m3 cm3/m3-sys/cm3/src/: Tag: branch_feature_longint_offset WebFile.m3 cm3/m3-sys/cm3ide/src/misc/: Tag: branch_feature_longint_offset LineWr.m3 cm3/m3-sys/cm3ide/src/nodes/: Tag: branch_feature_longint_offset Type.m3 cm3/m3-sys/cm3ide/src/utils/: Tag: branch_feature_longint_offset Buf.m3 cm3/m3-sys/fix_nl/src/: Tag: branch_feature_longint_offset Main.m3 cm3/m3-sys/libdump/src/: Tag: branch_feature_longint_offset Main.m3 cm3/m3-sys/m3front/src/builtinOps/: Tag: branch_feature_longint_offset Dec.m3 Max.m3 Min.m3 cm3/m3-sys/m3front/src/exprs/: Tag: branch_feature_longint_offset AddExpr.m3 CompareExpr.m3 DivExpr.m3 ModExpr.m3 MultiplyExpr.m3 SubtractExpr.m3 cm3/m3-sys/m3front/src/types/: Tag: branch_feature_longint_offset Type.m3 cm3/m3-sys/m3quake/src/: Tag: branch_feature_longint_offset QScanner.m3 cm3/m3-sys/m3scanner/src/: Tag: branch_feature_longint_offset M3Scanner.m3 cm3/m3-sys/mklib/src/: Tag: branch_feature_longint_offset Main.m3 cm3/m3-tools/cmpdir/src/: Tag: branch_feature_longint_offset Main.m3 cm3/m3-tools/dirfp/src/: Tag: branch_feature_longint_offset Main.m3 cm3/m3-tools/m3bundle/src/: Tag: branch_feature_longint_offset m3bundle.m3 cm3/m3-tools/m3scan/src/: Tag: branch_feature_longint_offset M3Scanner.m3 cm3/m3-tools/m3tk/src/files/Common/: Tag: branch_feature_longint_offset M3DirFindFile.m3 cm3/m3-tools/m3tohtml/src/: Tag: branch_feature_longint_offset DBRd.m3 MarkUp.m3 cm3/m3-tools/rehearsecode/src/: Tag: branch_feature_longint_offset RehearseCode.m3 cm3/m3-ui/codeview/src/: Tag: branch_feature_longint_offset CodeView.m3 cm3/m3-ui/formsedit/src/: Tag: branch_feature_longint_offset FormsEditVBT.m3 cm3/m3-ui/formsvbt/src/: Tag: branch_feature_longint_offset FVRuntime.m3 Manpage.m3 cm3/m3-ui/juno-2/juno-app/src/: Tag: branch_feature_longint_offset Editor.m3 Source.m3 cm3/m3-ui/juno-2/juno-compiler/src/: Tag: branch_feature_longint_offset JunoLex.m3 cm3/m3-ui/mgkit/src/: Tag: branch_feature_longint_offset MGRd.m3 cm3/m3-ui/vbtkit/src/etext/: Tag: branch_feature_longint_offset MTextUnit.m3 TextPortClass.m3 TypescriptVBT.m3 cm3/m3-ui/vbtkit/src/mtext/: Tag: branch_feature_longint_offset MTextRd.m3 cm3/m3-ui/vbtkit/src/vtext/: Tag: branch_feature_longint_offset VTRd.m3 cm3/m3-www/http/src/: Tag: branch_feature_longint_offset HTTP.m3 Log message: one version of 64bit file size support, in a branch features of this version: compiler supports assignment INTEGER to LONGINT compiler supports various mixed operations FOR loop in compiler not changed, but should be compiler doesn't quite get assignability correct ramifications: no need for VAL(expr, LONGINT) sprinkled everywhere except for a few, due to compiler not quite right need for ORD sprinkled because don't support LONGINT to INTEGER There are many bits to decide and this is just combination. Also, this only has the support for Windows, not Posix. And the Windows support isn't "real" in that the compiler makes LONGINT only 32bits, and the few places that get file sizes from the underlying system, still truncate to 32bits. However, this diff is "mostly real", given the "decision bits" it has made. And one can consider this file list useful, depending on where we end up. From hosking at elego.de Sat Jan 9 23:05:05 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 9 Jan 2010 23:05:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100109220505.B30EC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/09 23:05:05 Modified files: cm3/m3-sys/m3cc/gcc/gcc/m3cg/: m3cg.h parse.c Log message: First cut rework of support for atomic primitives as documented in Atomic.ig. From hosking at elego.de Sat Jan 9 23:10:13 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 9 Jan 2010 23:10:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100109221013.AB8E62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/09 23:10:13 Modified files: cm3/m3-sys/m3front/src/misc/: M3Front.m3 Log message: Forgot to add extra parameter to Initialize function for Word/Long. From hosking at elego.de Sat Jan 9 23:11:44 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 9 Jan 2010 23:11:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100109221144.7CACC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/09 23:11:44 Modified files: cm3/m3-sys/m3front/src/misc/: Token.m3 Log message: Drop CAS/CASP. From hosking at elego.de Sun Jan 10 06:12:06 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 10 Jan 2010 6:12:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110051206.C6C792474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/10 06:12:06 Modified files: cm3/m3-sys/m3front/src/exprs/: AddExpr.m3 Log message: Adjust bounds to be different than the type's bounds only if both sum bounds are known exactly. From hosking at elego.de Sun Jan 10 06:12:18 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 10 Jan 2010 6:12:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110051218.2F3C42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/10 06:12:18 Modified files: cm3/m3-sys/m3front/src/exprs/: SubtractExpr.m3 Log message: Adjust bounds to be different than the type's bounds only if both sum bounds are known exactly. From hosking at elego.de Sun Jan 10 06:16:05 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 10 Jan 2010 6:16:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110051605.9041B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/10 06:16:05 Modified files: cm3/m3-sys/m3front/src/exprs/: CheckExpr.m3 Log message: Comparisons should be performed on the signed type of the expression. From hosking at elego.de Sun Jan 10 06:24:44 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 10 Jan 2010 6:24:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110052445.26E762474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/10 06:24:44 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Inc.m3 Log message: Need to used appropriate signed type (Integer or Longint) for operation and range checks. From hosking at elego.de Sun Jan 10 06:26:45 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 10 Jan 2010 6:26:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110052645.EC4142474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/10 06:26:45 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Dec.m3 Log message: Need to used appropriate signed type (Integer or Longint) for operation and range checks. From hosking at elego.de Sun Jan 10 07:54:48 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 10 Jan 2010 7:54:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110065448.C0B692474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/10 07:54:48 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Last.m3 Log message: Let's be super-careful here and avoid CGType. From hosking at elego.de Sun Jan 10 07:57:13 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 10 Jan 2010 7:57:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110065714.13EF22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/10 07:57:13 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Last.m3 Log message: Oops. Fix typo. From hosking at elego.de Sun Jan 10 07:57:34 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 10 Jan 2010 7:57:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110065734.CFC5B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/10 07:57:34 Modified files: cm3/m3-sys/m3front/src/builtinOps/: First.m3 Log message: Let's be super-careful here and avoid CGType. From jkrell at elego.de Sun Jan 10 11:45:16 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 10 Jan 2010 11:45:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110104516.A0E532474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/10 11:45:16 Modified files: cm3/m3-sys/m3front/src/builtinOps/: BuiltinOps.m3 m3makefile cm3/m3-sys/m3front/src/misc/: CG.i3 CG.m3 Log message: finish removing cas/casp, in order to fix this problem: *** *** runtime error: *** An array subscript was out of range. *** file "..\src\misc\Scanner.m3", line 351 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x12f774 0x49c8e2 NoteReserved + 0x44 in ..\src\misc\Scanner.m3 0x12f7ac 0x4cb247 Define + 0xf9 in ..\src\values\Procedure.m3 0x12f7d4 0x517b7b Initialize + 0xd5 in ..\src\builtinOps\Cas.m3 0x12f7e8 0x4b0320 Initialize + 0x30 in ..\src\builtinOps\BuiltinOps.m3 0x12f804 0x499341 Initialize + 0x9a in ..\src\misc\M3Front.m3 0x12f834 0x498f81 ParseImports + 0x151 in ..\src\misc\M3Front.m3 0x12f860 0x40a6eb Pass0_CheckImports + 0xa4 in ..\src\Builder.m3 0x12f8ac 0x409e87 RunM3 + 0x215 in ..\src\Builder.m3 0x12f8e8 0x40862c PushOneM3 + 0x10a in ..\src\Builder.m3 0x12f918 0x4084f9 CompileM3 + 0x21d in ..\src\Builder.m3 ......... ......... ... more frames ... From jkrell at elego.de Sun Jan 10 11:46:36 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 10 Jan 2010 11:46:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110104636.2C3AB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/10 11:46:36 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Dec.m3 Log message: make DEC decrement instead of increment From jkrell at elego.de Sun Jan 10 11:50:00 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 10 Jan 2010 11:50:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110105001.08B8E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/10 11:50:00 Removed files: cm3/m3-sys/m3front/src/builtinOps/: Cas.i3 Cas.m3 CasP.i3 CasP.m3 Log message: really, finish removing cas/casp From hosking at elego.de Mon Jan 11 19:19:12 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 19:19:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111181912.6B2642474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 19:19:12 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Ord.m3 Log message: Rework so that ORD always returns the underlying type of its argument. Thus ORD(LONGINT) returns LONGINT. From hosking at elego.de Mon Jan 11 19:20:07 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 19:20:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111182007.D2C522474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 19:20:07 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Val.m3 Log message: Rework to allow arbitrary conversions (range checked of course) to/from LONGINT/INTEGER. From hosking at elego.de Mon Jan 11 19:28:44 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 19:28:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111182844.D7C432474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 19:28:44 Modified files: cm3/doc/reference/: typeops.html Log message: Fix definitions of ORD and VAL to match current implementation. From hosking at elego.de Mon Jan 11 19:31:20 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 19:31:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111183120.D6CD62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 19:31:20 Modified files: cm3/doc/reference/: conventions.html Log message: Also fix example that uses ORD to match its actual definition. From hosking at elego.de Mon Jan 11 19:32:51 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 19:32:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111183251.13CB92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 19:32:51 Modified files: cm3/doc/reference/complete/: m3-defn-complete.tex Log message: Fix definitions of ORD and VAL to match current implementation. From hosking at elego.de Mon Jan 11 19:34:04 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 19:34:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111183404.A69E92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 19:34:04 Modified files: cm3/doc/reference/complete/: m3-defn-complete.ps Log message: Regenerate Postscript. From hosking at elego.de Mon Jan 11 19:34:26 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 19:34:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111183426.D8EF82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 19:34:26 Added files: cm3/doc/reference/complete/: m3-defn-complete.pdf Log message: Let's have PDF as well. From hosking at elego.de Mon Jan 11 20:19:16 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:19:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111191916.618872474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:19:16 Modified files: cm3/m3-libs/m3core/src/convert/: Convert.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 20:23:48 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:23:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111192348.4B9382474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:23:48 Modified files: cm3/m3-sys/m3cggen/src/: Main.m3 Log message: Reconcile with new M3CG_Binary.Op. From hosking at elego.de Mon Jan 11 20:26:03 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:26:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111192603.B97172474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:26:03 Modified files: cm3/m3-libs/libm3/src/fmtlex/: Fmt.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 20:26:20 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:26:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111192620.E40D62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:26:20 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FSPosix.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 20:26:34 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:26:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111192634.C34D32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:26:34 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosix.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 20:26:49 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:26:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111192649.16A7B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:26:49 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: SocketPosix.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 20:31:49 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:31:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111193149.8D5932474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:31:49 Modified files: cm3/m3-tools/m3tk/src/target/: M3CBackEnd_C.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 20:42:33 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:42:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111194233.0A7C42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:42:33 Modified files: cm3/m3-sys/m3middle/src/: TInt.m3 Log message: Need support for precision conversions under new VAL/ORD. From hosking at elego.de Mon Jan 11 20:44:00 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:44:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111194400.A25DA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:44:00 Modified files: cm3/m3-tools/m3tk/src/target/: M3CBackEnd_C.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 20:44:15 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:44:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111194415.D3A4B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:44:15 Modified files: cm3/m3-tools/m3tk/src/target/: M3CBackEnd_Int.mg Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 20:54:02 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:54:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111195402.457802474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:54:02 Modified files: cm3/m3-tools/cvsup/suplib/src/: TokScan.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 21:05:39 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 21:05:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111200539.64F3D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 21:05:39 Modified files: cm3/m3-tools/cvsup/suplib/src/: FileAttr.m3 RCSFile.m3 RsyncFile.m3 UnixMisc.m3 cm3/m3-tools/cvsup/suplib/src/dev_t_posix/: DevT.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 21:38:30 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 21:38:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111203830.6A3562474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 21:38:30 Modified files: cm3/doc/reference/: typeops.html Log message: Typeset T as tt. From hosking at elego.de Mon Jan 11 23:04:48 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 23:04:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111220449.003432474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 23:04:48 Modified files: cm3/m3-sys/m3middle/src/: M3CG.i3 M3CG.m3 M3CG_BinRd.m3 M3CG_BinWr.m3 M3CG_Binary.i3 M3CG_Check.m3 M3CG_Ops.i3 M3CG_Rd.m3 M3CG_Wr.m3 Target.i3 Log message: Rework atomics to allow targeting of atomic ops like those of C1x . From jkrell at elego.de Tue Jan 12 11:20:39 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 12 Jan 2010 11:20:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100112102039.C3F672474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/12 11:20:39 Modified files: cm3/m3-db/stable/src/: LogManager.m3 cm3/m3-libs/libbuf/src/: Buf.m3 cm3/m3-libs/libm3/src/os/Common/: File.i3 cm3/m3-libs/libm3/src/os/POSIX/: FSPosix.m3 FilePosix.m3 SocketPosix.m3 cm3/m3-libs/libm3/src/os/WIN32/: FSWin32.m3 FileWin32.m3 LazyConsole.m3 cm3/m3-libs/libm3/src/rw/: FileRd.m3 FileWr.m3 cm3/m3-sys/cm3/src/: WebFile.m3 cm3/m3-sys/cm3ide/src/utils/: Buf.m3 cm3/m3-sys/fix_nl/src/: Main.m3 cm3/m3-sys/m3quake/src/: QScanner.m3 cm3/m3-sys/mklib/src/: Main.m3 cm3/m3-tools/cmpdir/src/: Main.m3 cm3/m3-tools/dirfp/src/: Main.m3 cm3/m3-tools/m3tohtml/src/: DBRd.m3 Log message: Change File.i3/Status.size from CARDINAL to [0L..LAST(LONGINT)]. (Notice that some code checks if it is < 0, though don't confuse that with <= 0.) Leave rd/wr essentially unchanged. This is probably enough to fix the exception when browsing to a directory with large files. Not that much/any code can read/write such files on 32bit system -- all the direct users of File.i3 appear to read the entire file into memory. From jay.krell at cornell.edu Tue Jan 12 11:23:24 2010 From: jay.krell at cornell.edu (Jay K) Date: Tue, 12 Jan 2010 10:23:24 +0000 Subject: [M3commit] Change File.i3/Status.size from CARDINAL to [0L..LAST(LONGINT)]. In-Reply-To: <20100112102039.C3F672474001@birch.elegosoft.com> References: <20100112102039.C3F672474001@birch.elegosoft.com> Message-ID: diff attached (cvs is lame..) - Jay > Date: Tue, 12 Jan 2010 11:20:39 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/12 11:20:39 > > Modified files: > cm3/m3-db/stable/src/: LogManager.m3 > cm3/m3-libs/libbuf/src/: Buf.m3 > cm3/m3-libs/libm3/src/os/Common/: File.i3 > cm3/m3-libs/libm3/src/os/POSIX/: FSPosix.m3 FilePosix.m3 > SocketPosix.m3 > cm3/m3-libs/libm3/src/os/WIN32/: FSWin32.m3 FileWin32.m3 > LazyConsole.m3 > cm3/m3-libs/libm3/src/rw/: FileRd.m3 FileWr.m3 > cm3/m3-sys/cm3/src/: WebFile.m3 > cm3/m3-sys/cm3ide/src/utils/: Buf.m3 > cm3/m3-sys/fix_nl/src/: Main.m3 > cm3/m3-sys/m3quake/src/: QScanner.m3 > cm3/m3-sys/mklib/src/: Main.m3 > cm3/m3-tools/cmpdir/src/: Main.m3 > cm3/m3-tools/dirfp/src/: Main.m3 > cm3/m3-tools/m3tohtml/src/: DBRd.m3 > > Log message: > Change File.i3/Status.size from CARDINAL to [0L..LAST(LONGINT)]. > (Notice that some code checks if it is < 0, though don't > confuse that with <= 0.) > Leave rd/wr essentially unchanged. > This is probably enough to fix the exception when browsing to a directory with large files. > Not that much/any code can read/write such files on 32bit system -- all the direct users of File.i3 > appear to read the entire file into memory. > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 2.txt URL: From jkrell at elego.de Tue Jan 12 12:16:59 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 12 Jan 2010 12:16:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100112111659.4207E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/12 12:16:59 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: add portable possible functions for implementing overflow checking of add/sub/mult of int, int64, uint, uint64 From jkrell at elego.de Tue Jan 12 18:23:12 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 12 Jan 2010 18:23:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100112172312.20D6C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/12 18:23:12 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: comments From jkrell at elego.de Tue Jan 12 18:29:19 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 12 Jan 2010 18:29:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100112172920.05DFA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/12 18:29:19 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: use min/max from limits.h From jkrell at elego.de Tue Jan 12 18:31:31 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 12 Jan 2010 18:31:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100112173131.76A542474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/12 18:31:31 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: use BOOL for clarify From hosking at cs.purdue.edu Tue Jan 12 19:18:27 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 12 Jan 2010 13:18:27 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100112111659.4207E2474001@birch.elegosoft.com> References: <20100112111659.4207E2474001@birch.elegosoft.com> Message-ID: <11F12316-4C80-41C3-AAF5-6F4D5E1F14BC@cs.purdue.edu> Do we really want to do this via compilation and out-of-line functions? Surely we would prefer to implement the FloatMode interface to catch hardware traps... I haven't looked at the details but that seems to be the intent... On 12 Jan 2010, at 12:16, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/12 12:16:59 > > Modified files: > cm3/m3-libs/m3core/src/Csupport/Common/: hand.c > > Log message: > add portable possible functions for implementing overflow checking of add/sub/mult of int, int64, uint, uint64 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Jan 12 19:47:44 2010 From: jay.krell at cornell.edu (Jay K) Date: Tue, 12 Jan 2010 18:47:44 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <11F12316-4C80-41C3-AAF5-6F4D5E1F14BC@cs.purdue.edu> References: <20100112111659.4207E2474001@birch.elegosoft.com>, <11F12316-4C80-41C3-AAF5-6F4D5E1F14BC@cs.purdue.edu> Message-ID: What hardware traps? Sure, maybe integer divide by zero. Unlikely I think for integer overflow. I agree out of line inefficient. Probably want "check the carry flag" generated inline, in whatever machine-specific way that is done, may or may not require extra work in m3cg. I might try this soon though, where a command line option (for now) uses function calls and raises exceptions. My slightly refined thinking is that the generate code will look like: a := b + c * d; Foo() d := a + b * c; Bar() overflow = 0; a = add(b, mult(c, d), &overflow); if (overflow) Raise... Foo(); overflow = 0; a = add(a, mult(b, c), &overflow); if (overflow) Raise... That is -- the overflow flag need only be checked "occasionally", such as before any function call, maybe at the start of any loop. Or at the very least, if a statement contains no function calls, only at the end of the statement, not after evaluating each term in an expression. Once overflow occurs, there's little requirement on how the statement proceeds. Though divide by zero shouldn't result. Probably if an expression contains any division, check overflow at each step. ? But maybe "check the overflow flag" is easy enough and right surely far more efficient. - Jay ________________________________ > From: hosking at cs.purdue.edu > Date: Tue, 12 Jan 2010 13:18:27 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > > > Do we really want to do this via compilation and out-of-line functions? Surely we would prefer to implement the FloatMode interface to catch hardware traps... I haven't looked at the details but that seems to be the intent... > > > > On 12 Jan 2010, at 12:16, Jay Krell wrote: > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/12 12:16:59 > > Modified files: > cm3/m3-libs/m3core/src/Csupport/Common/: hand.c > > Log message: > add portable possible functions for implementing overflow checking of add/sub/mult of int, int64, uint, uint64 > From jay.krell at cornell.edu Tue Jan 12 20:17:18 2010 From: jay.krell at cornell.edu (Jay K) Date: Tue, 12 Jan 2010 19:17:18 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100112111659.4207E2474001@birch.elegosoft.com>, , <11F12316-4C80-41C3-AAF5-6F4D5E1F14BC@cs.purdue.edu>, Message-ID: further clarification: We should be able to inject these functions as inlines at the start of any module, in terms of the gcc backend. That is something we might want to explore a bit in general. - Jay ---------------------------------------- > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu; jkrell at elego.de > Date: Tue, 12 Jan 2010 18:47:44 +0000 > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > > What hardware traps? > > Sure, maybe integer divide by zero. > > > Unlikely I think for integer overflow. > I agree out of line inefficient. > Probably want "check the carry flag" generated inline, > in whatever machine-specific way that is done, may > or may not require extra work in m3cg. > > > I might try this soon though, where a command line option (for now) > uses function calls and raises exceptions. > My slightly refined thinking is that the generate code will look like: > > > a := b + c * d; > Foo() > d := a + b * c; > Bar() > > > overflow = 0; > a = add(b, mult(c, d), &overflow); > if (overflow) Raise... > Foo(); > overflow = 0; > a = add(a, mult(b, c), &overflow); > if (overflow) Raise... > > > That is -- the overflow flag need only be checked "occasionally", such as before any function call, maybe at the start of any loop. > Or at the very least, if a statement contains no function calls, only at the end of the statement, not after evaluating each term in an expression. > > > Once overflow occurs, there's little requirement on how the statement proceeds. Though divide by zero shouldn't result. Probably if an expression contains any division, check overflow at each step. > ? > > > But maybe "check the overflow flag" is easy enough and right surely far more efficient. > > > > - Jay > > > > ________________________________ >> From: hosking at cs.purdue.edu >> Date: Tue, 12 Jan 2010 13:18:27 -0500 >> To: jkrell at elego.de >> CC: m3commit at elegosoft.com >> Subject: Re: [M3commit] CVS Update: cm3 >> >> >> >> Do we really want to do this via compilation and out-of-line functions? Surely we would prefer to implement the FloatMode interface to catch hardware traps... I haven't looked at the details but that seems to be the intent... >> >> >> >> On 12 Jan 2010, at 12:16, Jay Krell wrote: >> >> CVSROOT: /usr/cvs >> Changes by: jkrell at birch. 10/01/12 12:16:59 >> >> Modified files: >> cm3/m3-libs/m3core/src/Csupport/Common/: hand.c >> >> Log message: >> add portable possible functions for implementing overflow checking of add/sub/mult of int, int64, uint, uint64 >> From hosking at cs.purdue.edu Tue Jan 12 20:39:06 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 12 Jan 2010 14:39:06 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100112111659.4207E2474001@birch.elegosoft.com>, <11F12316-4C80-41C3-AAF5-6F4D5E1F14BC@cs.purdue.edu> Message-ID: <65E71272-AEF8-4D3F-82EC-C96FC18BE87E@cs.purdue.edu> The MIPS for example has overflow traps on signed arithmetic. SPARC has tagged arithmetic that causes an overflow trap. x86 probably needs explicit test of the condition codes -- sigh! That's why C is silent about integer arithmetic overflow... because Intel can't support it via traps... On 12 Jan 2010, at 13:47, Jay K wrote: > > What hardware traps? > > Sure, maybe integer divide by zero. > > > Unlikely I think for integer overflow. > I agree out of line inefficient. > Probably want "check the carry flag" generated inline, > in whatever machine-specific way that is done, may > or may not require extra work in m3cg. > > > I might try this soon though, where a command line option (for now) > uses function calls and raises exceptions. > My slightly refined thinking is that the generate code will look like: > > > a := b + c * d; > Foo() > d := a + b * c; > Bar() > > > overflow = 0; > a = add(b, mult(c, d), &overflow); > if (overflow) Raise... > Foo(); > overflow = 0; > a = add(a, mult(b, c), &overflow); > if (overflow) Raise... > > > That is -- the overflow flag need only be checked "occasionally", such as before any function call, maybe at the start of any loop. > Or at the very least, if a statement contains no function calls, only at the end of the statement, not after evaluating each term in an expression. > > > Once overflow occurs, there's little requirement on how the statement proceeds. Though divide by zero shouldn't result. Probably if an expression contains any division, check overflow at each step. > ? > > > But maybe "check the overflow flag" is easy enough and right surely far more efficient. > > > > - Jay > > > > ________________________________ >> From: hosking at cs.purdue.edu >> Date: Tue, 12 Jan 2010 13:18:27 -0500 >> To: jkrell at elego.de >> CC: m3commit at elegosoft.com >> Subject: Re: [M3commit] CVS Update: cm3 >> >> >> >> Do we really want to do this via compilation and out-of-line functions? Surely we would prefer to implement the FloatMode interface to catch hardware traps... I haven't looked at the details but that seems to be the intent... >> >> >> >> On 12 Jan 2010, at 12:16, Jay Krell wrote: >> >> CVSROOT: /usr/cvs >> Changes by: jkrell at birch. 10/01/12 12:16:59 >> >> Modified files: >> cm3/m3-libs/m3core/src/Csupport/Common/: hand.c >> >> Log message: >> add portable possible functions for implementing overflow checking of add/sub/mult of int, int64, uint, uint64 >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcoleburn at elego.de Wed Jan 13 02:34:52 2010 From: rcoleburn at elego.de (Randy Coleburn) Date: Wed, 13 Jan 2010 2:34:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100113013452.7A2222474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 10/01/13 02:34:52 Modified files: cm3/scripts/dev/windows/: do-cm3.cmd Log message: repair multiple bugs in "if defined xxx if exist %xxx% del %xxx%" construct From jkrell at elego.de Wed Jan 13 23:03:05 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 13 Jan 2010 23:03:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100113220305.4DE8C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/13 23:03:05 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: parens and a fix, but not really working on this right now From jkrell at elego.de Wed Jan 13 23:06:47 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 13 Jan 2010 23:06:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100113220647.7213D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/13 23:06:47 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: fix gcc warning about overflow, and then msc warning about negating an unsigned value From jkrell at elego.de Wed Jan 13 23:10:13 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 13 Jan 2010 23:10:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100113221013.740C82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/13 23:10:13 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: more cumbersome version From rcoleburn at elego.de Thu Jan 14 03:03:50 2010 From: rcoleburn at elego.de (Randy Coleburn) Date: Thu, 14 Jan 2010 3:03:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114020350.D33932474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 10/01/14 03:03:50 Modified files: cm3/scripts/dev/windows/: do-cm3.cmd Log message: 01/13/2010, R.Coleburn, add "-skip" directive. Force argument keywords to be prefixed by "-". From rcoleburn at elego.de Thu Jan 14 04:22:06 2010 From: rcoleburn at elego.de (Randy Coleburn) Date: Thu, 14 Jan 2010 4:22:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114032206.B91A12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 10/01/14 04:22:06 Modified files: cm3/scripts/dev/windows/: RCC_upgradeCM3.cmd Log message: 01/13/2010, R.Coleburn, skip m3core, libm3, and mklib in 1st phase; using revised do-cm3.cmd. Force argument keywords to be prefixed by "-". Pass thru control args to do-cm3.cmd. Add -all argument keyword. From jkrell at elego.de Thu Jan 14 10:53:55 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 10:53:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114095355.814D62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 10:53:55 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Tag: release_branch_cm3_5_8 BuiltinOps.m3 m3makefile cm3/m3-sys/m3front/src/misc/: Tag: release_branch_cm3_5_8 CG.i3 CG.m3 Token.m3 Removed files: cm3/m3-sys/m3front/src/builtinOps/: Tag: release_branch_cm3_5_8 Cas.i3 Cas.m3 CasP.i3 CasP.m3 Log message: partial merge from head: remove cas/casp (compare and swap, compare and swap predicate (boolean return)) From jkrell at elego.de Thu Jan 14 11:45:36 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 11:45:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114104536.4BAB62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 11:45:36 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 Log message: add convenience functions: NE, GT, GE add constants: Ten, MinS32, MaxS32, MinS64, MAXS64, MinU32, MaxU32, MinU64, MaxU64 S is Signed, U is Unsigned (M is for Minus, which seems like a misnomer, it should be N for negative?, minus is an operator (verb??, "to minus" sounds wrong), negative is an adjective) From jkrell at elego.de Thu Jan 14 11:45:58 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 11:45:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114104558.CC54C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 11:45:58 Modified files: cm3/m3-sys/m3middle/src/: Target.i3 Log message: initialize Int.n := 0 From jkrell at elego.de Thu Jan 14 11:47:07 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 11:47:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114104709.077632474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 11:47:07 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: terser From jkrell at elego.de Thu Jan 14 11:47:38 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 11:47:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114104740.05F422474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 11:47:38 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: comment only (minus vs. negative, but not so verbose as previous checkin comment!) From jkrell at elego.de Thu Jan 14 11:49:55 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 11:49:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114104955.A73872474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 11:49:55 Modified files: cm3/m3-sys/m3middle/src/: Target.i3 Log message: initialize Int.n := 1, 0 appears not legal From jkrell at elego.de Thu Jan 14 12:11:42 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 12:11:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114111142.BE1282474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 12:11:42 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 Log message: imm > -16_81 is more clearly stated as imm >= -16_80, right? > -129 vs. >= -128 From jkrell at elego.de Thu Jan 14 12:20:16 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 12:20:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114112016.49D6B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 12:20:16 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: add 8bit and 16bit constants too From jkrell at elego.de Thu Jan 14 12:28:45 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 12:28:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114112845.789B62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 12:28:45 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 Log message: add ToText, small wrapper around ToChars From jkrell at elego.de Thu Jan 14 12:29:18 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 12:29:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114112918.A09942474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 12:29:18 Modified files: cm3/m3-sys/m3middle/src/: m3makefile Log message: fix newlines From jkrell at elego.de Thu Jan 14 13:33:42 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 13:33:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114123342.98F412474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 13:33:42 Modified files: cm3/m3-libs/m3core/src/convert/: Tag: release_branch_cm3_5_8 Convert.m3 cm3/m3-libs/libm3/src/fmtlex/: Tag: release_branch_cm3_5_8 Fmt.m3 cm3/m3-sys/m3front/src/builtinOps/: Tag: release_branch_cm3_5_8 Val.m3 Ord.m3 cm3/m3-tools/m3tk/src/target/: Tag: release_branch_cm3_5_8 M3CBackEnd_Int.mg M3CBackEnd_C.m3 Log message: copy LONGINT changes from head From jay.krell at cornell.edu Thu Jan 14 13:36:25 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 14 Jan 2010 12:36:25 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100114123342.98F412474001@birch.elegosoft.com> References: <20100114123342.98F412474001@birch.elegosoft.com> Message-ID: In the continuing series of: cvs/cvsweb is so lame, it is way too difficult to see what any change is, diffs attached, hopefully they match the checkin.. - Jay > Date: Thu, 14 Jan 2010 13:33:42 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/14 13:33:42 > > Modified files: > cm3/m3-libs/m3core/src/convert/: Tag: release_branch_cm3_5_8 > Convert.m3 > cm3/m3-libs/libm3/src/fmtlex/: Tag: release_branch_cm3_5_8 > Fmt.m3 > cm3/m3-sys/m3front/src/builtinOps/: Tag: release_branch_cm3_5_8 > Val.m3 Ord.m3 > cm3/m3-tools/m3tk/src/target/: Tag: release_branch_cm3_5_8 > M3CBackEnd_Int.mg M3CBackEnd_C.m3 > > Log message: > copy LONGINT changes from head > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 1.txt URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 2.txt URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 3.txt URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 4.txt URL: From jay.krell at cornell.edu Thu Jan 14 13:37:45 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 14 Jan 2010 12:37:45 +0000 Subject: [M3commit] longint changes to release branch In-Reply-To: References: <20100114123342.98F412474001@birch.elegosoft.com>, Message-ID: Also, I'm slightly guessing here as to what should go to release. - Jay From: jay.krell at cornell.edu To: m3commit at elegosoft.com; m3devel at elegosoft.com Date: Thu, 14 Jan 2010 12:36:25 +0000 Subject: Re: [M3devel] [M3commit] CVS Update: cm3 In the continuing series of: cvs/cvsweb is so lame, it is way too difficult to see what any change is, diffs attached, hopefully they match the checkin.. - Jay > Date: Thu, 14 Jan 2010 13:33:42 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/14 13:33:42 > > Modified files: > cm3/m3-libs/m3core/src/convert/: Tag: release_branch_cm3_5_8 > Convert.m3 > cm3/m3-libs/libm3/src/fmtlex/: Tag: release_branch_cm3_5_8 > Fmt.m3 > cm3/m3-sys/m3front/src/builtinOps/: Tag: release_branch_cm3_5_8 > Val.m3 Ord.m3 > cm3/m3-tools/m3tk/src/target/: Tag: release_branch_cm3_5_8 > M3CBackEnd_Int.mg M3CBackEnd_C.m3 > > Log message: > copy LONGINT changes from head > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Thu Jan 14 13:44:28 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 13:44:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114124428.2A2532474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 13:44:28 Modified files: cm3/doc/reference/: Tag: release_branch_cm3_5_8 typeops.html Log message: copy ord/val/longint documentation change from head From jkrell at elego.de Thu Jan 14 13:48:15 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 13:48:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114124815.313932474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 13:48:15 Modified files: cm3/doc/reference/: Tag: release_branch_cm3_5_8 conventions.html cm3/doc/reference/complete/: Tag: release_branch_cm3_5_8 m3-defn-complete.ps m3-defn-complete.tex Added files: cm3/doc/reference/complete/: Tag: release_branch_cm3_5_8 m3-defn-complete.pdf Log message: copy documentation updates from head, mostly regarding LONGINT/ORD/VAL From jkrell at elego.de Thu Jan 14 13:50:47 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 13:50:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114125048.05EA32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 13:50:47 Removed files: cm3/doc/: Tag: release_branch_cm3_5_8 add Log message: remove zero length file that surely isn't needed here From hosking at cs.purdue.edu Thu Jan 14 14:49:46 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 14 Jan 2010 08:49:46 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100114104536.4BAB62474001@birch.elegosoft.com> References: <20100114104536.4BAB62474001@birch.elegosoft.com> Message-ID: <89A2020C-968A-4592-AD81-2DF160B19833@cs.purdue.edu> I'm not sure I buy all of these. I'll have to take a look. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 14 Jan 2010, at 11:45, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/14 11:45:36 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > add convenience functions: NE, GT, GE > add constants: Ten, MinS32, MaxS32, MinS64, MAXS64, MinU32, MaxU32, MinU64, > MaxU64 > S is Signed, U is Unsigned (M is for Minus, which seems like > a misnomer, it should be N for negative?, minus is an operator (verb??, > "to minus" sounds wrong), negative is an adjective) -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Jan 14 14:50:58 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 14 Jan 2010 08:50:58 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100114112016.49D6B2474001@birch.elegosoft.com> References: <20100114112016.49D6B2474001@birch.elegosoft.com> Message-ID: <9D8FDD3C-FB5B-44CF-A71E-51FD0AD14548@cs.purdue.edu> You should not need these at all. What's going on here? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 14 Jan 2010, at 12:20, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/14 12:20:16 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 > > Log message: > add 8bit and 16bit constants too -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Jan 14 14:50:14 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 14 Jan 2010 08:50:14 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100114104955.A73872474001@birch.elegosoft.com> References: <20100114104955.A73872474001@birch.elegosoft.com> Message-ID: <9CA0F0B8-1760-40D5-9137-8F47433FE32C@cs.purdue.edu> What are you trying to achieve? On 14 Jan 2010, at 11:49, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/14 11:49:55 > > Modified files: > cm3/m3-sys/m3middle/src/: Target.i3 > > Log message: > initialize Int.n := 1, 0 appears not legal -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Jan 14 14:51:17 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 14 Jan 2010 08:51:17 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100114112845.789B62474001@birch.elegosoft.com> References: <20100114112845.789B62474001@birch.elegosoft.com> Message-ID: <81DB828C-042F-4263-AA9F-896B4ED9587E@cs.purdue.edu> Again, this means allocation. We want to avoid that! Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 14 Jan 2010, at 12:28, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/14 12:28:45 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > add ToText, small wrapper around ToChars -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at elego.de Thu Jan 14 14:57:50 2010 From: hosking at elego.de (Antony Hosking) Date: Thu, 14 Jan 2010 14:57:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114135750.080852474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/14 14:57:49 Modified files: cm3/m3-sys/m3middle/src/: Target.i3 Log message: This is deliberately uninitialised! It defaults to 0 anyway. From hosking at elego.de Thu Jan 14 19:58:59 2010 From: hosking at elego.de (Antony Hosking) Date: Thu, 14 Jan 2010 19:58:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114185859.2A2442474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/14 19:58:59 Modified files: cm3/m3-db/stable/src/: LogManager.m3 Log message: De-obfuscate prior commit. From hosking at elego.de Thu Jan 14 20:03:30 2010 From: hosking at elego.de (Antony Hosking) Date: Thu, 14 Jan 2010 20:03:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114190330.F2AC02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/14 20:03:30 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosix.m3 Log message: Match original formatting. From jay.krell at cornell.edu Thu Jan 14 23:07:57 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 14 Jan 2010 22:07:57 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <81DB828C-042F-4263-AA9F-896B4ED9587E@cs.purdue.edu> References: <20100114112845.789B62474001@birch.elegosoft.com>, <81DB828C-042F-4263-AA9F-896B4ED9587E@cs.purdue.edu> Message-ID: I expect to use these in m3back. ToChars is unfriendly, unless the interface provides a type or range to size the array adequately. - Jay From: hosking at cs.purdue.edu Date: Thu, 14 Jan 2010 08:51:17 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 Again, this means allocation. We want to avoid that! Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 On 14 Jan 2010, at 12:28, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 12:28:45 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 Log message: add ToText, small wrapper around ToChars -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 14 23:09:17 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 14 Jan 2010 22:09:17 +0000 Subject: [M3commit] initializing Target.Int In-Reply-To: <20100114135750.080852474001@birch.elegosoft.com> References: <20100114135750.080852474001@birch.elegosoft.com> Message-ID: Uninitialized seems pretty much always bad. n := 0 appears to be illegal. - Jay > Date: Thu, 14 Jan 2010 14:57:50 +0000 > To: m3commit at elegosoft.com > From: hosking at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: hosking at birch. 10/01/14 14:57:49 > > Modified files: > cm3/m3-sys/m3middle/src/: Target.i3 > > Log message: > This is deliberately uninitialised! > It defaults to 0 anyway. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 14 23:25:31 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 14 Jan 2010 22:25:31 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <9D8FDD3C-FB5B-44CF-A71E-51FD0AD14548@cs.purdue.edu> References: <20100114112016.49D6B2474001@birch.elegosoft.com>, <9D8FDD3C-FB5B-44CF-A71E-51FD0AD14548@cs.purdue.edu> Message-ID: I definitely have a use for the signed 8 bit ones. I know I could just form them myself. The rest maybe, maybe not. I think these are fine though. - Jay From: hosking at cs.purdue.edu Date: Thu, 14 Jan 2010 08:50:58 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 You should not need these at all. What's going on here? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 On 14 Jan 2010, at 12:20, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 12:20:16 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: add 8bit and 16bit constants too -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 14 23:26:26 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 14 Jan 2010 22:26:26 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <89A2020C-968A-4592-AD81-2DF160B19833@cs.purdue.edu> References: <20100114104536.4BAB62474001@birch.elegosoft.com>, <89A2020C-968A-4592-AD81-2DF160B19833@cs.purdue.edu> Message-ID: NE, GT, GE, well, at least GT, GE will provide a slightly more direct change from INTEGER to Target.Int in m3back, which I think I need to do, like at least to provide for constant folding of LONGINT. - Jay From: hosking at cs.purdue.edu Date: Thu, 14 Jan 2010 08:49:46 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 I'm not sure I buy all of these. I'll have to take a look. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 On 14 Jan 2010, at 11:45, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 11:45:36 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 Log message: add convenience functions: NE, GT, GE add constants: Ten, MinS32, MaxS32, MinS64, MAXS64, MinU32, MaxU32, MinU64, MaxU64 S is Signed, U is Unsigned (M is for Minus, which seems like a misnomer, it should be N for negative?, minus is an operator (verb??, "to minus" sounds wrong), negative is an adjective) -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 15 00:24:59 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 14 Jan 2010 18:24:59 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100114104536.4BAB62474001@birch.elegosoft.com>, <89A2020C-968A-4592-AD81-2DF160B19833@cs.purdue.edu> Message-ID: <9809083C-FD5E-4415-9464-BAB838C1C8C8@cs.purdue.edu> Sorry, these all seem fine. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 14 Jan 2010, at 17:26, Jay K wrote: > NE, GT, GE, well, at least GT, GE will provide a slightly more direct > change from INTEGER to Target.Int in m3back, which I think I need to do, > like at least to provide for constant folding of LONGINT. > > - Jay > > From: hosking at cs.purdue.edu > Date: Thu, 14 Jan 2010 08:49:46 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > I'm not sure I buy all of these. > I'll have to take a look. > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 > > > > > On 14 Jan 2010, at 11:45, Jay Krell wrote: > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/14 11:45:36 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > add convenience functions: NE, GT, GE > add constants: Ten, MinS32, MaxS32, MinS64, MAXS64, MinU32, MaxU32, MinU64, > MaxU64 > S is Signed, U is Unsigned (M is for Minus, which seems like > a misnomer, it should be N for negative?, minus is an operator (verb??, > "to minus" sounds wrong), negative is an adjective) > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Fri Jan 15 11:55:25 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 11:55:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115105525.1475B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 11:55:25 Modified files: cm3/m3-sys/m3front/src/: m3makefile cm3/m3-sys/m3front/src/misc/: m3makefile cm3/m3-sys/m3front/src/types/: m3makefile Log message: remove excess newlines from ends of files From jkrell at elego.de Fri Jan 15 12:02:20 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 12:02:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115110220.8F5892474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 12:02:20 Modified files: cm3/m3-sys/m3front/src/: Tag: release_branch_cm3_5_8 m3makefile cm3/m3-sys/m3front/src/builtinOps/: Tag: release_branch_cm3_5_8 Adr.m3 Dec.m3 Dispose.m3 First.m3 Inc.m3 Last.m3 Loophole.m3 Subarray.m3 cm3/m3-sys/m3front/src/exprs/: Tag: release_branch_cm3_5_8 AddExpr.m3 CallExpr.i3 CallExpr.m3 CastExpr.m3 CheckExpr.m3 DerefExpr.m3 Expr.i3 Expr.m3 ExprRep.i3 KeywordExpr.m3 NamedExpr.m3 QualifyExpr.m3 RecordExpr.m3 SetExpr.m3 SubscriptExpr.m3 SubtractExpr.m3 VarExpr.m3 cm3/m3-sys/m3front/src/misc/: Tag: release_branch_cm3_5_8 CG.i3 CG.m3 M3Front.m3 m3makefile cm3/m3-sys/m3front/src/stmts/: Tag: release_branch_cm3_5_8 AssignStmt.m3 WithStmt.m3 cm3/m3-sys/m3front/src/types/: Tag: release_branch_cm3_5_8 m3makefile cm3/m3-sys/m3front/src/values/: Tag: release_branch_cm3_5_8 Formal.m3 Value.i3 Value.m3 ValueRep.i3 Variable.m3 cm3/m3-sys/m3front/src/builtinWord/: Tag: release_branch_cm3_5_8 m3makefile Added files: cm3/m3-sys/m3front/src/builtinWord/: Tag: release_branch_cm3_5_8 GenAnd.ig GenAnd.mg GenDivide.ig GenDivide.mg GenExtract.ig GenExtract.mg GenGE.ig GenGE.mg GenGT.ig GenGT.mg GenInsert.ig GenInsert.mg GenLE.ig GenLE.mg GenLT.ig GenLT.mg GenMinus.ig GenMinus.mg GenMod.ig GenMod.mg GenModule.ig GenModule.mg GenNot.ig GenNot.mg GenOr.ig GenOr.mg GenPlus.ig GenPlus.mg GenRotate.ig GenRotate.mg GenShift.ig GenShift.mg GenTimes.ig GenTimes.mg GenXor.ig GenXor.mg word.tmpl Removed files: cm3/m3-sys/m3front/src/builtinWord/: Tag: release_branch_cm3_5_8 WordAnd.i3 WordAnd.m3 WordDivide.i3 WordDivide.m3 WordExtract.i3 WordExtract.m3 WordGE.i3 WordGE.m3 WordGT.i3 WordGT.m3 WordInsert.i3 WordInsert.m3 WordLE.i3 WordLE.m3 WordLT.i3 WordLT.m3 WordMinus.i3 WordMinus.m3 WordMod.i3 WordMod.m3 WordModule.i3 WordModule.m3 WordNot.i3 WordNot.m3 WordOr.i3 WordOr.m3 WordPlus.i3 WordPlus.m3 WordRotate.i3 WordRotate.m3 WordShift.i3 WordShift.m3 WordTimes.i3 WordTimes.m3 WordXor.i3 WordXor.m3 cm3/m3-sys/m3front/src/builtinLong/: Tag: release_branch_cm3_5_8 LongAnd.i3 LongAnd.m3 LongDivide.i3 LongDivide.m3 LongExtract.i3 LongExtract.m3 LongGE.i3 LongGE.m3 LongGT.i3 LongGT.m3 LongInsert.i3 LongInsert.m3 LongLE.i3 LongLE.m3 LongLT.i3 LongLT.m3 LongMinus.i3 LongMinus.m3 LongMod.i3 LongMod.m3 LongModule.i3 LongModule.m3 LongNot.i3 LongNot.m3 LongOr.i3 LongOr.m3 LongPlus.i3 LongPlus.m3 LongRotate.i3 LongRotate.m3 LongShift.i3 LongShift.m3 LongTimes.i3 LongTimes.m3 LongXor.i3 LongXor.m3 m3makefile Log message: wholesale copy of m3front from head to release From jkrell at elego.de Fri Jan 15 12:11:03 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 12:11:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115111103.307132474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 12:11:03 Modified files: cm3/m3-sys/m3front/src/exprs/: Tag: release_branch_cm3_5_8 SetExpr.m3 Log message: remove minor dependency on other minor change in head (restore less informative diagnostic) From jkrell at elego.de Fri Jan 15 12:13:43 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 12:13:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115111343.9840B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 12:13:43 Modified files: cm3/m3-sys/m3front/src/exprs/: Tag: release_branch_cm3_5_8 SetExpr.m3 Log message: another instance: remove minor dependency on other minor change in head (restore less informative diagnostic) From jkrell at elego.de Fri Jan 15 12:37:27 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 12:37:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115113727.C6D012474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 12:37:27 Modified files: cm3/m3-libs/m3core/src/convert/: Convert.m3 Log message: hack: avoid using VAL to convert from LONGINT to INTEGER in order to work with recent but not current compilers From jkrell at elego.de Fri Jan 15 12:41:02 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 12:41:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115114102.E3AEF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 12:41:02 Modified files: cm3/m3-libs/m3core/src/convert/: Tag: release_branch_cm3_5_8 Convert.m3 Log message: from head: minor hack to avoid using VAL to convert from LONGINT, in order to work with older compilers that do already support LONGINT, but with slightly older implementation From jkrell at elego.de Fri Jan 15 13:03:10 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 13:03:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115120311.0B4B32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 13:03:10 Modified files: cm3/m3-db/stable/src/: LogManager.m3 Log message: something is broken in the history here: put my version back, there is a semantic difference as to which file path is passed to FS.Status and I didn't invent the 'obfuscated' form, though the history is indeed confusing (did somebody mention that cvs and cvsweb don't work well?) From jkrell at elego.de Fri Jan 15 13:31:02 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 13:31:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115123102.EE3582474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 13:31:02 Modified files: cm3/m3-db/stable/src/: Tag: release_branch_cm3_5_8 LogManager.m3 cm3/m3-libs/libbuf/src/: Tag: release_branch_cm3_5_8 Buf.m3 cm3/m3-libs/libm3/src/os/Common/: Tag: release_branch_cm3_5_8 File.i3 cm3/m3-libs/libm3/src/os/POSIX/: Tag: release_branch_cm3_5_8 FSPosix.m3 FilePosix.m3 SocketPosix.m3 cm3/m3-libs/libm3/src/os/WIN32/: Tag: release_branch_cm3_5_8 FSWin32.m3 FileWin32.m3 LazyConsole.m3 cm3/m3-libs/libm3/src/rw/: Tag: release_branch_cm3_5_8 FileRd.m3 FileWr.m3 cm3/m3-sys/cm3/src/: Tag: release_branch_cm3_5_8 WebFile.m3 cm3/m3-sys/cm3ide/src/utils/: Tag: release_branch_cm3_5_8 Buf.m3 cm3/m3-sys/fix_nl/src/: Tag: release_branch_cm3_5_8 Main.m3 cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 QScanner.m3 cm3/m3-sys/mklib/src/: Tag: release_branch_cm3_5_8 Main.m3 cm3/m3-tools/cmpdir/src/: Tag: release_branch_cm3_5_8 Main.m3 cm3/m3-tools/dirfp/src/: Tag: release_branch_cm3_5_8 Main.m3 cm3/m3-tools/m3tohtml/src/: Tag: release_branch_cm3_5_8 DBRd.m3 Log message: bring over from head changes so that file sizes are 64bits even on 32bit platforms; but rd/wr are still 32bits This will again hit bootstrap problems, of an even sort of newer type because of the the cm3/src/WebFile.m3 change; stay tuned From jkrell at elego.de Fri Jan 15 14:13:16 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 14:13:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115131317.05DA72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 14:13:16 Modified files: cm3/m3-sys/cm3/src/: Utils.i3 WebFile.m3 m3makefile Added files: cm3/m3-sys/cm3/src/: UtilsC.c Log message: don't use File.T.status().size because it varies between INTEGER and LONGINT, depending on the version of m3core/libm3, and there is no (?) Modula-3-portable way to use something that varies like that (right?) From jkrell at elego.de Fri Jan 15 14:16:20 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 14:16:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115131620.276F12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 14:16:20 Modified files: cm3/m3-sys/cm3/src/: UtilsC.c Log message: cleanup From jkrell at elego.de Fri Jan 15 14:17:39 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 14:17:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115131739.BBBD02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 14:17:39 Modified files: cm3/m3-sys/cm3/src/: Tag: release_branch_cm3_5_8 Utils.i3 WebFile.m3 m3makefile Added files: cm3/m3-sys/cm3/src/: Tag: release_branch_cm3_5_8 UtilsC.c Log message: from head: we can't use File.T.status().size because it varies between INTEGER and LONGINT, and we need to be able to build cm3 against either old or new From jkrell at elego.de Fri Jan 15 14:41:00 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 14:41:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115134101.B053F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 14:41:00 Modified files: cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 m3makefile Added files: cm3/m3-sys/m3quake/src/: QScannerC.c Log message: m3quake also can't use libm3 File.T.status().size and be compatible with both old and new libm3 (INTEGER vs. LONGINT) From jkrell at elego.de Fri Jan 15 14:43:44 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 14:43:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115134345.5CB7D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 14:43:44 Modified files: cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 QCompiler.m3 QScanner.i3 QScanner.m3 m3makefile Added files: cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 QScannerC.c Log message: from head: don't use libm3 File.T.status().size, so it can vary between INTEGER in old versions and LONGINT in new versions (This is only a problem for a small part of the system, that has to work with old libm3.) From jkrell at elego.de Fri Jan 15 14:45:32 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 14:45:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115134532.BF3892474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 14:45:32 Modified files: cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 QScanner.m3 Log message: actually remove the use of File.T.status().size From jkrell at elego.de Fri Jan 15 14:46:39 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 14:46:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115134642.CF8502474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 14:46:39 Modified files: cm3/m3-sys/m3quake/src/: QScanner.m3 Log message: actually remove the use of File.T.status().size From jkrell at elego.de Fri Jan 15 15:17:33 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 15:17:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115141734.0AAD22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 15:17:33 Modified files: cm3/m3-libs/sysutils/src/: FSUtils.i3 m3makefile cm3/m3-libs/sysutils/src/POSIX/: FSUnix_cm3.m3 FSUnix_pm3.m3 cm3/m3-libs/sysutils/src/WIN32/: FSysWin32.m3 Added files: cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c FSUtilsUnsafe.i3 Log message: provide GetFileSize32 in a sensible common place From jkrell at elego.de Fri Jan 15 15:26:17 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 15:26:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115142617.39C472474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 15:26:17 Modified files: cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c Log message: cleanup From jkrell at elego.de Fri Jan 15 15:33:46 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 15:33:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115143346.AAB372474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 15:33:46 Modified files: cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.i3 Log message: oops: remove VAR From jkrell at elego.de Fri Jan 15 15:39:42 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 15:39:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115143943.013292474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 15:39:42 Modified files: cm3/m3-sys/cm3/src/: Utils.i3 WebFile.m3 m3makefile cm3/m3-sys/m3quake/src/: QScanner.i3 QScanner.m3 m3makefile Removed files: cm3/m3-sys/cm3/src/: UtilsC.c cm3/m3-sys/m3quake/src/: QScannerC.c Log message: use common code in sysutils FSUtils.GetFileSize32 From jkrell at elego.de Fri Jan 15 15:42:01 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 15:42:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115144201.ADA872474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 15:42:01 Modified files: cm3/m3-libs/sysutils/src/: Tag: release_branch_cm3_5_8 FSUtils.i3 System.i3 m3makefile cm3/m3-libs/sysutils/src/POSIX/: Tag: release_branch_cm3_5_8 FSUnix_cm3.m3 FSUnix_pm3.m3 m3makefile cm3/m3-libs/sysutils/src/WIN32/: Tag: release_branch_cm3_5_8 FSysWin32.m3 Added files: cm3/m3-libs/sysutils/src/: Tag: release_branch_cm3_5_8 FSUtilsUnsafe.c FSUtilsUnsafe.i3 Log message: common code: FSUtils.GetFileSize32 From jkrell at elego.de Fri Jan 15 15:46:06 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 15:46:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115144607.550D72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 15:46:06 Modified files: cm3/m3-sys/cm3/src/: Tag: release_branch_cm3_5_8 Utils.i3 WebFile.m3 m3makefile cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 QScanner.i3 QScanner.m3 m3makefile Removed files: cm3/m3-sys/cm3/src/: Tag: release_branch_cm3_5_8 UtilsC.c cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 QScannerC.c Log message: use sysutils FSUtils.GetFileSize32 From jkrell at elego.de Fri Jan 15 15:59:04 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 15:59:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115145906.681C32474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 15:59:04 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: Tag: release_branch_cm3_5_8 ProcessPosixCommon.m3 Log message: from head: retry upon EAGAIN like bash (in bash's case, it seems to help on Interix, since I see a warning often) From jkrell at elego.de Fri Jan 15 15:59:35 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 15:59:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115145935.623F92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 15:59:35 Modified files: cm3/m3-libs/libm3/src/rw/: Tag: release_branch_cm3_5_8 IO.i3 IO.m3 Log message: from head: PutLongInt, GetLongInt From hosking at cs.purdue.edu Fri Jan 15 16:04:48 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 10:04:48 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100115120311.0B4B32474001@birch.elegosoft.com> References: <20100115120311.0B4B32474001@birch.elegosoft.com> Message-ID: <9CD84849-55B8-4F3D-A5CD-A415337C3807@cs.purdue.edu> Here's the diff between 1.1 and 1.2, which you committed. You seem to have changed the meaning. I don't understand the change. *** LogManager.m3.~1.1~ Thu Jan 14 13:56:42 2010 --- LogManager.m3.~1.2~ Fri Jan 15 09:59:41 2010 *************** *** 236,241 **** --- 236,242 ---- PROCEDURE EmptyLog (lm: Default; nm: Pathname.T): BOOLEAN RAISES {OSError.E} = + VAR log: TEXT; BEGIN IF NOT lm.recoverable(nm) THEN RAISE OSError.E( *************** *** 243,253 **** Atom.FromText( "no checkpointfile for log in " & nm))); END; ! IF TestFile(lm.logfn(nm)) THEN ! RETURN FS.Status(nm).size > 0 ! ELSE ! RETURN TRUE ! END; END EmptyLog; PROCEDURE Dispose (lm: Default; nm: Pathname.T) RAISES {OSError.E} = --- 244,251 ---- Atom.FromText( "no checkpointfile for log in " & nm))); END; ! log := lm.logfn(nm); ! RETURN (NOT TestFile(log)) OR (FS.Status(log).size = 0L); END EmptyLog; PROCEDURE Dispose (lm: Default; nm: Pathname.T) RAISES {OSError.E} = On 15 Jan 2010, at 13:03, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/15 13:03:10 > > Modified files: > cm3/m3-db/stable/src/: LogManager.m3 > > Log message: > something is broken in the history here: put my version back, there is a semantic difference as to which file path is passed to FS.Status and I didn't invent the 'obfuscated' form, though the history is indeed confusing (did somebody mention that cvs and cvsweb don't work well?) From hosking at cs.purdue.edu Fri Jan 15 16:13:06 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 10:13:06 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100115134101.B053F2474001@birch.elegosoft.com> References: <20100115134101.B053F2474001@birch.elegosoft.com> Message-ID: Jay, all of these changes seem unnecessary (and worse, clutter the source with a variety of hacks). I had no problem building against both versions of m3core and libm3 in order to bootstrap a new compiler. What is going on here? On 15 Jan 2010, at 14:41, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/15 14:41:00 > > Modified files: > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > m3makefile > Added files: > cm3/m3-sys/m3quake/src/: QScannerC.c > > Log message: > m3quake also can't use libm3 File.T.status().size and be compatible > with both old and new libm3 (INTEGER vs. LONGINT) From hosking at cs.purdue.edu Fri Jan 15 16:20:50 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 10:20:50 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100115141734.0AAD22474001@birch.elegosoft.com> References: <20100115141734.0AAD22474001@birch.elegosoft.com> Message-ID: <973EBDE6-1CB0-4732-AB0D-1A274E7B015B@cs.purdue.edu> Isn't this simply entrenching a 32-bit file size? On 15 Jan 2010, at 15:17, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/15 15:17:33 > > Modified files: > cm3/m3-libs/sysutils/src/: FSUtils.i3 m3makefile > cm3/m3-libs/sysutils/src/POSIX/: FSUnix_cm3.m3 FSUnix_pm3.m3 > cm3/m3-libs/sysutils/src/WIN32/: FSysWin32.m3 > Added files: > cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c FSUtilsUnsafe.i3 > > Log message: > provide GetFileSize32 in a sensible common place From hosking at elego.de Fri Jan 15 17:26:56 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 15 Jan 2010 17:26:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115162656.82E592474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/15 17:26:56 Modified files: cm3/m3-libs/m3core/src/convert/: Convert.m3 Log message: Let's not clutter the main trunk with multi-version cruft going forward. An up-to-date bootstrapped compiler should always be used to compile the main trunk. From hosking at elego.de Fri Jan 15 21:02:29 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 15 Jan 2010 21:02:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115200229.80C6E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/15 21:02:29 Modified files: cm3/m3-libs/sysutils/src/POSIX/: FSUnix_cm3.m3 Log message: Fix compile errors. From jay.krell at cornell.edu Fri Jan 15 21:48:12 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 20:48:12 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <973EBDE6-1CB0-4732-AB0D-1A274E7B015B@cs.purdue.edu> References: <20100115141734.0AAD22474001@birch.elegosoft.com>, <973EBDE6-1CB0-4732-AB0D-1A274E7B015B@cs.purdue.edu> Message-ID: For some code, yes. What to do in QScanner and WebFile? Entrenching INTEGER-size would be ok for them. Leaving this in only temporarily might be ok too. If we just need to move forward, and then not suport building with old compiler/libm3. - Jay > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 10:20:50 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Isn't this simply entrenching a 32-bit file size? > > On 15 Jan 2010, at 15:17, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/15 15:17:33 > > > > Modified files: > > cm3/m3-libs/sysutils/src/: FSUtils.i3 m3makefile > > cm3/m3-libs/sysutils/src/POSIX/: FSUnix_cm3.m3 FSUnix_pm3.m3 > > cm3/m3-libs/sysutils/src/WIN32/: FSysWin32.m3 > > Added files: > > cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c FSUtilsUnsafe.i3 > > > > Log message: > > provide GetFileSize32 in a sensible common place > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Jan 15 21:53:51 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 20:53:51 +0000 Subject: [M3commit] LogManager.EmptyLog FS.Status(nm) vs. FS.Status(logfn(nm)) In-Reply-To: <9CD84849-55B8-4F3D-A5CD-A415337C3807@cs.purdue.edu> References: <20100115120311.0B4B32474001@birch.elegosoft.com>, <9CD84849-55B8-4F3D-A5CD-A415337C3807@cs.purdue.edu> Message-ID: I know. But see here from 2001: http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-db/stable/src/LogManager.m3.diff?r1=1.1.1.1;r2=1.1.1.2 Something is wierd here, I agree. I think I somehow had the 1.1.1.2 version (odd), and if you look through all the other uses of TestFile, I think it is more correct. It seems some of the 4.1/5.1 changes never made it from a branch to head?? - Jay > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 10:04:48 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Here's the diff between 1.1 and 1.2, which you committed. You seem to have changed the meaning. I don't understand the change. > > *** LogManager.m3.~1.1~ Thu Jan 14 13:56:42 2010 > --- LogManager.m3.~1.2~ Fri Jan 15 09:59:41 2010 > *************** > *** 236,241 **** > --- 236,242 ---- > > PROCEDURE EmptyLog (lm: Default; nm: Pathname.T): BOOLEAN > RAISES {OSError.E} = > + VAR log: TEXT; > BEGIN > IF NOT lm.recoverable(nm) THEN > RAISE OSError.E( > *************** > *** 243,253 **** > Atom.FromText( > "no checkpointfile for log in " & nm))); > END; > ! IF TestFile(lm.logfn(nm)) THEN > ! RETURN FS.Status(nm).size > 0 > ! ELSE > ! RETURN TRUE > ! END; > END EmptyLog; > > PROCEDURE Dispose (lm: Default; nm: Pathname.T) RAISES {OSError.E} = > --- 244,251 ---- > Atom.FromText( > "no checkpointfile for log in " & nm))); > END; > ! log := lm.logfn(nm); > ! RETURN (NOT TestFile(log)) OR (FS.Status(log).size = 0L); > END EmptyLog; > > PROCEDURE Dispose (lm: Default; nm: Pathname.T) RAISES {OSError.E} = > > > On 15 Jan 2010, at 13:03, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/15 13:03:10 > > > > Modified files: > > cm3/m3-db/stable/src/: LogManager.m3 > > > > Log message: > > something is broken in the history here: put my version back, there is a semantic difference as to which file path is passed to FS.Status and I didn't invent the 'obfuscated' form, though the history is indeed confusing (did somebody mention that cvs and cvsweb don't work well?) > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Jan 15 21:57:58 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 20:57:58 +0000 Subject: [M3commit] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) In-Reply-To: References: <20100115134101.B053F2474001@birch.elegosoft.com>, Message-ID: I at least did move the hacks to one place. I agree it isn't nice. This is due to my changes, not yours -- changing File.T.status().size to LONGINT. There's no way to use that in the "compiler" and still support old compiler/libm3, right? Ok now that I centralized it to sysutils? Leave status() alone as using INTEGER and introduce statusL()? Or leave size alone and introduce sizeL? That's not a complete solution because you have to set size to something. -1 if it doesn't fit? Or just get past the bootstrapping and put it back using VAL? It seems a tough situation..the compiler is otherwise I believe very compatible with old compiler/libm3. - Jay > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 10:13:06 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Jay, all of these changes seem unnecessary (and worse, clutter the source with a variety of hacks). I had no problem building against both versions of m3core and libm3 in order to bootstrap a new compiler. What is going on here? > > On 15 Jan 2010, at 14:41, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/15 14:41:00 > > > > Modified files: > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > m3makefile > > Added files: > > cm3/m3-sys/m3quake/src/: QScannerC.c > > > > Log message: > > m3quake also can't use libm3 File.T.status().size and be compatible > > with both old and new libm3 (INTEGER vs. LONGINT) > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 15 22:17:15 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 16:17:15 -0500 Subject: [M3commit] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) In-Reply-To: References: <20100115134101.B053F2474001@birch.elegosoft.com>, Message-ID: <09B41766-F3E3-4321-A568-AFE76959B787@cs.purdue.edu> On 15 Jan 2010, at 15:57, Jay K wrote: > I at least did move the hacks to one place. > I agree it isn't nice. > This is due to my changes, not yours -- changing File.T.status().size to LONGINT. > There's no way to use that in the "compiler" and still support old compiler/libm3, right? RIght. Except we should not try to maintain compatibility between among trunk versions. If you want to build as of a particular version then use libraries that match that version. My next set of commits for LONGCARD make this even more critical because the library has hardwired stuff that that makes it require a particular version of the compiler to compile it. ;-) > Ok now that I centralized it to sysutils? > > > Leave status() alone as using INTEGER and introduce statusL()? > > > Or leave size alone and introduce sizeL? > That's not a complete solution because you have to set size to something. > -1 if it doesn't fit? > > > Or just get past the bootstrapping and put it back using VAL? Yes. > It seems a tough situation..the compiler is otherwise I believe > very compatible with old compiler/libm3. It very soon will not be. > > > - Jay > > > > From: hosking at cs.purdue.edu > > Date: Fri, 15 Jan 2010 10:13:06 -0500 > > To: jkrell at elego.de > > CC: m3commit at elegosoft.com > > Subject: Re: [M3commit] CVS Update: cm3 > > > > Jay, all of these changes seem unnecessary (and worse, clutter the source with a variety of hacks). I had no problem building against both versions of m3core and libm3 in order to bootstrap a new compiler. What is going on here? > > > > On 15 Jan 2010, at 14:41, Jay Krell wrote: > > > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 10/01/15 14:41:00 > > > > > > Modified files: > > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > > m3makefile > > > Added files: > > > cm3/m3-sys/m3quake/src/: QScannerC.c > > > > > > Log message: > > > m3quake also can't use libm3 File.T.status().size and be compatible > > > with both old and new libm3 (INTEGER vs. LONGINT) > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 15 22:20:03 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 16:20:03 -0500 Subject: [M3commit] LogManager.EmptyLog FS.Status(nm) vs. FS.Status(logfn(nm)) In-Reply-To: References: <20100115120311.0B4B32474001@birch.elegosoft.com>, <9CD84849-55B8-4F3D-A5CD-A415337C3807@cs.purdue.edu> Message-ID: <9CA89F2F-4065-480D-A20C-87B983CE511B@cs.purdue.edu> Aha! Weird! I'll leave it alone. On 15 Jan 2010, at 15:53, Jay K wrote: > I know. But see here from 2001: > > http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-db/stable/src/LogManager.m3.diff?r1=1.1.1.1;r2=1.1.1.2 > > > Something is wierd here, I agree. I think I somehow had the 1.1.1.2 version (odd), and if you look through all the other uses of TestFile, I think it is more correct. > > It seems some of the 4.1/5.1 changes never made it from a branch to head?? > > - Jay > > > > From: hosking at cs.purdue.edu > > Date: Fri, 15 Jan 2010 10:04:48 -0500 > > To: jkrell at elego.de > > CC: m3commit at elegosoft.com > > Subject: Re: [M3commit] CVS Update: cm3 > > > > Here's the diff between 1.1 and 1.2, which you committed. You seem to have changed the meaning. I don't understand the change. > > > > *** LogManager.m3.~1.1~ Thu Jan 14 13:56:42 2010 > > --- LogManager.m3.~1.2~ Fri Jan 15 09:59:41 2010 > > *************** > > *** 236,241 **** > > --- 236,242 ---- > > > > PROCEDURE EmptyLog (lm: Default; nm: Pathname.T): BOOLEAN > > RAISES {OSError.E} = > > + VAR log: TEXT; > > BEGIN > > IF NOT lm.recoverable(nm) THEN > > RAISE OSError.E( > > *************** > > *** 243,253 **** > > Atom.FromText( > > "no checkpointfile for log in " & nm))); > > END; > > ! IF TestFile(lm.logfn(nm)) THEN > > ! RETURN FS.Status(nm).size > 0 > > ! ELSE > > ! RETURN TRUE > > ! END; > > END EmptyLog; > > > > PROCEDURE Dispose (lm: Default; nm: Pathname.T) RAISES {OSError.E} = > > --- 244,251 ---- > > Atom.FromText( > > "no checkpointfile for log in " & nm))); > > END; > > ! log := lm.logfn(nm); > > ! RETURN (NOT TestFile(log)) OR (FS.Status(log).size = 0L); > > END EmptyLog; > > > > PROCEDURE Dispose (lm: Default; nm: Pathname.T) RAISES {OSError.E} = > > > > > > On 15 Jan 2010, at 13:03, Jay Krell wrote: > > > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 10/01/15 13:03:10 > > > > > > Modified files: > > > cm3/m3-db/stable/src/: LogManager.m3 > > > > > > Log message: > > > something is broken in the history here: put my version back, there is a semantic difference as to which file path is passed to FS.Status and I didn't invent the 'obfuscated' form, though the history is indeed confusing (did somebody mention that cvs and cvsweb don't work well?) > > From hosking at elego.de Fri Jan 15 22:26:26 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 15 Jan 2010 22:26:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115212627.0EF702474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/15 22:26:26 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTBuiltin.mx RTTipe.i3 RTTipe.m3 Log message: Add LONGCARD. From rcoleburn at elego.de Fri Jan 15 22:28:46 2010 From: rcoleburn at elego.de (Randy Coleburn) Date: Fri, 15 Jan 2010 22:28:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115212846.B78742474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 10/01/15 22:28:46 Modified files: cm3/scripts/dev/windows/: RCC_upgradeCM3.cmd Log message: 01/15/2010, R.Coleburn, add extra checks at end of each stage to ensure new cm3.exe was produced and copied to target bin folder. All this per Jay's assertion that -ship doesn't always result in cm3.exe getting copied to the "bin" folder. From jay.krell at cornell.edu Fri Jan 15 22:34:11 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 21:34:11 +0000 Subject: [M3commit] [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) In-Reply-To: <09B41766-F3E3-4321-A568-AFE76959B787@cs.purdue.edu> References: <20100115134101.B053F2474001@birch.elegosoft.com>, , , , <09B41766-F3E3-4321-A568-AFE76959B787@cs.purdue.edu> Message-ID: We were in a state where neither m3core nor cm3/m3quake could be built with old tools/libraries. That is more ok for m3core, less ok for cm3/m3quake. As well, m3core also couldn't be built with recent but slightly old compiler. See, I didn't remove the use of LONGINT, just the use of VAL(LONGINT, INTEGER). As well, maybe cm3/m3quake couldn't be built with recent tools/libraries. The sysutils/m3quake/cm3 changes should stand? Ok removing "32" from the name and letting it return >4GB on 64bit platforms. But I think either it can't use libm3.File.T.status().size, OR we have to make status().size more compatible such as by introducing statusL or sizeL. 32bit code wouldn't see >4GB file sizes unless actively changed. Maybe not a bad idea. - Jay From: hosking at cs.purdue.edu Date: Fri, 15 Jan 2010 16:17:15 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com; m3commit at elegosoft.com Subject: Re: [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) On 15 Jan 2010, at 15:57, Jay K wrote: I at least did move the hacks to one place. I agree it isn't nice. This is due to my changes, not yours -- changing File.T.status().size to LONGINT. There's no way to use that in the "compiler" and still support old compiler/libm3, right? RIght. Except we should not try to maintain compatibility between among trunk versions. If you want to build as of a particular version then use libraries that match that version. My next set of commits for LONGCARD make this even more critical because the library has hardwired stuff that that makes it require a particular version of the compiler to compile it. ;-) Ok now that I centralized it to sysutils? Leave status() alone as using INTEGER and introduce statusL()? Or leave size alone and introduce sizeL? That's not a complete solution because you have to set size to something. -1 if it doesn't fit? Or just get past the bootstrapping and put it back using VAL? Yes. It seems a tough situation..the compiler is otherwise I believe very compatible with old compiler/libm3. It very soon will not be. - Jay > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 10:13:06 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Jay, all of these changes seem unnecessary (and worse, clutter the source with a variety of hacks). I had no problem building against both versions of m3core and libm3 in order to bootstrap a new compiler. What is going on here? > > On 15 Jan 2010, at 14:41, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/15 14:41:00 > > > > Modified files: > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > m3makefile > > Added files: > > cm3/m3-sys/m3quake/src/: QScannerC.c > > > > Log message: > > m3quake also can't use libm3 File.T.status().size and be compatible > > with both old and new libm3 (INTEGER vs. LONGINT) > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Fri Jan 15 22:42:27 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 22:42:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115214227.DFDD32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 22:42:27 Modified files: cm3/m3-libs/sysutils/src/POSIX/: Tag: release_branch_cm3_5_8 FSUnix_cm3.m3 Log message: copy fix from head From hosking at elego.de Fri Jan 15 22:47:06 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 15 Jan 2010 22:47:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115214706.897CF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/15 22:47:06 Modified files: cm3/m3-libs/libm3/src/pickle/ver2/: ConvertPacking.m3 Log message: Add LONGCARD. From hosking at elego.de Fri Jan 15 22:50:12 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 15 Jan 2010 22:50:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115215012.E458A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/15 22:50:12 Modified files: cm3/m3-sys/m3front/src/builtinTypes/: BuiltinTypes.m3 m3makefile cm3/m3-sys/m3front/src/misc/: CG.i3 CG.m3 TipeDesc.i3 Token.m3 cm3/m3-sys/m3front/src/types/: RecordType.i3 RecordType.m3 SubrangeType.m3 Added files: cm3/m3-sys/m3front/src/builtinTypes/: LCard.i3 LCard.m3 Log message: Add LONGCARD From hosking at elego.de Fri Jan 15 22:51:15 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 15 Jan 2010 22:51:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115215118.A9F482474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/15 22:51:15 Modified files: cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 Log message: Revert to VAL. From hosking at elego.de Fri Jan 15 22:52:32 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 15 Jan 2010 22:52:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115215232.8AC7E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/15 22:52:32 Modified files: cm3/m3-sys/cm3/src/: WebFile.m3 Log message: Revert to VAL. From jay.krell at cornell.edu Fri Jan 15 22:56:19 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 21:56:19 +0000 Subject: [M3commit] LONGINT used by m3quake/cm3 packages In-Reply-To: <20100115215118.A9F482474001@birch.elegosoft.com> References: <20100115215118.A9F482474001@birch.elegosoft.com> Message-ID: VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, but I think what I had is the way to go. The bootstrapping pain is otherwise novel. The compiler doesn't otherwise use LONGINT. (My doing that it started using it.) It ought not until after the current release? - Jay > Date: Fri, 15 Jan 2010 22:51:15 +0000 > To: m3commit at elegosoft.com > From: hosking at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: hosking at birch. 10/01/15 22:51:15 > > Modified files: > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > Log message: > Revert to VAL. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 15 23:08:08 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 17:08:08 -0500 Subject: [M3commit] [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) In-Reply-To: References: <20100115134101.B053F2474001@birch.elegosoft.com>, , , , <09B41766-F3E3-4321-A568-AFE76959B787@cs.purdue.edu> Message-ID: <1E52AB69-2D52-496D-AB5B-AF5FDA21744B@cs.purdue.edu> Fact. New versions of m3core won't be able to build with old tools/libraries. We have to live with that. On 15 Jan 2010, at 16:34, Jay K wrote: > We were in a state where neither m3core nor cm3/m3quake could be built with old tools/libraries. > That is more ok for m3core, less ok for cm3/m3quake. > As well, m3core also couldn't be built with recent but slightly old compiler. > See, I didn't remove the use of LONGINT, just the use of VAL(LONGINT, INTEGER). > As well, maybe cm3/m3quake couldn't be built with recent tools/libraries. > > > The sysutils/m3quake/cm3 changes should stand? > Ok removing "32" from the name and letting it return >4GB on 64bit platforms. > But I think either it can't use libm3.File.T.status().size, OR we have to > make status().size more compatible such as by introducing statusL or sizeL. > 32bit code wouldn't see >4GB file sizes unless actively changed. > Maybe not a bad idea. > > > - Jay > > > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 16:17:15 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) > > On 15 Jan 2010, at 15:57, Jay K wrote: > > I at least did move the hacks to one place. > I agree it isn't nice. > This is due to my changes, not yours -- changing File.T.status().size to LONGINT. > There's no way to use that in the "compiler" and still support old compiler/libm3, right? > > RIght. Except we should not try to maintain compatibility between among trunk versions. If you want to build as of a particular version then use libraries that match that version. > > My next set of commits for LONGCARD make this even more critical because the library has hardwired stuff that that makes it require a particular version of the compiler to compile it. ;-) > > Ok now that I centralized it to sysutils? > > > Leave status() alone as using INTEGER and introduce statusL()? > > > Or leave size alone and introduce sizeL? > That's not a complete solution because you have to set size to something. > -1 if it doesn't fit? > > > Or just get past the bootstrapping and put it back using VAL? > > Yes. > > It seems a tough situation..the compiler is otherwise I believe > very compatible with old compiler/libm3. > > It very soon will not be. > > > > - Jay > > > > From: hosking at cs.purdue.edu > > Date: Fri, 15 Jan 2010 10:13:06 -0500 > > To: jkrell at elego.de > > CC: m3commit at elegosoft.com > > Subject: Re: [M3commit] CVS Update: cm3 > > > > Jay, all of these changes seem unnecessary (and worse, clutter the source with a variety of hacks). I had no problem building against both versions of m3core and libm3 in order to bootstrap a new compiler. What is going on here? > > > > On 15 Jan 2010, at 14:41, Jay Krell wrote: > > > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 10/01/15 14:41:00 > > > > > > Modified files: > > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > > m3makefile > > > Added files: > > > cm3/m3-sys/m3quake/src/: QScannerC.c > > > > > > Log message: > > > m3quake also can't use libm3 File.T.status().size and be compatible > > > with both old and new libm3 (INTEGER vs. LONGINT) > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 15 23:13:38 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 17:13:38 -0500 Subject: [M3commit] LONGINT used by m3quake/cm3 packages In-Reply-To: References: <20100115215118.A9F482474001@birch.elegosoft.com> Message-ID: <6CF0A42A-940C-4FB5-9CFD-CBA18EC9CAFA@cs.purdue.edu> Jay, the bootstrapping pain is inherent. The compiler and libraries are bound together. Currently, the old library and new libraries are incompatible with their respective compilers. Both ways. On 15 Jan 2010, at 16:56, Jay K wrote: > VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, > but I think what I had is the way to go. > The bootstrapping pain is otherwise novel. > The compiler doesn't otherwise use LONGINT. > (My doing that it started using it.) > It ought not until after the current release? > > > - Jay > > > > Date: Fri, 15 Jan 2010 22:51:15 +0000 > > To: m3commit at elegosoft.com > > From: hosking at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: hosking at birch. 10/01/15 22:51:15 > > > > Modified files: > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > > > Log message: > > Revert to VAL. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Jan 15 23:13:46 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 22:13:46 +0000 Subject: [M3commit] [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) In-Reply-To: <1E52AB69-2D52-496D-AB5B-AF5FDA21744B@cs.purdue.edu> References: <20100115134101.B053F2474001@birch.elegosoft.com>, , , , , , , <09B41766-F3E3-4321-A568-AFE76959B787@cs.purdue.edu>, , <1E52AB69-2D52-496D-AB5B-AF5FDA21744B@cs.purdue.edu> Message-ID: That is ok but what about building new cm3/m3quake/sysutils packages with old tools/libraries? They previously never used LONGINT, including converting LONGINT to INTEGER. *I* changed that, not you. But then I decided it was a mistake. - Jay From: hosking at cs.purdue.edu Date: Fri, 15 Jan 2010 17:08:08 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com; m3commit at elegosoft.com Subject: Re: [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) Fact. New versions of m3core won't be able to build with old tools/libraries. We have to live with that. On 15 Jan 2010, at 16:34, Jay K wrote: We were in a state where neither m3core nor cm3/m3quake could be built with old tools/libraries. That is more ok for m3core, less ok for cm3/m3quake. As well, m3core also couldn't be built with recent but slightly old compiler. See, I didn't remove the use of LONGINT, just the use of VAL(LONGINT, INTEGER). As well, maybe cm3/m3quake couldn't be built with recent tools/libraries. The sysutils/m3quake/cm3 changes should stand? Ok removing "32" from the name and letting it return >4GB on 64bit platforms. But I think either it can't use libm3.File.T.status().size, OR we have to make status().size more compatible such as by introducing statusL or sizeL. 32bit code wouldn't see >4GB file sizes unless actively changed. Maybe not a bad idea. - Jay From: hosking at cs.purdue.edu Date: Fri, 15 Jan 2010 16:17:15 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com; m3commit at elegosoft.com Subject: Re: [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) On 15 Jan 2010, at 15:57, Jay K wrote: I at least did move the hacks to one place. I agree it isn't nice. This is due to my changes, not yours -- changing File.T.status().size to LONGINT. There's no way to use that in the "compiler" and still support old compiler/libm3, right? RIght. Except we should not try to maintain compatibility between among trunk versions. If you want to build as of a particular version then use libraries that match that version. My next set of commits for LONGCARD make this even more critical because the library has hardwired stuff that that makes it require a particular version of the compiler to compile it. ;-) Ok now that I centralized it to sysutils? Leave status() alone as using INTEGER and introduce statusL()? Or leave size alone and introduce sizeL? That's not a complete solution because you have to set size to something. -1 if it doesn't fit? Or just get past the bootstrapping and put it back using VAL? Yes. It seems a tough situation..the compiler is otherwise I believe very compatible with old compiler/libm3. It very soon will not be. - Jay > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 10:13:06 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Jay, all of these changes seem unnecessary (and worse, clutter the source with a variety of hacks). I had no problem building against both versions of m3core and libm3 in order to bootstrap a new compiler. What is going on here? > > On 15 Jan 2010, at 14:41, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/15 14:41:00 > > > > Modified files: > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > m3makefile > > Added files: > > cm3/m3-sys/m3quake/src/: QScannerC.c > > > > Log message: > > m3quake also can't use libm3 File.T.status().size and be compatible > > with both old and new libm3 (INTEGER vs. LONGINT) > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Fri Jan 15 23:31:32 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 23:31:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115223132.B806E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 23:31:32 Modified files: cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c Log message: provide 32bit, 64bit, and integer, though we can't expose the 64bit one From jkrell at elego.de Fri Jan 15 23:32:14 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 23:32:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115223214.D6B342474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 23:32:14 Modified files: cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c Log message: cleanup (remove 'signed') From jkrell at elego.de Fri Jan 15 23:36:52 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 23:36:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115223654.2D06A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 23:36:52 Modified files: cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c Log message: don't allow negative sizes From jay.krell at cornell.edu Fri Jan 15 23:42:58 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 22:42:58 +0000 Subject: [M3commit] LONGINT used by m3quake/cm3 packages In-Reply-To: <6CF0A42A-940C-4FB5-9CFD-CBA18EC9CAFA@cs.purdue.edu> References: <20100115215118.A9F482474001@birch.elegosoft.com>, , <6CF0A42A-940C-4FB5-9CFD-CBA18EC9CAFA@cs.purdue.edu> Message-ID: The compiler is not very dependent on newer compiler/libraries, until now, that I changed File.T.status().size to LONGINT. I was just able to upgrade.py from cm3-min-WIN32-NT386-5.2.6 for example. 5.1.3a failed though. (It's still in progress, but far long.) m3core/libm3 can depend on current compiler, agreed. - Jay From: hosking at cs.purdue.edu Date: Fri, 15 Jan 2010 17:13:38 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com; m3commit at elegosoft.com Subject: Re: [M3commit] LONGINT used by m3quake/cm3 packages Jay, the bootstrapping pain is inherent. The compiler and libraries are bound together. Currently, the old library and new libraries are incompatible with their respective compilers. Both ways. On 15 Jan 2010, at 16:56, Jay K wrote: VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, but I think what I had is the way to go. The bootstrapping pain is otherwise novel. The compiler doesn't otherwise use LONGINT. (My doing that it started using it.) It ought not until after the current release? - Jay > Date: Fri, 15 Jan 2010 22:51:15 +0000 > To: m3commit at elegosoft.com > From: hosking at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: hosking at birch. 10/01/15 22:51:15 > > Modified files: > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > Log message: > Revert to VAL. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 15 23:48:09 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 17:48:09 -0500 Subject: [M3commit] [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) In-Reply-To: References: <20100115134101.B053F2474001@birch.elegosoft.com>, , , , , , , <09B41766-F3E3-4321-A568-AFE76959B787@cs.purdue.edu>, , <1E52AB69-2D52-496D-AB5B-AF5FDA21744B@cs.purdue.edu> Message-ID: My point is that you need to bootstrap a new compiler as follows: Build new compiler against old libraries. Compile new libraries using new compiler. Recompile new compiler against new libraries. Throw away old libraries. On 15 Jan 2010, at 17:13, Jay K wrote: > That is ok but what about building new cm3/m3quake/sysutils packages with old tools/libraries? > They previously never used LONGINT, including converting LONGINT to INTEGER. > *I* changed that, not you. > But then I decided it was a mistake. > > > - Jay > > > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 17:08:08 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) > > Fact. New versions of m3core won't be able to build with old tools/libraries. We have to live with that. > > On 15 Jan 2010, at 16:34, Jay K wrote: > > We were in a state where neither m3core nor cm3/m3quake could be built with old tools/libraries. > That is more ok for m3core, less ok for cm3/m3quake. > As well, m3core also couldn't be built with recent but slightly old compiler. > See, I didn't remove the use of LONGINT, just the use of VAL(LONGINT, INTEGER). > As well, maybe cm3/m3quake couldn't be built with recent tools/libraries. > > > The sysutils/m3quake/cm3 changes should stand? > Ok removing "32" from the name and letting it return >4GB on 64bit platforms. > But I think either it can't use libm3.File.T.status().size, OR we have to > make status().size more compatible such as by introducing statusL or sizeL. > 32bit code wouldn't see >4GB file sizes unless actively changed. > Maybe not a bad idea. > > > - Jay > > > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 16:17:15 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) > > On 15 Jan 2010, at 15:57, Jay K wrote: > > I at least did move the hacks to one place. > I agree it isn't nice. > This is due to my changes, not yours -- changing File.T.status().size to LONGINT. > There's no way to use that in the "compiler" and still support old compiler/libm3, right? > > RIght. Except we should not try to maintain compatibility between among trunk versions. If you want to build as of a particular version then use libraries that match that version. > > My next set of commits for LONGCARD make this even more critical because the library has hardwired stuff that that makes it require a particular version of the compiler to compile it. ;-) > > Ok now that I centralized it to sysutils? > > > Leave status() alone as using INTEGER and introduce statusL()? > > > Or leave size alone and introduce sizeL? > That's not a complete solution because you have to set size to something. > -1 if it doesn't fit? > > > Or just get past the bootstrapping and put it back using VAL? > > Yes. > > It seems a tough situation..the compiler is otherwise I believe > very compatible with old compiler/libm3. > > It very soon will not be. > > > > - Jay > > > > From: hosking at cs.purdue.edu > > Date: Fri, 15 Jan 2010 10:13:06 -0500 > > To: jkrell at elego.de > > CC: m3commit at elegosoft.com > > Subject: Re: [M3commit] CVS Update: cm3 > > > > Jay, all of these changes seem unnecessary (and worse, clutter the source with a variety of hacks). I had no problem building against both versions of m3core and libm3 in order to bootstrap a new compiler. What is going on here? > > > > On 15 Jan 2010, at 14:41, Jay Krell wrote: > > > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 10/01/15 14:41:00 > > > > > > Modified files: > > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > > m3makefile > > > Added files: > > > cm3/m3-sys/m3quake/src/: QScannerC.c > > > > > > Log message: > > > m3quake also can't use libm3 File.T.status().size and be compatible > > > with both old and new libm3 (INTEGER vs. LONGINT) > > > > > > From hosking at cs.purdue.edu Fri Jan 15 23:50:17 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 17:50:17 -0500 Subject: [M3commit] LONGINT used by m3quake/cm3 packages In-Reply-To: References: <20100115215118.A9F482474001@birch.elegosoft.com> Message-ID: <46AFC820-D62E-472B-A0D0-6957153ECE17@cs.purdue.edu> On 15 Jan 2010, at 16:56, Jay K wrote: > VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, > but I think what I had is the way to go. > The bootstrapping pain is otherwise novel. The bootstrapping pain is now no more novel than when LONGINT was first introduced... > The compiler doesn't otherwise use LONGINT. > (My doing that it started using it.) > It ought not until after the current release? ... so it is pointless trying to build new libraries with an old compiler because the old compiler is built to compile files against old libraries. > > > - Jay > > > > Date: Fri, 15 Jan 2010 22:51:15 +0000 > > To: m3commit at elegosoft.com > > From: hosking at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: hosking at birch. 10/01/15 22:51:15 > > > > Modified files: > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > > > Log message: > > Revert to VAL. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 15 23:51:47 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 17:51:47 -0500 Subject: [M3commit] LONGINT used by m3quake/cm3 packages In-Reply-To: References: <20100115215118.A9F482474001@birch.elegosoft.com>, , <6CF0A42A-940C-4FB5-9CFD-CBA18EC9CAFA@cs.purdue.edu> Message-ID: <35CA5D39-E2B2-4576-82D3-108CC21F34AC@cs.purdue.edu> It's not the presence of LONGINT in the libraries or not. It is the presence of changes type type-map information (see RTTipe and its correspondence with TipeMap) which mean that the new libraries are incompatible with old compilers. On 15 Jan 2010, at 17:42, Jay K wrote: > The compiler is not very dependent on newer compiler/libraries, until now, that I changed File.T.status().size to LONGINT. > > I was just able to upgrade.py from cm3-min-WIN32-NT386-5.2.6 for example. 5.1.3a failed though. > (It's still in progress, but far long.) > > m3core/libm3 can depend on current compiler, agreed. > > - Jay > > > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 17:13:38 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3commit] LONGINT used by m3quake/cm3 packages > > Jay, the bootstrapping pain is inherent. The compiler and libraries are bound together. Currently, the old library and new libraries are incompatible with their respective compilers. Both ways. > > On 15 Jan 2010, at 16:56, Jay K wrote: > > VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, > but I think what I had is the way to go. > The bootstrapping pain is otherwise novel. > The compiler doesn't otherwise use LONGINT. > (My doing that it started using it.) > It ought not until after the current release? > > > - Jay > > > > Date: Fri, 15 Jan 2010 22:51:15 +0000 > > To: m3commit at elegosoft.com > > From: hosking at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: hosking at birch. 10/01/15 22:51:15 > > > > Modified files: > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > > > Log message: > > Revert to VAL. > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Jan 16 00:45:36 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 23:45:36 +0000 Subject: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages In-Reply-To: <46AFC820-D62E-472B-A0D0-6957153ECE17@cs.purdue.edu> References: <20100115215118.A9F482474001@birch.elegosoft.com>, , <46AFC820-D62E-472B-A0D0-6957153ECE17@cs.purdue.edu> Message-ID: I'm able to bootstrap the current system from pre-LONGINT using upgrade.py. I'm not sure, but our regular builds might do that. Not so now though. I think you might be saying however that such a compiler might have bugs in it? - Jay ________________________________ > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 17:50:17 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3devel] LONGINT used by m3quake/cm3 packages > > > > On 15 Jan 2010, at 16:56, Jay K wrote: > > VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, > but I think what I had is the way to go. > The bootstrapping pain is otherwise novel. > > The bootstrapping pain is now no more novel than when LONGINT was first introduced... > > The compiler doesn't otherwise use LONGINT. > (My doing that it started using it.) > It ought not until after the current release? > > ... so it is pointless trying to build new libraries with an old compiler because the old compiler is built to compile files against old libraries. > > > > - Jay > > >> Date: Fri, 15 Jan 2010 22:51:15 +0000 >> To: m3commit at elegosoft.com >> From: hosking at elego.de >> Subject: [M3commit] CVS Update: cm3 >> >> CVSROOT: /usr/cvs >> Changes by: hosking at birch. 10/01/15 22:51:15 >> >> Modified files: >> cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 >> >> Log message: >> Revert to VAL. >> > From jay.krell at cornell.edu Sat Jan 16 00:50:17 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 23:50:17 +0000 Subject: [M3commit] LONGINT used by m3quake/cm3 packages In-Reply-To: <35CA5D39-E2B2-4576-82D3-108CC21F34AC@cs.purdue.edu> References: <20100115215118.A9F482474001@birch.elegosoft.com>, , , , <6CF0A42A-940C-4FB5-9CFD-CBA18EC9CAFA@cs.purdue.edu>, , <35CA5D39-E2B2-4576-82D3-108CC21F34AC@cs.purdue.edu> Message-ID: Interesting. Can the new values be added "at the end" to remain compatible, or they must be inserted where they are? Well, granted, it was already done, so it's hard to be compatible with old and older. Even so, if you use an old compiler and its old libraries to build new compiler (but not its libraries), and then new compiler to rebuild libraries and compiler... isn't that ok? One of us seems confused. I'm not sure who. Again, old pre-LONGINT compiler can be used to build the current system in a way that we have plenty well enough automated. We first build "up to cm3", skipping libm3/m3core, then clean all and rebuild all with that new cm3. 5.2.6 works. 5.1.3a does not, I believe because sysutils needs a newer m3core. That could be fixed. I realize that it is grey and not clear how far to run this race. You go far enough back, you hit transitions, like m3front being written in C and generatin C, you go further back and you write a C compiler in assembly, keep going and you edit the assembler into memory with switches or somesuch.. One metric has been that you can build with the previous "release". I'm not sure which that is. - Jay ________________________________ > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 17:51:47 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3commit] LONGINT used by m3quake/cm3 packages > > > > It's not the presence of LONGINT in the libraries or not. It is the presence of changes type type-map information (see RTTipe and its correspondence with TipeMap) which mean that the new libraries are incompatible with old compilers. > > > > On 15 Jan 2010, at 17:42, Jay K wrote: > > The compiler is not very dependent on newer compiler/libraries, until now, that I changed File.T.status().size to LONGINT. > > I was just able to upgrade.py from cm3-min-WIN32-NT386-5.2.6 for example. 5.1.3a failed though. > (It's still in progress, but far long.) > > m3core/libm3 can depend on current compiler, agreed. > > - Jay > > > ________________________________ > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 17:13:38 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3commit] LONGINT used by m3quake/cm3 packages > > Jay, the bootstrapping pain is inherent. The compiler and libraries are bound together. Currently, the old library and new libraries are incompatible with their respective compilers. Both ways. > > On 15 Jan 2010, at 16:56, Jay K wrote: > > VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, > but I think what I had is the way to go. > The bootstrapping pain is otherwise novel. > The compiler doesn't otherwise use LONGINT. > (My doing that it started using it.) > It ought not until after the current release? > > > - Jay > > >> Date: Fri, 15 Jan 2010 22:51:15 +0000 >> To: m3commit at elegosoft.com >> From: hosking at elego.de >> Subject: [M3commit] CVS Update: cm3 >> >> CVSROOT: /usr/cvs >> Changes by: hosking at birch. 10/01/15 22:51:15 >> >> Modified files: >> cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 >> >> Log message: >> Revert to VAL. >> > > > From hosking at cs.purdue.edu Sat Jan 16 00:57:30 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 18:57:30 -0500 Subject: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages In-Reply-To: References: <20100115215118.A9F482474001@birch.elegosoft.com>, , <46AFC820-D62E-472B-A0D0-6957153ECE17@cs.purdue.edu> Message-ID: <8089316A-A262-4CC7-8886-7350FC532D0F@cs.purdue.edu> You can bootstrap (non-Windows) from pre-LONGINT, building and shipping in the following order: Using old (release) cm3 m3middle m3linker m3front m3quake cm3 This cm3 uses old run-time libraries, but now understands LONGINT and LONGCARD. m3core (new, with LONGINT/LONGCARD) libm3 (new, with LONGINT/LONGCARD) sysutils m3middle m3linker m3front m3quake cm3 This cm3 uses new run-time libraries. On 15 Jan 2010, at 18:45, Jay K wrote: > > I'm able to bootstrap the current system from pre-LONGINT using upgrade.py. > I'm not sure, but our regular builds might do that. > Not so now though. > I think you might be saying however that such a compiler might have bugs in it? > > - Jay > > > > ________________________________ >> From: hosking at cs.purdue.edu >> Date: Fri, 15 Jan 2010 17:50:17 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >> Subject: Re: [M3devel] LONGINT used by m3quake/cm3 packages >> >> >> >> On 15 Jan 2010, at 16:56, Jay K wrote: >> >> VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, >> but I think what I had is the way to go. >> The bootstrapping pain is otherwise novel. >> >> The bootstrapping pain is now no more novel than when LONGINT was first introduced... >> >> The compiler doesn't otherwise use LONGINT. >> (My doing that it started using it.) >> It ought not until after the current release? >> >> ... so it is pointless trying to build new libraries with an old compiler because the old compiler is built to compile files against old libraries. >> >> >> >> - Jay >> >> >>> Date: Fri, 15 Jan 2010 22:51:15 +0000 >>> To: m3commit at elegosoft.com >>> From: hosking at elego.de >>> Subject: [M3commit] CVS Update: cm3 >>> >>> CVSROOT: /usr/cvs >>> Changes by: hosking at birch. 10/01/15 22:51:15 >>> >>> Modified files: >>> cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 >>> >>> Log message: >>> Revert to VAL. >>> >> From hosking at cs.purdue.edu Sat Jan 16 00:58:27 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 18:58:27 -0500 Subject: [M3commit] LONGINT used by m3quake/cm3 packages In-Reply-To: References: <20100115215118.A9F482474001@birch.elegosoft.com>, , , , <6CF0A42A-940C-4FB5-9CFD-CBA18EC9CAFA@cs.purdue.edu>, , <35CA5D39-E2B2-4576-82D3-108CC21F34AC@cs.purdue.edu> Message-ID: <13D6BE0C-2B40-474D-8743-B4F95F7A1D1A@cs.purdue.edu> On 15 Jan 2010, at 18:50, Jay K wrote: > > Interesting. Can the new values be added "at the end" to remain compatible, or they must be inserted where they are? Well, granted, it was already done, so it's hard to be compatible with old and older. Not easily. > Even so, if you use an old compiler and its old libraries to build new compiler (but not its libraries), and then new compiler to rebuild libraries and compiler... isn't that ok? By old, you mean pre-LONGINT, right? > One of us seems confused. I'm not sure who. Not me! ;-) > Again, old pre-LONGINT compiler can be used to build the current system in a way that we have plenty well enough automated. We first build "up to cm3", skipping libm3/m3core, then clean all and rebuild all with that new cm3. > 5.2.6 works. > 5.1.3a does not, I believe because sysutils needs a newer m3core. That could be fixed. > > > I realize that it is grey and not clear how far to run this race. > You go far enough back, you hit transitions, like m3front being written in C and generatin C, you go further back and you write a C compiler in assembly, keep going and you edit the assembler into memory with switches or somesuch.. > > > One metric has been that you can build with the previous "release". > I'm not sure which that is. > > > > - Jay > > > ________________________________ >> From: hosking at cs.purdue.edu >> Date: Fri, 15 Jan 2010 17:51:47 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >> Subject: Re: [M3commit] LONGINT used by m3quake/cm3 packages >> >> >> >> It's not the presence of LONGINT in the libraries or not. It is the presence of changes type type-map information (see RTTipe and its correspondence with TipeMap) which mean that the new libraries are incompatible with old compilers. >> >> >> >> On 15 Jan 2010, at 17:42, Jay K wrote: >> >> The compiler is not very dependent on newer compiler/libraries, until now, that I changed File.T.status().size to LONGINT. >> >> I was just able to upgrade.py from cm3-min-WIN32-NT386-5.2.6 for example. 5.1.3a failed though. >> (It's still in progress, but far long.) >> >> m3core/libm3 can depend on current compiler, agreed. >> >> - Jay >> >> >> ________________________________ >> From: hosking at cs.purdue.edu >> Date: Fri, 15 Jan 2010 17:13:38 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >> Subject: Re: [M3commit] LONGINT used by m3quake/cm3 packages >> >> Jay, the bootstrapping pain is inherent. The compiler and libraries are bound together. Currently, the old library and new libraries are incompatible with their respective compilers. Both ways. >> >> On 15 Jan 2010, at 16:56, Jay K wrote: >> >> VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, >> but I think what I had is the way to go. >> The bootstrapping pain is otherwise novel. >> The compiler doesn't otherwise use LONGINT. >> (My doing that it started using it.) >> It ought not until after the current release? >> >> >> - Jay >> >> >>> Date: Fri, 15 Jan 2010 22:51:15 +0000 >>> To: m3commit at elegosoft.com >>> From: hosking at elego.de >>> Subject: [M3commit] CVS Update: cm3 >>> >>> CVSROOT: /usr/cvs >>> Changes by: hosking at birch. 10/01/15 22:51:15 >>> >>> Modified files: >>> cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 >>> >>> Log message: >>> Revert to VAL. >>> >> >> >> From hosking at elego.de Sat Jan 16 03:24:13 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 16 Jan 2010 3:24:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116022414.0394E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/16 03:24:13 Modified files: cm3/examples/win32-dll/src/: RTMain.m3 Log message: Newline. From hosking at elego.de Sat Jan 16 03:27:13 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 16 Jan 2010 3:27:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116022713.1E2642474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/16 03:27:13 Modified files: cm3/m3-tools/m3browser/src/: Main.m3 cm3/m3-tools/m3tk/src/fe/: StandardAsText.m3 WiredStandard.m3 cm3/m3-tools/m3tk/src/pl/: M3LTextToType.m3 M3LTypeEquiv.m3 M3LTypeToText.i3 M3LTypeToText.m3 cm3/m3-tools/m3tk/src/sem/: M3CMkStd.m3 M3CStdTypes.i3 M3CStdTypes.m3 M3CTypeChkUtil.i3 M3CTypeChkUtil.m3 cm3/m3-tools/m3tk/src/syn/: M3CLex.m3 M3CParse.m3 M3CToken.i3 Log message: More complete support for LONGINT and LONGCARD. Not clear that constant folding is implemented properly here yet. From hosking at elego.de Sat Jan 16 03:29:11 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 16 Jan 2010 3:29:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116022912.60CAE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/16 03:29:11 Modified files: cm3/m3-sys/m3tools/src/: M3Const.m3 M3Type.i3 M3Type.m3 Log message: Support for LONGINT and LONGCARD. From hosking at elego.de Sat Jan 16 03:33:04 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 16 Jan 2010 3:33:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116023304.9ABF12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/16 03:33:04 Modified files: cm3/m3-comm/events/src/: EventStubLib.m3 cm3/m3-comm/sharedobjgen/src/: AstToType.m3 CodeForType.m3 Type.i3 Type.m3 Value.m3 cm3/m3-comm/stubgen/src/: AstToType.m3 CodeForType.m3 Type.i3 Type.m3 Value.m3 cm3/m3-db/stable/src/: StableLog.i3 StableLog.m3 cm3/m3-db/stablegen/src/: AstToType.m3 GenModuleCode.m3 GenTypeCode.m3 Type.i3 Type.m3 Value.m3 Log message: Initial support for LONGINT and LONGCARD. Still needs vetting for proper conversion of 64-bit and 32-bit LONGINT/LONGCARD (the integrated Win32 backend still treats LONGINT as 32 bits). From hosking at elego.de Sat Jan 16 04:11:30 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 16 Jan 2010 4:11:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116031130.748512474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/16 04:11:30 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTPacking.i3 RTPacking.m3 RTTipe.m3 cm3/m3-libs/libm3/src/pickle/ver2/: ConvertPacking.m3 PickleStubs.i3 PickleStubs.m3 Log message: Add pickle stubs for LONGINT and LONGCARD. Need testing. From hosking at elego.de Sat Jan 16 04:13:44 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 16 Jan 2010 4:13:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116031344.225E82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/16 04:13:44 Modified files: cm3/m3-libs/libm3/src/pickle/ver2/: PickleStubs.m3 Log message: longConvKind not wordConvKind. From hosking at elego.de Sat Jan 16 04:22:15 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 16 Jan 2010 4:22:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116032216.1EC972474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/16 04:22:15 Modified files: cm3/m3-tools/gnuemacs/src/: modula3.el Log message: Add LONGCARD. From jay.krell at cornell.edu Sat Jan 16 05:15:20 2010 From: jay.krell at cornell.edu (Jay K) Date: Sat, 16 Jan 2010 04:15:20 +0000 Subject: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages In-Reply-To: <8089316A-A262-4CC7-8886-7350FC532D0F@cs.purdue.edu> References: <20100115215118.A9F482474001@birch.elegosoft.com>, , , , <46AFC820-D62E-472B-A0D0-6957153ECE17@cs.purdue.edu>, , <8089316A-A262-4CC7-8886-7350FC532D0F@cs.purdue.edu> Message-ID: I strongly suspect(ed) this bootstrapping is broken, by my changing libm3.File.T.status().size to LONGINT, and then using VAL(LONGINT, INTEGER) in m3quake/m3scanner. However, with the older libraries, duh, it is VAL(INTEGER, INTEGER). Is that legal? Ok, probably, sorry, I was confused. - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 18:57:30 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages > > You can bootstrap (non-Windows) from pre-LONGINT, building and shipping in the following order: > > Using old (release) cm3 > > m3middle > m3linker > m3front > m3quake > cm3 > > This cm3 uses old run-time libraries, but now understands LONGINT and LONGCARD. > > m3core (new, with LONGINT/LONGCARD) > libm3 (new, with LONGINT/LONGCARD) > sysutils > m3middle > m3linker > m3front > m3quake > cm3 > > This cm3 uses new run-time libraries. > > On 15 Jan 2010, at 18:45, Jay K wrote: > >> >> I'm able to bootstrap the current system from pre-LONGINT using upgrade.py. >> I'm not sure, but our regular builds might do that. >> Not so now though. >> I think you might be saying however that such a compiler might have bugs in it? >> >> - Jay >> >> >> >> ________________________________ >>> From: hosking at cs.purdue.edu >>> Date: Fri, 15 Jan 2010 17:50:17 -0500 >>> To: jay.krell at cornell.edu >>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>> Subject: Re: [M3devel] LONGINT used by m3quake/cm3 packages >>> >>> >>> >>> On 15 Jan 2010, at 16:56, Jay K wrote: >>> >>> VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, >>> but I think what I had is the way to go. >>> The bootstrapping pain is otherwise novel. >>> >>> The bootstrapping pain is now no more novel than when LONGINT was first introduced... >>> >>> The compiler doesn't otherwise use LONGINT. >>> (My doing that it started using it.) >>> It ought not until after the current release? >>> >>> ... so it is pointless trying to build new libraries with an old compiler because the old compiler is built to compile files against old libraries. >>> >>> >>> >>> - Jay >>> >>> >>>> Date: Fri, 15 Jan 2010 22:51:15 +0000 >>>> To: m3commit at elegosoft.com >>>> From: hosking at elego.de >>>> Subject: [M3commit] CVS Update: cm3 >>>> >>>> CVSROOT: /usr/cvs >>>> Changes by: hosking at birch. 10/01/15 22:51:15 >>>> >>>> Modified files: >>>> cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 >>>> >>>> Log message: >>>> Revert to VAL. >>>> >>> > From hosking at cs.purdue.edu Sat Jan 16 05:29:27 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 23:29:27 -0500 Subject: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages In-Reply-To: References: <20100115215118.A9F482474001@birch.elegosoft.com>, , , , <46AFC820-D62E-472B-A0D0-6957153ECE17@cs.purdue.edu>, , <8089316A-A262-4CC7-8886-7350FC532D0F@cs.purdue.edu> Message-ID: <635BE76B-3EFD-4930-8029-DBBB14468869@cs.purdue.edu> The old (release) libraries don't have the VAL stuff do they? On 15 Jan 2010, at 23:15, Jay K wrote: > > I strongly suspect(ed) this bootstrapping is broken, by my changing libm3.File.T.status().size to LONGINT, and then using VAL(LONGINT, INTEGER) in m3quake/m3scanner. However, with the older libraries, duh, it is VAL(INTEGER, INTEGER). Is that legal? Ok, probably, sorry, I was confused. > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Fri, 15 Jan 2010 18:57:30 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >> Subject: Re: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages >> >> You can bootstrap (non-Windows) from pre-LONGINT, building and shipping in the following order: >> >> Using old (release) cm3 >> >> m3middle >> m3linker >> m3front >> m3quake >> cm3 >> >> This cm3 uses old run-time libraries, but now understands LONGINT and LONGCARD. >> >> m3core (new, with LONGINT/LONGCARD) >> libm3 (new, with LONGINT/LONGCARD) >> sysutils >> m3middle >> m3linker >> m3front >> m3quake >> cm3 >> >> This cm3 uses new run-time libraries. >> >> On 15 Jan 2010, at 18:45, Jay K wrote: >> >>> >>> I'm able to bootstrap the current system from pre-LONGINT using upgrade.py. >>> I'm not sure, but our regular builds might do that. >>> Not so now though. >>> I think you might be saying however that such a compiler might have bugs in it? >>> >>> - Jay >>> >>> >>> >>> ________________________________ >>>> From: hosking at cs.purdue.edu >>>> Date: Fri, 15 Jan 2010 17:50:17 -0500 >>>> To: jay.krell at cornell.edu >>>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>>> Subject: Re: [M3devel] LONGINT used by m3quake/cm3 packages >>>> >>>> >>>> >>>> On 15 Jan 2010, at 16:56, Jay K wrote: >>>> >>>> VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, >>>> but I think what I had is the way to go. >>>> The bootstrapping pain is otherwise novel. >>>> >>>> The bootstrapping pain is now no more novel than when LONGINT was first introduced... >>>> >>>> The compiler doesn't otherwise use LONGINT. >>>> (My doing that it started using it.) >>>> It ought not until after the current release? >>>> >>>> ... so it is pointless trying to build new libraries with an old compiler because the old compiler is built to compile files against old libraries. >>>> >>>> >>>> >>>> - Jay >>>> >>>> >>>>> Date: Fri, 15 Jan 2010 22:51:15 +0000 >>>>> To: m3commit at elegosoft.com >>>>> From: hosking at elego.de >>>>> Subject: [M3commit] CVS Update: cm3 >>>>> >>>>> CVSROOT: /usr/cvs >>>>> Changes by: hosking at birch. 10/01/15 22:51:15 >>>>> >>>>> Modified files: >>>>> cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 >>>>> >>>>> Log message: >>>>> Revert to VAL. >>>>> >>>> >> From jay.krell at cornell.edu Sat Jan 16 06:14:16 2010 From: jay.krell at cornell.edu (Jay K) Date: Sat, 16 Jan 2010 05:14:16 +0000 Subject: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages In-Reply-To: <635BE76B-3EFD-4930-8029-DBBB14468869@cs.purdue.edu> References: <20100115215118.A9F482474001@birch.elegosoft.com>, ,,, , , <46AFC820-D62E-472B-A0D0-6957153ECE17@cs.purdue.edu>, , , , <8089316A-A262-4CC7-8886-7350FC532D0F@cs.purdue.edu>, , <635BE76B-3EFD-4930-8029-DBBB14468869@cs.purdue.edu> Message-ID: No. They have File.T.status().size is INTEGER, and then m3quake/m3scanner call VAL(x, INTEGER) on that. I guess that is legal though. It doesn't matter if x is INTEGER or not, right? (In newer libraries, it is LONGINT). - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 23:29:27 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages > > The old (release) libraries don't have the VAL stuff do they? > > On 15 Jan 2010, at 23:15, Jay K wrote: > >> >> I strongly suspect(ed) this bootstrapping is broken, by my changing libm3.File.T.status().size to LONGINT, and then using VAL(LONGINT, INTEGER) in m3quake/m3scanner. However, with the older libraries, duh, it is VAL(INTEGER, INTEGER). Is that legal? Ok, probably, sorry, I was confused. >> >> - Jay >> >> >> ---------------------------------------- >>> From: hosking at cs.purdue.edu >>> Date: Fri, 15 Jan 2010 18:57:30 -0500 >>> To: jay.krell at cornell.edu >>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>> Subject: Re: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages >>> >>> You can bootstrap (non-Windows) from pre-LONGINT, building and shipping in the following order: >>> >>> Using old (release) cm3 >>> >>> m3middle >>> m3linker >>> m3front >>> m3quake >>> cm3 >>> >>> This cm3 uses old run-time libraries, but now understands LONGINT and LONGCARD. >>> >>> m3core (new, with LONGINT/LONGCARD) >>> libm3 (new, with LONGINT/LONGCARD) >>> sysutils >>> m3middle >>> m3linker >>> m3front >>> m3quake >>> cm3 >>> >>> This cm3 uses new run-time libraries. >>> >>> On 15 Jan 2010, at 18:45, Jay K wrote: >>> >>>> >>>> I'm able to bootstrap the current system from pre-LONGINT using upgrade.py. >>>> I'm not sure, but our regular builds might do that. >>>> Not so now though. >>>> I think you might be saying however that such a compiler might have bugs in it? >>>> >>>> - Jay >>>> >>>> >>>> >>>> ________________________________ >>>>> From: hosking at cs.purdue.edu >>>>> Date: Fri, 15 Jan 2010 17:50:17 -0500 >>>>> To: jay.krell at cornell.edu >>>>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>>>> Subject: Re: [M3devel] LONGINT used by m3quake/cm3 packages >>>>> >>>>> >>>>> >>>>> On 15 Jan 2010, at 16:56, Jay K wrote: >>>>> >>>>> VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, >>>>> but I think what I had is the way to go. >>>>> The bootstrapping pain is otherwise novel. >>>>> >>>>> The bootstrapping pain is now no more novel than when LONGINT was first introduced... >>>>> >>>>> The compiler doesn't otherwise use LONGINT. >>>>> (My doing that it started using it.) >>>>> It ought not until after the current release? >>>>> >>>>> ... so it is pointless trying to build new libraries with an old compiler because the old compiler is built to compile files against old libraries. >>>>> >>>>> >>>>> >>>>> - Jay >>>>> >>>>> >>>>>> Date: Fri, 15 Jan 2010 22:51:15 +0000 >>>>>> To: m3commit at elegosoft.com >>>>>> From: hosking at elego.de >>>>>> Subject: [M3commit] CVS Update: cm3 >>>>>> >>>>>> CVSROOT: /usr/cvs >>>>>> Changes by: hosking at birch. 10/01/15 22:51:15 >>>>>> >>>>>> Modified files: >>>>>> cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 >>>>>> >>>>>> Log message: >>>>>> Revert to VAL. >>>>>> >>>>> >>> > From hosking at cs.purdue.edu Sat Jan 16 06:20:22 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 16 Jan 2010 00:20:22 -0500 Subject: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages In-Reply-To: References: <20100115215118.A9F482474001@birch.elegosoft.com>, , , , , , <46AFC820-D62E-472B-A0D0-6957153ECE17@cs.purdue.edu>, , , , <8089316A-A262-4CC7-8886-7350FC532D0F@cs.purdue.edu>, , <635BE76B-3EFD-4930-8029-DBBB14468869@cs.purdue.edu> Message-ID: That's fine. On 16 Jan 2010, at 00:14, Jay K wrote: > > No. They have File.T.status().size is INTEGER, and then m3quake/m3scanner call VAL(x, INTEGER) on that. I guess that is legal though. > It doesn't matter if x is INTEGER or not, right? > (In newer libraries, it is LONGINT). > > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Fri, 15 Jan 2010 23:29:27 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >> Subject: Re: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages >> >> The old (release) libraries don't have the VAL stuff do they? >> >> On 15 Jan 2010, at 23:15, Jay K wrote: >> >>> >>> I strongly suspect(ed) this bootstrapping is broken, by my changing libm3.File.T.status().size to LONGINT, and then using VAL(LONGINT, INTEGER) in m3quake/m3scanner. However, with the older libraries, duh, it is VAL(INTEGER, INTEGER). Is that legal? Ok, probably, sorry, I was confused. >>> >>> - Jay >>> >>> >>> ---------------------------------------- >>>> From: hosking at cs.purdue.edu >>>> Date: Fri, 15 Jan 2010 18:57:30 -0500 >>>> To: jay.krell at cornell.edu >>>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>>> Subject: Re: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages >>>> >>>> You can bootstrap (non-Windows) from pre-LONGINT, building and shipping in the following order: >>>> >>>> Using old (release) cm3 >>>> >>>> m3middle >>>> m3linker >>>> m3front >>>> m3quake >>>> cm3 >>>> >>>> This cm3 uses old run-time libraries, but now understands LONGINT and LONGCARD. >>>> >>>> m3core (new, with LONGINT/LONGCARD) >>>> libm3 (new, with LONGINT/LONGCARD) >>>> sysutils >>>> m3middle >>>> m3linker >>>> m3front >>>> m3quake >>>> cm3 >>>> >>>> This cm3 uses new run-time libraries. >>>> >>>> On 15 Jan 2010, at 18:45, Jay K wrote: >>>> >>>>> >>>>> I'm able to bootstrap the current system from pre-LONGINT using upgrade.py. >>>>> I'm not sure, but our regular builds might do that. >>>>> Not so now though. >>>>> I think you might be saying however that such a compiler might have bugs in it? >>>>> >>>>> - Jay >>>>> >>>>> >>>>> >>>>> ________________________________ >>>>>> From: hosking at cs.purdue.edu >>>>>> Date: Fri, 15 Jan 2010 17:50:17 -0500 >>>>>> To: jay.krell at cornell.edu >>>>>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>>>>> Subject: Re: [M3devel] LONGINT used by m3quake/cm3 packages >>>>>> >>>>>> >>>>>> >>>>>> On 15 Jan 2010, at 16:56, Jay K wrote: >>>>>> >>>>>> VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, >>>>>> but I think what I had is the way to go. >>>>>> The bootstrapping pain is otherwise novel. >>>>>> >>>>>> The bootstrapping pain is now no more novel than when LONGINT was first introduced... >>>>>> >>>>>> The compiler doesn't otherwise use LONGINT. >>>>>> (My doing that it started using it.) >>>>>> It ought not until after the current release? >>>>>> >>>>>> ... so it is pointless trying to build new libraries with an old compiler because the old compiler is built to compile files against old libraries. >>>>>> >>>>>> >>>>>> >>>>>> - Jay >>>>>> >>>>>> >>>>>>> Date: Fri, 15 Jan 2010 22:51:15 +0000 >>>>>>> To: m3commit at elegosoft.com >>>>>>> From: hosking at elego.de >>>>>>> Subject: [M3commit] CVS Update: cm3 >>>>>>> >>>>>>> CVSROOT: /usr/cvs >>>>>>> Changes by: hosking at birch. 10/01/15 22:51:15 >>>>>>> >>>>>>> Modified files: >>>>>>> cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 >>>>>>> >>>>>>> Log message: >>>>>>> Revert to VAL. >>>>>>> >>>>>> >>>> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Sat Jan 16 11:44:55 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 11:44:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116104455.D3ACC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 11:44:55 Modified files: cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c SystemC.c Log message: quash warnings, be more compatible with more compilers, optimize, be compatible with libcmt.lib, etc. From jkrell at elego.de Sat Jan 16 11:46:14 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 11:46:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116104614.EC5AB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 11:46:14 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c Uexec.c Ugrp.c Uin.c Unetdb.c UnixC.c UnixLink.c Uprocess.c Usocket.c UstatC.c UtimeC.c Uuio.c Log message: quash warnings, be more compatible, etc. From jkrell at elego.de Sat Jan 16 11:55:39 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 11:55:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116105539.6F06A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 11:55:39 Modified files: cm3/m3-libs/m3core/src/: m3core.h cm3/m3-libs/m3core/src/C/Common/: CerrnoC.c CsignalC.c CstdioC.c CstdlibC.c CstringC.c cm3/m3-libs/m3core/src/Csupport/Common/: hand.c cm3/m3-libs/m3core/src/runtime/WIN32/: RTOSc.c cm3/m3-libs/m3core/src/runtime/common/: RTIOc.c RTLinkerC.c RTMiscC.c RTUntracedMemoryC.c cm3/m3-libs/m3core/src/unix/Common/: Uexec.c Uin.c Unetdb.c UnixC.c UnixLink.c Uprocess.c UstatC.c UtimeC.c Uuio.c Log message: quash warnings, don't enable frame point omission -- keep the stack easily walked From jkrell at elego.de Sat Jan 16 12:23:35 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:23:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116112335.C39752474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:23:35 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: dtoa.h Log message: add some parens; compare with http://www.netlib.org/fp/dtoa.c From jkrell at elego.de Sat Jan 16 12:34:56 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:34:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116113456.F09812474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:34:56 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: dtoa.h Log message: quash warnings with #pragma and with two more small changes from http://www.netlib.org/fp/dtoa.c From jkrell at elego.de Sat Jan 16 12:35:33 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:35:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116113533.3CD532474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:35:33 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: fix warning caused by bug in new unused code From jkrell at elego.de Sat Jan 16 12:36:58 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:36:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116113658.58F2A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:36:58 Modified files: cm3/m3-libs/m3core/src/win32/: WinNTc.c Log message: quash warning From jkrell at elego.de Sat Jan 16 12:37:53 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:37:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116113753.1B0B22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:37:53 Modified files: cm3/m3-libs/m3core/src/Csupport/libgcc/: libgcc.c Log message: quash warnings From jkrell at elego.de Sat Jan 16 12:44:13 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:44:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116114413.9A1352474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:44:13 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: fix warnings, optimize, calling conventions; though it seems maybe we could implement this in Modula-3 well enough?, maybe even in m3middle? From jkrell at elego.de Sat Jan 16 12:46:20 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:46:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116114621.09E892474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:46:20 Modified files: cm3/m3-libs/m3core/src/Csupport/libgcc/: libgcc.c Log message: put in calling conventions; doesn't likely matter here, this file is mostly for SOLgnu -- gcc backend without gcc linker (maybe also Irix, AIX, HP-UX) From jkrell at elego.de Sat Jan 16 12:47:48 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:47:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116114748.CDB5D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:47:48 Modified files: cm3/m3-libs/m3core/src/Csupport/libgcc/: libgcc.c Log message: limit quashing a clearly Darwin-specific warning to Darwin (Apple, MacOSX, whatever) From jkrell at elego.de Sat Jan 16 12:54:54 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:54:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116115454.D0AC22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:54:54 Modified files: cm3/m3-libs/m3core/src/: m3core.h Log message: add calling conventions (point being to be independent of the default as specified on the command line and for this code to always have the same meaning; there are tradeoffs either way, granted From jkrell at elego.de Sat Jan 16 13:15:52 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:15:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116121552.E1AAC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:15:52 Modified files: cm3/m3-libs/m3core/src/: m3makefile Log message: fix newlines From jkrell at elego.de Sat Jan 16 13:17:09 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:17:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116121709.DD3EE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:17:09 Modified files: cm3/m3-libs/m3core/src/: m3core.h cm3/m3-libs/m3core/src/unix/Common/: UtimeC.c Log message: Win32 time_t varies between the old bad 32bit and the new good 64bit. So just don't expose anything time_t related. From jkrell at elego.de Sat Jan 16 13:27:55 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:27:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116122755.AE0E12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:27:55 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uexec.c Log message: fix char** vs. char * const * when compiling Win32/C++ From jkrell at elego.de Sat Jan 16 13:29:16 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:29:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116122916.AD4D22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:29:16 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uexec.c Log message: fix another Win32/C++ const cast, and change #ifdef to #ifndef (and move the bodies) From jkrell at elego.de Sat Jan 16 13:35:37 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:35:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116123537.94F8A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:35:37 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UnixC.c Log message: be wary of truncating int to size_t in getcwd and gethostname -- don't expose them (this code isn't actually compiled for Win32, but it very well could be From jkrell at elego.de Sat Jan 16 13:41:31 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:41:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116124132.3E3E02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:41:31 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UnixLink.c Log message: fix unsigned/signed warning and workaround nonsensical warning that seems to trigger for any function pointer cast at all; note that these warnings, like others, have not been getting issued all along, it takes particular command lines to trigger them From jkrell at elego.de Sat Jan 16 13:44:16 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:44:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116124416.DA69C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:44:16 Modified files: cm3/m3-libs/m3core/src/: m3core.h Log message: #ifdef _WIN32 #ifndef WIN32 #define WIN32 #endif #endif for compat with old headers From jkrell at elego.de Sat Jan 16 13:44:56 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:44:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116124456.BB9402474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:44:56 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: quash warnings that aren't usually seen, add calling convention, compat with old headers From jkrell at elego.de Sat Jan 16 13:46:56 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:46:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116124658.5D3EB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:46:56 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UtimeInternal.i3 Log message: fix newlines (file not alive, I haven't decided what to do here about the platform-specificity of related code, probably use version rewritten in C, but might use an 'if platform' in Modula-3) From jkrell at elego.de Sat Jan 16 13:55:14 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:55:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116125514.564DF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:55:14 Modified files: cm3/scripts/: Tag: release_branch_cm3_5_8 make-dist.sh Log message: chmod 755 setup.cmd I had around, not sure it is needed, and a newline From jkrell at elego.de Sat Jan 16 14:07:49 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 14:07:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116130749.2DF3B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 14:07:49 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Tag: release_branch_cm3_5_8 NT386.common Log message: from head: support for bootstrapping from older releases without 'pos'; also put back local, though that might break some releases From jkrell at elego.de Sat Jan 16 14:15:30 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 14:15:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116131530.60C3F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 14:15:30 Modified files: cm3/m3-sys/m3middle/src/: Tag: release_branch_cm3_5_8 m3makefile Log message: fix newlines From jkrell at elego.de Sat Jan 16 14:22:33 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 14:22:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116132233.642A92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 14:22:33 Modified files: cm3/m3-comm/events/src/: Tag: release_branch_cm3_5_8 m3overrides cm3/m3-comm/sharedobjgen/src/: Tag: release_branch_cm3_5_8 m3overrides cm3/m3-comm/stubgen/src/: Tag: release_branch_cm3_5_8 m3overrides Log message: some m3override centralization I had From jkrell at elego.de Sat Jan 16 14:30:36 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 14:30:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116133037.A2E552474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 14:30:36 Modified files: cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 QScanner.m3 Log message: from head: go back to VAL: VAL(INTEGER, INTEGER) is legal, there's no dependency here on LONGINT if the underlying library doesn't use it From jkrell at elego.de Sat Jan 16 14:31:35 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 14:31:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116133136.0726D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 14:31:35 Modified files: cm3/m3-sys/cm3/src/: Tag: release_branch_cm3_5_8 WebFile.m3 Log message: from head: go back to VAL: VAL(INTEGER, INTEGER) is legal, there's no dependency here on LONGINT if the underlying library doesn't use it From jkrell at elego.de Sat Jan 16 14:42:09 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 14:42:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116134209.79B3A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 14:42:09 Modified files: cm3/m3-comm/events/src/: Tag: release_branch_cm3_5_8 EventStubLib.m3 cm3/m3-comm/sharedobjgen/src/: Tag: release_branch_cm3_5_8 AstToType.m3 CodeForType.m3 Type.i3 Type.m3 Value.m3 cm3/m3-comm/stubgen/src/: Tag: release_branch_cm3_5_8 AstToType.m3 CodeForType.m3 Type.i3 Type.m3 Value.m3 cm3/m3-db/stable/src/: Tag: release_branch_cm3_5_8 StableLog.i3 StableLog.m3 cm3/m3-db/stablegen/src/: Tag: release_branch_cm3_5_8 AstToType.m3 GenModuleCode.m3 GenTypeCode.m3 Type.i3 Type.m3 Value.m3 cm3/m3-libs/libm3/src/pickle/ver2/: Tag: release_branch_cm3_5_8 ConvertPacking.m3 PickleStubs.i3 PickleStubs.m3 cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTBuiltin.mx RTPacking.i3 RTPacking.m3 RTTipe.i3 RTTipe.m3 cm3/m3-sys/m3cggen/src/: Tag: release_branch_cm3_5_8 Main.m3 cm3/m3-sys/m3front/src/builtinTypes/: Tag: release_branch_cm3_5_8 BuiltinTypes.m3 m3makefile cm3/m3-sys/m3front/src/misc/: Tag: release_branch_cm3_5_8 CG.i3 CG.m3 TipeDesc.i3 Token.m3 cm3/m3-sys/m3front/src/types/: Tag: release_branch_cm3_5_8 RecordType.i3 RecordType.m3 SubrangeType.m3 cm3/m3-sys/m3middle/src/: Tag: release_branch_cm3_5_8 M3CG.i3 M3CG.m3 M3CG_BinRd.m3 M3CG_BinWr.m3 M3CG_Binary.i3 M3CG_Check.m3 M3CG_Ops.i3 M3CG_Rd.m3 M3CG_Wr.m3 cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 QCompiler.m3 QScanner.i3 cm3/m3-sys/m3tools/src/: Tag: release_branch_cm3_5_8 M3Const.m3 M3Type.i3 M3Type.m3 cm3/m3-tools/m3browser/src/: Tag: release_branch_cm3_5_8 Main.m3 cm3/m3-tools/m3tk/src/fe/: Tag: release_branch_cm3_5_8 StandardAsText.m3 WiredStandard.m3 cm3/m3-tools/m3tk/src/pl/: Tag: release_branch_cm3_5_8 M3LTextToType.m3 M3LTypeEquiv.m3 M3LTypeToText.i3 M3LTypeToText.m3 cm3/m3-tools/m3tk/src/sem/: Tag: release_branch_cm3_5_8 M3CMkStd.m3 M3CStdTypes.i3 M3CStdTypes.m3 M3CTypeChkUtil.i3 M3CTypeChkUtil.m3 cm3/m3-tools/m3tk/src/syn/: Tag: release_branch_cm3_5_8 M3CLex.m3 M3CParse.m3 M3CToken.i3 Added files: cm3/m3-sys/m3front/src/builtinTypes/: Tag: release_branch_cm3_5_8 LCard.i3 LCard.m3 Log message: copy from head: LONGINT, LONGCARD, and atomics come along for the ride From jay.krell at cornell.edu Sat Jan 16 14:45:22 2010 From: jay.krell at cornell.edu (Jay K) Date: Sat, 16 Jan 2010 13:45:22 +0000 Subject: [M3commit] longint/longcard/atomics copied from head to release In-Reply-To: <20100116134209.79B3A2474001@birch.elegosoft.com> References: <20100116134209.79B3A2474001@birch.elegosoft.com> Message-ID: There's also more "val" reversion here. Attached should match this. Pity no cvs command or web page can show it. (I try to make up for CVS lameness just by remembering a lot...not a good technique..) - Jay > Date: Sat, 16 Jan 2010 14:42:09 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/16 14:42:09 > > Modified files: > cm3/m3-comm/events/src/: Tag: release_branch_cm3_5_8 > EventStubLib.m3 > cm3/m3-comm/sharedobjgen/src/: Tag: release_branch_cm3_5_8 > AstToType.m3 CodeForType.m3 > Type.i3 Type.m3 Value.m3 > cm3/m3-comm/stubgen/src/: Tag: release_branch_cm3_5_8 > AstToType.m3 CodeForType.m3 Type.i3 > Type.m3 Value.m3 > cm3/m3-db/stable/src/: Tag: release_branch_cm3_5_8 StableLog.i3 > StableLog.m3 > cm3/m3-db/stablegen/src/: Tag: release_branch_cm3_5_8 > AstToType.m3 GenModuleCode.m3 > GenTypeCode.m3 Type.i3 Type.m3 > Value.m3 > cm3/m3-libs/libm3/src/pickle/ver2/: Tag: release_branch_cm3_5_8 > ConvertPacking.m3 > PickleStubs.i3 > PickleStubs.m3 > cm3/m3-libs/m3core/src/runtime/common/: Tag: > release_branch_cm3_5_8 > RTBuiltin.mx > RTPacking.i3 > RTPacking.m3 RTTipe.i3 > RTTipe.m3 > cm3/m3-sys/m3cggen/src/: Tag: release_branch_cm3_5_8 Main.m3 > cm3/m3-sys/m3front/src/builtinTypes/: Tag: > release_branch_cm3_5_8 > BuiltinTypes.m3 m3makefile > cm3/m3-sys/m3front/src/misc/: Tag: release_branch_cm3_5_8 CG.i3 > CG.m3 TipeDesc.i3 Token.m3 > cm3/m3-sys/m3front/src/types/: Tag: release_branch_cm3_5_8 > RecordType.i3 RecordType.m3 > SubrangeType.m3 > cm3/m3-sys/m3middle/src/: Tag: release_branch_cm3_5_8 M3CG.i3 > M3CG.m3 M3CG_BinRd.m3 M3CG_BinWr.m3 > M3CG_Binary.i3 M3CG_Check.m3 > M3CG_Ops.i3 M3CG_Rd.m3 M3CG_Wr.m3 > cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 > QCompiler.m3 QScanner.i3 > cm3/m3-sys/m3tools/src/: Tag: release_branch_cm3_5_8 M3Const.m3 > M3Type.i3 M3Type.m3 > cm3/m3-tools/m3browser/src/: Tag: release_branch_cm3_5_8 Main.m3 > cm3/m3-tools/m3tk/src/fe/: Tag: release_branch_cm3_5_8 > StandardAsText.m3 WiredStandard.m3 > cm3/m3-tools/m3tk/src/pl/: Tag: release_branch_cm3_5_8 > M3LTextToType.m3 M3LTypeEquiv.m3 > M3LTypeToText.i3 M3LTypeToText.m3 > cm3/m3-tools/m3tk/src/sem/: Tag: release_branch_cm3_5_8 > M3CMkStd.m3 M3CStdTypes.i3 > M3CStdTypes.m3 M3CTypeChkUtil.i3 > M3CTypeChkUtil.m3 > cm3/m3-tools/m3tk/src/syn/: Tag: release_branch_cm3_5_8 > M3CLex.m3 M3CParse.m3 M3CToken.i3 > Added files: > cm3/m3-sys/m3front/src/builtinTypes/: Tag: > release_branch_cm3_5_8 > LCard.i3 LCard.m3 > > Log message: > copy from head: LONGINT, LONGCARD, and atomics come along for the ride > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 4.txt URL: From hosking at cs.purdue.edu Sat Jan 16 19:51:41 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 16 Jan 2010 13:51:41 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100116114413.9A1352474001@birch.elegosoft.com> References: <20100116114413.9A1352474001@birch.elegosoft.com> Message-ID: <176BC4BE-B881-49C1-A24E-ABBED1AE46EC@cs.purdue.edu> m3middle? On 16 Jan 2010, at 12:44, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/16 12:44:13 > > Modified files: > cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c > > Log message: > fix warnings, optimize, calling conventions; though it seems maybe we could implement this in Modula-3 well enough?, maybe even in m3middle? -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Jan 16 20:53:51 2010 From: jay.krell at cornell.edu (Jay K) Date: Sat, 16 Jan 2010 19:53:51 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <176BC4BE-B881-49C1-A24E-ABBED1AE46EC@cs.purdue.edu> References: <20100116114413.9A1352474001@birch.elegosoft.com>, <176BC4BE-B881-49C1-A24E-ABBED1AE46EC@cs.purdue.edu> Message-ID: What I meant was, somewhere, either m3middle or m3front, or with extern pragmas, you could generate calls to abort instead of functions that call abort. Not a big deal. - Jay From: hosking at cs.purdue.edu Date: Sat, 16 Jan 2010 13:51:41 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 m3middle? On 16 Jan 2010, at 12:44, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:44:13 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: fix warnings, optimize, calling conventions; though it seems maybe we could implement this in Modula-3 well enough?, maybe even in m3middle? -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Jan 16 20:54:35 2010 From: jay.krell at cornell.edu (Jay K) Date: Sat, 16 Jan 2010 19:54:35 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <176BC4BE-B881-49C1-A24E-ABBED1AE46EC@cs.purdue.edu> References: <20100116114413.9A1352474001@birch.elegosoft.com>, <176BC4BE-B881-49C1-A24E-ABBED1AE46EC@cs.purdue.edu> Message-ID: m3middle/Target.m3 knows which platforms have a stack walker. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; jkrell at elego.de CC: m3commit at elegosoft.com Subject: RE: [M3commit] CVS Update: cm3 Date: Sat, 16 Jan 2010 19:53:51 +0000 What I meant was, somewhere, either m3middle or m3front, or with extern pragmas, you could generate calls to abort instead of functions that call abort. Not a big deal. - Jay From: hosking at cs.purdue.edu Date: Sat, 16 Jan 2010 13:51:41 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 m3middle? On 16 Jan 2010, at 12:44, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:44:13 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: fix warnings, optimize, calling conventions; though it seems maybe we could implement this in Modula-3 well enough?, maybe even in m3middle? -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Sat Jan 16 20:58:23 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 20:58:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116195823.50BAB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 20:58:23 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: dtoa.h Log message: use error directive instead of plain text; ok, maybe that's a 'new' feature, use both From jkrell at elego.de Sat Jan 16 20:59:33 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 20:59:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116195933.215C82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 20:59:33 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: dtoa.h Log message: quash an innocuous warning From jkrell at elego.de Sat Jan 16 21:13:44 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 21:13:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116201344.29C5C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 21:13:44 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: dtoa.h Log message: quash all but one assignment within conditional warning with gcc -Wall by adding parens where the current source does the same From jkrell at elego.de Sat Jan 16 21:26:33 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 21:26:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116202633.196A02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 21:26:33 Modified files: cm3/m3-libs/m3core/src/C/Common/: CerrnoC.c CsignalC.c CstdioC.c CstdlibC.c CstringC.c cm3/m3-libs/m3core/src/Csupport/Common/: hand.c cm3/m3-libs/m3core/src/runtime/WIN32/: RTOSc.c cm3/m3-libs/m3core/src/runtime/common/: RTIOc.c RTLinkerC.c RTMiscC.c RTUntracedMemoryC.c cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c cm3/m3-libs/m3core/src/unix/Common/: Uexec.c Uin.c Unetdb.c UnixC.c UnixLink.c Uprocess.c UstatC.c UtimeC.c Uuio.c Log message: just remove all the #pragma optimize, not a big deal either way From jkrell at elego.de Sat Jan 16 21:27:49 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 21:27:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116202749.7F60C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 21:27:49 Modified files: cm3/m3-libs/sysutils/src/: FSUtils.i3 FSUtilsUnsafe.i3 cm3/m3-libs/sysutils/src/POSIX/: FSUnix_cm3.m3 FSUnix_pm3.m3 cm3/m3-libs/sysutils/src/WIN32/: FSysWin32.m3 Log message: expose GetFileSize():INTEGER for >2GB on 64 bit maybe just remove this though, no current users From jkrell at elego.de Sat Jan 16 21:28:26 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 21:28:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116202826.B88D32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 21:28:26 Modified files: cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c SystemC.c Log message: remove #pragma optimize, not a big deal either way From jkrell at elego.de Sat Jan 16 21:29:57 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 21:29:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116202957.DD54A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 21:29:57 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTUntracedMemoryC.c Log message: missing an important muliplication; code not used yet From hosking at cs.purdue.edu Sun Jan 17 01:25:29 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 16 Jan 2010 19:25:29 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100116114413.9A1352474001@birch.elegosoft.com>, <176BC4BE-B881-49C1-A24E-ABBED1AE46EC@cs.purdue.edu> Message-ID: It would be an unnecessary complication of the compiler. Better to leave the aborts in the library. On 16 Jan 2010, at 14:54, Jay K wrote: > m3middle/Target.m3 knows which platforms have a stack walker. > > - Jay > > > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu; jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: RE: [M3commit] CVS Update: cm3 > Date: Sat, 16 Jan 2010 19:53:51 +0000 > > What I meant was, somewhere, either m3middle or m3front, or with extern pragmas, you could generate calls to abort instead of functions that call abort. Not a big deal. > > - Jay > > > > From: hosking at cs.purdue.edu > Date: Sat, 16 Jan 2010 13:51:41 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > m3middle? > > On 16 Jan 2010, at 12:44, Jay Krell wrote: > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/16 12:44:13 > > Modified files: > cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c > > Log message: > fix warnings, optimize, calling conventions; though it seems maybe we could implement this in Modula-3 well enough?, maybe even in m3middle? > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Jan 17 01:58:45 2010 From: jay.krell at cornell.edu (Jay K) Date: Sun, 17 Jan 2010 00:58:45 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100116114413.9A1352474001@birch.elegosoft.com>, <176BC4BE-B881-49C1-A24E-ABBED1AE46EC@cs.purdue.edu> , Message-ID: ok Subject: Re: [M3commit] CVS Update: cm3 From: hosking at cs.purdue.edu Date: Sat, 16 Jan 2010 19:25:29 -0500 CC: jkrell at elego.de; m3commit at elegosoft.com To: jay.krell at cornell.edu It would be an unnecessary complication of the compiler. Better to leave the aborts in the library. On 16 Jan 2010, at 14:54, Jay K wrote: m3middle/Target.m3 knows which platforms have a stack walker. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; jkrell at elego.de CC: m3commit at elegosoft.com Subject: RE: [M3commit] CVS Update: cm3 Date: Sat, 16 Jan 2010 19:53:51 +0000 What I meant was, somewhere, either m3middle or m3front, or with extern pragmas, you could generate calls to abort instead of functions that call abort. Not a big deal. - Jay From: hosking at cs.purdue.edu Date: Sat, 16 Jan 2010 13:51:41 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 m3middle? On 16 Jan 2010, at 12:44, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:44:13 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: fix warnings, optimize, calling conventions; though it seems maybe we could implement this in Modula-3 well enough?, maybe even in m3middle? -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Sun Jan 17 04:04:38 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 4:04:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117030438.ACDEF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 04:04:38 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: spaces in comments From jkrell at elego.de Sun Jan 17 07:18:29 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 7:18:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117061829.EA6042474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 07:18:29 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: fix bugs, warnings, and crashes (though the crashes are perhaps appropriate) unoptimized LONG_MIN divided by negative numbers give negative result but should be positive optimized version gives correct result gcc 4.2 optimized LONG_MIN divided by -1 raises an exception (possibly ok) gcc-4.2 -O2 -Wstrict-overflow=4 gives warnings about signed overlfow; guidance is to use unsigned The magnitude of no result should be changed here. Test code is included. Old versions are retained and exercised by test code, compared to new versions, altered only to avoid the exception. Passing int64 in K&R style also doesn't work; always use ANSI form; I do have HP-UX with K&R only compiler, revisit that later. All testing done on Darwin/x86 and Darwin/amd64, with gcc 4.2.1. Will test others shortly but hard to imagine there is anything wrong here. Unsigned operations are much better defined across all platforms and Darwin/x86/amd64 merit fixing. From jkrell at elego.de Sun Jan 17 07:31:38 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 7:31:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117063138.CD78C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 07:31:38 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: support strange limits.h that has maximum 64bit integer but not minimum (Linux/powerpc at least with no special switches) From jkrell at elego.de Sun Jan 17 07:48:00 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 7:48:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117064800.611D12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 07:48:00 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: cleanup: remove ugly indentation use macros and typedefs for genericity and incidentally for inlining move test code out of main into TestDiv nest last part in else no semantic change From jkrell at elego.de Sun Jan 17 07:51:14 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 7:51:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117065114.BBEAA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 07:51:14 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: disabl test code From jkrell at elego.de Sun Jan 17 08:02:31 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 8:02:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117070232.1EB242474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 08:02:31 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: fix all non-NT platforms (__cdecl) and always use ANSI instead of K&R for now From jkrell at elego.de Sun Jan 17 08:16:08 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 8:16:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117071608.AC28C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 08:16:08 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: support more limits.h (VC 2.0) and quash warnings From jkrell at elego.de Sun Jan 17 08:27:08 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 8:27:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117072708.5AEAC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 08:27:08 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: I forgot to put parens in the macros, but it was ok. From jkrell at elego.de Sun Jan 17 09:41:33 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 9:41:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117084133.C22722474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 09:41:33 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: better: use direct division for anything with a zero or same signs only use unsigned if signs vary From jkrell at elego.de Sun Jan 17 09:44:06 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 9:44:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117084406.701342474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 09:44:06 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: fix comment: -Wstrict-overflow=4 is required to see the problem (or just run a test of unoptimized code..) From jkrell at elego.de Sun Jan 17 09:45:06 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 9:45:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117084506.A6CD32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 09:45:06 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: p.s.: restore trap for LONG_MIN / -1, depending on optimization, it seems reasonable From jkrell at elego.de Sun Jan 17 09:59:54 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 9:59:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117085954.8618B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 09:59:54 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: move up typedefs just to eliminate cascade error on ancient compilers From jkrell at elego.de Sun Jan 17 10:02:24 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 10:02:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117090224.C99552474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 10:02:24 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: use friendly macro From jkrell at elego.de Sun Jan 17 14:23:01 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 14:23:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117132301.52D252474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 14:23:01 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: also fix mod where inputs are minimum and negative Modula-3 mod (as opposed to every other programming language) is always supposed to have the sign of its second input, or be 0 However it was backwards, depending on compiler and optimizer (optimizer tends to *fix* the bug) test code included, much cleaner this time (see http://www.modula3.com/cm3/doc/reference/arithmetic.html) From jkrell at elego.de Sun Jan 17 14:28:22 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 14:28:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117132822.97DCC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 14:28:22 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: slight cleanup: #includes, better names for test functions, count more of the errors in the old versions From jkrell at elego.de Sun Jan 17 14:33:11 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 14:33:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117133311.B749D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 14:33:10 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: Tag: release_branch_cm3_5_8 ProcessPosixCommon.m3 Log message: go back a version: Unix.sleep isn't available in release branch From jkrell at elego.de Sun Jan 17 15:08:18 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 15:08:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117140818.B1AE62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 15:08:18 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: test more inputs, and random numbers (though not very random) From jkrell at elego.de Sun Jan 17 15:15:05 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 15:15:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117141505.E31142474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 15:15:05 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: test yet more values From jkrell at elego.de Sun Jan 17 15:50:54 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 15:50:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117145055.89C8B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 15:50:54 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: cleanup test code and get a little more coverage; there seems to be a problem From jkrell at elego.de Sun Jan 17 15:55:54 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 15:55:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117145554.C4A0F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 15:55:54 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: avoid test cases that overflow, that was the problem; mainline code doesn't special case overflow though From jkrell at elego.de Mon Jan 18 02:26:54 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 2:26:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118012654.326B82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 02:26:54 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: only compute a < 0 and b < 0 once per function (div and mod) From jkrell at elego.de Mon Jan 18 10:36:11 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 10:36:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118093612.13A502474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 10:36:11 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: move matching runctions next to each other, remove inconsistent extra parens From jkrell at elego.de Mon Jan 18 10:37:19 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 10:37:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118093719.86D582474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 10:37:19 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: check common case first From jkrell at elego.de Mon Jan 18 11:02:05 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 11:02:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118100205.8AB912474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 11:02:05 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Tag: release_branch_cm3_5_8 Unix.i3 UnixC.c Log message: bring over sleep wrapper from head From jkrell at elego.de Mon Jan 18 11:06:09 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 11:06:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118100609.40AA92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 11:06:09 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Tag: release_branch_cm3_5_8 Unix.i3 Log message: import unsigned From jkrell at elego.de Mon Jan 18 12:12:25 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 12:12:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118111225.C48D32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 12:12:25 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 Log message: add Negate function From jkrell at elego.de Mon Jan 18 14:15:50 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 14:15:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118131550.59A2B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 14:15:50 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: disable test code From jkrell at elego.de Mon Jan 18 14:18:18 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 14:18:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118131818.A8FDE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 14:18:18 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: rename 'nu' to 'current' ('new' shouldn't be used, it conflicts with C++) From jkrell at elego.de Mon Jan 18 14:28:43 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 14:28:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118132843.E768D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 14:28:43 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: add more constants for m3back; restore more verbose form that makes it easier to see these are arrays of bytes From hosking at cs.purdue.edu Mon Jan 18 15:11:02 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 18 Jan 2010 09:11:02 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100118132843.E768D2474001@birch.elegosoft.com> References: <20100118132843.E768D2474001@birch.elegosoft.com> Message-ID: Jay, m3middle is intended for m3front as the client. Not m3back. If you need all these constants you should put them somewhere in m3back. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 18 Jan 2010, at 14:28, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/18 14:28:43 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 > > Log message: > add more constants for m3back; restore more verbose form that makes it easier to see these are arrays of bytes -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at elego.de Mon Jan 18 15:25:00 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 18 Jan 2010 15:25:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118142500.5BC8A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/18 15:25:00 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: Restore some readability! IBytes is declared as bytes so these values can *only* be bytes statically! Jay, these probably really don't belong here anyway. Shouldn't you be making use of the Target types instead? All of the constants you need are declared there. I don't see why you need to clutter up TInt. [Moreover, you have unsigned constants in the signed integer interface (TInt instead of TWord).] But I don't think any of this belongs here in the first place! For example: Target.Int16.min Target.Word8.max etc. From jay.krell at cornell.edu Mon Jan 18 21:52:36 2010 From: jay.krell at cornell.edu (Jay K) Date: Mon, 18 Jan 2010 20:52:36 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100118132843.E768D2474001@birch.elegosoft.com>, Message-ID: Putting them elsewhere violates the opacity. Not using this code in m3back would require duplication. m3back does recieve plenty of Target.Int parameters, and already uses TInt and maybe TWord, and TFloat. Hard to deal with the opaque parameters unless TInt is available... - Jay From: hosking at cs.purdue.edu Date: Mon, 18 Jan 2010 09:11:02 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 Jay, m3middle is intended for m3front as the client. Not m3back. If you need all these constants you should put them somewhere in m3back. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 On 18 Jan 2010, at 14:28, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 14:28:43 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: add more constants for m3back; restore more verbose form that makes it easier to see these are arrays of bytes -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Jan 18 22:57:24 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 18 Jan 2010 16:57:24 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100118132843.E768D2474001@birch.elegosoft.com>, Message-ID: <2C0A6815-97C9-48D0-AFF6-A1252636BE04@cs.purdue.edu> On 18 Jan 2010, at 15:52, Jay K wrote: > Putting them elsewhere violates the opacity. What's wrong with Target.Int8.max/min, etc.? Also, why should unsigned values be in TInt instead of TWord? > Not using this code in m3back would require duplication. Understood. > m3back does recieve plenty of Target.Int parameters, and already uses TInt and maybe TWord, and TFloat. > Hard to deal with the opaque parameters unless TInt is available... Nothing wrong with using TInt. Just use Target.x.min/max, instead of TInt consts. > > - Jay > > From: hosking at cs.purdue.edu > Date: Mon, 18 Jan 2010 09:11:02 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Jay, > > m3middle is intended for m3front as the client. > Not m3back. If you need all these constants you should put them somewhere in m3back. > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 > > > > > On 18 Jan 2010, at 14:28, Jay Krell wrote: > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/18 14:28:43 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 > > Log message: > add more constants for m3back; restore more verbose form that makes it easier to see these are arrays of bytes > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Jan 18 23:57:08 2010 From: jay.krell at cornell.edu (Jay K) Date: Mon, 18 Jan 2010 22:57:08 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <2C0A6815-97C9-48D0-AFF6-A1252636BE04@cs.purdue.edu> References: <20100118132843.E768D2474001@birch.elegosoft.com>, , , , <2C0A6815-97C9-48D0-AFF6-A1252636BE04@cs.purdue.edu> Message-ID: Maybe I'll use those. I like a very direct mechanical translation where I can. IF foo> bar => IF TInt.GT(foo, bar) whereas I could have used: => IF TInt.LT(bar, foo) and not introduced GT. imm := 16_FFFF => imm := TInt.FFFF whereas I could have used, had I known/though of it. Target.UInt16.max or such. TInt vs. TWord, ok. Their distinction is not always clear to me. For example TWord doesn't have as many conversion functions. I think NT386 mainly needs this stuff for efficiency not actually making it work. In particular it does constant folding. And it checks for it hi/lo/range checks can be eliminated -- which I suspect is redundant with m3front. I find the "n" parameter to FromInt confusing. Most uses I see use Target.Integer.bytes so I do too, but I'm not sure. That's a reason for forming constants, to avoid the unclear FromInt function. Why can't I just pass a host integer? Is that ambiguous? - Jay ________________________________ > From: hosking at cs.purdue.edu > Date: Mon, 18 Jan 2010 16:57:24 -0500 > To: jay.krell at cornell.edu > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > > > On 18 Jan 2010, at 15:52, Jay K wrote: > > Putting them elsewhere violates the opacity. > > What's wrong with Target.Int8.max/min, etc.? > > Also, why should unsigned values be in TInt instead of TWord? > > Not using this code in m3back would require duplication. > > Understood. > > m3back does recieve plenty of Target.Int parameters, and already uses TInt and maybe TWord, and TFloat. > Hard to deal with the opaque parameters unless TInt is available... > > Nothing wrong with using TInt. Just use Target.x.min/max, instead of TInt consts. > > > - Jay > > ________________________________ > From: hosking at cs.purdue.edu > Date: Mon, 18 Jan 2010 09:11:02 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Jay, > > m3middle is intended for m3front as the client. > Not m3back. If you need all these constants you should put them somewhere in m3back. > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 > > > > > On 18 Jan 2010, at 14:28, Jay Krell wrote: > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/18 14:28:43 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 > > Log message: > add more constants for m3back; restore more verbose form that makes it easier to see these are arrays of bytes > > > From jay.krell at cornell.edu Tue Jan 19 08:56:31 2010 From: jay.krell at cornell.edu (Jay K) Date: Tue, 19 Jan 2010 07:56:31 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100118142500.5BC8A2474001@birch.elegosoft.com> References: <20100118142500.5BC8A2474001@birch.elegosoft.com> Message-ID: > Restore some readability! fyi, the terser forms were my own recent introduction. There is some readability value in padding out to two digits, and as a side affect, it frees up "FF" and such to be actual Target.Int. - Jay > Date: Mon, 18 Jan 2010 15:25:00 +0000 > To: m3commit at elegosoft.com > From: hosking at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: hosking at birch. 10/01/18 15:25:00 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 > > Log message: > Restore some readability! IBytes is declared as bytes so these values can > *only* be bytes statically! Jay, these probably really don't belong here > anyway. Shouldn't you be making use of the Target types instead? All of the > constants you need are declared there. I don't see why you need to clutter up > TInt. [Moreover, you have unsigned constants in the signed integer interface > (TInt instead of TWord).] But I don't think any of this belongs here in the > first place! > > For example: > > Target.Int16.min > Target.Word8.max > etc. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Wed Jan 20 12:44:57 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 20 Jan 2010 12:44:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100120114458.064CE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/20 12:44:57 Modified files: cm3/m3-sys/m3front/src/misc/: Error.i3 Log message: fix typo in comment From jkrell at elego.de Wed Jan 20 13:56:22 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 20 Jan 2010 13:56:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100120125622.A7DA52474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/20 13:56:22 Modified files: cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 Stackx86.i3 Stackx86.m3 cm3/m3-sys/m3front/src/misc/: CG.m3 Error.i3 Error.m3 cm3/m3-sys/m3middle/src/: M3CG_BinWr.m3 M3CG_Check.m3 M3CG_Ops.i3 M3CG_Wr.m3 cm3/m3-sys/m3staloneback/src/: Main.m3 Log message: at warning callback so backends can issue warnings, not just errors From jay.krell at cornell.edu Wed Jan 20 13:57:42 2010 From: jay.krell at cornell.edu (Jay K) Date: Wed, 20 Jan 2010 12:57:42 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100120125622.A7DA52474001@birch.elegosoft.com> References: <20100120125622.A7DA52474001@birch.elegosoft.com> Message-ID: diff is attached (not sure how else you can easily find it with cvs...) > Date: Wed, 20 Jan 2010 13:56:22 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/20 13:56:22 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > Stackx86.i3 Stackx86.m3 > cm3/m3-sys/m3front/src/misc/: CG.m3 Error.i3 Error.m3 > cm3/m3-sys/m3middle/src/: M3CG_BinWr.m3 M3CG_Check.m3 > M3CG_Ops.i3 M3CG_Wr.m3 > cm3/m3-sys/m3staloneback/src/: Main.m3 > > Log message: > at warning callback so backends can issue warnings, not just errors > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 3.txt URL: From jkrell at elego.de Wed Jan 20 16:01:32 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 20 Jan 2010 16:01:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100120150133.04F542474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/20 16:01:32 Modified files: cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 M3x86Rep.i3 Stackx86.i3 Stackx86.m3 cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 Log message: convert much of m3back to use Target.Int instead of INTEGER This should at least allow it to propagate constant LONGINTs as well as perhaps otherwise help with implementing LONGINT, since the virtual stack is now of Target.Int instead of INTEGER Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead Also note that there's still a lot of "INTEGER" used. From jay.krell at cornell.edu Wed Jan 20 16:02:27 2010 From: jay.krell at cornell.edu (Jay K) Date: Wed, 20 Jan 2010 15:02:27 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100120150133.04F542474001@birch.elegosoft.com> References: <20100120150133.04F542474001@birch.elegosoft.com> Message-ID: diff attached > Date: Wed, 20 Jan 2010 16:01:32 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/20 16:01:32 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > convert much of m3back to use Target.Int instead of INTEGER > This should at least allow it to propagate constant LONGINTs > as well as perhaps otherwise help with implementing LONGINT, > since the virtual stack is now of Target.Int instead of INTEGER > > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead > > Also note that there's still a lot of "INTEGER" used. > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 1.txt URL: From jay.krell at cornell.edu Wed Jan 20 16:05:23 2010 From: jay.krell at cornell.edu (Jay K) Date: Wed, 20 Jan 2010 15:05:23 +0000 Subject: [M3commit] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: References: <20100120150133.04F542474001@birch.elegosoft.com>, Message-ID: This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. I did look through pretty much every single line in search of the one bug I saw working on it. It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. Which broke INC, it was adding 0 instead 1. You could see the bug in RTIO.PutString where it just kept outputing the first character. So I use TInt.Multiply instead. - Jay From: jay.krell at cornell.edu To: jkrell at elego.de; m3commit at elegosoft.com Date: Wed, 20 Jan 2010 15:02:27 +0000 Subject: Re: [M3commit] CVS Update: cm3 diff attached > Date: Wed, 20 Jan 2010 16:01:32 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/20 16:01:32 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > convert much of m3back to use Target.Int instead of INTEGER > This should at least allow it to propagate constant LONGINTs > as well as perhaps otherwise help with implementing LONGINT, > since the virtual stack is now of Target.Int instead of INTEGER > > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead > > Also note that there's still a lot of "INTEGER" used. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Wed Jan 20 16:09:07 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 20 Jan 2010 16:09:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100120150908.0B3BB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/20 16:09:07 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Log message: remove assert that was hunting for the 1 => 0 corruption, turns out it was TWord.Multiply From hosking at cs.purdue.edu Thu Jan 21 00:52:36 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 20 Jan 2010 18:52:36 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100120125622.A7DA52474001@birch.elegosoft.com> References: <20100120125622.A7DA52474001@birch.elegosoft.com> Message-ID: I don't understand what is going on here. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 20 Jan 2010, at 13:56, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/20 13:56:22 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > Stackx86.i3 Stackx86.m3 > cm3/m3-sys/m3front/src/misc/: CG.m3 Error.i3 Error.m3 > cm3/m3-sys/m3middle/src/: M3CG_BinWr.m3 M3CG_Check.m3 > M3CG_Ops.i3 M3CG_Wr.m3 > cm3/m3-sys/m3staloneback/src/: Main.m3 > > Log message: > at warning callback so backends can issue warnings, not just errors -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Jan 21 00:54:18 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 20 Jan 2010 18:54:18 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100120125622.A7DA52474001@birch.elegosoft.com> Message-ID: <2B939D34-18BE-48B8-9C60-6AF7F3E5CF06@cs.purdue.edu> OK, I see what's going on. Why would you *ever* have a warning instead of an error in the backend? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 20 Jan 2010, at 07:57, Jay K wrote: > diff is attached (not sure how else you can easily find it with cvs...) > > > > Date: Wed, 20 Jan 2010 13:56:22 +0000 > > To: m3commit at elegosoft.com > > From: jkrell at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/20 13:56:22 > > > > Modified files: > > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > > Stackx86.i3 Stackx86.m3 > > cm3/m3-sys/m3front/src/misc/: CG.m3 Error.i3 Error.m3 > > cm3/m3-sys/m3middle/src/: M3CG_BinWr.m3 M3CG_Check.m3 > > M3CG_Ops.i3 M3CG_Wr.m3 > > cm3/m3-sys/m3staloneback/src/: Main.m3 > > > > Log message: > > at warning callback so backends can issue warnings, not just errors > > > <3.txt> -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Jan 21 00:56:10 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 20 Jan 2010 18:56:10 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100120150133.04F542474001@birch.elegosoft.com> References: <20100120150133.04F542474001@birch.elegosoft.com> Message-ID: On 20 Jan 2010, at 16:01, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/20 16:01:32 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > convert much of m3back to use Target.Int instead of INTEGER > This should at least allow it to propagate constant LONGINTs > as well as perhaps otherwise help with implementing LONGINT, > since the virtual stack is now of Target.Int instead of INTEGER > > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead What???????? > > Also note that there's still a lot of "INTEGER" used. From hosking at cs.purdue.edu Thu Jan 21 00:59:30 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 20 Jan 2010 18:59:30 -0500 Subject: [M3commit] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: References: <20100120150133.04F542474001@birch.elegosoft.com>, Message-ID: <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu> Where's the bug in TWord.Multiply? If there were a bug we would have seen it by now surely? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 20 Jan 2010, at 10:05, Jay K wrote: > This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. > I did look through pretty much every single line in search of the one bug I saw working on it. > It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. > Which broke INC, it was adding 0 instead 1. > You could see the bug in RTIO.PutString where it just kept outputing the first character. > So I use TInt.Multiply instead. > > - Jay > > From: jay.krell at cornell.edu > To: jkrell at elego.de; m3commit at elegosoft.com > Date: Wed, 20 Jan 2010 15:02:27 +0000 > Subject: Re: [M3commit] CVS Update: cm3 > > diff attached > > > > > > > > Date: Wed, 20 Jan 2010 16:01:32 +0000 > > To: m3commit at elegosoft.com > > From: jkrell at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/20 16:01:32 > > > > Modified files: > > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 > > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > > > Log message: > > convert much of m3back to use Target.Int instead of INTEGER > > This should at least allow it to propagate constant LONGINTs > > as well as perhaps otherwise help with implementing LONGINT, > > since the virtual stack is now of Target.Int instead of INTEGER > > > > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead > > > > Also note that there's still a lot of "INTEGER" used. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Jan 21 02:00:39 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 20 Jan 2010 20:00:39 -0500 Subject: [M3commit] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu> References: <20100120150133.04F542474001@birch.elegosoft.com>, <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu> Message-ID: Jay, I don't know what you are talking about there being a bug in TWord.Multiply. This little program prints out 2, as would be expected: MODULE Main; IMPORT RTIO, TInt, TWord, Target; VAR i := TInt.Two; j: Target.Int; buf: ARRAY[0..10] OF CHAR; BEGIN TWord.Multiply (i, TInt.One, j); FOR k := 0 TO TInt.ToChars (i, buf) DO RTIO.PutChar(buf[k]); END; RTIO.PutChar('\n'); RTIO.Flush(); END Main. On 20 Jan 2010, at 18:59, Tony Hosking wrote: > Where's the bug in TWord.Multiply? > If there were a bug we would have seen it by now surely? > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 | Mobile +1 765 427 5484 > > > > > On 20 Jan 2010, at 10:05, Jay K wrote: > >> This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. >> I did look through pretty much every single line in search of the one bug I saw working on it. >> It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. >> Which broke INC, it was adding 0 instead 1. >> You could see the bug in RTIO.PutString where it just kept outputing the first character. >> So I use TInt.Multiply instead. >> >> - Jay >> >> From: jay.krell at cornell.edu >> To: jkrell at elego.de; m3commit at elegosoft.com >> Date: Wed, 20 Jan 2010 15:02:27 +0000 >> Subject: Re: [M3commit] CVS Update: cm3 >> >> diff attached >> >> >> >> >> >> >> > Date: Wed, 20 Jan 2010 16:01:32 +0000 >> > To: m3commit at elegosoft.com >> > From: jkrell at elego.de >> > Subject: [M3commit] CVS Update: cm3 >> > >> > CVSROOT: /usr/cvs >> > Changes by: jkrell at birch. 10/01/20 16:01:32 >> > >> > Modified files: >> > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 >> > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 >> > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 >> > >> > Log message: >> > convert much of m3back to use Target.Int instead of INTEGER >> > This should at least allow it to propagate constant LONGINTs >> > as well as perhaps otherwise help with implementing LONGINT, >> > since the virtual stack is now of Target.Int instead of INTEGER >> > >> > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead >> > >> > Also note that there's still a lot of "INTEGER" used. >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 21 03:52:13 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 21 Jan 2010 02:52:13 +0000 Subject: [M3commit] [M3devel] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: References: <20100120150133.04F542474001@birch.elegosoft.com>, , , , <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu>, Message-ID: I'll look into it again. There's definitely a problem somewhere. Maybe in my change. Maybe. Using TInt.Multiply vs. TWord.Multiply made the difference between INC() incrementing by zero or the correct amount. I had some number, I multiplied it by a variable that also happened to be 1, and I got zero. This was the only problem I ran into in changing from INTEGER to Target.Int. - Jay ________________________________ > From: hosking at cs.purdue.edu > Date: Wed, 20 Jan 2010 20:00:39 -0500 > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com; jay.krell at cornell.edu > Subject: Re: [M3devel] [M3commit] m3back using Target.Int in place of INTEGER a lot now > > > > > Jay, I don't know what you are talking about there being a bug in TWord.Multiply. > > This little program prints out 2, as would be expected: > > MODULE Main; > IMPORT RTIO, TInt, TWord, Target; > > VAR i := TInt.Two; > j: Target.Int; > buf: ARRAY[0..10] OF CHAR; > BEGIN > TWord.Multiply (i, TInt.One, j); > FOR k := 0 TO TInt.ToChars (i, buf) DO > RTIO.PutChar(buf[k]); > END; > RTIO.PutChar('\n'); > RTIO.Flush(); > END Main. > > > On 20 Jan 2010, at 18:59, Tony Hosking wrote: > > Where's the bug in TWord.Multiply? > If there were a bug we would have seen it by now surely? > > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 | Mobile +1 765 427 5484 > > > > > > > On 20 Jan 2010, at 10:05, Jay K wrote: > > This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. > I did look through pretty much every single line in search of the one bug I saw working on it. > It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. > Which broke INC, it was adding 0 instead 1. > You could see the bug in RTIO.PutString where it just kept outputing the first character. > So I use TInt.Multiply instead. > > - Jay > > ________________________________ > From: jay.krell at cornell.edu > To: jkrell at elego.de; m3commit at elegosoft.com > Date: Wed, 20 Jan 2010 15:02:27 +0000 > Subject: Re: [M3commit] CVS Update: cm3 > > diff attached > > > > > > >> Date: Wed, 20 Jan 2010 16:01:32 +0000 >> To: m3commit at elegosoft.com >> From: jkrell at elego.de >> Subject: [M3commit] CVS Update: cm3 >> >> CVSROOT: /usr/cvs >> Changes by: jkrell at birch. 10/01/20 16:01:32 >> >> Modified files: >> cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 >> M3x86Rep.i3 Stackx86.i3 Stackx86.m3 >> cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 >> >> Log message: >> convert much of m3back to use Target.Int instead of INTEGER >> This should at least allow it to propagate constant LONGINTs >> as well as perhaps otherwise help with implementing LONGINT, >> since the virtual stack is now of Target.Int instead of INTEGER >> >> Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead >> >> Also note that there's still a lot of "INTEGER" used. >> > > From jay.krell at cornell.edu Thu Jan 21 08:02:41 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 21 Jan 2010 07:02:41 +0000 Subject: [M3commit] [M3devel] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: References: <20100120150133.04F542474001@birch.elegosoft.com>, , , , <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu>, Message-ID: Hm. Ok. TInt.Multiply allows aliasing but TWord.Multiply does not. MODULE Main; IMPORT RTIO, Target, TInt, TWord; VAR a,b:Target.Int; BEGIN EVAL TInt.FromInt(1, BYTESIZE(INTEGER), a); EVAL TInt.FromInt(1, BYTESIZE(INTEGER), b); TWord.Multiply(a, b, a); RTIO.PutText(TInt.ToText(a)); RTIO.Flush(); END Main. prints 0. The code in m3back: PROCEDURE doindex_address (t: T; shift, size: INTEGER; neg: BOOLEAN) = ... (* Beware TWord.Multiply: x * 1 = 0 *) IF NOT TInt.Multiply(stop0.imm, tsize, stop0.imm) THEN t.Err("doindex_address: multiply overflowed"); END; - Jay From: hosking at cs.purdue.edu Date: Wed, 20 Jan 2010 20:00:39 -0500 To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com; m3commit at elegosoft.com; jay.krell at cornell.edu Subject: Re: [M3devel] [M3commit] m3back using Target.Int in place of INTEGER a lot now Jay, I don't know what you are talking about there being a bug in TWord.Multiply. This little program prints out 2, as would be expected: MODULE Main; IMPORT RTIO, TInt, TWord, Target; VAR i := TInt.Two; j: Target.Int; buf: ARRAY[0..10] OF CHAR; BEGIN TWord.Multiply (i, TInt.One, j); FOR k := 0 TO TInt.ToChars (i, buf) DO RTIO.PutChar(buf[k]); END; RTIO.PutChar('\n'); RTIO.Flush(); END Main. On 20 Jan 2010, at 18:59, Tony Hosking wrote: Where's the bug in TWord.Multiply? If there were a bug we would have seen it by now surely? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 On 20 Jan 2010, at 10:05, Jay K wrote: This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. I did look through pretty much every single line in search of the one bug I saw working on it. It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. Which broke INC, it was adding 0 instead 1. You could see the bug in RTIO.PutString where it just kept outputing the first character. So I use TInt.Multiply instead. - Jay From: jay.krell at cornell.edu To: jkrell at elego.de; m3commit at elegosoft.com Date: Wed, 20 Jan 2010 15:02:27 +0000 Subject: Re: [M3commit] CVS Update: cm3 diff attached > Date: Wed, 20 Jan 2010 16:01:32 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/20 16:01:32 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > convert much of m3back to use Target.Int instead of INTEGER > This should at least allow it to propagate constant LONGINTs > as well as perhaps otherwise help with implementing LONGINT, > since the virtual stack is now of Target.Int instead of INTEGER > > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead > > Also note that there's still a lot of "INTEGER" used. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 21 08:14:40 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 21 Jan 2010 07:14:40 +0000 Subject: [M3commit] [M3devel] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: References: <20100120150133.04F542474001@birch.elegosoft.com>, , , , , , , <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu>, , , Message-ID: TInt.Multiply is reasonable anyway, since the code wasn't using Word.Multiply but just INTEGER *. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Thu, 21 Jan 2010 07:02:41 +0000 CC: m3devel at elegosoft.com; m3commit at elegosoft.com Subject: Re: [M3commit] [M3devel] m3back using Target.Int in place of INTEGER a lot now Hm. Ok. TInt.Multiply allows aliasing but TWord.Multiply does not. MODULE Main; IMPORT RTIO, Target, TInt, TWord; VAR a,b:Target.Int; BEGIN EVAL TInt.FromInt(1, BYTESIZE(INTEGER), a); EVAL TInt.FromInt(1, BYTESIZE(INTEGER), b); TWord.Multiply(a, b, a); RTIO.PutText(TInt.ToText(a)); RTIO.Flush(); END Main. prints 0. The code in m3back: PROCEDURE doindex_address (t: T; shift, size: INTEGER; neg: BOOLEAN) = ... (* Beware TWord.Multiply: x * 1 = 0 *) IF NOT TInt.Multiply(stop0.imm, tsize, stop0.imm) THEN t.Err("doindex_address: multiply overflowed"); END; - Jay From: hosking at cs.purdue.edu Date: Wed, 20 Jan 2010 20:00:39 -0500 To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com; m3commit at elegosoft.com; jay.krell at cornell.edu Subject: Re: [M3devel] [M3commit] m3back using Target.Int in place of INTEGER a lot now Jay, I don't know what you are talking about there being a bug in TWord.Multiply. This little program prints out 2, as would be expected: MODULE Main; IMPORT RTIO, TInt, TWord, Target; VAR i := TInt.Two; j: Target.Int; buf: ARRAY[0..10] OF CHAR; BEGIN TWord.Multiply (i, TInt.One, j); FOR k := 0 TO TInt.ToChars (i, buf) DO RTIO.PutChar(buf[k]); END; RTIO.PutChar('\n'); RTIO.Flush(); END Main. On 20 Jan 2010, at 18:59, Tony Hosking wrote: Where's the bug in TWord.Multiply? If there were a bug we would have seen it by now surely? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 On 20 Jan 2010, at 10:05, Jay K wrote: This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. I did look through pretty much every single line in search of the one bug I saw working on it. It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. Which broke INC, it was adding 0 instead 1. You could see the bug in RTIO.PutString where it just kept outputing the first character. So I use TInt.Multiply instead. - Jay From: jay.krell at cornell.edu To: jkrell at elego.de; m3commit at elegosoft.com Date: Wed, 20 Jan 2010 15:02:27 +0000 Subject: Re: [M3commit] CVS Update: cm3 diff attached > Date: Wed, 20 Jan 2010 16:01:32 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/20 16:01:32 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > convert much of m3back to use Target.Int instead of INTEGER > This should at least allow it to propagate constant LONGINTs > as well as perhaps otherwise help with implementing LONGINT, > since the virtual stack is now of Target.Int instead of INTEGER > > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead > > Also note that there's still a lot of "INTEGER" used. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Thu Jan 21 08:40:35 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 8:40:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121074035.6FD8C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 08:40:35 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Stackx86.m3 Log message: restore accidentally removed constant folding in doabs rename 't' to 'tint' avoid aliasing in TInt.Multiply; remove comment about TWord.Multiply From jkrell at elego.de Thu Jan 21 09:06:36 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 9:06:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121080636.143682474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 09:06:36 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 Stackx86.i3 Stackx86.m3 Log message: more Target.Int, less INTEGER we have to special case -FIRST(INTEGER) and let it convert to an integer, even though it doesn't fit I call this AbsMinS32 in TInt, absolute value of MinS32 From jay.krell at cornell.edu Thu Jan 21 09:09:11 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 21 Jan 2010 08:09:11 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100121080636.143682474001@birch.elegosoft.com> References: <20100121080636.143682474001@birch.elegosoft.com> Message-ID: diff attached (not otherwise discoverable with CVS as far as I know) This -FIRST(INTEGER) thing is still bugging me. Maybe we can change Lex.m3 to not use it? - Jay > Date: Thu, 21 Jan 2010 09:06:36 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/21 09:06:36 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 > cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 Stackx86.i3 > Stackx86.m3 > > Log message: > more Target.Int, less INTEGER > we have to special case -FIRST(INTEGER) and let it convert > to an integer, even though it doesn't fit > I call this AbsMinS32 in TInt, absolute value of MinS32 > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 1.txt URL: From hosking at cs.purdue.edu Thu Jan 21 09:38:45 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 21 Jan 2010 03:38:45 -0500 Subject: [M3commit] [M3devel] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: References: <20100120150133.04F542474001@birch.elegosoft.com>, , , , <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu>, Message-ID: <1DFF961A-09C7-4BAF-8593-D8128577786D@cs.purdue.edu> INC is defined on INTEGER values, not Word.T. I think your problem is somewhere else. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 20 Jan 2010, at 21:52, Jay K wrote: > > I'll look into it again. > There's definitely a problem somewhere. > Maybe in my change. Maybe. > > > Using TInt.Multiply vs. TWord.Multiply made the difference > between INC() incrementing by zero or the correct amount. > I had some number, I multiplied it by a variable > that also happened to be 1, and I got zero. > This was the only problem I ran into in changing > from INTEGER to Target.Int. > > > - Jay > > ________________________________ >> From: hosking at cs.purdue.edu >> Date: Wed, 20 Jan 2010 20:00:39 -0500 >> To: hosking at cs.purdue.edu >> CC: m3devel at elegosoft.com; m3commit at elegosoft.com; jay.krell at cornell.edu >> Subject: Re: [M3devel] [M3commit] m3back using Target.Int in place of INTEGER a lot now >> >> >> >> >> Jay, I don't know what you are talking about there being a bug in TWord.Multiply. >> >> This little program prints out 2, as would be expected: >> >> MODULE Main; >> IMPORT RTIO, TInt, TWord, Target; >> >> VAR i := TInt.Two; >> j: Target.Int; >> buf: ARRAY[0..10] OF CHAR; >> BEGIN >> TWord.Multiply (i, TInt.One, j); >> FOR k := 0 TO TInt.ToChars (i, buf) DO >> RTIO.PutChar(buf[k]); >> END; >> RTIO.PutChar('\n'); >> RTIO.Flush(); >> END Main. >> >> >> On 20 Jan 2010, at 18:59, Tony Hosking wrote: >> >> Where's the bug in TWord.Multiply? >> If there were a bug we would have seen it by now surely? >> >> >> Antony Hosking | Associate Professor | Computer Science | Purdue University >> 305 N. University Street | West Lafayette | IN 47907 | USA >> Office +1 765 494 6001 | Mobile +1 765 427 5484 >> >> >> >> >> >> >> On 20 Jan 2010, at 10:05, Jay K wrote: >> >> This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. >> I did look through pretty much every single line in search of the one bug I saw working on it. >> It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. >> Which broke INC, it was adding 0 instead 1. >> You could see the bug in RTIO.PutString where it just kept outputing the first character. >> So I use TInt.Multiply instead. >> >> - Jay >> >> ________________________________ >> From: jay.krell at cornell.edu >> To: jkrell at elego.de; m3commit at elegosoft.com >> Date: Wed, 20 Jan 2010 15:02:27 +0000 >> Subject: Re: [M3commit] CVS Update: cm3 >> >> diff attached >> >> >> >> >> >> >>> Date: Wed, 20 Jan 2010 16:01:32 +0000 >>> To: m3commit at elegosoft.com >>> From: jkrell at elego.de >>> Subject: [M3commit] CVS Update: cm3 >>> >>> CVSROOT: /usr/cvs >>> Changes by: jkrell at birch. 10/01/20 16:01:32 >>> >>> Modified files: >>> cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 >>> M3x86Rep.i3 Stackx86.i3 Stackx86.m3 >>> cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 >>> >>> Log message: >>> convert much of m3back to use Target.Int instead of INTEGER >>> This should at least allow it to propagate constant LONGINTs >>> as well as perhaps otherwise help with implementing LONGINT, >>> since the virtual stack is now of Target.Int instead of INTEGER >>> >>> Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead >>> >>> Also note that there's still a lot of "INTEGER" used. >>> >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Jan 21 09:40:36 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 21 Jan 2010 03:40:36 -0500 Subject: [M3commit] [M3devel] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: References: <20100120150133.04F542474001@birch.elegosoft.com>, , , , <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu>, Message-ID: <8AB90935-0C2B-4BF7-80A7-D0EBA22636AC@cs.purdue.edu> You should not assume that aliasing works for any of these operations. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 21 Jan 2010, at 02:02, Jay K wrote: > Hm. Ok. TInt.Multiply allows aliasing but TWord.Multiply does not. > > > MODULE Main; > IMPORT RTIO, Target, TInt, TWord; > VAR a,b:Target.Int; > BEGIN > EVAL TInt.FromInt(1, BYTESIZE(INTEGER), a); > EVAL TInt.FromInt(1, BYTESIZE(INTEGER), b); > TWord.Multiply(a, b, a); > RTIO.PutText(TInt.ToText(a)); > RTIO.Flush(); > END Main. > > > prints 0. > > The code in m3back: > > > PROCEDURE doindex_address (t: T; shift, size: INTEGER; neg: BOOLEAN) = > ... > (* Beware TWord.Multiply: x * 1 = 0 *) > IF NOT TInt.Multiply(stop0.imm, tsize, stop0.imm) THEN > t.Err("doindex_address: multiply overflowed"); > END; > > > > - Jay > > > From: hosking at cs.purdue.edu > Date: Wed, 20 Jan 2010 20:00:39 -0500 > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com; jay.krell at cornell.edu > Subject: Re: [M3devel] [M3commit] m3back using Target.Int in place of INTEGER a lot now > > Jay, I don't know what you are talking about there being a bug in TWord.Multiply. > > This little program prints out 2, as would be expected: > > MODULE Main; > IMPORT RTIO, TInt, TWord, Target; > > VAR i := TInt.Two; > j: Target.Int; > buf: ARRAY[0..10] OF CHAR; > BEGIN > TWord.Multiply (i, TInt.One, j); > FOR k := 0 TO TInt.ToChars (i, buf) DO > RTIO.PutChar(buf[k]); > END; > RTIO.PutChar('\n'); > RTIO.Flush(); > END Main. > > > On 20 Jan 2010, at 18:59, Tony Hosking wrote: > > Where's the bug in TWord.Multiply? > If there were a bug we would have seen it by now surely? > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 > > > > > On 20 Jan 2010, at 10:05, Jay K wrote: > > This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. > I did look through pretty much every single line in search of the one bug I saw working on it. > It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. > Which broke INC, it was adding 0 instead 1. > You could see the bug in RTIO.PutString where it just kept outputing the first character. > So I use TInt.Multiply instead. > > - Jay > > From: jay.krell at cornell.edu > To: jkrell at elego.de; m3commit at elegosoft.com > Date: Wed, 20 Jan 2010 15:02:27 +0000 > Subject: Re: [M3commit] CVS Update: cm3 > > diff attached > > > > > > > > Date: Wed, 20 Jan 2010 16:01:32 +0000 > > To: m3commit at elegosoft.com > > From: jkrell at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/20 16:01:32 > > > > Modified files: > > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 > > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > > > Log message: > > convert much of m3back to use Target.Int instead of INTEGER > > This should at least allow it to propagate constant LONGINTs > > as well as perhaps otherwise help with implementing LONGINT, > > since the virtual stack is now of Target.Int instead of INTEGER > > > > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead > > > > Also note that there's still a lot of "INTEGER" used. > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 21 09:42:40 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 21 Jan 2010 08:42:40 +0000 Subject: [M3commit] [M3devel] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: <8AB90935-0C2B-4BF7-80A7-D0EBA22636AC@cs.purdue.edu> References: <20100120150133.04F542474001@birch.elegosoft.com>, , , , , , , <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu>, , , , <8AB90935-0C2B-4BF7-80A7-D0EBA22636AC@cs.purdue.edu> Message-ID: I changed it to no longer: IF NOT TInt.Multiply(stop0.imm, tsize, tint) THEN t.Err("doindex_address: multiply overflowed"); END; stop0.imm := tint; - Jay From: hosking at cs.purdue.edu Date: Thu, 21 Jan 2010 03:40:36 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com; m3commit at elegosoft.com Subject: Re: [M3commit] [M3devel] m3back using Target.Int in place of INTEGER a lot now You should not assume that aliasing works for any of these operations. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 On 21 Jan 2010, at 02:02, Jay K wrote: Hm. Ok. TInt.Multiply allows aliasing but TWord.Multiply does not. MODULE Main; IMPORT RTIO, Target, TInt, TWord; VAR a,b:Target.Int; BEGIN EVAL TInt.FromInt(1, BYTESIZE(INTEGER), a); EVAL TInt.FromInt(1, BYTESIZE(INTEGER), b); TWord.Multiply(a, b, a); RTIO.PutText(TInt.ToText(a)); RTIO.Flush(); END Main. prints 0. The code in m3back: PROCEDURE doindex_address (t: T; shift, size: INTEGER; neg: BOOLEAN) = ... (* Beware TWord.Multiply: x * 1 = 0 *) IF NOT TInt.Multiply(stop0.imm, tsize, stop0.imm) THEN t.Err("doindex_address: multiply overflowed"); END; - Jay From: hosking at cs.purdue.edu Date: Wed, 20 Jan 2010 20:00:39 -0500 To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com; m3commit at elegosoft.com; jay.krell at cornell.edu Subject: Re: [M3devel] [M3commit] m3back using Target.Int in place of INTEGER a lot now Jay, I don't know what you are talking about there being a bug in TWord.Multiply. This little program prints out 2, as would be expected: MODULE Main; IMPORT RTIO, TInt, TWord, Target; VAR i := TInt.Two; j: Target.Int; buf: ARRAY[0..10] OF CHAR; BEGIN TWord.Multiply (i, TInt.One, j); FOR k := 0 TO TInt.ToChars (i, buf) DO RTIO.PutChar(buf[k]); END; RTIO.PutChar('\n'); RTIO.Flush(); END Main. On 20 Jan 2010, at 18:59, Tony Hosking wrote: Where's the bug in TWord.Multiply? If there were a bug we would have seen it by now surely? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 On 20 Jan 2010, at 10:05, Jay K wrote: This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. I did look through pretty much every single line in search of the one bug I saw working on it. It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. Which broke INC, it was adding 0 instead 1. You could see the bug in RTIO.PutString where it just kept outputing the first character. So I use TInt.Multiply instead. - Jay From: jay.krell at cornell.edu To: jkrell at elego.de; m3commit at elegosoft.com Date: Wed, 20 Jan 2010 15:02:27 +0000 Subject: Re: [M3commit] CVS Update: cm3 diff attached > Date: Wed, 20 Jan 2010 16:01:32 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/20 16:01:32 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > convert much of m3back to use Target.Int instead of INTEGER > This should at least allow it to propagate constant LONGINTs > as well as perhaps otherwise help with implementing LONGINT, > since the virtual stack is now of Target.Int instead of INTEGER > > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead > > Also note that there's still a lot of "INTEGER" used. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Thu Jan 21 10:48:18 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 10:48:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121094818.A01B12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 10:48:18 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Log message: preserve locked across corrupt as before From jkrell at elego.de Thu Jan 21 10:48:55 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 10:48:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121094855.7308A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 10:48:55 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 Log message: fix newlines From jkrell at elego.de Thu Jan 21 12:52:27 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 12:52:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121115227.AACBD2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 12:52:27 Modified files: cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 M3x86Rep.i3 Stackx86.m3 Log message: initial guesses for: fence, store_ordered, load_ordered, compare_exchange, exchange MIA: fetch_and_op, any testing (is there frontend support?), support for other than 32 bit types, much clue how this stuff works :( compare_exchange should be willing to use other registers, presumably From jkrell at elego.de Thu Jan 21 14:00:23 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 14:00:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121130023.9AECA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 14:00:23 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Codex86.m3 Codex86.i3 Log message: a more convincing compare_exchange that doesn't hardcode the register allocation and seems to fit the spec From jkrell at elego.de Thu Jan 21 14:02:07 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 14:02:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121130207.5E82E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 14:02:07 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: the return type of compare_exchange doesn't need to be checked like the others From jkrell at elego.de Thu Jan 21 14:06:37 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 14:06:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121130637.DAB232474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 14:06:37 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 Log message: I forgot the lock prefix. From jkrell at elego.de Thu Jan 21 14:54:34 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 14:54:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121135434.5EA0D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 14:54:34 Modified files: cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 Log message: an initial fairly convincing implementation of fetch_and_op - but it returns the new value not the old value - still not tested, not sure frontend supports it From hosking at cs.purdue.edu Thu Jan 21 15:19:11 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 21 Jan 2010 09:19:11 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100121135434.5EA0D2474001@birch.elegosoft.com> References: <20100121135434.5EA0D2474001@birch.elegosoft.com> Message-ID: <4C4366F4-7064-4FA1-873F-179CA0721B10@cs.purdue.edu> These will all be supported in the front end soon. You should be able to extract example sequences for x86 from the gcc intrinsics. Once I get that stuff working in the gcc-based backend you'll have an alternative to seeing example sequences. On 21 Jan 2010, at 14:54, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/21 14:54:34 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > > Log message: > an initial fairly convincing implementation of fetch_and_op > - but it returns the new value not the old value > - still not tested, not sure frontend supports it -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Fri Jan 22 13:28:33 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 22 Jan 2010 13:28:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100122122833.7FBCC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/22 13:28:33 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Log message: fix another case where I broke copying 'locked' across register reinitialization (found by code inspection, not by any resulting incorrect codegen, surprising, I thought using self would make more bugs appear when they exist From jkrell at elego.de Fri Jan 22 14:02:47 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 22 Jan 2010 14:02:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100122130247.F07BA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/22 14:02:47 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 M3x86Rep.i3 Stackx86.m3 Log message: change reg from integer to array [0..1] of integer so we that we *might* enregister 64bit values and not just load, store, op all .reg uses changed to .reg[0] note that this does *not* actually add any functionality, certainly not longint many/most/all such places would need to be loops and longint needs certain special codegen (maybe some function calls -- after all, C uses function calls in a few places) From jkrell at elego.de Sat Jan 23 06:55:54 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 23 Jan 2010 6:55:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100123055554.70BD82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/23 06:55:54 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: by pattern matching I believe these are fixes From jkrell at elego.de Sat Jan 23 07:17:53 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 23 Jan 2010 7:17:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100123061753.31AB62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/23 07:17:53 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Log message: nicer way to preserve locked through InitRegister() From jkrell at elego.de Sat Jan 23 09:58:40 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 23 Jan 2010 9:58:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100123085840.F3A022474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/23 09:58:40 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: cleanup (a little less duplication) From jkrell at elego.de Sat Jan 23 16:09:07 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 23 Jan 2010 16:09:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100123150907.AE8CF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/23 16:09:07 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: just some comments: the stack protocol from M3CG_Ops.i3 missing on a few functions From jkrell at elego.de Sat Jan 23 20:34:50 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 23 Jan 2010 20:34:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100123193450.B98712474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/23 20:34:50 Modified files: cm3/m3-libs/libm3/src/fmtlex/: Lex.m3 Log message: avoid integer overflow on two's complement systems: replace -FIRST(INTEGER) with Word.Plus(-(FIRST(INTEGER) + 1), 1) (The value is then passed to Word.GT.) From jkrell at elego.de Sat Jan 23 20:42:03 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 23 Jan 2010 20:42:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100123194203.F16D72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/23 20:42:03 Modified files: cm3/m3-libs/libm3/src/fmtlex/: Lex.m3 Log message: avoid overflow on -FIRST(LONGINT) as well From jkrell at elego.de Sat Jan 23 20:42:28 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 23 Jan 2010 20:42:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100123194228.97C542474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/23 20:42:28 Modified files: cm3/m3-libs/libm3/src/fmtlex/: Lex.m3 Log message: oops 1 => 1L From jkrell at elego.de Sat Jan 23 20:44:00 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 23 Jan 2010 20:44:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100123194400.83B662474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/23 20:44:00 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Codex86.m3 Log message: no longer allow integer overflow at compiel time (no longer using warning support then) From jkrell at elego.de Sun Jan 24 03:26:16 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 3:26:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124022616.79ED32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 03:26:16 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: remove unnecessary optimization (not in the generated code, just in some simple initialization) From hosking at cs.purdue.edu Sun Jan 24 10:26:26 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 24 Jan 2010 04:26:26 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100123193450.B98712474001@birch.elegosoft.com> References: <20100123193450.B98712474001@birch.elegosoft.com> Message-ID: <2BE78F60-01EF-4401-AD30-4668DC34407B@cs.purdue.edu> Seems overdone... On 23 Jan 2010, at 20:34, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/23 20:34:50 > > Modified files: > cm3/m3-libs/libm3/src/fmtlex/: Lex.m3 > > Log message: > avoid integer overflow on two's complement systems: > replace -FIRST(INTEGER) with Word.Plus(-(FIRST(INTEGER) + 1), 1) > (The value is then passed to Word.GT.) From hosking at cs.purdue.edu Sun Jan 24 10:28:01 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 24 Jan 2010 04:28:01 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100123194228.97C542474001@birch.elegosoft.com> References: <20100123194228.97C542474001@birch.elegosoft.com> Message-ID: I really don't like this... what's wrong with allowing compile-time overflow other than that it exposes 2-s complement representation? On 23 Jan 2010, at 20:42, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/23 20:42:28 > > Modified files: > cm3/m3-libs/libm3/src/fmtlex/: Lex.m3 > > Log message: > oops 1 => 1L From jay.krell at cornell.edu Sun Jan 24 11:57:09 2010 From: jay.krell at cornell.edu (Jay K) Date: Sun, 24 Jan 2010 10:57:09 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100123194228.97C542474001@birch.elegosoft.com>, Message-ID: Imagine if FloatMode worked. And if the compile-time evaluation wasn't performed. This code would fail. Though really..you know.. I don't think making FloatMode work makes sense. It should be an interface/type thing that determines statically at compile time if overflow is trapped. - Jay > From: hosking at cs.purdue.edu > Date: Sun, 24 Jan 2010 04:28:01 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > I really don't like this... > what's wrong with allowing compile-time overflow other than that it exposes 2-s complement representation? > > On 23 Jan 2010, at 20:42, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/23 20:42:28 > > > > Modified files: > > cm3/m3-libs/libm3/src/fmtlex/: Lex.m3 > > > > Log message: > > oops 1 => 1L > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Jan 24 12:00:35 2010 From: jay.krell at cornell.edu (Jay K) Date: Sun, 24 Jan 2010 11:00:35 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <2BE78F60-01EF-4401-AD30-4668DC34407B@cs.purdue.edu> References: <20100123193450.B98712474001@birch.elegosoft.com>, <2BE78F60-01EF-4401-AD30-4668DC34407B@cs.purdue.edu> Message-ID: The previous form is not portable to systems that trap on overflow...if such a thing really makes sense. It is good practise to avoid that in C too, since signed overflow is undefined, and gcc actually sometimes mangles code that depends on signed overflow. Really, look at how I got here. By using Target.Int in m3back and not ignoring errors. And look at what I had to do to get it to compile with a warning. I had to check for a specific value and hardcode the result. This is actually needed in multiple places. When I wrote test code that resembles the Lex code, it triggered a failure to convert Target.Int to INTEGER in a different place in m3back. - Jay > From: hosking at cs.purdue.edu > Date: Sun, 24 Jan 2010 04:26:26 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Seems overdone... > > On 23 Jan 2010, at 20:34, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/23 20:34:50 > > > > Modified files: > > cm3/m3-libs/libm3/src/fmtlex/: Lex.m3 > > > > Log message: > > avoid integer overflow on two's complement systems: > > replace -FIRST(INTEGER) with Word.Plus(-(FIRST(INTEGER) + 1), 1) > > (The value is then passed to Word.GT.) > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Sun Jan 24 13:02:22 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 13:02:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124120222.A87852474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 13:02:22 Modified files: cm3/m3-sys/m3middle/src/: TWord.i3 TWord.m3 Log message: add functions LeftShift and RightShift, by moving the code out of Shift, and have Shift call them From jkrell at elego.de Sun Jan 24 13:07:41 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 13:07:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124120741.F05FF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 13:07:41 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 Log message: when pushing immediate values in the range [-128,127], use the two byte form (0x6A value) instead of 5 byte form (0x68 value..) From jkrell at elego.de Sun Jan 24 13:08:43 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 13:08:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124120843.3492A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 13:08:43 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: let 64bit types through FixReturnValue and remove redundant code from this function From jkrell at elego.de Sun Jan 24 13:12:12 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 13:12:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124121212.93C402474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 13:12:12 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: add a bunch of functions under #ifdef _WIN32 that I strongly believe will be used for initial int64 support (and may drop out as the support improves) in particular, the backend will need mainly pushimm(64bit) pushvar(64bit) and calls to these functions Once the compiler generates calls to these functions, there will be bootstrapping pain -- current m3core will be needed. make unused functions static From jkrell at elego.de Sun Jan 24 13:29:15 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 13:29:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124122915.9475D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 13:29:15 Modified files: cm3/m3-sys/m3middle/src/: TWord.i3 TWord.m3 Log message: add EQ, NE, GE, GT to augment the existing LT, LE From jkrell at elego.de Sun Jan 24 14:34:09 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 14:34:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124133410.5141C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 14:34:09 Modified files: cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 M3x86Rep.i3 Stackx86.m3 Log message: work in progress on supporting 64bit integers in particular splitting up 64bit operands into two 32bit operands also traffic a little bit more in Target.Int instead of INTEGER, but not much and more needed From jkrell at elego.de Sun Jan 24 14:41:03 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 14:41:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124134103.183892474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 14:41:03 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 Log message: split pushImm function out of pushOp From jkrell at elego.de Sun Jan 24 21:32:18 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 21:32:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124203220.7C2992474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 21:32:18 Modified files: cm3/scripts/python/: Tag: release_branch_cm3_5_8 pylib.py Log message: no change, just trigger PPC_LINUX build From jkrell at elego.de Sun Jan 24 22:20:31 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 22:20:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124212031.C24AD2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 22:20:31 Modified files: cm3/m3-sys/m3objfile/src/: M3ObjFile.i3 NTObjFile.m3 Log message: add appendBytes support that takes an ARRAY OF [0..255] This will be used by the int64/longint support. Otherwise the common way to add was via an INTEGER (look at how -default:libc is added, yuck, we scan remove that anyway) From jkrell at elego.de Mon Jan 25 08:17:46 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 25 Jan 2010 8:17:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100125071746.D26622474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/25 08:17:46 Modified files: cm3/m3-sys/m3objfile/src/: NTObjFile.m3 Log message: much cleaner albeit less safe (can we have it both ways?) From jkrell at elego.de Mon Jan 25 08:38:19 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 25 Jan 2010 8:38:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100125073820.52E2C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/25 08:38:19 Modified files: cm3/m3-sys/m3objfile/src/: NTObjFile.m3 Log message: remove entire drective section its only use was inappropriate -- for -defaultlib:libc libc.lib was always a bad idea and doesn't exist any longer and we have long since been countermanding this with -nodefaultlib in the link commands in the config file besides that, "defaultlibc:libc" was encoded as an "integer", gross From jkrell at elego.de Mon Jan 25 09:08:48 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 25 Jan 2010 9:08:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100125080849.71B1C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/25 09:08:48 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: work in progress: longint/int64 aggressively using function calls: add, subtract, multiply, divide, mod, negate, min, max, no, shift, shift_left, shift_right, rotate, rotate_left, rotate_right, swap, pop, and, or, xor, abs slight hack here is that we mangle the 64bit functions signatures and calling conventions such as to have the C compiler maintain the stack This should probably be among the first things fixed once things are working or partly working or earlier (though really the constant folding is target-independent and should be elsewhere, like in m3front) This requires updating m3core (or at least hand.obj). still to handle: insert, extract load, store (partly implemented) function parameters and return value From jkrell at elego.de Mon Jan 25 10:09:43 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 25 Jan 2010 10:09:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100125090944.0D15E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/25 10:09:43 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 Log message: rethink the pushOp changes a bit From hosking at cs.purdue.edu Tue Jan 26 00:32:30 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 25 Jan 2010 18:32:30 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100123194228.97C542474001@birch.elegosoft.com>, Message-ID: <21F5C8CD-0CCE-4155-B2FC-B5CBE61D97C3@cs.purdue.edu> Finally got a chance to check this out. It turns out that the expression -FIRST(INTEGER) actually does overflow at compile time, so it is actually a compile-time error to write: CONST v = -FIRST(INTEGER); Even worse, on a system where overflow causes a trap that code in Lex.m3 would have failed. The expression you wrote doesn't overflow at compile-time, so it is much safer, allowing: CONST v = Word.Plus(-(FIRST(INTEGER)+1), 1); Good catch! On 24 Jan 2010, at 05:57, Jay K wrote: > Imagine if FloatMode worked. > And if the compile-time evaluation wasn't performed. > This code would fail. > > > Though really..you know.. I don't think making FloatMode work makes sense. > It should be an interface/type thing that determines statically at compile time > if overflow is trapped. > > > - Jay > > > From: hosking at cs.purdue.edu > > Date: Sun, 24 Jan 2010 04:28:01 -0500 > > To: jkrell at elego.de > > CC: m3commit at elegosoft.com > > Subject: Re: [M3commit] CVS Update: cm3 > > > > I really don't like this... > > what's wrong with allowing compile-time overflow other than that it exposes 2-s complement representation? > > > > On 23 Jan 2010, at 20:42, Jay Krell wrote: > > > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 10/01/23 20:42:28 > > > > > > Modified files: > > > cm3/m3-libs/libm3/src/fmtlex/: Lex.m3 > > > > > > Log message: > > > oops 1 => 1L > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Tue Jan 26 12:12:35 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 26 Jan 2010 12:12:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126111235.D961E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/26 12:12:35 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Log message: one variable per line when using "WITH" use "WITH" to shorten some source From jkrell at elego.de Tue Jan 26 13:24:02 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 26 Jan 2010 13:24:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126122402.D54DB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/26 13:24:02 Modified files: cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 Log message: add simple helper functions: PROCEDURE TypeByteSize(t: CGType): CARDINAL; PROCEDURE TypeByteAlign(t: CGType): CARDINAL; PROCEDURE TypeBitAlign(t: CGType): CARDINAL; PROCEDURE TypeBitSize(t: CGType): CARDINAL; that I believe I'll need. From jkrell at elego.de Tue Jan 26 13:28:23 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 26 Jan 2010 13:28:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126122823.1AAFE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/26 13:28:23 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: assert false for void and struct (we'll see how this works out; structs do have size/alignment, but per-struct, and it should be possible to enregister small structs) From jkrell at elego.de Tue Jan 26 13:36:29 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 26 Jan 2010 13:36:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126123631.AA69BCC103@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/26 13:36:29 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: use lookup table for most types From jkrell at elego.de Tue Jan 26 13:47:05 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 26 Jan 2010 13:47:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126124705.94E272474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/26 13:47:05 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 M3x86Rep.i3 Stackx86.i3 Stackx86.m3 Log message: - the virtual stack needs types (similar to my previous idea of sizes, but more general) - at certain places, split procedure foo into foo and foo1, where foo "splits" its operand(s), loops over them calling foo1 This should suffice for several operations like push/pop/mov/load/store, and, not, or, xor though notable not quite for add, sub, cmp also "find" needs work, and the "reguse" data being indexed by virtual stack pointer worries me This might provide such that most of the code is unchanged for int64, and we continue to have both constant folding and enregistration; I wouldn't try so hard for these, but it seems a good approach in the interest of making parameter passing work. From jkrell at elego.de Tue Jan 26 14:14:39 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 26 Jan 2010 14:14:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126131439.E8CDC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/26 14:14:39 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: allow for 8 byte alignment From jkrell at elego.de Tue Jan 26 14:18:19 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 26 Jan 2010 14:18:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126131819.E579E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/26 14:18:19 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: leave max_align := 64 for NT386, Cygwin, MinGWin, Interix (still 32 for NetBSD/Linux/FreeBSD/x86); this probably breaks pickles with 64bit types, e.g. longreal From hosking at cs.purdue.edu Tue Jan 26 18:40:39 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 26 Jan 2010 12:40:39 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100126122402.D54DB2474001@birch.elegosoft.com> References: <20100126122402.D54DB2474001@birch.elegosoft.com> Message-ID: <25588017-D52E-4775-A134-9C61617E2422@cs.purdue.edu> You don't need these! Use TargetMap.CG_Align/CG_Align_bytes/CG_Size/CG_Bytes instead. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 26 Jan 2010, at 13:24, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/26 13:24:02 > > Modified files: > cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 > > Log message: > add simple helper functions: > PROCEDURE TypeByteSize(t: CGType): CARDINAL; > PROCEDURE TypeByteAlign(t: CGType): CARDINAL; > PROCEDURE TypeBitAlign(t: CGType): CARDINAL; > PROCEDURE TypeBitSize(t: CGType): CARDINAL; > > that I believe I'll need. -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at elego.de Tue Jan 26 20:51:07 2010 From: hosking at elego.de (Antony Hosking) Date: Tue, 26 Jan 2010 20:51:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126195107.EAE62CC308@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/26 20:51:07 Modified files: cm3/doc/reference/: syntax.html Log message: Some minor corrections. From hosking at elego.de Tue Jan 26 20:52:14 2010 From: hosking at elego.de (Antony Hosking) Date: Tue, 26 Jan 2010 20:52:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126195214.2AB902474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/26 20:52:14 Modified files: cm3/doc/reference/complete/: m3-defn-complete.tex Log message: Ident -> Id From hosking at elego.de Tue Jan 26 20:52:53 2010 From: hosking at elego.de (Antony Hosking) Date: Tue, 26 Jan 2010 20:52:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126195253.A5CF92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/26 20:52:53 Modified files: cm3/doc/reference/complete/: m3-defn-complete.pdf m3-defn-complete.ps Log message: Regenerate. From jay.krell at cornell.edu Tue Jan 26 23:36:20 2010 From: jay.krell at cornell.edu (Jay K) Date: Tue, 26 Jan 2010 22:36:20 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <25588017-D52E-4775-A134-9C61617E2422@cs.purdue.edu> References: <20100126122402.D54DB2474001@birch.elegosoft.com>, <25588017-D52E-4775-A134-9C61617E2422@cs.purdue.edu> Message-ID: oops, ok. I had only seen constant arrays that didn't handle Addr. I'll use what you say instead. - Jay From: hosking at cs.purdue.edu Date: Tue, 26 Jan 2010 12:40:39 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 You don't need these! Use TargetMap.CG_Align/CG_Align_bytes/CG_Size/CG_Bytes instead. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 26 Jan 2010, at 13:24, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/26 13:24:02 Modified files: cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 Log message: add simple helper functions: PROCEDURE TypeByteSize(t: CGType): CARDINAL; PROCEDURE TypeByteAlign(t: CGType): CARDINAL; PROCEDURE TypeBitAlign(t: CGType): CARDINAL; PROCEDURE TypeBitSize(t: CGType): CARDINAL; that I believe I'll need. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Wed Jan 27 14:34:57 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 27 Jan 2010 14:34:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100127133457.5E1D32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/27 14:34:57 Modified files: cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 Log message: remove TypeByteSize, TypeByteAlign, TypeBitAlign, TypeBitSize From jkrell at elego.de Wed Jan 27 14:53:24 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 27 Jan 2010 14:53:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100127135324.F2EF02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/27 14:53:24 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: slightly more algorithmic-based-on-strings target configuration should even fix some bugs: FreeBSD/x86 first readable address is 4K byte, not 4K bits Setting this value higher is just a very slight optimization. Likewise for PA{32,64}_HPUX. aligned_procedures based on architecture, not OS This leaves jumpbuf as basically the only thing that varies per precise target, everything else is factored on something with fewer variants. (ok, Has_stack_walker also) also max_align, which seems often wrong From jkrell at elego.de Thu Jan 28 08:16:02 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 28 Jan 2010 8:16:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100128071602.EAAF92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/28 08:16:02 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: fix incorrect but possibly safe edit to how comparison conditions are computed From jkrell at elego.de Thu Jan 28 08:17:21 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 28 Jan 2010 8:17:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100128071721.42AFA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/28 08:17:21 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: undo longint/int64 change that isn't going to be correct From jkrell at elego.de Thu Jan 28 14:28:20 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 28 Jan 2010 14:28:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100128132821.161762474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/28 14:28:20 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 M3x86Rep.i3 Stackx86.m3 Log message: rename some fields more verbosely for better searchabilty t => vartype type => mvartype type => proctype s => size (varsize?) a => align (varalign?) searching for whole word "t" and "type" wasn't very helpful and the existing of both vartype and mvartype is confusing From jkrell at elego.de Thu Jan 28 14:42:19 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 28 Jan 2010 14:42:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100128134219.BE6EA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/28 14:42:19 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 M3x86Rep.i3 Stackx86.m3 Log message: more renaming for readability (some just altering style of previous, but also renaming more fields) size => flit_size proctype => proc_type varsize => var_size mvarsize => mvar_size align => var_align size => var_size mvaroffset => mvar_offset mvartype => mvar_type etc. From rodney_bates at lcwb.coop Thu Jan 28 17:22:28 2010 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Thu, 28 Jan 2010 10:22:28 -0600 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100128134219.BE6EA2474001@birch.elegosoft.com> References: <20100128134219.BE6EA2474001@birch.elegosoft.com> Message-ID: <4B61B9C4.5020800@lcwb.coop> I highly support this kind of change. Very short identifiers are classic cases of sacrificing readability in favor of saving keystrokes during writing--a very bad tradeoff. The poor wretches who get/have to maintain the code pay the price for somebody else's laziness. Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/28 14:42:19 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 M3x86Rep.i3 > Stackx86.m3 > > Log message: > more renaming for readability (some just altering style of previous, > but also renaming more fields) > size => flit_size > proctype => proc_type > varsize => var_size > mvarsize => mvar_size > align => var_align > size => var_size > mvaroffset => mvar_offset > mvartype => mvar_type > etc. > > From hosking at elego.de Thu Jan 28 19:02:46 2010 From: hosking at elego.de (Antony Hosking) Date: Thu, 28 Jan 2010 19:02:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100128180246.C38A92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/28 19:02:46 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Ord.m3 Log message: Fix typing of ORD for the fact that it varies (INTEGER/LONGINT) depending on the underlying type of its argument. From jay.krell at cornell.edu Fri Jan 29 06:00:46 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 29 Jan 2010 05:00:46 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <4B61B9C4.5020800@lcwb.coop> References: <20100128134219.BE6EA2474001@birch.elegosoft.com>, <4B61B9C4.5020800@lcwb.coop> Message-ID: Thanks. I depend heavily on plain text search, including "whole word". I find that "language aware" tools are generally lacking in availability, features, scale, ease of use. Plain text search, augmented with a file system cache and/or possibly an index, is available and scales and handles all languages potentially. This is an area where C really trumps C++, because of the existance of namespaces and classes to scope names that are broadly visible, you end up with function names like "Init" instead of "WindowInit", etc. Operator overloading is a problem too -- I can't search for "+" on a particular type. Modula-3 encourages these problems too I believe. C's global namespace is usually considered a problem, and it is, but it is also a feature. This is also a reason to not use "file level static" in C. Parameter names and local variable names don't seem to matter, as they truly have small visiblity (well, parameter names in Modula-3 don't). But function names, type names, record/object fields.. I am often lazy myself, but just forward me this email, call me a hypocrite, go ahead and lengthen names I made too short. :) I'm not sure what the difference is between var.vartype and mvar.mvartype. mvar contains var. I suspect var.vartype is "more correct for the data" and mvar.mvartype is the "type of the access". Like, if I were to "split" an acces to a 64bit variable into two access, var.vartype should be unchanged, mvar.mvartype can be changed. I was going to be lazy and ask here, but then decided to try to read the code more. These changes are not condusive to diffing, granted. They add a lot of noise. Stuck between two bad things I'm afraid there. - Jay > Date: Thu, 28 Jan 2010 10:22:28 -0600 > From: rodney_bates at lcwb.coop > To: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > I highly support this kind of change. Very short identifiers > are classic cases of sacrificing readability in favor of > saving keystrokes during writing--a very bad tradeoff. > The poor wretches who get/have to maintain the code pay the > price for somebody else's laziness. > > Jay Krell wrote: > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/28 14:42:19 > > > > Modified files: > > cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 M3x86Rep.i3 > > Stackx86.m3 > > > > Log message: > > more renaming for readability (some just altering style of previous, > > but also renaming more fields) > > size => flit_size > > proctype => proc_type > > varsize => var_size > > mvarsize => mvar_size > > align => var_align > > size => var_size > > mvaroffset => mvar_offset > > mvartype => mvar_type > > etc. > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Fri Jan 29 09:34:50 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 9:34:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129083450.D0E56CC362@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 09:34:50 Modified files: cm3/m3-sys/m3back/src/: Wrx86.m3 Log message: more verbose debug output n:8,x:0,0,0,80,ff,ff,ff,ff is getting changed to n:8,x:0,0,0,80,0,0,0,0 this shows at least that the frontend isn't to blame, probably my "SplitOperand" From jkrell at elego.de Fri Jan 29 09:57:33 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 9:57:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129085733.63129CC308@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 09:57:33 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: in ToInt and IntI, do the conversion even if there is overflow (still returning FALSE for overflow) From jkrell at elego.de Fri Jan 29 09:58:11 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 9:58:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129085811.B3242CC308@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 09:58:11 Modified files: cm3/m3-sys/m3middle/src/: TInt.m3 Log message: in ToInt and IntI, do the conversion even if there is overflow (still returning FALSE for overflow) From jkrell at elego.de Fri Jan 29 09:59:08 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 9:59:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129085908.32881CC308@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 09:59:08 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: go back a version, checked in wrong file (Target.m3 vs. TInt.m3) From jkrell at elego.de Fri Jan 29 12:25:16 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 12:25:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129112516.B9DF42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 12:25:16 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: fix important comments in set_union, intersection, difference, sym_difference that document the inputs/outputs in terms of the virtual stack merge pop_param and load_stack_param moving pop_param's floating point support to load_stack_param though given, floating point probably requires depth = 0 use load_stack_param in set_union, etc. for clarity pop_param is just shorthand for load_stack_param(0) + discard(1) Given 1) the incorrect comments and 2) the varying use of load_stack_param(!=0) and pop_param, the code was quite confusing, and therefore hard to base other function-call based operations on, such as int64 stuff. a little bit of re-formating and adding comments From jay.krell at cornell.edu Fri Jan 29 12:26:17 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 29 Jan 2010 11:26:17 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100129112516.B9DF42474001@birch.elegosoft.com> References: <20100129112516.B9DF42474001@birch.elegosoft.com> Message-ID: diff attached > Date: Fri, 29 Jan 2010 12:25:16 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/29 12:25:16 > > Modified files: > cm3/m3-sys/m3back/src/: M3x86.m3 > > Log message: > fix important comments in set_union, intersection, difference, sym_difference > that document the inputs/outputs in terms of the virtual stack > > merge pop_param and load_stack_param > moving pop_param's floating point support to load_stack_param > though given, floating point probably requires depth = 0 > > use load_stack_param in set_union, etc. for clarity > pop_param is just shorthand for load_stack_param(0) + discard(1) > > Given 1) the incorrect comments and 2) the varying use of > load_stack_param(!=0) and pop_param, the code was quite confusing, > and therefore hard to base other function-call based operations > on, such as int64 stuff. > > a little bit of re-formating and adding comments > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 1.txt URL: From jkrell at elego.de Fri Jan 29 12:32:24 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 12:32:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129113224.89F332474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 12:32:24 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: use unsigned types for set sizes and indices, esp. since they are used with div and mod From jkrell at elego.de Fri Jan 29 12:36:07 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 12:36:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129113607.EBCFBCC362@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 12:36:07 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: declare rotate intrinsics and fix warning about unused parameter -- I think we will use most of these functions after all, at least initially From jkrell at elego.de Fri Jan 29 12:36:36 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 12:36:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129113636.88CE7CC362@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 12:36:36 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: use 'uint64' shorthand From jkrell at elego.de Fri Jan 29 12:40:27 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 12:40:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129114027.B4E932474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 12:40:27 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: just add some comments and an assert From jkrell at elego.de Fri Jan 29 12:50:41 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 12:50:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129115042.1B8DA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 12:50:41 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: use unsigned types for set indices, esp. since they are used with div and mod From jkrell at elego.de Fri Jan 29 13:10:44 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 13:10:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129121044.7FE922474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 13:10:44 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: prepare new version of set_range that uses shifting instead of a cache-hogging lookup table; not yet active, and really need to change the compiler to not reference the other variant of the lookup table From jkrell at elego.de Fri Jan 29 13:44:39 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 13:44:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129124439.87E702474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 13:44:39 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: test code for set_range From jkrell at elego.de Fri Jan 29 14:22:06 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 14:22:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129132206.76864CC362@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 14:22:06 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: m3makefile Log message: new set of int64 functions, for win32 only, in a separate file for now, probably all but three of these will be used (and/or/xor are *particularly* easy to implement inline, you just operate on the two halves independently) From jkrell at elego.de Fri Jan 29 14:29:54 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 14:29:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129132954.ACDFB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 14:29:54 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: m3makefile Log message: disable for now, it causes a link error From jkrell at elego.de Fri Jan 29 15:52:53 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 15:52:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129145253.69E7F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 15:52:53 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: remove the new 64bit builtings pending getting more working From hosking at cs.purdue.edu Fri Jan 29 16:31:35 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 29 Jan 2010 10:31:35 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100129085733.63129CC308@birch.elegosoft.com> References: <20100129085733.63129CC308@birch.elegosoft.com> Message-ID: <06B64727-043A-47EC-BFF1-2680AA899A89@cs.purdue.edu> Why do you need that? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 29 Jan 2010, at 09:57, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/29 09:57:33 > > Modified files: > cm3/m3-sys/m3middle/src/: Target.m3 > > Log message: > in ToInt and IntI, do the conversion even if there is overflow (still returning FALSE for overflow) -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Fri Jan 29 16:32:46 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 16:32:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129153246.1818D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 16:32:46 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Log message: remove partial inlining that earlier optimizationg programmers were fond of authoring in particular, every call to expand_stack is preceded by the check: IF t.stacktop = t.vstacklimit; have expand_stack do the check A really good compiler (not this one, alas) might inline the check in the caller. From jkrell at elego.de Fri Jan 29 16:48:37 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 16:48:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129154837.5D2142474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 16:48:37 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 M3x86Rep.i3 Stackx86.m3 Log message: longint/int64 work in progress no real change unless you make the edit in Target.m3 From jkrell at elego.de Fri Jan 29 17:08:55 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 17:08:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129160856.050AF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 17:08:55 Modified files: cm3/m3-sys/m3middle/src/: M3ID.i3 M3ID.m3 Log message: add Length function From jkrell at elego.de Fri Jan 29 17:11:12 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 17:11:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129161112.ADC952474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 17:11:12 Modified files: cm3/m3-sys/m3middle/src/: M3ID.m3 Log message: be sure Length works for NoID From jkrell at elego.de Fri Jan 29 17:17:53 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 17:17:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129161753.ACF5B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 17:17:53 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: oops: NTObjFile.m3 doesn't like importing the same symbol repeatedly so our temporary filler 'abort' wasn't good From jkrell at elego.de Fri Jan 29 17:28:21 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 17:28:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129162821.C5AAA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 17:28:21 Added files: cm3/m3-libs/m3core/src/Csupport/Common/: hand2.c Log message: forgot to add this, ok From jay.krell at cornell.edu Fri Jan 29 17:48:50 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 29 Jan 2010 16:48:50 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <06B64727-043A-47EC-BFF1-2680AA899A89@cs.purdue.edu> References: <20100129085733.63129CC308@birch.elegosoft.com>, <06B64727-043A-47EC-BFF1-2680AA899A89@cs.purdue.edu> Message-ID: For now I'm treating the error as a warning and continuing on. - Jay From: hosking at cs.purdue.edu Date: Fri, 29 Jan 2010 10:31:35 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 Why do you need that? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 29 Jan 2010, at 09:57, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 09:57:33 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: in ToInt and IntI, do the conversion even if there is overflow (still returning FALSE for overflow) -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Sat Jan 30 11:45:25 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 30 Jan 2010 11:45:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100130104525.9DD262474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/30 11:45:25 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 Stackx86.m3 Log message: - use the return value of findbin rather than something kind of incidental, but assert the coincidence - comparison # 4 should generally be < 4 From jkrell at elego.de Sat Jan 30 12:26:11 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 30 Jan 2010 12:26:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100130112611.8C4FA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/30 12:26:11 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Log message: add back assertions From hosking at elego.de Sat Jan 30 22:28:34 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 30 Jan 2010 22:28:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100130212834.5F7B52474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/30 22:28:34 Modified files: cm3/m3-sys/m3middle/src/: M3CG_Rd.m3 Log message: Reformat. From hosking at elego.de Sat Jan 30 22:29:49 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 30 Jan 2010 22:29:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100130212949.8B6E22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/30 22:29:49 Modified files: cm3/m3-sys/m3middle/src/: M3CG.m3 Log message: Rename params. From hosking at elego.de Sat Jan 30 23:03:35 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 30 Jan 2010 23:03:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100130220335.6A1382474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/30 23:03:35 Modified files: cm3/m3-sys/m3cc/gcc/gcc/m3cg/: parse.c Log message: Some fixes. From hosking at elego.de Sat Jan 30 23:03:59 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 30 Jan 2010 23:03:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100130220359.DC5BF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/30 23:03:59 Modified files: cm3/m3-sys/m3middle/src/: M3CG_BinWr.m3 M3CG_Check.m3 M3CG_Ops.i3 M3CG_Wr.m3 M3ID.i3 M3ID.m3 TInt.i3 TInt.m3 Target.i3 Target.m3 Log message: Update support for atomic operations. From hosking at elego.de Sat Jan 30 23:07:06 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 30 Jan 2010 23:07:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100130220707.2CF452474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/30 23:07:06 Modified files: cm3/m3-sys/m3front/src/misc/: CG.m3 Log message: Reformat only. From hosking at elego.de Sat Jan 30 23:11:31 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 30 Jan 2010 23:11:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100130221131.B11BF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/30 23:11:31 Modified files: cm3/m3-sys/m3front/src/: m3makefile cm3/m3-sys/m3front/src/misc/: CG.i3 Error.i3 Error.m3 M3Front.m3 cm3/m3-sys/m3front/src/types/: ProcType.i3 ProcType.m3 cm3/m3-sys/m3front/src/values/: Formal.i3 Formal.m3 Added files: cm3/m3-sys/m3front/src/builtinAtomic/: AtomicModule.ig AtomicModule.mg CompareSwap.ig CompareSwap.mg Fence.ig Fence.mg FetchAnd.ig FetchAnd.mg FetchDec.ig FetchDec.mg FetchInc.ig FetchInc.mg FetchOr.ig FetchOr.mg FetchXOr.mg FetchXor.ig IsLockFree.ig IsLockFree.mg Load.ig Load.mg Store.ig Store.mg Swap.ig Swap.mg atomic.tmpl m3makefile Log message: Initial support for builtin atomic values (see Atomic.ig). From jkrell at elego.de Sun Jan 31 13:11:30 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 31 Jan 2010 13:11:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100131121130.994512474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/31 13:11:30 Modified files: cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 Stackx86.i3 Stackx86.m3 Log message: adapt so it builds with recent m3middle changes: comment out warnings TInt.MaxS8 => Target.Int8.max TInt.MinS8 => Target.Int8.min TInt.FF => Target.Word8.max TInt.FFFF => Target.Word16.max TInt.FFFFFFFF => Target.Word32.max TInt.MinS32 => Target.Int32.min (notice loss of const-ness; it is only pack/align that is *perhaps* not constant, perhaps platform-specific, but not really, perhaps only if you absolutely need to match C structs and have them tightly packed; we generally don't do that, we might as well adapt conservative platform-independent packing/alignment results (there seems to be something wrong with Darwin targets here though, some missing align pragma or such, NT386 has a related problem e.g. in mklib) M3ID.Length(a) > 0 => t := M3ID.ToText(a); t # NIL AND Text.Length(t) > 0 (notice loss of avoiding heap allocation) From jkrell at elego.de Sun Jan 31 13:12:22 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 31 Jan 2010 13:12:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100131121222.4E2342474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/31 13:12:22 Modified files: cm3/m3-sys/m3staloneback/src/: Main.m3 Log message: remove warning stuff per m3middle changes From jkrell at elego.de Sun Jan 31 13:37:00 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 31 Jan 2010 13:37:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100131123700.D06532474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/31 13:37:00 Modified files: cm3/m3-sys/m3front/src/values/: Module.m3 Log message: allow for more builtiins From jkrell at elego.de Sun Jan 31 13:38:37 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 31 Jan 2010 13:38:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100131123837.5CADE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/31 13:38:37 Modified files: cm3/m3-sys/mklib/src/: Main.m3 Log message: turn ignored unaligned pragma into comment From jkrell at elego.de Sun Jan 31 13:41:24 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 31 Jan 2010 13:41:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100131124126.6A6B12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/31 13:41:24 Modified files: cm3/m3-sys/mklib/src/: Main.m3 Log message: BYTE => UINT8 From jkrell at elego.de Sun Jan 31 13:47:45 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 31 Jan 2010 13:47:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100131124745.2A16B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/31 13:47:45 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: reduce interface slightly From jkrell at elego.de Sun Jan 31 13:54:31 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 31 Jan 2010 13:54:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100131125431.4F8062474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/31 13:54:31 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: smaller From jkrell at elego.de Sun Jan 31 13:58:40 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 31 Jan 2010 13:58:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100131125840.7E44B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/31 13:58:40 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Log message: quash warnings (code still in flux) From hosking at cs.purdue.edu Fri Jan 1 20:41:42 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 1 Jan 2010 14:41:42 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091230000021.6DA362474001@birch.elegosoft.com> References: <20091230000021.6DA362474001@birch.elegosoft.com> Message-ID: <7B80CC37-9E07-4A51-A8E7-473039FAF4F2@cs.purdue.edu> Huh? On 30 Dec 2009, at 01:00, Randy Coleburn wrote: > CVSROOT: /usr/cvs > Changes by: rcoleburn at birch. 09/12/30 01:00:21 > > Modified files: > cm3/m3-libs/libm3/src/: m3makefile > > Log message: > repair broken build process by commenting out the inclusion of "Types" folder because this folder is not in the source tree right now. -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 1 20:43:36 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 1 Jan 2010 14:43:36 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20091230144007.081152474001@birch.elegosoft.com> References: <20091230144007.081152474001@birch.elegosoft.com> Message-ID: <21B2F22D-C1E9-46F2-8434-4CD78DCD7E96@cs.purdue.edu> That's a bug in m3tk scope management. Probably needs a ticket in the bugs database... On 30 Dec 2009, at 15:40, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 09/12/30 15:40:06 > > Modified files: > cm3/m3-libs/m3core/src/word/: Long.i3 Long.m3 Word.i3 Word.m3 > m3makefile > Added files: > cm3/m3-libs/m3core/src/word/: GenWord.ig GenWord.mg > Removed files: > cm3/m3-libs/m3core/src/word/: Word.ig Word.mg > > Log message: > go back to GenWord > the other front end (Olivetti m3-tk) > doesn't understand > INTERFACE Word = Word(WordRep) END Word. > but it does't understand > INTERFACE Word = GenWord(WordRep) END Word. -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 1 22:06:13 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 1 Jan 2010 16:06:13 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <7B80CC37-9E07-4A51-A8E7-473039FAF4F2@cs.purdue.edu> References: <20091230000021.6DA362474001@birch.elegosoft.com> <7B80CC37-9E07-4A51-A8E7-473039FAF4F2@cs.purdue.edu> Message-ID: <1ED6097C-6AE0-4DE6-A8E8-C035A934B67F@cs.purdue.edu> Oh, yes, of course. On 1 Jan 2010, at 14:41, Tony Hosking wrote: > Huh? > > On 30 Dec 2009, at 01:00, Randy Coleburn wrote: > >> CVSROOT: /usr/cvs >> Changes by: rcoleburn at birch. 09/12/30 01:00:21 >> >> Modified files: >> cm3/m3-libs/libm3/src/: m3makefile >> >> Log message: >> repair broken build process by commenting out the inclusion of "Types" folder because this folder is not in the source tree right now. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Sat Jan 2 22:31:49 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 2 Jan 2010 22:31:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100102213149.816072474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/02 22:31:49 Modified files: cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 cm3/m3-sys/m3front/src/exprs/: SetExpr.m3 Log message: Add more information to the error "set domain too large", admittedly fairly cryptic internal information. From jkrell at elego.de Sat Jan 2 22:40:42 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 2 Jan 2010 22:40:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100102214042.4A7CF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/02 22:40:42 Modified files: cm3/m3-sys/m3middle/src/: TInt.m3 Log message: a 64bit hosted compiler fails when targeting a 32bit platform due to the use of TYPE Regno = [-1 .. NRegs]; -1 is represented as Target.Int:4,{0xFF,0xFF,0xFF,0xFF,0,0,0,0} The problem is presumably that CheckSign doesn't like the trailing zeros. I believe the point of CheckSign(r.n:=4 to n:=8) is really for the case of n > r.n, i.e.: If you were to truncate 8:0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF to 4:0xFF,0xFF,0xFF,0x00 that would be an error (it probably fail earlier, when Target.Int doesn't fit in n = 4) CheckSign should always succeed when widening, when host integer is bigger than target integer. The for loops should already be empty for that case. From jkrell at elego.de Sat Jan 2 23:29:18 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 2 Jan 2010 23:29:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100102222918.498CC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/02 23:29:18 Modified files: cm3/m3-sys/m3middle/src/: Tag: release_branch_cm3_5_8 TInt.m3 Log message: from head: fix 64bit to 32bit cross compilation with regard converting the value -1 to a host integer From jkrell at elego.de Sun Jan 3 00:27:40 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 3 Jan 2010 0:27:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100102232741.0B760CC812@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/03 00:27:40 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 cm3/scripts/python/: pylib.py cm3/m3-libs/m3core/src/: thread.quake cm3/m3-libs/m3core/src/C/PPC32_OPENBSD/: Csetjmp.i3 Log message: move all OpenBSD platforms to user threads PPC32_OPENBSD: fix warning in setjmp, clarify setjmp size/alignment, as doesn't like --32 From jkrell at elego.de Sun Jan 3 00:36:31 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 3 Jan 2010 0:36:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100102233631.7769A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/03 00:36:31 Removed files: cm3/doc/: add Log message: remove zero size file From hosking at cs.purdue.edu Sun Jan 3 21:55:22 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 3 Jan 2010 15:55:22 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100102214042.4A7CF2474001@birch.elegosoft.com> References: <20100102214042.4A7CF2474001@birch.elegosoft.com> Message-ID: But why is 64-bit checksign being used in the first place? Surely it should be using CheckSign for the target not the host? On 2 Jan 2010, at 22:40, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/02 22:40:42 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.m3 > > Log message: > a 64bit hosted compiler fails when targeting > a 32bit platform due to the use of > TYPE Regno = [-1 .. NRegs]; > > -1 is represented as Target.Int:4,{0xFF,0xFF,0xFF,0xFF,0,0,0,0} > The problem is presumably that CheckSign doesn't like > the trailing zeros. > > I believe the point of CheckSign(r.n:=4 to n:=8) is really > for the case of n > r.n, i.e.: > If you were to truncate > 8:0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF > to > 4:0xFF,0xFF,0xFF,0x00 > > that would be an error (it probably > fail earlier, when Target.Int doesn't > fit in n = 4) > > CheckSign should always succeed when widening, > when host integer is bigger than target integer. > > The for loops should already be empty for that case. -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at elego.de Sun Jan 3 22:36:04 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 3 Jan 2010 22:36:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100103213604.2D4662474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/03 22:36:04 Modified files: cm3/m3-sys/m3middle/src/: TInt.m3 Log message: A slightly cleaner version of Jay's fix. CheckSign should never be invoked with a desired precision greater than that of the target integer being checked. The only place this can occur is in ToInt when converting from a (smaller) target to a (larger) host integer. From jkrell at elego.de Mon Jan 4 03:18:57 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 4 Jan 2010 3:18:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100104021857.BF6182474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/04 03:18:57 Modified files: cm3/m3-sys/m3middle/src/: Tag: release_branch_cm3_5_8 TInt.m3 Log message: take Tony's version From jkrell at elego.de Mon Jan 4 12:13:22 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 4 Jan 2010 12:13:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100104111322.0B1F92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/04 12:13:22 Added files: cm3/m3-sys/cminstall/src/config-no-install/: PPC64.common PPC64_DARWIN Log message: initial config files for PPC64_DARWIN From jkrell at elego.de Mon Jan 4 12:29:20 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 4 Jan 2010 12:29:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100104112921.026912474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/04 12:29:20 Modified files: cm3/m3-libs/m3core/src/: platforms.quake Log message: add PPC64_DARWIN From jkrell at elego.de Mon Jan 4 12:30:30 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 4 Jan 2010 12:30:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100104113030.BC3162474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/04 12:30:30 Modified files: cm3/m3-libs/m3core/src/unix/: m3makefile Log message: add PPC64_DARWIN From jkrell at elego.de Mon Jan 4 13:24:51 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 4 Jan 2010 13:24:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100104122451.853742474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/04 13:24:51 Added files: cm3/m3-libs/m3core/src/C/PPC64_DARWIN/: Csetjmp.i3 m3makefile Log message: add PPC64_DARWIN From jkrell at elego.de Tue Jan 5 12:26:28 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 12:26:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105112628.811622474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 12:26:28 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: minor cleanup From jkrell at elego.de Tue Jan 5 12:44:29 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 12:44:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105114429.767182474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 12:44:29 Modified files: cm3/m3-libs/m3core/src/C/AIX386/: m3makefile cm3/m3-libs/m3core/src/C/ALPHA_OSF/: m3makefile cm3/m3-libs/m3core/src/C/AP3000/: m3makefile cm3/m3-libs/m3core/src/C/ARM/: m3makefile cm3/m3-libs/m3core/src/C/DS3100/: 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/HP300/: m3makefile cm3/m3-libs/m3core/src/C/HPPA/: m3makefile cm3/m3-libs/m3core/src/C/I386_DARWIN/: m3makefile cm3/m3-libs/m3core/src/C/IBMR2/: m3makefile cm3/m3-libs/m3core/src/C/IBMRT/: m3makefile cm3/m3-libs/m3core/src/C/IRIX5/: 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/NEXT/: m3makefile cm3/m3-libs/m3core/src/C/NT386/: m3makefile cm3/m3-libs/m3core/src/C/NetBSD2_i386/: m3makefile cm3/m3-libs/m3core/src/C/OKI/: m3makefile cm3/m3-libs/m3core/src/C/OS2/: m3makefile cm3/m3-libs/m3core/src/C/PPC_DARWIN/: m3makefile cm3/m3-libs/m3core/src/C/PPC_LINUX/: m3makefile cm3/m3-libs/m3core/src/C/SEQUENT/: m3makefile cm3/m3-libs/m3core/src/C/SOLgnu/: m3makefile cm3/m3-libs/m3core/src/C/SOLsun/: m3makefile cm3/m3-libs/m3core/src/C/SPARC/: m3makefile cm3/m3-libs/m3core/src/C/SPARC64_OPENBSD/: m3makefile cm3/m3-libs/m3core/src/C/SUN3/: m3makefile cm3/m3-libs/m3core/src/C/SUN386/: m3makefile cm3/m3-libs/m3core/src/C/UMAX/: m3makefile cm3/m3-libs/m3core/src/C/VAX/: m3makefile Removed files: cm3/m3-libs/m3core/src/C/AIX386/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/ALPHA_OSF/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/AP3000/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/ARM/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/DS3100/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/FreeBSD/: Cstdio.i3 Cstdio.m3 Cstring.i3 cm3/m3-libs/m3core/src/C/FreeBSD2/: Cstdio.i3 Cstdio.m3 Cstring.i3 cm3/m3-libs/m3core/src/C/FreeBSD3/: Cstdio.i3 Cstdio.m3 Cstring.i3 cm3/m3-libs/m3core/src/C/HP300/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/HPPA/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/IBMR2/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/IBMRT/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/IRIX5/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/LINUX/: Cstdio.i3 Cstdio.m3 Cstring.i3 cm3/m3-libs/m3core/src/C/LINUXELF/: Cstdio.i3 Cstdio.m3 Cstring.i3 cm3/m3-libs/m3core/src/C/LINUXLIBC6/: CsetjmpASM.s cm3/m3-libs/m3core/src/C/NEXT/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/OKI/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/OS2/: Cstdio.i3 Cstdio.m3 Cstring.i3 cm3/m3-libs/m3core/src/C/SEQUENT/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/SPARC/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/SUN3/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/SUN386/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/UMAX/: Cstdio.i3 Cstring.i3 cm3/m3-libs/m3core/src/C/VAX/: Cstdio.i3 Cstring.i3 Log message: reduce platform specific code to just Csetjmp.i3 (except OKI) From jkrell at elego.de Tue Jan 5 12:46:49 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 12:46:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105114649.C1C452474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 12:46:49 Removed files: cm3/m3-libs/m3core/src/C/FreeBSD/: CstdioC.c cm3/m3-libs/m3core/src/C/FreeBSD2/: CstdioC.c cm3/m3-libs/m3core/src/C/FreeBSD3/: CstdioC.c Log message: remove more (dead) platform specific code From jkrell at elego.de Tue Jan 5 13:00:53 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:00:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105120053.8C4082474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:00:53 Modified files: cm3/m3-libs/m3core/src/C/AIX386/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/ALPHA_OSF/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/AMD64_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/AP3000/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/ARM/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/DS3100/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/FreeBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/FreeBSD2/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/FreeBSD3/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/FreeBSD4/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/HP300/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/HPPA/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/I386_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/I386_OPENBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/IBMR2/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/IBMRT/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/IRIX5/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/LINUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/LINUXELF/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/LINUXLIBC6/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/MIPS64_OPENBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/NEXT/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/NT386/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/NetBSD2_i386/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/OKI/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/OS2/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/PPC_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/PPC_LINUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SEQUENT/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SOLgnu/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SOLsun/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SPARC/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SUN3/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SUN386/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/UMAX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/VAX/: Csetjmp.i3 Log message: remove all functions except for ulongjmp remove sigjmp_buf remove unused constants (still have JBLEN in some but we should remove those) From jkrell at elego.de Tue Jan 5 13:19:42 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:19:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105121942.4A75E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:19:42 Modified files: cm3/m3-libs/m3core/src/C/AMD64_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/AMD64_FREEBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/AMD64_LINUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/AMD64_NETBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/AMD64_OPENBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/ARM_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/FreeBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/FreeBSD2/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/FreeBSD3/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/FreeBSD4/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/I386_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/I386_INTERIX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/I386_OPENBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/IRIX5/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/LINUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/LINUXELF/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/LINUXLIBC6/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/MIPS64_OPENBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/NT386/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/NetBSD2_i386/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/OS2/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/PA32_HPUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/PA64_HPUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/PPC32_OPENBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/PPC64_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/PPC_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/PPC_LINUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SOLgnu/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SOLsun/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SPARC32_LINUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SPARC64_LINUX/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SPARC64_OPENBSD/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/SPARC64_SOLARIS/: Csetjmp.i3 Log message: some uniformity and reduction in Csetjmp.i3 remove all "JBLEN" constants don't leak out more identifiers where some platforms had jmp_buf = RECORD ARRAY opaque [0..n] of int END; and some had jmp_buf = ARRAY [0..n] of int; use ARRAY for all since it is "smaller" (in source/text) if there is a reason to favor the opaque record, then they should all use that imho make all arrays 0-based reduce some cases from sigjmp_buf to jmpbuf but for the most part that done here until I setup and run more machines From jkrell at elego.de Tue Jan 5 13:21:02 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:21:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105122102.AEC8ACC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:21:02 Modified files: cm3/m3-libs/m3core/src/C/I386_DARWIN/: Csetjmp.i3 Log message: make it a jmp_buf instead of a sigjmp_buf From jkrell at elego.de Tue Jan 5 13:21:35 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:21:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105122135.AEFA42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:21:35 Modified files: cm3/m3-libs/m3core/src/C/AMD64_DARWIN/: Csetjmp.i3 Log message: make it a jmp_buf instead of a sigjmp_buf From jkrell at elego.de Tue Jan 5 13:22:37 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:22:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105122237.964A1CC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:22:37 Modified files: cm3/m3-libs/m3core/src/C/PPC_DARWIN/: Csetjmp.i3 Log message: make it a jmp_buf instead of a sigjmp_buf From jkrell at elego.de Tue Jan 5 13:25:33 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:25:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105122533.708E12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:25:33 Modified files: cm3/m3-libs/m3core/src/C/ARM_DARWIN/: Csetjmp.i3 Log message: remove incorrect comment and copy the expression from the official SDK From jkrell at elego.de Tue Jan 5 13:27:02 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:27:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105122702.A1E582474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:27:02 Modified files: cm3/m3-libs/m3core/src/C/SPARC64_SOLARIS/: Csetjmp.i3 Log message: use a zero-based array and decimal like the others From jkrell at elego.de Tue Jan 5 13:28:38 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:28:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105122838.A42462474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:28:38 Modified files: cm3/m3-libs/m3core/src/C/AMD64_DARWIN/: Csetjmp.i3 cm3/m3-libs/m3core/src/C/NetBSD2_i386/: Csetjmp.i3 Log message: whitespace only From jkrell at elego.de Tue Jan 5 13:33:00 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:33:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105123300.D16A52474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:33:00 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: Tag: release_branch_cm3_5_8 ThreadWin32.m3 Log message: copy from head: remove lock acquire/release from condition wait credit another reference for the algorithm add SetState calls to match pthread better handling of low resources assert that counters are actually booleans like pthread From jkrell at elego.de Tue Jan 5 13:34:48 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 13:34:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105123448.666772474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 13:34:48 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: use _setjmp instead of setjmp on all Solaris and Darwin platforms in fact, now, all platforms use _setjmp I foresee this might change on e.g. IA64_NT, AMD64_NT so leave the configurability (I386_NT prepends underscores to all identifiers) From jkrell at elego.de Tue Jan 5 14:08:53 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 14:08:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105130853.205B92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 14:08:53 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: reconcile with Csetjmp.i3 and some available systems including shrinking Darwin and Linux/x86 jmpbuf from sigjmpbuf leave NetBSD/x86 alone for now (no machine available) use "larger types" e.g. Address.size or Int32.size instead of Char.size to sort of mimic alignment/Csetjmp.i3, though alignment is set separately from size use decimal to mimic Csetjmp.i3 (and many but not all /usr/include/setjmp.h) From jkrell at elego.de Tue Jan 5 14:10:57 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 5 Jan 2010 14:10:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105131057.879972474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/05 14:10:57 Modified files: cm3/m3-libs/m3core/src/C/PPC_LINUX/: Csetjmp.i3 Log message: comment about alignment: 16 is ideal, 4 is ok, we use 8 because we can't ask for 16 From wagner at elego.de Wed Jan 6 00:46:46 2010 From: wagner at elego.de (Olaf Wagner) Date: Wed, 6 Jan 2010 0:46:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100105234647.33F292474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: wagner at birch. 10/01/06 00:46:46 Modified files: cm3/scripts/: Tag: release_branch_cm3_5_8 version Log message: 5.8.4 is past From hosking at elego.de Wed Jan 6 03:08:53 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 3:08:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106020854.070862474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 03:08:53 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: Format comments. From hosking at elego.de Wed Jan 6 03:26:31 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 3:26:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106022631.6BFB42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 03:26:31 Modified files: cm3/m3-sys/m3middle/src/: Target.i3 Log message: Format comment. From hosking at elego.de Wed Jan 6 08:34:38 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 8:34:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106073438.E0B2E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 08:34:38 Modified files: cm3/m3-sys/m3front/src/: m3makefile cm3/m3-sys/m3front/src/builtinTypes/: Int.i3 Int.m3 LInt.i3 LInt.m3 cm3/m3-sys/m3front/src/builtinWord/: WordAnd.i3 WordAnd.m3 WordDivide.i3 WordDivide.m3 WordExtract.i3 WordExtract.m3 WordGE.i3 WordGE.m3 WordGT.i3 WordGT.m3 WordInsert.i3 WordInsert.m3 WordLE.i3 WordLE.m3 WordLT.i3 WordLT.m3 WordMinus.i3 WordMinus.m3 WordMod.i3 WordMod.m3 WordModule.i3 WordModule.m3 WordNot.i3 WordNot.m3 WordOr.i3 WordOr.m3 WordPlus.i3 WordPlus.m3 WordRotate.i3 WordRotate.m3 WordShift.i3 WordShift.m3 WordTimes.i3 WordTimes.m3 WordXor.i3 WordXor.m3 m3makefile cm3/m3-sys/m3front/src/misc/: M3Front.m3 Added files: cm3/m3-sys/m3front/src/builtinWord/: GenAnd.ig GenAnd.mg GenDivide.ig GenDivide.mg GenExtract.ig GenExtract.mg GenGE.ig GenGE.mg GenGT.ig GenGT.mg GenInsert.ig GenInsert.mg GenLE.ig GenLE.mg GenLT.ig GenLT.mg GenMinus.ig GenMinus.mg GenMod.ig GenMod.mg GenModule.ig GenModule.mg GenNot.ig GenNot.mg GenOr.ig GenOr.mg GenPlus.ig GenPlus.mg GenRotate.ig GenRotate.mg GenShift.ig GenShift.mg GenTimes.ig GenTimes.mg GenXor.ig GenXor.mg LongAnd.i3 LongAnd.m3 LongDivide.i3 LongDivide.m3 LongExtract.i3 LongExtract.m3 LongGE.i3 LongGE.m3 LongGT.i3 LongGT.m3 LongInsert.i3 LongInsert.m3 LongLE.i3 LongLE.m3 LongLT.i3 LongLT.m3 LongMinus.i3 LongMinus.m3 LongMod.i3 LongMod.m3 LongModule.i3 LongModule.m3 LongNot.i3 LongNot.m3 LongOr.i3 LongOr.m3 LongPlus.i3 LongPlus.m3 LongRotate.i3 LongRotate.m3 LongShift.i3 LongShift.m3 LongTimes.i3 LongTimes.m3 LongXor.i3 LongXor.m3 Removed files: cm3/m3-sys/m3front/src/builtinLong/: LongAnd.i3 LongAnd.m3 LongDivide.i3 LongDivide.m3 LongExtract.i3 LongExtract.m3 LongGE.i3 LongGE.m3 LongGT.i3 LongGT.m3 LongInsert.i3 LongInsert.m3 LongLE.i3 LongLE.m3 LongLT.i3 LongLT.m3 LongMinus.i3 LongMinus.m3 LongMod.i3 LongMod.m3 LongModule.i3 LongModule.m3 LongNot.i3 LongNot.m3 LongOr.i3 LongOr.m3 LongPlus.i3 LongPlus.m3 LongRotate.i3 LongRotate.m3 LongShift.i3 LongShift.m3 LongTimes.i3 LongTimes.m3 LongXor.i3 LongXor.m3 m3makefile Log message: Fold implementation of builtin Word and Long interfaces into generics, instantiated for representations using INTEGER and LONGINT. From jkrell at elego.de Wed Jan 6 12:36:38 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 12:36:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106113638.E696B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 12:36:38 Modified files: cm3/m3-libs/m3core/src/C/AMD64_NETBSD/: Csetjmp.i3 Log message: shrink jmp_buf to correct size From jkrell at elego.de Wed Jan 6 12:37:30 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 12:37:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106113730.ED9CACC3BE@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 12:37:30 Modified files: cm3/m3-libs/m3core/src/C/NetBSD2_i386/: Csetjmp.i3 Log message: comments only: remove incorrect comment and put a comment that makes it sound like we know what we are doing here and that the code is correct, which I believe is true From jkrell at elego.de Wed Jan 6 12:50:31 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 12:50:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106115031.E64582474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 12:50:31 Modified files: cm3/m3-libs/m3core/src/C/AMD64_FREEBSD/: Csetjmp.i3 Log message: comments only: put a comment that makes it sound like we know what we are doing here and that the code is correct, which I believe is true From jkrell at elego.de Wed Jan 6 13:39:26 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 13:39:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106123926.B9FC42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 13:39:26 Modified files: cm3/m3-libs/m3core/src/unix/solaris-2-x/: m3makefile Log message: remove duplicate Usignal.i3 From jkrell at elego.de Wed Jan 6 14:08:56 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 14:08:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106130857.C4A382474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 14:08:56 Modified files: cm3/m3-libs/m3core/src/runtime/NT386GNU/: RTMachine.i3 Log message: remove unused import From jkrell at elego.de Wed Jan 6 14:13:17 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 14:13:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106131317.A57402474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 14:13:17 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Unix.i3 cm3/m3-libs/m3core/src/unix/cygwin/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/darwin-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/freebsd-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/hpux-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/interix-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/linux-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/netbsd-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/openbsd-common/: Usysdep.i3 cm3/m3-libs/m3core/src/unix/solaris-common/: Usysdep.i3 Log message: MaxPathLen is apparently 1024 everywhere, except Irix 4096 For now remove it from Usysdep. Maybe in future we exactly undo this. Maybe in future all MaxPathLen uses are in C. Maybe in future all MaxPathLen users allow any length (heap allocated). Maybe in future we raise it to 4096 everywhere (I believe cygwin actually supports 32K) From jkrell at elego.de Wed Jan 6 15:50:35 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 15:50:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106145036.172B92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 15:50:35 Modified files: cm3/scripts/python/: pylib.py Log message: SOLgnu etc. bootstrap archives don't use PIC due to special case in config files and passing PIC flag to assembler here makes cm3 crash, because the base doesn't get added to the offset... From jkrell at elego.de Wed Jan 6 16:34:16 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 16:34:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106153416.D48512474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 16:34:16 Modified files: cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: m3makefile cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/novm/: m3makefile cm3/m3-libs/m3core/src/runtime/DS3100/: m3makefile cm3/m3-libs/m3core/src/runtime/HP300/: m3makefile cm3/m3-libs/m3core/src/runtime/NEXT/: m3makefile cm3/m3-libs/m3core/src/runtime/SUN3/: m3makefile cm3/m3-libs/m3core/src/runtime/UMAX/: m3makefile Removed files: cm3/m3-libs/m3core/src/runtime/AIX386/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/ALPHA_OSF/: RTSignal.m3 cm3/m3-libs/m3core/src/runtime/AP3000/: RTSignal.m3 m3makefile setjmp.asm setjmp.o cm3/m3-libs/m3core/src/runtime/ARM/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/ARM_DARWIN/: m3makefile cm3/m3-libs/m3core/src/runtime/DS3100/: RTSignal.m3 cm3/m3-libs/m3core/src/runtime/FreeBSD/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/FreeBSD2/: COPYRIGHT RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/FreeBSD3/: COPYRIGHT RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/HP300/: RTSignal.m3 cm3/m3-libs/m3core/src/runtime/HPPA/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/IBMR2/: RTSignal.m3 m3makefile notest_longjmp.o notest_longjmp.s cm3/m3-libs/m3core/src/runtime/IBMRT/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/IRIX5/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/LINUX/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/LINUXELF/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/NEXT/: RTSignal.m3 cm3/m3-libs/m3core/src/runtime/OKI/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/OS2/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/SEQUENT/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/SPARC/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/SUN3/: RTSignal.m3 cm3/m3-libs/m3core/src/runtime/SUN386/: RTSignal.m3 m3makefile cm3/m3-libs/m3core/src/runtime/UMAX/: RTSignal.m3 cm3/m3-libs/m3core/src/runtime/VAX/: RTSignal.m3 m3makefile Log message: delete various per-platform files on dead/dormant platforms esp. since most platforms use one portable version now anyway also delete .s/.o files not listed in m3makefile also delete empty ARM_DARWIN/m3makefile for now keep FreeBSD4/NetBSD RTSignal.m3 until machine available for testing From jkrell at elego.de Wed Jan 6 16:35:15 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 6 Jan 2010 16:35:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106153515.B02342474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/06 16:35:15 Removed files: cm3/m3-libs/m3core/src/runtime/VAX/: setjmp.s Log message: delete more From hosking at elego.de Wed Jan 6 18:49:02 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 18:49:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106174902.B3E39CC815@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 18:49:02 Modified files: cm3/m3-libs/m3core/src/atomic/: Atomic.ig m3makefile Added files: cm3/m3-libs/m3core/src/atomic/: AtomicRep.ig atomic.tmpl Removed files: cm3/m3-libs/m3core/src/atomic/: AtomicAddress.i3 AtomicBoolean.i3 AtomicChar.i3 AtomicInteger.i3 AtomicLongint.i3 AtomicRefany.i3 AtomicWideChar.i3 AtomicWord.i3 Log message: Return to using a template to generate the variants of Atomic.ig. (Sorry Jay, I'd forgotten that we can precisely control visibility of these things...) From hosking at elego.de Wed Jan 6 19:00:47 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 19:00:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106180047.6CCDA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 19:00:47 Modified files: cm3/m3-libs/m3core/src/word/: m3makefile Log message: Representation interfaces should be hidden. From hosking at elego.de Wed Jan 6 19:43:12 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 19:43:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106184312.BEACD2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 19:43:12 Modified files: cm3/m3-sys/m3front/src/builtinWord/: GenAnd.mg GenDivide.mg GenGE.mg GenGT.mg GenLE.mg GenLT.mg GenMinus.mg GenMod.mg GenOr.mg GenTimes.mg GenXor.mg m3makefile Added files: cm3/m3-sys/m3front/src/builtinWord/: word.tmpl Removed files: cm3/m3-sys/m3front/src/builtinWord/: LongAnd.i3 LongAnd.m3 LongDivide.i3 LongDivide.m3 LongExtract.i3 LongExtract.m3 LongGE.i3 LongGE.m3 LongGT.i3 LongGT.m3 LongInsert.i3 LongInsert.m3 LongLE.i3 LongLE.m3 LongLT.i3 LongLT.m3 LongMinus.i3 LongMinus.m3 LongMod.i3 LongMod.m3 LongModule.i3 LongModule.m3 LongNot.i3 LongNot.m3 LongOr.i3 LongOr.m3 LongPlus.i3 LongPlus.m3 LongRotate.i3 LongRotate.m3 LongShift.i3 LongShift.m3 LongTimes.i3 LongTimes.m3 LongXor.i3 LongXor.m3 WordAnd.i3 WordAnd.m3 WordDivide.i3 WordDivide.m3 WordExtract.i3 WordExtract.m3 WordGE.i3 WordGE.m3 WordGT.i3 WordGT.m3 WordInsert.i3 WordInsert.m3 WordLE.i3 WordLE.m3 WordLT.i3 WordLT.m3 WordMinus.i3 WordMinus.m3 WordMod.i3 WordMod.m3 WordModule.i3 WordModule.m3 WordNot.i3 WordNot.m3 WordOr.i3 WordOr.m3 WordPlus.i3 WordPlus.m3 WordRotate.i3 WordRotate.m3 WordShift.i3 WordShift.m3 WordTimes.i3 WordTimes.m3 WordXor.i3 WordXor.m3 Log message: Generate the variants using a template. From hosking at elego.de Wed Jan 6 21:22:19 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 21:22:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106202219.D03C9CC814@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 21:22:19 Modified files: cm3/m3-sys/m3front/src/builtinTypes/: Int.i3 Int.m3 LInt.i3 LInt.m3 cm3/m3-sys/m3front/src/builtinWord/: GenAnd.mg GenDivide.mg GenExtract.mg GenGE.mg GenGT.mg GenInsert.mg GenLE.mg GenLT.mg GenMinus.mg GenMod.mg GenModule.mg GenNot.mg GenOr.mg GenPlus.mg GenRotate.mg GenShift.mg GenTimes.mg GenXor.mg Log message: Forgot to commit the extensions to Int/LInt for generic expansions. From hosking at elego.de Wed Jan 6 21:40:20 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 21:40:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106204020.6D3B7CC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 21:40:20 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: Add a few more constants. From hosking at elego.de Wed Jan 6 22:34:03 2010 From: hosking at elego.de (Antony Hosking) Date: Wed, 6 Jan 2010 22:34:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100106213404.04EAA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/06 22:34:03 Modified files: cm3/m3-libs/m3core/src/atomic/: Atomic.ig atomic.tmpl m3makefile Removed files: cm3/m3-libs/m3core/src/atomic/: AtomicRep.ig Log message: Simplify the implementation in the compiler by omitting hidden Rep fun and games. From hosking at elego.de Thu Jan 7 16:19:43 2010 From: hosking at elego.de (Antony Hosking) Date: Thu, 7 Jan 2010 16:19:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100107151944.0CDB6CC811@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/07 16:19:43 Modified files: cm3/m3-libs/m3core/src/word/: m3makefile Log message: Make WordRep and LongRep visible to stubgen and other tools. From hosking at elego.de Thu Jan 7 21:42:58 2010 From: hosking at elego.de (Antony Hosking) Date: Thu, 7 Jan 2010 21:42:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100107204258.C1FD72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/07 21:42:58 Modified files: cm3/m3-sys/m3front/src/builtinTypes/: Int.i3 Int.m3 LInt.i3 LInt.m3 cm3/m3-sys/m3front/src/builtinWord/: GenAnd.ig GenAnd.mg GenDivide.ig GenDivide.mg GenExtract.ig GenExtract.mg GenGE.ig GenGE.mg GenGT.ig GenGT.mg GenInsert.ig GenInsert.mg GenLE.ig GenLE.mg GenLT.ig GenLT.mg GenMinus.ig GenMinus.mg GenMod.ig GenMod.mg GenModule.mg GenNot.ig GenNot.mg GenOr.ig GenOr.mg GenPlus.ig GenPlus.mg GenRotate.ig GenRotate.mg GenShift.ig GenShift.mg GenTimes.ig GenTimes.mg GenXor.ig GenXor.mg Log message: A cleaner solution to determining representation CG type information. From hosking at elego.de Fri Jan 8 17:06:48 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 8 Jan 2010 17:06:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100108160648.E10242474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/08 17:06:48 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Dec.m3 Inc.m3 Log message: Fix bounds checking on INC/DEC. This was incorrectly implemented to allow success for: VAR v: CARDINAL := LAST(INTEGER); BEGIN INC(v) END; because it did not check for integer increment wrapping to an illegal CARDINAL value. From hosking at elego.de Fri Jan 8 18:59:12 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 8 Jan 2010 18:59:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100108175912.531E02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/08 18:59:12 Modified files: cm3/m3-libs/libm3/src/rw/: IO.i3 IO.m3 Log message: Implement PutLongInt, GetLongInt. From hosking at elego.de Fri Jan 8 22:06:20 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 8 Jan 2010 22:06:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100108210620.983A42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/08 22:06:20 Modified files: cm3/m3-libs/m3core/src/atomic/: Atomic.ig Log message: Corrections and adjustments to match C1x stdatomic compare and swap. From jkrell at elego.de Sat Jan 9 09:44:03 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 9 Jan 2010 9:44:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100109084404.2BACA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/09 09:44:03 Modified files: cm3/m3-comm/events/src/: Tag: branch_feature_longint_offset EventHandle.i3 EventPort.m3 EventRd.m3 EventStubLib.m3 EventWr.m3 cm3/m3-comm/netobj/src/netobjrt/: Tag: branch_feature_longint_offset StubLib.m3 VoucherStubs.m3 cm3/m3-comm/rdwr/src/: Tag: branch_feature_longint_offset RdWrPipe.m3 SimpleMsgRW.m3 TeeWr.m3 cm3/m3-comm/tcp/src/common/: Tag: branch_feature_longint_offset ConnMsgRW.m3 ConnRW.m3 cm3/m3-db/smalldb/src/: Tag: branch_feature_longint_offset OSSupportWIN32.m3 SmallDB.i3 SmallDB.m3 cm3/m3-libs/libbuf/src/: Tag: branch_feature_longint_offset Buf.m3 cm3/m3-libs/libm3/src/os/Common/: Tag: branch_feature_longint_offset File.i3 RegularFile.i3 cm3/m3-libs/libm3/src/os/POSIX/: Tag: branch_feature_longint_offset FilePosix.m3 cm3/m3-libs/libm3/src/os/WIN32/: Tag: branch_feature_longint_offset FileWin32.m3 cm3/m3-libs/libm3/src/rw/: Tag: branch_feature_longint_offset AutoFlushWr.m3 FileRd.m3 FileWr.m3 NullRd.m3 NullWr.m3 Rd.i3 Rd.m3 RdClass.i3 RdCopy.i3 RdCopy.m3 RdUtils.i3 RdUtils.m3 TextRd.m3 TextWr.m3 UnsafeWr.i3 Wr.i3 Wr.m3 WrClass.i3 cm3/m3-libs/libm3/src/sx/: Tag: branch_feature_longint_offset Sx.m3 cm3/m3-libs/slisp/src/: Tag: branch_feature_longint_offset SLisp.m3 cm3/m3-libs/sysutils/src/: Tag: branch_feature_longint_offset ConnectRdWr.m3 cm3/m3-obliq/obliqlibm3/src/: Tag: branch_feature_longint_offset ObLibM3.m3 cm3/m3-sys/cm3/src/: Tag: branch_feature_longint_offset WebFile.m3 cm3/m3-sys/cm3ide/src/misc/: Tag: branch_feature_longint_offset LineWr.m3 cm3/m3-sys/cm3ide/src/nodes/: Tag: branch_feature_longint_offset Type.m3 cm3/m3-sys/cm3ide/src/utils/: Tag: branch_feature_longint_offset Buf.m3 cm3/m3-sys/fix_nl/src/: Tag: branch_feature_longint_offset Main.m3 cm3/m3-sys/libdump/src/: Tag: branch_feature_longint_offset Main.m3 cm3/m3-sys/m3front/src/builtinOps/: Tag: branch_feature_longint_offset Dec.m3 Max.m3 Min.m3 cm3/m3-sys/m3front/src/exprs/: Tag: branch_feature_longint_offset AddExpr.m3 CompareExpr.m3 DivExpr.m3 ModExpr.m3 MultiplyExpr.m3 SubtractExpr.m3 cm3/m3-sys/m3front/src/types/: Tag: branch_feature_longint_offset Type.m3 cm3/m3-sys/m3quake/src/: Tag: branch_feature_longint_offset QScanner.m3 cm3/m3-sys/m3scanner/src/: Tag: branch_feature_longint_offset M3Scanner.m3 cm3/m3-sys/mklib/src/: Tag: branch_feature_longint_offset Main.m3 cm3/m3-tools/cmpdir/src/: Tag: branch_feature_longint_offset Main.m3 cm3/m3-tools/dirfp/src/: Tag: branch_feature_longint_offset Main.m3 cm3/m3-tools/m3bundle/src/: Tag: branch_feature_longint_offset m3bundle.m3 cm3/m3-tools/m3scan/src/: Tag: branch_feature_longint_offset M3Scanner.m3 cm3/m3-tools/m3tk/src/files/Common/: Tag: branch_feature_longint_offset M3DirFindFile.m3 cm3/m3-tools/m3tohtml/src/: Tag: branch_feature_longint_offset DBRd.m3 MarkUp.m3 cm3/m3-tools/rehearsecode/src/: Tag: branch_feature_longint_offset RehearseCode.m3 cm3/m3-ui/codeview/src/: Tag: branch_feature_longint_offset CodeView.m3 cm3/m3-ui/formsedit/src/: Tag: branch_feature_longint_offset FormsEditVBT.m3 cm3/m3-ui/formsvbt/src/: Tag: branch_feature_longint_offset FVRuntime.m3 Manpage.m3 cm3/m3-ui/juno-2/juno-app/src/: Tag: branch_feature_longint_offset Editor.m3 Source.m3 cm3/m3-ui/juno-2/juno-compiler/src/: Tag: branch_feature_longint_offset JunoLex.m3 cm3/m3-ui/mgkit/src/: Tag: branch_feature_longint_offset MGRd.m3 cm3/m3-ui/vbtkit/src/etext/: Tag: branch_feature_longint_offset MTextUnit.m3 TextPortClass.m3 TypescriptVBT.m3 cm3/m3-ui/vbtkit/src/mtext/: Tag: branch_feature_longint_offset MTextRd.m3 cm3/m3-ui/vbtkit/src/vtext/: Tag: branch_feature_longint_offset VTRd.m3 cm3/m3-www/http/src/: Tag: branch_feature_longint_offset HTTP.m3 Log message: one version of 64bit file size support, in a branch features of this version: compiler supports assignment INTEGER to LONGINT compiler supports various mixed operations FOR loop in compiler not changed, but should be compiler doesn't quite get assignability correct ramifications: no need for VAL(expr, LONGINT) sprinkled everywhere except for a few, due to compiler not quite right need for ORD sprinkled because don't support LONGINT to INTEGER There are many bits to decide and this is just combination. Also, this only has the support for Windows, not Posix. And the Windows support isn't "real" in that the compiler makes LONGINT only 32bits, and the few places that get file sizes from the underlying system, still truncate to 32bits. However, this diff is "mostly real", given the "decision bits" it has made. And one can consider this file list useful, depending on where we end up. From hosking at elego.de Sat Jan 9 23:05:05 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 9 Jan 2010 23:05:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100109220505.B30EC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/09 23:05:05 Modified files: cm3/m3-sys/m3cc/gcc/gcc/m3cg/: m3cg.h parse.c Log message: First cut rework of support for atomic primitives as documented in Atomic.ig. From hosking at elego.de Sat Jan 9 23:10:13 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 9 Jan 2010 23:10:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100109221013.AB8E62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/09 23:10:13 Modified files: cm3/m3-sys/m3front/src/misc/: M3Front.m3 Log message: Forgot to add extra parameter to Initialize function for Word/Long. From hosking at elego.de Sat Jan 9 23:11:44 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 9 Jan 2010 23:11:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100109221144.7CACC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/09 23:11:44 Modified files: cm3/m3-sys/m3front/src/misc/: Token.m3 Log message: Drop CAS/CASP. From hosking at elego.de Sun Jan 10 06:12:06 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 10 Jan 2010 6:12:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110051206.C6C792474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/10 06:12:06 Modified files: cm3/m3-sys/m3front/src/exprs/: AddExpr.m3 Log message: Adjust bounds to be different than the type's bounds only if both sum bounds are known exactly. From hosking at elego.de Sun Jan 10 06:12:18 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 10 Jan 2010 6:12:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110051218.2F3C42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/10 06:12:18 Modified files: cm3/m3-sys/m3front/src/exprs/: SubtractExpr.m3 Log message: Adjust bounds to be different than the type's bounds only if both sum bounds are known exactly. From hosking at elego.de Sun Jan 10 06:16:05 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 10 Jan 2010 6:16:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110051605.9041B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/10 06:16:05 Modified files: cm3/m3-sys/m3front/src/exprs/: CheckExpr.m3 Log message: Comparisons should be performed on the signed type of the expression. From hosking at elego.de Sun Jan 10 06:24:44 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 10 Jan 2010 6:24:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110052445.26E762474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/10 06:24:44 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Inc.m3 Log message: Need to used appropriate signed type (Integer or Longint) for operation and range checks. From hosking at elego.de Sun Jan 10 06:26:45 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 10 Jan 2010 6:26:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110052645.EC4142474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/10 06:26:45 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Dec.m3 Log message: Need to used appropriate signed type (Integer or Longint) for operation and range checks. From hosking at elego.de Sun Jan 10 07:54:48 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 10 Jan 2010 7:54:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110065448.C0B692474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/10 07:54:48 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Last.m3 Log message: Let's be super-careful here and avoid CGType. From hosking at elego.de Sun Jan 10 07:57:13 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 10 Jan 2010 7:57:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110065714.13EF22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/10 07:57:13 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Last.m3 Log message: Oops. Fix typo. From hosking at elego.de Sun Jan 10 07:57:34 2010 From: hosking at elego.de (Antony Hosking) Date: Sun, 10 Jan 2010 7:57:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110065734.CFC5B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/10 07:57:34 Modified files: cm3/m3-sys/m3front/src/builtinOps/: First.m3 Log message: Let's be super-careful here and avoid CGType. From jkrell at elego.de Sun Jan 10 11:45:16 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 10 Jan 2010 11:45:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110104516.A0E532474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/10 11:45:16 Modified files: cm3/m3-sys/m3front/src/builtinOps/: BuiltinOps.m3 m3makefile cm3/m3-sys/m3front/src/misc/: CG.i3 CG.m3 Log message: finish removing cas/casp, in order to fix this problem: *** *** runtime error: *** An array subscript was out of range. *** file "..\src\misc\Scanner.m3", line 351 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x12f774 0x49c8e2 NoteReserved + 0x44 in ..\src\misc\Scanner.m3 0x12f7ac 0x4cb247 Define + 0xf9 in ..\src\values\Procedure.m3 0x12f7d4 0x517b7b Initialize + 0xd5 in ..\src\builtinOps\Cas.m3 0x12f7e8 0x4b0320 Initialize + 0x30 in ..\src\builtinOps\BuiltinOps.m3 0x12f804 0x499341 Initialize + 0x9a in ..\src\misc\M3Front.m3 0x12f834 0x498f81 ParseImports + 0x151 in ..\src\misc\M3Front.m3 0x12f860 0x40a6eb Pass0_CheckImports + 0xa4 in ..\src\Builder.m3 0x12f8ac 0x409e87 RunM3 + 0x215 in ..\src\Builder.m3 0x12f8e8 0x40862c PushOneM3 + 0x10a in ..\src\Builder.m3 0x12f918 0x4084f9 CompileM3 + 0x21d in ..\src\Builder.m3 ......... ......... ... more frames ... From jkrell at elego.de Sun Jan 10 11:46:36 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 10 Jan 2010 11:46:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110104636.2C3AB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/10 11:46:36 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Dec.m3 Log message: make DEC decrement instead of increment From jkrell at elego.de Sun Jan 10 11:50:00 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 10 Jan 2010 11:50:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100110105001.08B8E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/10 11:50:00 Removed files: cm3/m3-sys/m3front/src/builtinOps/: Cas.i3 Cas.m3 CasP.i3 CasP.m3 Log message: really, finish removing cas/casp From hosking at elego.de Mon Jan 11 19:19:12 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 19:19:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111181912.6B2642474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 19:19:12 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Ord.m3 Log message: Rework so that ORD always returns the underlying type of its argument. Thus ORD(LONGINT) returns LONGINT. From hosking at elego.de Mon Jan 11 19:20:07 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 19:20:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111182007.D2C522474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 19:20:07 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Val.m3 Log message: Rework to allow arbitrary conversions (range checked of course) to/from LONGINT/INTEGER. From hosking at elego.de Mon Jan 11 19:28:44 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 19:28:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111182844.D7C432474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 19:28:44 Modified files: cm3/doc/reference/: typeops.html Log message: Fix definitions of ORD and VAL to match current implementation. From hosking at elego.de Mon Jan 11 19:31:20 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 19:31:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111183120.D6CD62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 19:31:20 Modified files: cm3/doc/reference/: conventions.html Log message: Also fix example that uses ORD to match its actual definition. From hosking at elego.de Mon Jan 11 19:32:51 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 19:32:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111183251.13CB92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 19:32:51 Modified files: cm3/doc/reference/complete/: m3-defn-complete.tex Log message: Fix definitions of ORD and VAL to match current implementation. From hosking at elego.de Mon Jan 11 19:34:04 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 19:34:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111183404.A69E92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 19:34:04 Modified files: cm3/doc/reference/complete/: m3-defn-complete.ps Log message: Regenerate Postscript. From hosking at elego.de Mon Jan 11 19:34:26 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 19:34:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111183426.D8EF82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 19:34:26 Added files: cm3/doc/reference/complete/: m3-defn-complete.pdf Log message: Let's have PDF as well. From hosking at elego.de Mon Jan 11 20:19:16 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:19:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111191916.618872474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:19:16 Modified files: cm3/m3-libs/m3core/src/convert/: Convert.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 20:23:48 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:23:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111192348.4B9382474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:23:48 Modified files: cm3/m3-sys/m3cggen/src/: Main.m3 Log message: Reconcile with new M3CG_Binary.Op. From hosking at elego.de Mon Jan 11 20:26:03 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:26:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111192603.B97172474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:26:03 Modified files: cm3/m3-libs/libm3/src/fmtlex/: Fmt.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 20:26:20 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:26:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111192620.E40D62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:26:20 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FSPosix.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 20:26:34 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:26:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111192634.C34D32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:26:34 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosix.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 20:26:49 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:26:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111192649.16A7B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:26:49 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: SocketPosix.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 20:31:49 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:31:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111193149.8D5932474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:31:49 Modified files: cm3/m3-tools/m3tk/src/target/: M3CBackEnd_C.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 20:42:33 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:42:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111194233.0A7C42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:42:33 Modified files: cm3/m3-sys/m3middle/src/: TInt.m3 Log message: Need support for precision conversions under new VAL/ORD. From hosking at elego.de Mon Jan 11 20:44:00 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:44:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111194400.A25DA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:44:00 Modified files: cm3/m3-tools/m3tk/src/target/: M3CBackEnd_C.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 20:44:15 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:44:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111194415.D3A4B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:44:15 Modified files: cm3/m3-tools/m3tk/src/target/: M3CBackEnd_Int.mg Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 20:54:02 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 20:54:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111195402.457802474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 20:54:02 Modified files: cm3/m3-tools/cvsup/suplib/src/: TokScan.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 21:05:39 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 21:05:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111200539.64F3D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 21:05:39 Modified files: cm3/m3-tools/cvsup/suplib/src/: FileAttr.m3 RCSFile.m3 RsyncFile.m3 UnixMisc.m3 cm3/m3-tools/cvsup/suplib/src/dev_t_posix/: DevT.m3 Log message: Propagate new versions of ORD/VAL for LONGINT. From hosking at elego.de Mon Jan 11 21:38:30 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 21:38:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111203830.6A3562474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 21:38:30 Modified files: cm3/doc/reference/: typeops.html Log message: Typeset T as tt. From hosking at elego.de Mon Jan 11 23:04:48 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 11 Jan 2010 23:04:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100111220449.003432474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/11 23:04:48 Modified files: cm3/m3-sys/m3middle/src/: M3CG.i3 M3CG.m3 M3CG_BinRd.m3 M3CG_BinWr.m3 M3CG_Binary.i3 M3CG_Check.m3 M3CG_Ops.i3 M3CG_Rd.m3 M3CG_Wr.m3 Target.i3 Log message: Rework atomics to allow targeting of atomic ops like those of C1x . From jkrell at elego.de Tue Jan 12 11:20:39 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 12 Jan 2010 11:20:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100112102039.C3F672474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/12 11:20:39 Modified files: cm3/m3-db/stable/src/: LogManager.m3 cm3/m3-libs/libbuf/src/: Buf.m3 cm3/m3-libs/libm3/src/os/Common/: File.i3 cm3/m3-libs/libm3/src/os/POSIX/: FSPosix.m3 FilePosix.m3 SocketPosix.m3 cm3/m3-libs/libm3/src/os/WIN32/: FSWin32.m3 FileWin32.m3 LazyConsole.m3 cm3/m3-libs/libm3/src/rw/: FileRd.m3 FileWr.m3 cm3/m3-sys/cm3/src/: WebFile.m3 cm3/m3-sys/cm3ide/src/utils/: Buf.m3 cm3/m3-sys/fix_nl/src/: Main.m3 cm3/m3-sys/m3quake/src/: QScanner.m3 cm3/m3-sys/mklib/src/: Main.m3 cm3/m3-tools/cmpdir/src/: Main.m3 cm3/m3-tools/dirfp/src/: Main.m3 cm3/m3-tools/m3tohtml/src/: DBRd.m3 Log message: Change File.i3/Status.size from CARDINAL to [0L..LAST(LONGINT)]. (Notice that some code checks if it is < 0, though don't confuse that with <= 0.) Leave rd/wr essentially unchanged. This is probably enough to fix the exception when browsing to a directory with large files. Not that much/any code can read/write such files on 32bit system -- all the direct users of File.i3 appear to read the entire file into memory. From jay.krell at cornell.edu Tue Jan 12 11:23:24 2010 From: jay.krell at cornell.edu (Jay K) Date: Tue, 12 Jan 2010 10:23:24 +0000 Subject: [M3commit] Change File.i3/Status.size from CARDINAL to [0L..LAST(LONGINT)]. In-Reply-To: <20100112102039.C3F672474001@birch.elegosoft.com> References: <20100112102039.C3F672474001@birch.elegosoft.com> Message-ID: diff attached (cvs is lame..) - Jay > Date: Tue, 12 Jan 2010 11:20:39 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/12 11:20:39 > > Modified files: > cm3/m3-db/stable/src/: LogManager.m3 > cm3/m3-libs/libbuf/src/: Buf.m3 > cm3/m3-libs/libm3/src/os/Common/: File.i3 > cm3/m3-libs/libm3/src/os/POSIX/: FSPosix.m3 FilePosix.m3 > SocketPosix.m3 > cm3/m3-libs/libm3/src/os/WIN32/: FSWin32.m3 FileWin32.m3 > LazyConsole.m3 > cm3/m3-libs/libm3/src/rw/: FileRd.m3 FileWr.m3 > cm3/m3-sys/cm3/src/: WebFile.m3 > cm3/m3-sys/cm3ide/src/utils/: Buf.m3 > cm3/m3-sys/fix_nl/src/: Main.m3 > cm3/m3-sys/m3quake/src/: QScanner.m3 > cm3/m3-sys/mklib/src/: Main.m3 > cm3/m3-tools/cmpdir/src/: Main.m3 > cm3/m3-tools/dirfp/src/: Main.m3 > cm3/m3-tools/m3tohtml/src/: DBRd.m3 > > Log message: > Change File.i3/Status.size from CARDINAL to [0L..LAST(LONGINT)]. > (Notice that some code checks if it is < 0, though don't > confuse that with <= 0.) > Leave rd/wr essentially unchanged. > This is probably enough to fix the exception when browsing to a directory with large files. > Not that much/any code can read/write such files on 32bit system -- all the direct users of File.i3 > appear to read the entire file into memory. > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 2.txt URL: From jkrell at elego.de Tue Jan 12 12:16:59 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 12 Jan 2010 12:16:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100112111659.4207E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/12 12:16:59 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: add portable possible functions for implementing overflow checking of add/sub/mult of int, int64, uint, uint64 From jkrell at elego.de Tue Jan 12 18:23:12 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 12 Jan 2010 18:23:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100112172312.20D6C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/12 18:23:12 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: comments From jkrell at elego.de Tue Jan 12 18:29:19 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 12 Jan 2010 18:29:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100112172920.05DFA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/12 18:29:19 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: use min/max from limits.h From jkrell at elego.de Tue Jan 12 18:31:31 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 12 Jan 2010 18:31:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100112173131.76A542474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/12 18:31:31 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: use BOOL for clarify From hosking at cs.purdue.edu Tue Jan 12 19:18:27 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 12 Jan 2010 13:18:27 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100112111659.4207E2474001@birch.elegosoft.com> References: <20100112111659.4207E2474001@birch.elegosoft.com> Message-ID: <11F12316-4C80-41C3-AAF5-6F4D5E1F14BC@cs.purdue.edu> Do we really want to do this via compilation and out-of-line functions? Surely we would prefer to implement the FloatMode interface to catch hardware traps... I haven't looked at the details but that seems to be the intent... On 12 Jan 2010, at 12:16, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/12 12:16:59 > > Modified files: > cm3/m3-libs/m3core/src/Csupport/Common/: hand.c > > Log message: > add portable possible functions for implementing overflow checking of add/sub/mult of int, int64, uint, uint64 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Jan 12 19:47:44 2010 From: jay.krell at cornell.edu (Jay K) Date: Tue, 12 Jan 2010 18:47:44 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <11F12316-4C80-41C3-AAF5-6F4D5E1F14BC@cs.purdue.edu> References: <20100112111659.4207E2474001@birch.elegosoft.com>, <11F12316-4C80-41C3-AAF5-6F4D5E1F14BC@cs.purdue.edu> Message-ID: What hardware traps? Sure, maybe integer divide by zero. Unlikely I think for integer overflow. I agree out of line inefficient. Probably want "check the carry flag" generated inline, in whatever machine-specific way that is done, may or may not require extra work in m3cg. I might try this soon though, where a command line option (for now) uses function calls and raises exceptions. My slightly refined thinking is that the generate code will look like: a := b + c * d; Foo() d := a + b * c; Bar() overflow = 0; a = add(b, mult(c, d), &overflow); if (overflow) Raise... Foo(); overflow = 0; a = add(a, mult(b, c), &overflow); if (overflow) Raise... That is -- the overflow flag need only be checked "occasionally", such as before any function call, maybe at the start of any loop. Or at the very least, if a statement contains no function calls, only at the end of the statement, not after evaluating each term in an expression. Once overflow occurs, there's little requirement on how the statement proceeds. Though divide by zero shouldn't result. Probably if an expression contains any division, check overflow at each step. ? But maybe "check the overflow flag" is easy enough and right surely far more efficient. - Jay ________________________________ > From: hosking at cs.purdue.edu > Date: Tue, 12 Jan 2010 13:18:27 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > > > Do we really want to do this via compilation and out-of-line functions? Surely we would prefer to implement the FloatMode interface to catch hardware traps... I haven't looked at the details but that seems to be the intent... > > > > On 12 Jan 2010, at 12:16, Jay Krell wrote: > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/12 12:16:59 > > Modified files: > cm3/m3-libs/m3core/src/Csupport/Common/: hand.c > > Log message: > add portable possible functions for implementing overflow checking of add/sub/mult of int, int64, uint, uint64 > From jay.krell at cornell.edu Tue Jan 12 20:17:18 2010 From: jay.krell at cornell.edu (Jay K) Date: Tue, 12 Jan 2010 19:17:18 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100112111659.4207E2474001@birch.elegosoft.com>, , <11F12316-4C80-41C3-AAF5-6F4D5E1F14BC@cs.purdue.edu>, Message-ID: further clarification: We should be able to inject these functions as inlines at the start of any module, in terms of the gcc backend. That is something we might want to explore a bit in general. - Jay ---------------------------------------- > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu; jkrell at elego.de > Date: Tue, 12 Jan 2010 18:47:44 +0000 > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > > What hardware traps? > > Sure, maybe integer divide by zero. > > > Unlikely I think for integer overflow. > I agree out of line inefficient. > Probably want "check the carry flag" generated inline, > in whatever machine-specific way that is done, may > or may not require extra work in m3cg. > > > I might try this soon though, where a command line option (for now) > uses function calls and raises exceptions. > My slightly refined thinking is that the generate code will look like: > > > a := b + c * d; > Foo() > d := a + b * c; > Bar() > > > overflow = 0; > a = add(b, mult(c, d), &overflow); > if (overflow) Raise... > Foo(); > overflow = 0; > a = add(a, mult(b, c), &overflow); > if (overflow) Raise... > > > That is -- the overflow flag need only be checked "occasionally", such as before any function call, maybe at the start of any loop. > Or at the very least, if a statement contains no function calls, only at the end of the statement, not after evaluating each term in an expression. > > > Once overflow occurs, there's little requirement on how the statement proceeds. Though divide by zero shouldn't result. Probably if an expression contains any division, check overflow at each step. > ? > > > But maybe "check the overflow flag" is easy enough and right surely far more efficient. > > > > - Jay > > > > ________________________________ >> From: hosking at cs.purdue.edu >> Date: Tue, 12 Jan 2010 13:18:27 -0500 >> To: jkrell at elego.de >> CC: m3commit at elegosoft.com >> Subject: Re: [M3commit] CVS Update: cm3 >> >> >> >> Do we really want to do this via compilation and out-of-line functions? Surely we would prefer to implement the FloatMode interface to catch hardware traps... I haven't looked at the details but that seems to be the intent... >> >> >> >> On 12 Jan 2010, at 12:16, Jay Krell wrote: >> >> CVSROOT: /usr/cvs >> Changes by: jkrell at birch. 10/01/12 12:16:59 >> >> Modified files: >> cm3/m3-libs/m3core/src/Csupport/Common/: hand.c >> >> Log message: >> add portable possible functions for implementing overflow checking of add/sub/mult of int, int64, uint, uint64 >> From hosking at cs.purdue.edu Tue Jan 12 20:39:06 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 12 Jan 2010 14:39:06 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100112111659.4207E2474001@birch.elegosoft.com>, <11F12316-4C80-41C3-AAF5-6F4D5E1F14BC@cs.purdue.edu> Message-ID: <65E71272-AEF8-4D3F-82EC-C96FC18BE87E@cs.purdue.edu> The MIPS for example has overflow traps on signed arithmetic. SPARC has tagged arithmetic that causes an overflow trap. x86 probably needs explicit test of the condition codes -- sigh! That's why C is silent about integer arithmetic overflow... because Intel can't support it via traps... On 12 Jan 2010, at 13:47, Jay K wrote: > > What hardware traps? > > Sure, maybe integer divide by zero. > > > Unlikely I think for integer overflow. > I agree out of line inefficient. > Probably want "check the carry flag" generated inline, > in whatever machine-specific way that is done, may > or may not require extra work in m3cg. > > > I might try this soon though, where a command line option (for now) > uses function calls and raises exceptions. > My slightly refined thinking is that the generate code will look like: > > > a := b + c * d; > Foo() > d := a + b * c; > Bar() > > > overflow = 0; > a = add(b, mult(c, d), &overflow); > if (overflow) Raise... > Foo(); > overflow = 0; > a = add(a, mult(b, c), &overflow); > if (overflow) Raise... > > > That is -- the overflow flag need only be checked "occasionally", such as before any function call, maybe at the start of any loop. > Or at the very least, if a statement contains no function calls, only at the end of the statement, not after evaluating each term in an expression. > > > Once overflow occurs, there's little requirement on how the statement proceeds. Though divide by zero shouldn't result. Probably if an expression contains any division, check overflow at each step. > ? > > > But maybe "check the overflow flag" is easy enough and right surely far more efficient. > > > > - Jay > > > > ________________________________ >> From: hosking at cs.purdue.edu >> Date: Tue, 12 Jan 2010 13:18:27 -0500 >> To: jkrell at elego.de >> CC: m3commit at elegosoft.com >> Subject: Re: [M3commit] CVS Update: cm3 >> >> >> >> Do we really want to do this via compilation and out-of-line functions? Surely we would prefer to implement the FloatMode interface to catch hardware traps... I haven't looked at the details but that seems to be the intent... >> >> >> >> On 12 Jan 2010, at 12:16, Jay Krell wrote: >> >> CVSROOT: /usr/cvs >> Changes by: jkrell at birch. 10/01/12 12:16:59 >> >> Modified files: >> cm3/m3-libs/m3core/src/Csupport/Common/: hand.c >> >> Log message: >> add portable possible functions for implementing overflow checking of add/sub/mult of int, int64, uint, uint64 >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcoleburn at elego.de Wed Jan 13 02:34:52 2010 From: rcoleburn at elego.de (Randy Coleburn) Date: Wed, 13 Jan 2010 2:34:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100113013452.7A2222474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 10/01/13 02:34:52 Modified files: cm3/scripts/dev/windows/: do-cm3.cmd Log message: repair multiple bugs in "if defined xxx if exist %xxx% del %xxx%" construct From jkrell at elego.de Wed Jan 13 23:03:05 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 13 Jan 2010 23:03:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100113220305.4DE8C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/13 23:03:05 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: parens and a fix, but not really working on this right now From jkrell at elego.de Wed Jan 13 23:06:47 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 13 Jan 2010 23:06:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100113220647.7213D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/13 23:06:47 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: fix gcc warning about overflow, and then msc warning about negating an unsigned value From jkrell at elego.de Wed Jan 13 23:10:13 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 13 Jan 2010 23:10:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100113221013.740C82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/13 23:10:13 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: more cumbersome version From rcoleburn at elego.de Thu Jan 14 03:03:50 2010 From: rcoleburn at elego.de (Randy Coleburn) Date: Thu, 14 Jan 2010 3:03:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114020350.D33932474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 10/01/14 03:03:50 Modified files: cm3/scripts/dev/windows/: do-cm3.cmd Log message: 01/13/2010, R.Coleburn, add "-skip" directive. Force argument keywords to be prefixed by "-". From rcoleburn at elego.de Thu Jan 14 04:22:06 2010 From: rcoleburn at elego.de (Randy Coleburn) Date: Thu, 14 Jan 2010 4:22:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114032206.B91A12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 10/01/14 04:22:06 Modified files: cm3/scripts/dev/windows/: RCC_upgradeCM3.cmd Log message: 01/13/2010, R.Coleburn, skip m3core, libm3, and mklib in 1st phase; using revised do-cm3.cmd. Force argument keywords to be prefixed by "-". Pass thru control args to do-cm3.cmd. Add -all argument keyword. From jkrell at elego.de Thu Jan 14 10:53:55 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 10:53:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114095355.814D62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 10:53:55 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Tag: release_branch_cm3_5_8 BuiltinOps.m3 m3makefile cm3/m3-sys/m3front/src/misc/: Tag: release_branch_cm3_5_8 CG.i3 CG.m3 Token.m3 Removed files: cm3/m3-sys/m3front/src/builtinOps/: Tag: release_branch_cm3_5_8 Cas.i3 Cas.m3 CasP.i3 CasP.m3 Log message: partial merge from head: remove cas/casp (compare and swap, compare and swap predicate (boolean return)) From jkrell at elego.de Thu Jan 14 11:45:36 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 11:45:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114104536.4BAB62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 11:45:36 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 Log message: add convenience functions: NE, GT, GE add constants: Ten, MinS32, MaxS32, MinS64, MAXS64, MinU32, MaxU32, MinU64, MaxU64 S is Signed, U is Unsigned (M is for Minus, which seems like a misnomer, it should be N for negative?, minus is an operator (verb??, "to minus" sounds wrong), negative is an adjective) From jkrell at elego.de Thu Jan 14 11:45:58 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 11:45:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114104558.CC54C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 11:45:58 Modified files: cm3/m3-sys/m3middle/src/: Target.i3 Log message: initialize Int.n := 0 From jkrell at elego.de Thu Jan 14 11:47:07 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 11:47:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114104709.077632474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 11:47:07 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: terser From jkrell at elego.de Thu Jan 14 11:47:38 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 11:47:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114104740.05F422474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 11:47:38 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: comment only (minus vs. negative, but not so verbose as previous checkin comment!) From jkrell at elego.de Thu Jan 14 11:49:55 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 11:49:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114104955.A73872474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 11:49:55 Modified files: cm3/m3-sys/m3middle/src/: Target.i3 Log message: initialize Int.n := 1, 0 appears not legal From jkrell at elego.de Thu Jan 14 12:11:42 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 12:11:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114111142.BE1282474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 12:11:42 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 Log message: imm > -16_81 is more clearly stated as imm >= -16_80, right? > -129 vs. >= -128 From jkrell at elego.de Thu Jan 14 12:20:16 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 12:20:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114112016.49D6B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 12:20:16 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: add 8bit and 16bit constants too From jkrell at elego.de Thu Jan 14 12:28:45 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 12:28:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114112845.789B62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 12:28:45 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 Log message: add ToText, small wrapper around ToChars From jkrell at elego.de Thu Jan 14 12:29:18 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 12:29:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114112918.A09942474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 12:29:18 Modified files: cm3/m3-sys/m3middle/src/: m3makefile Log message: fix newlines From jkrell at elego.de Thu Jan 14 13:33:42 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 13:33:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114123342.98F412474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 13:33:42 Modified files: cm3/m3-libs/m3core/src/convert/: Tag: release_branch_cm3_5_8 Convert.m3 cm3/m3-libs/libm3/src/fmtlex/: Tag: release_branch_cm3_5_8 Fmt.m3 cm3/m3-sys/m3front/src/builtinOps/: Tag: release_branch_cm3_5_8 Val.m3 Ord.m3 cm3/m3-tools/m3tk/src/target/: Tag: release_branch_cm3_5_8 M3CBackEnd_Int.mg M3CBackEnd_C.m3 Log message: copy LONGINT changes from head From jay.krell at cornell.edu Thu Jan 14 13:36:25 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 14 Jan 2010 12:36:25 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100114123342.98F412474001@birch.elegosoft.com> References: <20100114123342.98F412474001@birch.elegosoft.com> Message-ID: In the continuing series of: cvs/cvsweb is so lame, it is way too difficult to see what any change is, diffs attached, hopefully they match the checkin.. - Jay > Date: Thu, 14 Jan 2010 13:33:42 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/14 13:33:42 > > Modified files: > cm3/m3-libs/m3core/src/convert/: Tag: release_branch_cm3_5_8 > Convert.m3 > cm3/m3-libs/libm3/src/fmtlex/: Tag: release_branch_cm3_5_8 > Fmt.m3 > cm3/m3-sys/m3front/src/builtinOps/: Tag: release_branch_cm3_5_8 > Val.m3 Ord.m3 > cm3/m3-tools/m3tk/src/target/: Tag: release_branch_cm3_5_8 > M3CBackEnd_Int.mg M3CBackEnd_C.m3 > > Log message: > copy LONGINT changes from head > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 1.txt URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 2.txt URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 3.txt URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 4.txt URL: From jay.krell at cornell.edu Thu Jan 14 13:37:45 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 14 Jan 2010 12:37:45 +0000 Subject: [M3commit] longint changes to release branch In-Reply-To: References: <20100114123342.98F412474001@birch.elegosoft.com>, Message-ID: Also, I'm slightly guessing here as to what should go to release. - Jay From: jay.krell at cornell.edu To: m3commit at elegosoft.com; m3devel at elegosoft.com Date: Thu, 14 Jan 2010 12:36:25 +0000 Subject: Re: [M3devel] [M3commit] CVS Update: cm3 In the continuing series of: cvs/cvsweb is so lame, it is way too difficult to see what any change is, diffs attached, hopefully they match the checkin.. - Jay > Date: Thu, 14 Jan 2010 13:33:42 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/14 13:33:42 > > Modified files: > cm3/m3-libs/m3core/src/convert/: Tag: release_branch_cm3_5_8 > Convert.m3 > cm3/m3-libs/libm3/src/fmtlex/: Tag: release_branch_cm3_5_8 > Fmt.m3 > cm3/m3-sys/m3front/src/builtinOps/: Tag: release_branch_cm3_5_8 > Val.m3 Ord.m3 > cm3/m3-tools/m3tk/src/target/: Tag: release_branch_cm3_5_8 > M3CBackEnd_Int.mg M3CBackEnd_C.m3 > > Log message: > copy LONGINT changes from head > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Thu Jan 14 13:44:28 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 13:44:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114124428.2A2532474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 13:44:28 Modified files: cm3/doc/reference/: Tag: release_branch_cm3_5_8 typeops.html Log message: copy ord/val/longint documentation change from head From jkrell at elego.de Thu Jan 14 13:48:15 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 13:48:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114124815.313932474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 13:48:15 Modified files: cm3/doc/reference/: Tag: release_branch_cm3_5_8 conventions.html cm3/doc/reference/complete/: Tag: release_branch_cm3_5_8 m3-defn-complete.ps m3-defn-complete.tex Added files: cm3/doc/reference/complete/: Tag: release_branch_cm3_5_8 m3-defn-complete.pdf Log message: copy documentation updates from head, mostly regarding LONGINT/ORD/VAL From jkrell at elego.de Thu Jan 14 13:50:47 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 14 Jan 2010 13:50:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114125048.05EA32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 13:50:47 Removed files: cm3/doc/: Tag: release_branch_cm3_5_8 add Log message: remove zero length file that surely isn't needed here From hosking at cs.purdue.edu Thu Jan 14 14:49:46 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 14 Jan 2010 08:49:46 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100114104536.4BAB62474001@birch.elegosoft.com> References: <20100114104536.4BAB62474001@birch.elegosoft.com> Message-ID: <89A2020C-968A-4592-AD81-2DF160B19833@cs.purdue.edu> I'm not sure I buy all of these. I'll have to take a look. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 14 Jan 2010, at 11:45, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/14 11:45:36 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > add convenience functions: NE, GT, GE > add constants: Ten, MinS32, MaxS32, MinS64, MAXS64, MinU32, MaxU32, MinU64, > MaxU64 > S is Signed, U is Unsigned (M is for Minus, which seems like > a misnomer, it should be N for negative?, minus is an operator (verb??, > "to minus" sounds wrong), negative is an adjective) -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Jan 14 14:50:58 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 14 Jan 2010 08:50:58 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100114112016.49D6B2474001@birch.elegosoft.com> References: <20100114112016.49D6B2474001@birch.elegosoft.com> Message-ID: <9D8FDD3C-FB5B-44CF-A71E-51FD0AD14548@cs.purdue.edu> You should not need these at all. What's going on here? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 14 Jan 2010, at 12:20, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/14 12:20:16 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 > > Log message: > add 8bit and 16bit constants too -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Jan 14 14:50:14 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 14 Jan 2010 08:50:14 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100114104955.A73872474001@birch.elegosoft.com> References: <20100114104955.A73872474001@birch.elegosoft.com> Message-ID: <9CA0F0B8-1760-40D5-9137-8F47433FE32C@cs.purdue.edu> What are you trying to achieve? On 14 Jan 2010, at 11:49, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/14 11:49:55 > > Modified files: > cm3/m3-sys/m3middle/src/: Target.i3 > > Log message: > initialize Int.n := 1, 0 appears not legal -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Jan 14 14:51:17 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 14 Jan 2010 08:51:17 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100114112845.789B62474001@birch.elegosoft.com> References: <20100114112845.789B62474001@birch.elegosoft.com> Message-ID: <81DB828C-042F-4263-AA9F-896B4ED9587E@cs.purdue.edu> Again, this means allocation. We want to avoid that! Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 14 Jan 2010, at 12:28, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/14 12:28:45 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > add ToText, small wrapper around ToChars -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at elego.de Thu Jan 14 14:57:50 2010 From: hosking at elego.de (Antony Hosking) Date: Thu, 14 Jan 2010 14:57:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114135750.080852474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/14 14:57:49 Modified files: cm3/m3-sys/m3middle/src/: Target.i3 Log message: This is deliberately uninitialised! It defaults to 0 anyway. From hosking at elego.de Thu Jan 14 19:58:59 2010 From: hosking at elego.de (Antony Hosking) Date: Thu, 14 Jan 2010 19:58:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114185859.2A2442474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/14 19:58:59 Modified files: cm3/m3-db/stable/src/: LogManager.m3 Log message: De-obfuscate prior commit. From hosking at elego.de Thu Jan 14 20:03:30 2010 From: hosking at elego.de (Antony Hosking) Date: Thu, 14 Jan 2010 20:03:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100114190330.F2AC02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/14 20:03:30 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosix.m3 Log message: Match original formatting. From jay.krell at cornell.edu Thu Jan 14 23:07:57 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 14 Jan 2010 22:07:57 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <81DB828C-042F-4263-AA9F-896B4ED9587E@cs.purdue.edu> References: <20100114112845.789B62474001@birch.elegosoft.com>, <81DB828C-042F-4263-AA9F-896B4ED9587E@cs.purdue.edu> Message-ID: I expect to use these in m3back. ToChars is unfriendly, unless the interface provides a type or range to size the array adequately. - Jay From: hosking at cs.purdue.edu Date: Thu, 14 Jan 2010 08:51:17 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 Again, this means allocation. We want to avoid that! Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 On 14 Jan 2010, at 12:28, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 12:28:45 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 Log message: add ToText, small wrapper around ToChars -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 14 23:09:17 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 14 Jan 2010 22:09:17 +0000 Subject: [M3commit] initializing Target.Int In-Reply-To: <20100114135750.080852474001@birch.elegosoft.com> References: <20100114135750.080852474001@birch.elegosoft.com> Message-ID: Uninitialized seems pretty much always bad. n := 0 appears to be illegal. - Jay > Date: Thu, 14 Jan 2010 14:57:50 +0000 > To: m3commit at elegosoft.com > From: hosking at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: hosking at birch. 10/01/14 14:57:49 > > Modified files: > cm3/m3-sys/m3middle/src/: Target.i3 > > Log message: > This is deliberately uninitialised! > It defaults to 0 anyway. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 14 23:25:31 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 14 Jan 2010 22:25:31 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <9D8FDD3C-FB5B-44CF-A71E-51FD0AD14548@cs.purdue.edu> References: <20100114112016.49D6B2474001@birch.elegosoft.com>, <9D8FDD3C-FB5B-44CF-A71E-51FD0AD14548@cs.purdue.edu> Message-ID: I definitely have a use for the signed 8 bit ones. I know I could just form them myself. The rest maybe, maybe not. I think these are fine though. - Jay From: hosking at cs.purdue.edu Date: Thu, 14 Jan 2010 08:50:58 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 You should not need these at all. What's going on here? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 On 14 Jan 2010, at 12:20, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 12:20:16 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: add 8bit and 16bit constants too -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 14 23:26:26 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 14 Jan 2010 22:26:26 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <89A2020C-968A-4592-AD81-2DF160B19833@cs.purdue.edu> References: <20100114104536.4BAB62474001@birch.elegosoft.com>, <89A2020C-968A-4592-AD81-2DF160B19833@cs.purdue.edu> Message-ID: NE, GT, GE, well, at least GT, GE will provide a slightly more direct change from INTEGER to Target.Int in m3back, which I think I need to do, like at least to provide for constant folding of LONGINT. - Jay From: hosking at cs.purdue.edu Date: Thu, 14 Jan 2010 08:49:46 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 I'm not sure I buy all of these. I'll have to take a look. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 On 14 Jan 2010, at 11:45, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/14 11:45:36 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 Log message: add convenience functions: NE, GT, GE add constants: Ten, MinS32, MaxS32, MinS64, MAXS64, MinU32, MaxU32, MinU64, MaxU64 S is Signed, U is Unsigned (M is for Minus, which seems like a misnomer, it should be N for negative?, minus is an operator (verb??, "to minus" sounds wrong), negative is an adjective) -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 15 00:24:59 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 14 Jan 2010 18:24:59 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100114104536.4BAB62474001@birch.elegosoft.com>, <89A2020C-968A-4592-AD81-2DF160B19833@cs.purdue.edu> Message-ID: <9809083C-FD5E-4415-9464-BAB838C1C8C8@cs.purdue.edu> Sorry, these all seem fine. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 14 Jan 2010, at 17:26, Jay K wrote: > NE, GT, GE, well, at least GT, GE will provide a slightly more direct > change from INTEGER to Target.Int in m3back, which I think I need to do, > like at least to provide for constant folding of LONGINT. > > - Jay > > From: hosking at cs.purdue.edu > Date: Thu, 14 Jan 2010 08:49:46 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > I'm not sure I buy all of these. > I'll have to take a look. > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 > > > > > On 14 Jan 2010, at 11:45, Jay Krell wrote: > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/14 11:45:36 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > add convenience functions: NE, GT, GE > add constants: Ten, MinS32, MaxS32, MinS64, MAXS64, MinU32, MaxU32, MinU64, > MaxU64 > S is Signed, U is Unsigned (M is for Minus, which seems like > a misnomer, it should be N for negative?, minus is an operator (verb??, > "to minus" sounds wrong), negative is an adjective) > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Fri Jan 15 11:55:25 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 11:55:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115105525.1475B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 11:55:25 Modified files: cm3/m3-sys/m3front/src/: m3makefile cm3/m3-sys/m3front/src/misc/: m3makefile cm3/m3-sys/m3front/src/types/: m3makefile Log message: remove excess newlines from ends of files From jkrell at elego.de Fri Jan 15 12:02:20 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 12:02:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115110220.8F5892474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 12:02:20 Modified files: cm3/m3-sys/m3front/src/: Tag: release_branch_cm3_5_8 m3makefile cm3/m3-sys/m3front/src/builtinOps/: Tag: release_branch_cm3_5_8 Adr.m3 Dec.m3 Dispose.m3 First.m3 Inc.m3 Last.m3 Loophole.m3 Subarray.m3 cm3/m3-sys/m3front/src/exprs/: Tag: release_branch_cm3_5_8 AddExpr.m3 CallExpr.i3 CallExpr.m3 CastExpr.m3 CheckExpr.m3 DerefExpr.m3 Expr.i3 Expr.m3 ExprRep.i3 KeywordExpr.m3 NamedExpr.m3 QualifyExpr.m3 RecordExpr.m3 SetExpr.m3 SubscriptExpr.m3 SubtractExpr.m3 VarExpr.m3 cm3/m3-sys/m3front/src/misc/: Tag: release_branch_cm3_5_8 CG.i3 CG.m3 M3Front.m3 m3makefile cm3/m3-sys/m3front/src/stmts/: Tag: release_branch_cm3_5_8 AssignStmt.m3 WithStmt.m3 cm3/m3-sys/m3front/src/types/: Tag: release_branch_cm3_5_8 m3makefile cm3/m3-sys/m3front/src/values/: Tag: release_branch_cm3_5_8 Formal.m3 Value.i3 Value.m3 ValueRep.i3 Variable.m3 cm3/m3-sys/m3front/src/builtinWord/: Tag: release_branch_cm3_5_8 m3makefile Added files: cm3/m3-sys/m3front/src/builtinWord/: Tag: release_branch_cm3_5_8 GenAnd.ig GenAnd.mg GenDivide.ig GenDivide.mg GenExtract.ig GenExtract.mg GenGE.ig GenGE.mg GenGT.ig GenGT.mg GenInsert.ig GenInsert.mg GenLE.ig GenLE.mg GenLT.ig GenLT.mg GenMinus.ig GenMinus.mg GenMod.ig GenMod.mg GenModule.ig GenModule.mg GenNot.ig GenNot.mg GenOr.ig GenOr.mg GenPlus.ig GenPlus.mg GenRotate.ig GenRotate.mg GenShift.ig GenShift.mg GenTimes.ig GenTimes.mg GenXor.ig GenXor.mg word.tmpl Removed files: cm3/m3-sys/m3front/src/builtinWord/: Tag: release_branch_cm3_5_8 WordAnd.i3 WordAnd.m3 WordDivide.i3 WordDivide.m3 WordExtract.i3 WordExtract.m3 WordGE.i3 WordGE.m3 WordGT.i3 WordGT.m3 WordInsert.i3 WordInsert.m3 WordLE.i3 WordLE.m3 WordLT.i3 WordLT.m3 WordMinus.i3 WordMinus.m3 WordMod.i3 WordMod.m3 WordModule.i3 WordModule.m3 WordNot.i3 WordNot.m3 WordOr.i3 WordOr.m3 WordPlus.i3 WordPlus.m3 WordRotate.i3 WordRotate.m3 WordShift.i3 WordShift.m3 WordTimes.i3 WordTimes.m3 WordXor.i3 WordXor.m3 cm3/m3-sys/m3front/src/builtinLong/: Tag: release_branch_cm3_5_8 LongAnd.i3 LongAnd.m3 LongDivide.i3 LongDivide.m3 LongExtract.i3 LongExtract.m3 LongGE.i3 LongGE.m3 LongGT.i3 LongGT.m3 LongInsert.i3 LongInsert.m3 LongLE.i3 LongLE.m3 LongLT.i3 LongLT.m3 LongMinus.i3 LongMinus.m3 LongMod.i3 LongMod.m3 LongModule.i3 LongModule.m3 LongNot.i3 LongNot.m3 LongOr.i3 LongOr.m3 LongPlus.i3 LongPlus.m3 LongRotate.i3 LongRotate.m3 LongShift.i3 LongShift.m3 LongTimes.i3 LongTimes.m3 LongXor.i3 LongXor.m3 m3makefile Log message: wholesale copy of m3front from head to release From jkrell at elego.de Fri Jan 15 12:11:03 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 12:11:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115111103.307132474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 12:11:03 Modified files: cm3/m3-sys/m3front/src/exprs/: Tag: release_branch_cm3_5_8 SetExpr.m3 Log message: remove minor dependency on other minor change in head (restore less informative diagnostic) From jkrell at elego.de Fri Jan 15 12:13:43 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 12:13:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115111343.9840B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 12:13:43 Modified files: cm3/m3-sys/m3front/src/exprs/: Tag: release_branch_cm3_5_8 SetExpr.m3 Log message: another instance: remove minor dependency on other minor change in head (restore less informative diagnostic) From jkrell at elego.de Fri Jan 15 12:37:27 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 12:37:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115113727.C6D012474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 12:37:27 Modified files: cm3/m3-libs/m3core/src/convert/: Convert.m3 Log message: hack: avoid using VAL to convert from LONGINT to INTEGER in order to work with recent but not current compilers From jkrell at elego.de Fri Jan 15 12:41:02 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 12:41:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115114102.E3AEF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 12:41:02 Modified files: cm3/m3-libs/m3core/src/convert/: Tag: release_branch_cm3_5_8 Convert.m3 Log message: from head: minor hack to avoid using VAL to convert from LONGINT, in order to work with older compilers that do already support LONGINT, but with slightly older implementation From jkrell at elego.de Fri Jan 15 13:03:10 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 13:03:10 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115120311.0B4B32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 13:03:10 Modified files: cm3/m3-db/stable/src/: LogManager.m3 Log message: something is broken in the history here: put my version back, there is a semantic difference as to which file path is passed to FS.Status and I didn't invent the 'obfuscated' form, though the history is indeed confusing (did somebody mention that cvs and cvsweb don't work well?) From jkrell at elego.de Fri Jan 15 13:31:02 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 13:31:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115123102.EE3582474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 13:31:02 Modified files: cm3/m3-db/stable/src/: Tag: release_branch_cm3_5_8 LogManager.m3 cm3/m3-libs/libbuf/src/: Tag: release_branch_cm3_5_8 Buf.m3 cm3/m3-libs/libm3/src/os/Common/: Tag: release_branch_cm3_5_8 File.i3 cm3/m3-libs/libm3/src/os/POSIX/: Tag: release_branch_cm3_5_8 FSPosix.m3 FilePosix.m3 SocketPosix.m3 cm3/m3-libs/libm3/src/os/WIN32/: Tag: release_branch_cm3_5_8 FSWin32.m3 FileWin32.m3 LazyConsole.m3 cm3/m3-libs/libm3/src/rw/: Tag: release_branch_cm3_5_8 FileRd.m3 FileWr.m3 cm3/m3-sys/cm3/src/: Tag: release_branch_cm3_5_8 WebFile.m3 cm3/m3-sys/cm3ide/src/utils/: Tag: release_branch_cm3_5_8 Buf.m3 cm3/m3-sys/fix_nl/src/: Tag: release_branch_cm3_5_8 Main.m3 cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 QScanner.m3 cm3/m3-sys/mklib/src/: Tag: release_branch_cm3_5_8 Main.m3 cm3/m3-tools/cmpdir/src/: Tag: release_branch_cm3_5_8 Main.m3 cm3/m3-tools/dirfp/src/: Tag: release_branch_cm3_5_8 Main.m3 cm3/m3-tools/m3tohtml/src/: Tag: release_branch_cm3_5_8 DBRd.m3 Log message: bring over from head changes so that file sizes are 64bits even on 32bit platforms; but rd/wr are still 32bits This will again hit bootstrap problems, of an even sort of newer type because of the the cm3/src/WebFile.m3 change; stay tuned From jkrell at elego.de Fri Jan 15 14:13:16 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 14:13:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115131317.05DA72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 14:13:16 Modified files: cm3/m3-sys/cm3/src/: Utils.i3 WebFile.m3 m3makefile Added files: cm3/m3-sys/cm3/src/: UtilsC.c Log message: don't use File.T.status().size because it varies between INTEGER and LONGINT, depending on the version of m3core/libm3, and there is no (?) Modula-3-portable way to use something that varies like that (right?) From jkrell at elego.de Fri Jan 15 14:16:20 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 14:16:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115131620.276F12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 14:16:20 Modified files: cm3/m3-sys/cm3/src/: UtilsC.c Log message: cleanup From jkrell at elego.de Fri Jan 15 14:17:39 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 14:17:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115131739.BBBD02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 14:17:39 Modified files: cm3/m3-sys/cm3/src/: Tag: release_branch_cm3_5_8 Utils.i3 WebFile.m3 m3makefile Added files: cm3/m3-sys/cm3/src/: Tag: release_branch_cm3_5_8 UtilsC.c Log message: from head: we can't use File.T.status().size because it varies between INTEGER and LONGINT, and we need to be able to build cm3 against either old or new From jkrell at elego.de Fri Jan 15 14:41:00 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 14:41:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115134101.B053F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 14:41:00 Modified files: cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 m3makefile Added files: cm3/m3-sys/m3quake/src/: QScannerC.c Log message: m3quake also can't use libm3 File.T.status().size and be compatible with both old and new libm3 (INTEGER vs. LONGINT) From jkrell at elego.de Fri Jan 15 14:43:44 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 14:43:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115134345.5CB7D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 14:43:44 Modified files: cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 QCompiler.m3 QScanner.i3 QScanner.m3 m3makefile Added files: cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 QScannerC.c Log message: from head: don't use libm3 File.T.status().size, so it can vary between INTEGER in old versions and LONGINT in new versions (This is only a problem for a small part of the system, that has to work with old libm3.) From jkrell at elego.de Fri Jan 15 14:45:32 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 14:45:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115134532.BF3892474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 14:45:32 Modified files: cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 QScanner.m3 Log message: actually remove the use of File.T.status().size From jkrell at elego.de Fri Jan 15 14:46:39 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 14:46:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115134642.CF8502474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 14:46:39 Modified files: cm3/m3-sys/m3quake/src/: QScanner.m3 Log message: actually remove the use of File.T.status().size From jkrell at elego.de Fri Jan 15 15:17:33 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 15:17:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115141734.0AAD22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 15:17:33 Modified files: cm3/m3-libs/sysutils/src/: FSUtils.i3 m3makefile cm3/m3-libs/sysutils/src/POSIX/: FSUnix_cm3.m3 FSUnix_pm3.m3 cm3/m3-libs/sysutils/src/WIN32/: FSysWin32.m3 Added files: cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c FSUtilsUnsafe.i3 Log message: provide GetFileSize32 in a sensible common place From jkrell at elego.de Fri Jan 15 15:26:17 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 15:26:17 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115142617.39C472474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 15:26:17 Modified files: cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c Log message: cleanup From jkrell at elego.de Fri Jan 15 15:33:46 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 15:33:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115143346.AAB372474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 15:33:46 Modified files: cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.i3 Log message: oops: remove VAR From jkrell at elego.de Fri Jan 15 15:39:42 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 15:39:42 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115143943.013292474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 15:39:42 Modified files: cm3/m3-sys/cm3/src/: Utils.i3 WebFile.m3 m3makefile cm3/m3-sys/m3quake/src/: QScanner.i3 QScanner.m3 m3makefile Removed files: cm3/m3-sys/cm3/src/: UtilsC.c cm3/m3-sys/m3quake/src/: QScannerC.c Log message: use common code in sysutils FSUtils.GetFileSize32 From jkrell at elego.de Fri Jan 15 15:42:01 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 15:42:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115144201.ADA872474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 15:42:01 Modified files: cm3/m3-libs/sysutils/src/: Tag: release_branch_cm3_5_8 FSUtils.i3 System.i3 m3makefile cm3/m3-libs/sysutils/src/POSIX/: Tag: release_branch_cm3_5_8 FSUnix_cm3.m3 FSUnix_pm3.m3 m3makefile cm3/m3-libs/sysutils/src/WIN32/: Tag: release_branch_cm3_5_8 FSysWin32.m3 Added files: cm3/m3-libs/sysutils/src/: Tag: release_branch_cm3_5_8 FSUtilsUnsafe.c FSUtilsUnsafe.i3 Log message: common code: FSUtils.GetFileSize32 From jkrell at elego.de Fri Jan 15 15:46:06 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 15:46:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115144607.550D72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 15:46:06 Modified files: cm3/m3-sys/cm3/src/: Tag: release_branch_cm3_5_8 Utils.i3 WebFile.m3 m3makefile cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 QScanner.i3 QScanner.m3 m3makefile Removed files: cm3/m3-sys/cm3/src/: Tag: release_branch_cm3_5_8 UtilsC.c cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 QScannerC.c Log message: use sysutils FSUtils.GetFileSize32 From jkrell at elego.de Fri Jan 15 15:59:04 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 15:59:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115145906.681C32474002@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 15:59:04 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: Tag: release_branch_cm3_5_8 ProcessPosixCommon.m3 Log message: from head: retry upon EAGAIN like bash (in bash's case, it seems to help on Interix, since I see a warning often) From jkrell at elego.de Fri Jan 15 15:59:35 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 15:59:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115145935.623F92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 15:59:35 Modified files: cm3/m3-libs/libm3/src/rw/: Tag: release_branch_cm3_5_8 IO.i3 IO.m3 Log message: from head: PutLongInt, GetLongInt From hosking at cs.purdue.edu Fri Jan 15 16:04:48 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 10:04:48 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100115120311.0B4B32474001@birch.elegosoft.com> References: <20100115120311.0B4B32474001@birch.elegosoft.com> Message-ID: <9CD84849-55B8-4F3D-A5CD-A415337C3807@cs.purdue.edu> Here's the diff between 1.1 and 1.2, which you committed. You seem to have changed the meaning. I don't understand the change. *** LogManager.m3.~1.1~ Thu Jan 14 13:56:42 2010 --- LogManager.m3.~1.2~ Fri Jan 15 09:59:41 2010 *************** *** 236,241 **** --- 236,242 ---- PROCEDURE EmptyLog (lm: Default; nm: Pathname.T): BOOLEAN RAISES {OSError.E} = + VAR log: TEXT; BEGIN IF NOT lm.recoverable(nm) THEN RAISE OSError.E( *************** *** 243,253 **** Atom.FromText( "no checkpointfile for log in " & nm))); END; ! IF TestFile(lm.logfn(nm)) THEN ! RETURN FS.Status(nm).size > 0 ! ELSE ! RETURN TRUE ! END; END EmptyLog; PROCEDURE Dispose (lm: Default; nm: Pathname.T) RAISES {OSError.E} = --- 244,251 ---- Atom.FromText( "no checkpointfile for log in " & nm))); END; ! log := lm.logfn(nm); ! RETURN (NOT TestFile(log)) OR (FS.Status(log).size = 0L); END EmptyLog; PROCEDURE Dispose (lm: Default; nm: Pathname.T) RAISES {OSError.E} = On 15 Jan 2010, at 13:03, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/15 13:03:10 > > Modified files: > cm3/m3-db/stable/src/: LogManager.m3 > > Log message: > something is broken in the history here: put my version back, there is a semantic difference as to which file path is passed to FS.Status and I didn't invent the 'obfuscated' form, though the history is indeed confusing (did somebody mention that cvs and cvsweb don't work well?) From hosking at cs.purdue.edu Fri Jan 15 16:13:06 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 10:13:06 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100115134101.B053F2474001@birch.elegosoft.com> References: <20100115134101.B053F2474001@birch.elegosoft.com> Message-ID: Jay, all of these changes seem unnecessary (and worse, clutter the source with a variety of hacks). I had no problem building against both versions of m3core and libm3 in order to bootstrap a new compiler. What is going on here? On 15 Jan 2010, at 14:41, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/15 14:41:00 > > Modified files: > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > m3makefile > Added files: > cm3/m3-sys/m3quake/src/: QScannerC.c > > Log message: > m3quake also can't use libm3 File.T.status().size and be compatible > with both old and new libm3 (INTEGER vs. LONGINT) From hosking at cs.purdue.edu Fri Jan 15 16:20:50 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 10:20:50 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100115141734.0AAD22474001@birch.elegosoft.com> References: <20100115141734.0AAD22474001@birch.elegosoft.com> Message-ID: <973EBDE6-1CB0-4732-AB0D-1A274E7B015B@cs.purdue.edu> Isn't this simply entrenching a 32-bit file size? On 15 Jan 2010, at 15:17, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/15 15:17:33 > > Modified files: > cm3/m3-libs/sysutils/src/: FSUtils.i3 m3makefile > cm3/m3-libs/sysutils/src/POSIX/: FSUnix_cm3.m3 FSUnix_pm3.m3 > cm3/m3-libs/sysutils/src/WIN32/: FSysWin32.m3 > Added files: > cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c FSUtilsUnsafe.i3 > > Log message: > provide GetFileSize32 in a sensible common place From hosking at elego.de Fri Jan 15 17:26:56 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 15 Jan 2010 17:26:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115162656.82E592474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/15 17:26:56 Modified files: cm3/m3-libs/m3core/src/convert/: Convert.m3 Log message: Let's not clutter the main trunk with multi-version cruft going forward. An up-to-date bootstrapped compiler should always be used to compile the main trunk. From hosking at elego.de Fri Jan 15 21:02:29 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 15 Jan 2010 21:02:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115200229.80C6E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/15 21:02:29 Modified files: cm3/m3-libs/sysutils/src/POSIX/: FSUnix_cm3.m3 Log message: Fix compile errors. From jay.krell at cornell.edu Fri Jan 15 21:48:12 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 20:48:12 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <973EBDE6-1CB0-4732-AB0D-1A274E7B015B@cs.purdue.edu> References: <20100115141734.0AAD22474001@birch.elegosoft.com>, <973EBDE6-1CB0-4732-AB0D-1A274E7B015B@cs.purdue.edu> Message-ID: For some code, yes. What to do in QScanner and WebFile? Entrenching INTEGER-size would be ok for them. Leaving this in only temporarily might be ok too. If we just need to move forward, and then not suport building with old compiler/libm3. - Jay > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 10:20:50 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Isn't this simply entrenching a 32-bit file size? > > On 15 Jan 2010, at 15:17, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/15 15:17:33 > > > > Modified files: > > cm3/m3-libs/sysutils/src/: FSUtils.i3 m3makefile > > cm3/m3-libs/sysutils/src/POSIX/: FSUnix_cm3.m3 FSUnix_pm3.m3 > > cm3/m3-libs/sysutils/src/WIN32/: FSysWin32.m3 > > Added files: > > cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c FSUtilsUnsafe.i3 > > > > Log message: > > provide GetFileSize32 in a sensible common place > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Jan 15 21:53:51 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 20:53:51 +0000 Subject: [M3commit] LogManager.EmptyLog FS.Status(nm) vs. FS.Status(logfn(nm)) In-Reply-To: <9CD84849-55B8-4F3D-A5CD-A415337C3807@cs.purdue.edu> References: <20100115120311.0B4B32474001@birch.elegosoft.com>, <9CD84849-55B8-4F3D-A5CD-A415337C3807@cs.purdue.edu> Message-ID: I know. But see here from 2001: http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-db/stable/src/LogManager.m3.diff?r1=1.1.1.1;r2=1.1.1.2 Something is wierd here, I agree. I think I somehow had the 1.1.1.2 version (odd), and if you look through all the other uses of TestFile, I think it is more correct. It seems some of the 4.1/5.1 changes never made it from a branch to head?? - Jay > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 10:04:48 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Here's the diff between 1.1 and 1.2, which you committed. You seem to have changed the meaning. I don't understand the change. > > *** LogManager.m3.~1.1~ Thu Jan 14 13:56:42 2010 > --- LogManager.m3.~1.2~ Fri Jan 15 09:59:41 2010 > *************** > *** 236,241 **** > --- 236,242 ---- > > PROCEDURE EmptyLog (lm: Default; nm: Pathname.T): BOOLEAN > RAISES {OSError.E} = > + VAR log: TEXT; > BEGIN > IF NOT lm.recoverable(nm) THEN > RAISE OSError.E( > *************** > *** 243,253 **** > Atom.FromText( > "no checkpointfile for log in " & nm))); > END; > ! IF TestFile(lm.logfn(nm)) THEN > ! RETURN FS.Status(nm).size > 0 > ! ELSE > ! RETURN TRUE > ! END; > END EmptyLog; > > PROCEDURE Dispose (lm: Default; nm: Pathname.T) RAISES {OSError.E} = > --- 244,251 ---- > Atom.FromText( > "no checkpointfile for log in " & nm))); > END; > ! log := lm.logfn(nm); > ! RETURN (NOT TestFile(log)) OR (FS.Status(log).size = 0L); > END EmptyLog; > > PROCEDURE Dispose (lm: Default; nm: Pathname.T) RAISES {OSError.E} = > > > On 15 Jan 2010, at 13:03, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/15 13:03:10 > > > > Modified files: > > cm3/m3-db/stable/src/: LogManager.m3 > > > > Log message: > > something is broken in the history here: put my version back, there is a semantic difference as to which file path is passed to FS.Status and I didn't invent the 'obfuscated' form, though the history is indeed confusing (did somebody mention that cvs and cvsweb don't work well?) > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Jan 15 21:57:58 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 20:57:58 +0000 Subject: [M3commit] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) In-Reply-To: References: <20100115134101.B053F2474001@birch.elegosoft.com>, Message-ID: I at least did move the hacks to one place. I agree it isn't nice. This is due to my changes, not yours -- changing File.T.status().size to LONGINT. There's no way to use that in the "compiler" and still support old compiler/libm3, right? Ok now that I centralized it to sysutils? Leave status() alone as using INTEGER and introduce statusL()? Or leave size alone and introduce sizeL? That's not a complete solution because you have to set size to something. -1 if it doesn't fit? Or just get past the bootstrapping and put it back using VAL? It seems a tough situation..the compiler is otherwise I believe very compatible with old compiler/libm3. - Jay > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 10:13:06 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Jay, all of these changes seem unnecessary (and worse, clutter the source with a variety of hacks). I had no problem building against both versions of m3core and libm3 in order to bootstrap a new compiler. What is going on here? > > On 15 Jan 2010, at 14:41, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/15 14:41:00 > > > > Modified files: > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > m3makefile > > Added files: > > cm3/m3-sys/m3quake/src/: QScannerC.c > > > > Log message: > > m3quake also can't use libm3 File.T.status().size and be compatible > > with both old and new libm3 (INTEGER vs. LONGINT) > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 15 22:17:15 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 16:17:15 -0500 Subject: [M3commit] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) In-Reply-To: References: <20100115134101.B053F2474001@birch.elegosoft.com>, Message-ID: <09B41766-F3E3-4321-A568-AFE76959B787@cs.purdue.edu> On 15 Jan 2010, at 15:57, Jay K wrote: > I at least did move the hacks to one place. > I agree it isn't nice. > This is due to my changes, not yours -- changing File.T.status().size to LONGINT. > There's no way to use that in the "compiler" and still support old compiler/libm3, right? RIght. Except we should not try to maintain compatibility between among trunk versions. If you want to build as of a particular version then use libraries that match that version. My next set of commits for LONGCARD make this even more critical because the library has hardwired stuff that that makes it require a particular version of the compiler to compile it. ;-) > Ok now that I centralized it to sysutils? > > > Leave status() alone as using INTEGER and introduce statusL()? > > > Or leave size alone and introduce sizeL? > That's not a complete solution because you have to set size to something. > -1 if it doesn't fit? > > > Or just get past the bootstrapping and put it back using VAL? Yes. > It seems a tough situation..the compiler is otherwise I believe > very compatible with old compiler/libm3. It very soon will not be. > > > - Jay > > > > From: hosking at cs.purdue.edu > > Date: Fri, 15 Jan 2010 10:13:06 -0500 > > To: jkrell at elego.de > > CC: m3commit at elegosoft.com > > Subject: Re: [M3commit] CVS Update: cm3 > > > > Jay, all of these changes seem unnecessary (and worse, clutter the source with a variety of hacks). I had no problem building against both versions of m3core and libm3 in order to bootstrap a new compiler. What is going on here? > > > > On 15 Jan 2010, at 14:41, Jay Krell wrote: > > > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 10/01/15 14:41:00 > > > > > > Modified files: > > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > > m3makefile > > > Added files: > > > cm3/m3-sys/m3quake/src/: QScannerC.c > > > > > > Log message: > > > m3quake also can't use libm3 File.T.status().size and be compatible > > > with both old and new libm3 (INTEGER vs. LONGINT) > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 15 22:20:03 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 16:20:03 -0500 Subject: [M3commit] LogManager.EmptyLog FS.Status(nm) vs. FS.Status(logfn(nm)) In-Reply-To: References: <20100115120311.0B4B32474001@birch.elegosoft.com>, <9CD84849-55B8-4F3D-A5CD-A415337C3807@cs.purdue.edu> Message-ID: <9CA89F2F-4065-480D-A20C-87B983CE511B@cs.purdue.edu> Aha! Weird! I'll leave it alone. On 15 Jan 2010, at 15:53, Jay K wrote: > I know. But see here from 2001: > > http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-db/stable/src/LogManager.m3.diff?r1=1.1.1.1;r2=1.1.1.2 > > > Something is wierd here, I agree. I think I somehow had the 1.1.1.2 version (odd), and if you look through all the other uses of TestFile, I think it is more correct. > > It seems some of the 4.1/5.1 changes never made it from a branch to head?? > > - Jay > > > > From: hosking at cs.purdue.edu > > Date: Fri, 15 Jan 2010 10:04:48 -0500 > > To: jkrell at elego.de > > CC: m3commit at elegosoft.com > > Subject: Re: [M3commit] CVS Update: cm3 > > > > Here's the diff between 1.1 and 1.2, which you committed. You seem to have changed the meaning. I don't understand the change. > > > > *** LogManager.m3.~1.1~ Thu Jan 14 13:56:42 2010 > > --- LogManager.m3.~1.2~ Fri Jan 15 09:59:41 2010 > > *************** > > *** 236,241 **** > > --- 236,242 ---- > > > > PROCEDURE EmptyLog (lm: Default; nm: Pathname.T): BOOLEAN > > RAISES {OSError.E} = > > + VAR log: TEXT; > > BEGIN > > IF NOT lm.recoverable(nm) THEN > > RAISE OSError.E( > > *************** > > *** 243,253 **** > > Atom.FromText( > > "no checkpointfile for log in " & nm))); > > END; > > ! IF TestFile(lm.logfn(nm)) THEN > > ! RETURN FS.Status(nm).size > 0 > > ! ELSE > > ! RETURN TRUE > > ! END; > > END EmptyLog; > > > > PROCEDURE Dispose (lm: Default; nm: Pathname.T) RAISES {OSError.E} = > > --- 244,251 ---- > > Atom.FromText( > > "no checkpointfile for log in " & nm))); > > END; > > ! log := lm.logfn(nm); > > ! RETURN (NOT TestFile(log)) OR (FS.Status(log).size = 0L); > > END EmptyLog; > > > > PROCEDURE Dispose (lm: Default; nm: Pathname.T) RAISES {OSError.E} = > > > > > > On 15 Jan 2010, at 13:03, Jay Krell wrote: > > > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 10/01/15 13:03:10 > > > > > > Modified files: > > > cm3/m3-db/stable/src/: LogManager.m3 > > > > > > Log message: > > > something is broken in the history here: put my version back, there is a semantic difference as to which file path is passed to FS.Status and I didn't invent the 'obfuscated' form, though the history is indeed confusing (did somebody mention that cvs and cvsweb don't work well?) > > From hosking at elego.de Fri Jan 15 22:26:26 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 15 Jan 2010 22:26:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115212627.0EF702474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/15 22:26:26 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTBuiltin.mx RTTipe.i3 RTTipe.m3 Log message: Add LONGCARD. From rcoleburn at elego.de Fri Jan 15 22:28:46 2010 From: rcoleburn at elego.de (Randy Coleburn) Date: Fri, 15 Jan 2010 22:28:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115212846.B78742474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: rcoleburn at birch. 10/01/15 22:28:46 Modified files: cm3/scripts/dev/windows/: RCC_upgradeCM3.cmd Log message: 01/15/2010, R.Coleburn, add extra checks at end of each stage to ensure new cm3.exe was produced and copied to target bin folder. All this per Jay's assertion that -ship doesn't always result in cm3.exe getting copied to the "bin" folder. From jay.krell at cornell.edu Fri Jan 15 22:34:11 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 21:34:11 +0000 Subject: [M3commit] [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) In-Reply-To: <09B41766-F3E3-4321-A568-AFE76959B787@cs.purdue.edu> References: <20100115134101.B053F2474001@birch.elegosoft.com>, , , , <09B41766-F3E3-4321-A568-AFE76959B787@cs.purdue.edu> Message-ID: We were in a state where neither m3core nor cm3/m3quake could be built with old tools/libraries. That is more ok for m3core, less ok for cm3/m3quake. As well, m3core also couldn't be built with recent but slightly old compiler. See, I didn't remove the use of LONGINT, just the use of VAL(LONGINT, INTEGER). As well, maybe cm3/m3quake couldn't be built with recent tools/libraries. The sysutils/m3quake/cm3 changes should stand? Ok removing "32" from the name and letting it return >4GB on 64bit platforms. But I think either it can't use libm3.File.T.status().size, OR we have to make status().size more compatible such as by introducing statusL or sizeL. 32bit code wouldn't see >4GB file sizes unless actively changed. Maybe not a bad idea. - Jay From: hosking at cs.purdue.edu Date: Fri, 15 Jan 2010 16:17:15 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com; m3commit at elegosoft.com Subject: Re: [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) On 15 Jan 2010, at 15:57, Jay K wrote: I at least did move the hacks to one place. I agree it isn't nice. This is due to my changes, not yours -- changing File.T.status().size to LONGINT. There's no way to use that in the "compiler" and still support old compiler/libm3, right? RIght. Except we should not try to maintain compatibility between among trunk versions. If you want to build as of a particular version then use libraries that match that version. My next set of commits for LONGCARD make this even more critical because the library has hardwired stuff that that makes it require a particular version of the compiler to compile it. ;-) Ok now that I centralized it to sysutils? Leave status() alone as using INTEGER and introduce statusL()? Or leave size alone and introduce sizeL? That's not a complete solution because you have to set size to something. -1 if it doesn't fit? Or just get past the bootstrapping and put it back using VAL? Yes. It seems a tough situation..the compiler is otherwise I believe very compatible with old compiler/libm3. It very soon will not be. - Jay > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 10:13:06 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Jay, all of these changes seem unnecessary (and worse, clutter the source with a variety of hacks). I had no problem building against both versions of m3core and libm3 in order to bootstrap a new compiler. What is going on here? > > On 15 Jan 2010, at 14:41, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/15 14:41:00 > > > > Modified files: > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > m3makefile > > Added files: > > cm3/m3-sys/m3quake/src/: QScannerC.c > > > > Log message: > > m3quake also can't use libm3 File.T.status().size and be compatible > > with both old and new libm3 (INTEGER vs. LONGINT) > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Fri Jan 15 22:42:27 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 22:42:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115214227.DFDD32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 22:42:27 Modified files: cm3/m3-libs/sysutils/src/POSIX/: Tag: release_branch_cm3_5_8 FSUnix_cm3.m3 Log message: copy fix from head From hosking at elego.de Fri Jan 15 22:47:06 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 15 Jan 2010 22:47:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115214706.897CF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/15 22:47:06 Modified files: cm3/m3-libs/libm3/src/pickle/ver2/: ConvertPacking.m3 Log message: Add LONGCARD. From hosking at elego.de Fri Jan 15 22:50:12 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 15 Jan 2010 22:50:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115215012.E458A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/15 22:50:12 Modified files: cm3/m3-sys/m3front/src/builtinTypes/: BuiltinTypes.m3 m3makefile cm3/m3-sys/m3front/src/misc/: CG.i3 CG.m3 TipeDesc.i3 Token.m3 cm3/m3-sys/m3front/src/types/: RecordType.i3 RecordType.m3 SubrangeType.m3 Added files: cm3/m3-sys/m3front/src/builtinTypes/: LCard.i3 LCard.m3 Log message: Add LONGCARD From hosking at elego.de Fri Jan 15 22:51:15 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 15 Jan 2010 22:51:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115215118.A9F482474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/15 22:51:15 Modified files: cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 Log message: Revert to VAL. From hosking at elego.de Fri Jan 15 22:52:32 2010 From: hosking at elego.de (Antony Hosking) Date: Fri, 15 Jan 2010 22:52:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115215232.8AC7E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/15 22:52:32 Modified files: cm3/m3-sys/cm3/src/: WebFile.m3 Log message: Revert to VAL. From jay.krell at cornell.edu Fri Jan 15 22:56:19 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 21:56:19 +0000 Subject: [M3commit] LONGINT used by m3quake/cm3 packages In-Reply-To: <20100115215118.A9F482474001@birch.elegosoft.com> References: <20100115215118.A9F482474001@birch.elegosoft.com> Message-ID: VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, but I think what I had is the way to go. The bootstrapping pain is otherwise novel. The compiler doesn't otherwise use LONGINT. (My doing that it started using it.) It ought not until after the current release? - Jay > Date: Fri, 15 Jan 2010 22:51:15 +0000 > To: m3commit at elegosoft.com > From: hosking at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: hosking at birch. 10/01/15 22:51:15 > > Modified files: > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > Log message: > Revert to VAL. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 15 23:08:08 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 17:08:08 -0500 Subject: [M3commit] [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) In-Reply-To: References: <20100115134101.B053F2474001@birch.elegosoft.com>, , , , <09B41766-F3E3-4321-A568-AFE76959B787@cs.purdue.edu> Message-ID: <1E52AB69-2D52-496D-AB5B-AF5FDA21744B@cs.purdue.edu> Fact. New versions of m3core won't be able to build with old tools/libraries. We have to live with that. On 15 Jan 2010, at 16:34, Jay K wrote: > We were in a state where neither m3core nor cm3/m3quake could be built with old tools/libraries. > That is more ok for m3core, less ok for cm3/m3quake. > As well, m3core also couldn't be built with recent but slightly old compiler. > See, I didn't remove the use of LONGINT, just the use of VAL(LONGINT, INTEGER). > As well, maybe cm3/m3quake couldn't be built with recent tools/libraries. > > > The sysutils/m3quake/cm3 changes should stand? > Ok removing "32" from the name and letting it return >4GB on 64bit platforms. > But I think either it can't use libm3.File.T.status().size, OR we have to > make status().size more compatible such as by introducing statusL or sizeL. > 32bit code wouldn't see >4GB file sizes unless actively changed. > Maybe not a bad idea. > > > - Jay > > > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 16:17:15 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) > > On 15 Jan 2010, at 15:57, Jay K wrote: > > I at least did move the hacks to one place. > I agree it isn't nice. > This is due to my changes, not yours -- changing File.T.status().size to LONGINT. > There's no way to use that in the "compiler" and still support old compiler/libm3, right? > > RIght. Except we should not try to maintain compatibility between among trunk versions. If you want to build as of a particular version then use libraries that match that version. > > My next set of commits for LONGCARD make this even more critical because the library has hardwired stuff that that makes it require a particular version of the compiler to compile it. ;-) > > Ok now that I centralized it to sysutils? > > > Leave status() alone as using INTEGER and introduce statusL()? > > > Or leave size alone and introduce sizeL? > That's not a complete solution because you have to set size to something. > -1 if it doesn't fit? > > > Or just get past the bootstrapping and put it back using VAL? > > Yes. > > It seems a tough situation..the compiler is otherwise I believe > very compatible with old compiler/libm3. > > It very soon will not be. > > > > - Jay > > > > From: hosking at cs.purdue.edu > > Date: Fri, 15 Jan 2010 10:13:06 -0500 > > To: jkrell at elego.de > > CC: m3commit at elegosoft.com > > Subject: Re: [M3commit] CVS Update: cm3 > > > > Jay, all of these changes seem unnecessary (and worse, clutter the source with a variety of hacks). I had no problem building against both versions of m3core and libm3 in order to bootstrap a new compiler. What is going on here? > > > > On 15 Jan 2010, at 14:41, Jay Krell wrote: > > > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 10/01/15 14:41:00 > > > > > > Modified files: > > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > > m3makefile > > > Added files: > > > cm3/m3-sys/m3quake/src/: QScannerC.c > > > > > > Log message: > > > m3quake also can't use libm3 File.T.status().size and be compatible > > > with both old and new libm3 (INTEGER vs. LONGINT) > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 15 23:13:38 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 17:13:38 -0500 Subject: [M3commit] LONGINT used by m3quake/cm3 packages In-Reply-To: References: <20100115215118.A9F482474001@birch.elegosoft.com> Message-ID: <6CF0A42A-940C-4FB5-9CFD-CBA18EC9CAFA@cs.purdue.edu> Jay, the bootstrapping pain is inherent. The compiler and libraries are bound together. Currently, the old library and new libraries are incompatible with their respective compilers. Both ways. On 15 Jan 2010, at 16:56, Jay K wrote: > VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, > but I think what I had is the way to go. > The bootstrapping pain is otherwise novel. > The compiler doesn't otherwise use LONGINT. > (My doing that it started using it.) > It ought not until after the current release? > > > - Jay > > > > Date: Fri, 15 Jan 2010 22:51:15 +0000 > > To: m3commit at elegosoft.com > > From: hosking at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: hosking at birch. 10/01/15 22:51:15 > > > > Modified files: > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > > > Log message: > > Revert to VAL. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Jan 15 23:13:46 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 22:13:46 +0000 Subject: [M3commit] [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) In-Reply-To: <1E52AB69-2D52-496D-AB5B-AF5FDA21744B@cs.purdue.edu> References: <20100115134101.B053F2474001@birch.elegosoft.com>, , , , , , , <09B41766-F3E3-4321-A568-AFE76959B787@cs.purdue.edu>, , <1E52AB69-2D52-496D-AB5B-AF5FDA21744B@cs.purdue.edu> Message-ID: That is ok but what about building new cm3/m3quake/sysutils packages with old tools/libraries? They previously never used LONGINT, including converting LONGINT to INTEGER. *I* changed that, not you. But then I decided it was a mistake. - Jay From: hosking at cs.purdue.edu Date: Fri, 15 Jan 2010 17:08:08 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com; m3commit at elegosoft.com Subject: Re: [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) Fact. New versions of m3core won't be able to build with old tools/libraries. We have to live with that. On 15 Jan 2010, at 16:34, Jay K wrote: We were in a state where neither m3core nor cm3/m3quake could be built with old tools/libraries. That is more ok for m3core, less ok for cm3/m3quake. As well, m3core also couldn't be built with recent but slightly old compiler. See, I didn't remove the use of LONGINT, just the use of VAL(LONGINT, INTEGER). As well, maybe cm3/m3quake couldn't be built with recent tools/libraries. The sysutils/m3quake/cm3 changes should stand? Ok removing "32" from the name and letting it return >4GB on 64bit platforms. But I think either it can't use libm3.File.T.status().size, OR we have to make status().size more compatible such as by introducing statusL or sizeL. 32bit code wouldn't see >4GB file sizes unless actively changed. Maybe not a bad idea. - Jay From: hosking at cs.purdue.edu Date: Fri, 15 Jan 2010 16:17:15 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com; m3commit at elegosoft.com Subject: Re: [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) On 15 Jan 2010, at 15:57, Jay K wrote: I at least did move the hacks to one place. I agree it isn't nice. This is due to my changes, not yours -- changing File.T.status().size to LONGINT. There's no way to use that in the "compiler" and still support old compiler/libm3, right? RIght. Except we should not try to maintain compatibility between among trunk versions. If you want to build as of a particular version then use libraries that match that version. My next set of commits for LONGCARD make this even more critical because the library has hardwired stuff that that makes it require a particular version of the compiler to compile it. ;-) Ok now that I centralized it to sysutils? Leave status() alone as using INTEGER and introduce statusL()? Or leave size alone and introduce sizeL? That's not a complete solution because you have to set size to something. -1 if it doesn't fit? Or just get past the bootstrapping and put it back using VAL? Yes. It seems a tough situation..the compiler is otherwise I believe very compatible with old compiler/libm3. It very soon will not be. - Jay > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 10:13:06 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Jay, all of these changes seem unnecessary (and worse, clutter the source with a variety of hacks). I had no problem building against both versions of m3core and libm3 in order to bootstrap a new compiler. What is going on here? > > On 15 Jan 2010, at 14:41, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/15 14:41:00 > > > > Modified files: > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > m3makefile > > Added files: > > cm3/m3-sys/m3quake/src/: QScannerC.c > > > > Log message: > > m3quake also can't use libm3 File.T.status().size and be compatible > > with both old and new libm3 (INTEGER vs. LONGINT) > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Fri Jan 15 23:31:32 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 23:31:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115223132.B806E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 23:31:32 Modified files: cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c Log message: provide 32bit, 64bit, and integer, though we can't expose the 64bit one From jkrell at elego.de Fri Jan 15 23:32:14 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 23:32:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115223214.D6B342474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 23:32:14 Modified files: cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c Log message: cleanup (remove 'signed') From jkrell at elego.de Fri Jan 15 23:36:52 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 15 Jan 2010 23:36:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100115223654.2D06A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/15 23:36:52 Modified files: cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c Log message: don't allow negative sizes From jay.krell at cornell.edu Fri Jan 15 23:42:58 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 22:42:58 +0000 Subject: [M3commit] LONGINT used by m3quake/cm3 packages In-Reply-To: <6CF0A42A-940C-4FB5-9CFD-CBA18EC9CAFA@cs.purdue.edu> References: <20100115215118.A9F482474001@birch.elegosoft.com>, , <6CF0A42A-940C-4FB5-9CFD-CBA18EC9CAFA@cs.purdue.edu> Message-ID: The compiler is not very dependent on newer compiler/libraries, until now, that I changed File.T.status().size to LONGINT. I was just able to upgrade.py from cm3-min-WIN32-NT386-5.2.6 for example. 5.1.3a failed though. (It's still in progress, but far long.) m3core/libm3 can depend on current compiler, agreed. - Jay From: hosking at cs.purdue.edu Date: Fri, 15 Jan 2010 17:13:38 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com; m3commit at elegosoft.com Subject: Re: [M3commit] LONGINT used by m3quake/cm3 packages Jay, the bootstrapping pain is inherent. The compiler and libraries are bound together. Currently, the old library and new libraries are incompatible with their respective compilers. Both ways. On 15 Jan 2010, at 16:56, Jay K wrote: VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, but I think what I had is the way to go. The bootstrapping pain is otherwise novel. The compiler doesn't otherwise use LONGINT. (My doing that it started using it.) It ought not until after the current release? - Jay > Date: Fri, 15 Jan 2010 22:51:15 +0000 > To: m3commit at elegosoft.com > From: hosking at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: hosking at birch. 10/01/15 22:51:15 > > Modified files: > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > Log message: > Revert to VAL. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 15 23:48:09 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 17:48:09 -0500 Subject: [M3commit] [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) In-Reply-To: References: <20100115134101.B053F2474001@birch.elegosoft.com>, , , , , , , <09B41766-F3E3-4321-A568-AFE76959B787@cs.purdue.edu>, , <1E52AB69-2D52-496D-AB5B-AF5FDA21744B@cs.purdue.edu> Message-ID: My point is that you need to bootstrap a new compiler as follows: Build new compiler against old libraries. Compile new libraries using new compiler. Recompile new compiler against new libraries. Throw away old libraries. On 15 Jan 2010, at 17:13, Jay K wrote: > That is ok but what about building new cm3/m3quake/sysutils packages with old tools/libraries? > They previously never used LONGINT, including converting LONGINT to INTEGER. > *I* changed that, not you. > But then I decided it was a mistake. > > > - Jay > > > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 17:08:08 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) > > Fact. New versions of m3core won't be able to build with old tools/libraries. We have to live with that. > > On 15 Jan 2010, at 16:34, Jay K wrote: > > We were in a state where neither m3core nor cm3/m3quake could be built with old tools/libraries. > That is more ok for m3core, less ok for cm3/m3quake. > As well, m3core also couldn't be built with recent but slightly old compiler. > See, I didn't remove the use of LONGINT, just the use of VAL(LONGINT, INTEGER). > As well, maybe cm3/m3quake couldn't be built with recent tools/libraries. > > > The sysutils/m3quake/cm3 changes should stand? > Ok removing "32" from the name and letting it return >4GB on 64bit platforms. > But I think either it can't use libm3.File.T.status().size, OR we have to > make status().size more compatible such as by introducing statusL or sizeL. > 32bit code wouldn't see >4GB file sizes unless actively changed. > Maybe not a bad idea. > > > - Jay > > > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 16:17:15 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3devel] WebFile/QScanner use of File.T.status().size (64bit file size on 32bit platform) > > On 15 Jan 2010, at 15:57, Jay K wrote: > > I at least did move the hacks to one place. > I agree it isn't nice. > This is due to my changes, not yours -- changing File.T.status().size to LONGINT. > There's no way to use that in the "compiler" and still support old compiler/libm3, right? > > RIght. Except we should not try to maintain compatibility between among trunk versions. If you want to build as of a particular version then use libraries that match that version. > > My next set of commits for LONGCARD make this even more critical because the library has hardwired stuff that that makes it require a particular version of the compiler to compile it. ;-) > > Ok now that I centralized it to sysutils? > > > Leave status() alone as using INTEGER and introduce statusL()? > > > Or leave size alone and introduce sizeL? > That's not a complete solution because you have to set size to something. > -1 if it doesn't fit? > > > Or just get past the bootstrapping and put it back using VAL? > > Yes. > > It seems a tough situation..the compiler is otherwise I believe > very compatible with old compiler/libm3. > > It very soon will not be. > > > > - Jay > > > > From: hosking at cs.purdue.edu > > Date: Fri, 15 Jan 2010 10:13:06 -0500 > > To: jkrell at elego.de > > CC: m3commit at elegosoft.com > > Subject: Re: [M3commit] CVS Update: cm3 > > > > Jay, all of these changes seem unnecessary (and worse, clutter the source with a variety of hacks). I had no problem building against both versions of m3core and libm3 in order to bootstrap a new compiler. What is going on here? > > > > On 15 Jan 2010, at 14:41, Jay Krell wrote: > > > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 10/01/15 14:41:00 > > > > > > Modified files: > > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > > m3makefile > > > Added files: > > > cm3/m3-sys/m3quake/src/: QScannerC.c > > > > > > Log message: > > > m3quake also can't use libm3 File.T.status().size and be compatible > > > with both old and new libm3 (INTEGER vs. LONGINT) > > > > > > From hosking at cs.purdue.edu Fri Jan 15 23:50:17 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 17:50:17 -0500 Subject: [M3commit] LONGINT used by m3quake/cm3 packages In-Reply-To: References: <20100115215118.A9F482474001@birch.elegosoft.com> Message-ID: <46AFC820-D62E-472B-A0D0-6957153ECE17@cs.purdue.edu> On 15 Jan 2010, at 16:56, Jay K wrote: > VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, > but I think what I had is the way to go. > The bootstrapping pain is otherwise novel. The bootstrapping pain is now no more novel than when LONGINT was first introduced... > The compiler doesn't otherwise use LONGINT. > (My doing that it started using it.) > It ought not until after the current release? ... so it is pointless trying to build new libraries with an old compiler because the old compiler is built to compile files against old libraries. > > > - Jay > > > > Date: Fri, 15 Jan 2010 22:51:15 +0000 > > To: m3commit at elegosoft.com > > From: hosking at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: hosking at birch. 10/01/15 22:51:15 > > > > Modified files: > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > > > Log message: > > Revert to VAL. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Jan 15 23:51:47 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 17:51:47 -0500 Subject: [M3commit] LONGINT used by m3quake/cm3 packages In-Reply-To: References: <20100115215118.A9F482474001@birch.elegosoft.com>, , <6CF0A42A-940C-4FB5-9CFD-CBA18EC9CAFA@cs.purdue.edu> Message-ID: <35CA5D39-E2B2-4576-82D3-108CC21F34AC@cs.purdue.edu> It's not the presence of LONGINT in the libraries or not. It is the presence of changes type type-map information (see RTTipe and its correspondence with TipeMap) which mean that the new libraries are incompatible with old compilers. On 15 Jan 2010, at 17:42, Jay K wrote: > The compiler is not very dependent on newer compiler/libraries, until now, that I changed File.T.status().size to LONGINT. > > I was just able to upgrade.py from cm3-min-WIN32-NT386-5.2.6 for example. 5.1.3a failed though. > (It's still in progress, but far long.) > > m3core/libm3 can depend on current compiler, agreed. > > - Jay > > > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 17:13:38 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3commit] LONGINT used by m3quake/cm3 packages > > Jay, the bootstrapping pain is inherent. The compiler and libraries are bound together. Currently, the old library and new libraries are incompatible with their respective compilers. Both ways. > > On 15 Jan 2010, at 16:56, Jay K wrote: > > VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, > but I think what I had is the way to go. > The bootstrapping pain is otherwise novel. > The compiler doesn't otherwise use LONGINT. > (My doing that it started using it.) > It ought not until after the current release? > > > - Jay > > > > Date: Fri, 15 Jan 2010 22:51:15 +0000 > > To: m3commit at elegosoft.com > > From: hosking at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: hosking at birch. 10/01/15 22:51:15 > > > > Modified files: > > cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 > > > > Log message: > > Revert to VAL. > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Jan 16 00:45:36 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 23:45:36 +0000 Subject: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages In-Reply-To: <46AFC820-D62E-472B-A0D0-6957153ECE17@cs.purdue.edu> References: <20100115215118.A9F482474001@birch.elegosoft.com>, , <46AFC820-D62E-472B-A0D0-6957153ECE17@cs.purdue.edu> Message-ID: I'm able to bootstrap the current system from pre-LONGINT using upgrade.py. I'm not sure, but our regular builds might do that. Not so now though. I think you might be saying however that such a compiler might have bugs in it? - Jay ________________________________ > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 17:50:17 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3devel] LONGINT used by m3quake/cm3 packages > > > > On 15 Jan 2010, at 16:56, Jay K wrote: > > VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, > but I think what I had is the way to go. > The bootstrapping pain is otherwise novel. > > The bootstrapping pain is now no more novel than when LONGINT was first introduced... > > The compiler doesn't otherwise use LONGINT. > (My doing that it started using it.) > It ought not until after the current release? > > ... so it is pointless trying to build new libraries with an old compiler because the old compiler is built to compile files against old libraries. > > > > - Jay > > >> Date: Fri, 15 Jan 2010 22:51:15 +0000 >> To: m3commit at elegosoft.com >> From: hosking at elego.de >> Subject: [M3commit] CVS Update: cm3 >> >> CVSROOT: /usr/cvs >> Changes by: hosking at birch. 10/01/15 22:51:15 >> >> Modified files: >> cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 >> >> Log message: >> Revert to VAL. >> > From jay.krell at cornell.edu Sat Jan 16 00:50:17 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 15 Jan 2010 23:50:17 +0000 Subject: [M3commit] LONGINT used by m3quake/cm3 packages In-Reply-To: <35CA5D39-E2B2-4576-82D3-108CC21F34AC@cs.purdue.edu> References: <20100115215118.A9F482474001@birch.elegosoft.com>, , , , <6CF0A42A-940C-4FB5-9CFD-CBA18EC9CAFA@cs.purdue.edu>, , <35CA5D39-E2B2-4576-82D3-108CC21F34AC@cs.purdue.edu> Message-ID: Interesting. Can the new values be added "at the end" to remain compatible, or they must be inserted where they are? Well, granted, it was already done, so it's hard to be compatible with old and older. Even so, if you use an old compiler and its old libraries to build new compiler (but not its libraries), and then new compiler to rebuild libraries and compiler... isn't that ok? One of us seems confused. I'm not sure who. Again, old pre-LONGINT compiler can be used to build the current system in a way that we have plenty well enough automated. We first build "up to cm3", skipping libm3/m3core, then clean all and rebuild all with that new cm3. 5.2.6 works. 5.1.3a does not, I believe because sysutils needs a newer m3core. That could be fixed. I realize that it is grey and not clear how far to run this race. You go far enough back, you hit transitions, like m3front being written in C and generatin C, you go further back and you write a C compiler in assembly, keep going and you edit the assembler into memory with switches or somesuch.. One metric has been that you can build with the previous "release". I'm not sure which that is. - Jay ________________________________ > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 17:51:47 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3commit] LONGINT used by m3quake/cm3 packages > > > > It's not the presence of LONGINT in the libraries or not. It is the presence of changes type type-map information (see RTTipe and its correspondence with TipeMap) which mean that the new libraries are incompatible with old compilers. > > > > On 15 Jan 2010, at 17:42, Jay K wrote: > > The compiler is not very dependent on newer compiler/libraries, until now, that I changed File.T.status().size to LONGINT. > > I was just able to upgrade.py from cm3-min-WIN32-NT386-5.2.6 for example. 5.1.3a failed though. > (It's still in progress, but far long.) > > m3core/libm3 can depend on current compiler, agreed. > > - Jay > > > ________________________________ > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 17:13:38 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3commit] LONGINT used by m3quake/cm3 packages > > Jay, the bootstrapping pain is inherent. The compiler and libraries are bound together. Currently, the old library and new libraries are incompatible with their respective compilers. Both ways. > > On 15 Jan 2010, at 16:56, Jay K wrote: > > VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, > but I think what I had is the way to go. > The bootstrapping pain is otherwise novel. > The compiler doesn't otherwise use LONGINT. > (My doing that it started using it.) > It ought not until after the current release? > > > - Jay > > >> Date: Fri, 15 Jan 2010 22:51:15 +0000 >> To: m3commit at elegosoft.com >> From: hosking at elego.de >> Subject: [M3commit] CVS Update: cm3 >> >> CVSROOT: /usr/cvs >> Changes by: hosking at birch. 10/01/15 22:51:15 >> >> Modified files: >> cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 >> >> Log message: >> Revert to VAL. >> > > > From hosking at cs.purdue.edu Sat Jan 16 00:57:30 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 18:57:30 -0500 Subject: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages In-Reply-To: References: <20100115215118.A9F482474001@birch.elegosoft.com>, , <46AFC820-D62E-472B-A0D0-6957153ECE17@cs.purdue.edu> Message-ID: <8089316A-A262-4CC7-8886-7350FC532D0F@cs.purdue.edu> You can bootstrap (non-Windows) from pre-LONGINT, building and shipping in the following order: Using old (release) cm3 m3middle m3linker m3front m3quake cm3 This cm3 uses old run-time libraries, but now understands LONGINT and LONGCARD. m3core (new, with LONGINT/LONGCARD) libm3 (new, with LONGINT/LONGCARD) sysutils m3middle m3linker m3front m3quake cm3 This cm3 uses new run-time libraries. On 15 Jan 2010, at 18:45, Jay K wrote: > > I'm able to bootstrap the current system from pre-LONGINT using upgrade.py. > I'm not sure, but our regular builds might do that. > Not so now though. > I think you might be saying however that such a compiler might have bugs in it? > > - Jay > > > > ________________________________ >> From: hosking at cs.purdue.edu >> Date: Fri, 15 Jan 2010 17:50:17 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >> Subject: Re: [M3devel] LONGINT used by m3quake/cm3 packages >> >> >> >> On 15 Jan 2010, at 16:56, Jay K wrote: >> >> VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, >> but I think what I had is the way to go. >> The bootstrapping pain is otherwise novel. >> >> The bootstrapping pain is now no more novel than when LONGINT was first introduced... >> >> The compiler doesn't otherwise use LONGINT. >> (My doing that it started using it.) >> It ought not until after the current release? >> >> ... so it is pointless trying to build new libraries with an old compiler because the old compiler is built to compile files against old libraries. >> >> >> >> - Jay >> >> >>> Date: Fri, 15 Jan 2010 22:51:15 +0000 >>> To: m3commit at elegosoft.com >>> From: hosking at elego.de >>> Subject: [M3commit] CVS Update: cm3 >>> >>> CVSROOT: /usr/cvs >>> Changes by: hosking at birch. 10/01/15 22:51:15 >>> >>> Modified files: >>> cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 >>> >>> Log message: >>> Revert to VAL. >>> >> From hosking at cs.purdue.edu Sat Jan 16 00:58:27 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 18:58:27 -0500 Subject: [M3commit] LONGINT used by m3quake/cm3 packages In-Reply-To: References: <20100115215118.A9F482474001@birch.elegosoft.com>, , , , <6CF0A42A-940C-4FB5-9CFD-CBA18EC9CAFA@cs.purdue.edu>, , <35CA5D39-E2B2-4576-82D3-108CC21F34AC@cs.purdue.edu> Message-ID: <13D6BE0C-2B40-474D-8743-B4F95F7A1D1A@cs.purdue.edu> On 15 Jan 2010, at 18:50, Jay K wrote: > > Interesting. Can the new values be added "at the end" to remain compatible, or they must be inserted where they are? Well, granted, it was already done, so it's hard to be compatible with old and older. Not easily. > Even so, if you use an old compiler and its old libraries to build new compiler (but not its libraries), and then new compiler to rebuild libraries and compiler... isn't that ok? By old, you mean pre-LONGINT, right? > One of us seems confused. I'm not sure who. Not me! ;-) > Again, old pre-LONGINT compiler can be used to build the current system in a way that we have plenty well enough automated. We first build "up to cm3", skipping libm3/m3core, then clean all and rebuild all with that new cm3. > 5.2.6 works. > 5.1.3a does not, I believe because sysutils needs a newer m3core. That could be fixed. > > > I realize that it is grey and not clear how far to run this race. > You go far enough back, you hit transitions, like m3front being written in C and generatin C, you go further back and you write a C compiler in assembly, keep going and you edit the assembler into memory with switches or somesuch.. > > > One metric has been that you can build with the previous "release". > I'm not sure which that is. > > > > - Jay > > > ________________________________ >> From: hosking at cs.purdue.edu >> Date: Fri, 15 Jan 2010 17:51:47 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >> Subject: Re: [M3commit] LONGINT used by m3quake/cm3 packages >> >> >> >> It's not the presence of LONGINT in the libraries or not. It is the presence of changes type type-map information (see RTTipe and its correspondence with TipeMap) which mean that the new libraries are incompatible with old compilers. >> >> >> >> On 15 Jan 2010, at 17:42, Jay K wrote: >> >> The compiler is not very dependent on newer compiler/libraries, until now, that I changed File.T.status().size to LONGINT. >> >> I was just able to upgrade.py from cm3-min-WIN32-NT386-5.2.6 for example. 5.1.3a failed though. >> (It's still in progress, but far long.) >> >> m3core/libm3 can depend on current compiler, agreed. >> >> - Jay >> >> >> ________________________________ >> From: hosking at cs.purdue.edu >> Date: Fri, 15 Jan 2010 17:13:38 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >> Subject: Re: [M3commit] LONGINT used by m3quake/cm3 packages >> >> Jay, the bootstrapping pain is inherent. The compiler and libraries are bound together. Currently, the old library and new libraries are incompatible with their respective compilers. Both ways. >> >> On 15 Jan 2010, at 16:56, Jay K wrote: >> >> VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, >> but I think what I had is the way to go. >> The bootstrapping pain is otherwise novel. >> The compiler doesn't otherwise use LONGINT. >> (My doing that it started using it.) >> It ought not until after the current release? >> >> >> - Jay >> >> >>> Date: Fri, 15 Jan 2010 22:51:15 +0000 >>> To: m3commit at elegosoft.com >>> From: hosking at elego.de >>> Subject: [M3commit] CVS Update: cm3 >>> >>> CVSROOT: /usr/cvs >>> Changes by: hosking at birch. 10/01/15 22:51:15 >>> >>> Modified files: >>> cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 >>> >>> Log message: >>> Revert to VAL. >>> >> >> >> From hosking at elego.de Sat Jan 16 03:24:13 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 16 Jan 2010 3:24:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116022414.0394E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/16 03:24:13 Modified files: cm3/examples/win32-dll/src/: RTMain.m3 Log message: Newline. From hosking at elego.de Sat Jan 16 03:27:13 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 16 Jan 2010 3:27:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116022713.1E2642474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/16 03:27:13 Modified files: cm3/m3-tools/m3browser/src/: Main.m3 cm3/m3-tools/m3tk/src/fe/: StandardAsText.m3 WiredStandard.m3 cm3/m3-tools/m3tk/src/pl/: M3LTextToType.m3 M3LTypeEquiv.m3 M3LTypeToText.i3 M3LTypeToText.m3 cm3/m3-tools/m3tk/src/sem/: M3CMkStd.m3 M3CStdTypes.i3 M3CStdTypes.m3 M3CTypeChkUtil.i3 M3CTypeChkUtil.m3 cm3/m3-tools/m3tk/src/syn/: M3CLex.m3 M3CParse.m3 M3CToken.i3 Log message: More complete support for LONGINT and LONGCARD. Not clear that constant folding is implemented properly here yet. From hosking at elego.de Sat Jan 16 03:29:11 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 16 Jan 2010 3:29:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116022912.60CAE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/16 03:29:11 Modified files: cm3/m3-sys/m3tools/src/: M3Const.m3 M3Type.i3 M3Type.m3 Log message: Support for LONGINT and LONGCARD. From hosking at elego.de Sat Jan 16 03:33:04 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 16 Jan 2010 3:33:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116023304.9ABF12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/16 03:33:04 Modified files: cm3/m3-comm/events/src/: EventStubLib.m3 cm3/m3-comm/sharedobjgen/src/: AstToType.m3 CodeForType.m3 Type.i3 Type.m3 Value.m3 cm3/m3-comm/stubgen/src/: AstToType.m3 CodeForType.m3 Type.i3 Type.m3 Value.m3 cm3/m3-db/stable/src/: StableLog.i3 StableLog.m3 cm3/m3-db/stablegen/src/: AstToType.m3 GenModuleCode.m3 GenTypeCode.m3 Type.i3 Type.m3 Value.m3 Log message: Initial support for LONGINT and LONGCARD. Still needs vetting for proper conversion of 64-bit and 32-bit LONGINT/LONGCARD (the integrated Win32 backend still treats LONGINT as 32 bits). From hosking at elego.de Sat Jan 16 04:11:30 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 16 Jan 2010 4:11:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116031130.748512474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/16 04:11:30 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTPacking.i3 RTPacking.m3 RTTipe.m3 cm3/m3-libs/libm3/src/pickle/ver2/: ConvertPacking.m3 PickleStubs.i3 PickleStubs.m3 Log message: Add pickle stubs for LONGINT and LONGCARD. Need testing. From hosking at elego.de Sat Jan 16 04:13:44 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 16 Jan 2010 4:13:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116031344.225E82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/16 04:13:44 Modified files: cm3/m3-libs/libm3/src/pickle/ver2/: PickleStubs.m3 Log message: longConvKind not wordConvKind. From hosking at elego.de Sat Jan 16 04:22:15 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 16 Jan 2010 4:22:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116032216.1EC972474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/16 04:22:15 Modified files: cm3/m3-tools/gnuemacs/src/: modula3.el Log message: Add LONGCARD. From jay.krell at cornell.edu Sat Jan 16 05:15:20 2010 From: jay.krell at cornell.edu (Jay K) Date: Sat, 16 Jan 2010 04:15:20 +0000 Subject: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages In-Reply-To: <8089316A-A262-4CC7-8886-7350FC532D0F@cs.purdue.edu> References: <20100115215118.A9F482474001@birch.elegosoft.com>, , , , <46AFC820-D62E-472B-A0D0-6957153ECE17@cs.purdue.edu>, , <8089316A-A262-4CC7-8886-7350FC532D0F@cs.purdue.edu> Message-ID: I strongly suspect(ed) this bootstrapping is broken, by my changing libm3.File.T.status().size to LONGINT, and then using VAL(LONGINT, INTEGER) in m3quake/m3scanner. However, with the older libraries, duh, it is VAL(INTEGER, INTEGER). Is that legal? Ok, probably, sorry, I was confused. - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 18:57:30 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages > > You can bootstrap (non-Windows) from pre-LONGINT, building and shipping in the following order: > > Using old (release) cm3 > > m3middle > m3linker > m3front > m3quake > cm3 > > This cm3 uses old run-time libraries, but now understands LONGINT and LONGCARD. > > m3core (new, with LONGINT/LONGCARD) > libm3 (new, with LONGINT/LONGCARD) > sysutils > m3middle > m3linker > m3front > m3quake > cm3 > > This cm3 uses new run-time libraries. > > On 15 Jan 2010, at 18:45, Jay K wrote: > >> >> I'm able to bootstrap the current system from pre-LONGINT using upgrade.py. >> I'm not sure, but our regular builds might do that. >> Not so now though. >> I think you might be saying however that such a compiler might have bugs in it? >> >> - Jay >> >> >> >> ________________________________ >>> From: hosking at cs.purdue.edu >>> Date: Fri, 15 Jan 2010 17:50:17 -0500 >>> To: jay.krell at cornell.edu >>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>> Subject: Re: [M3devel] LONGINT used by m3quake/cm3 packages >>> >>> >>> >>> On 15 Jan 2010, at 16:56, Jay K wrote: >>> >>> VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, >>> but I think what I had is the way to go. >>> The bootstrapping pain is otherwise novel. >>> >>> The bootstrapping pain is now no more novel than when LONGINT was first introduced... >>> >>> The compiler doesn't otherwise use LONGINT. >>> (My doing that it started using it.) >>> It ought not until after the current release? >>> >>> ... so it is pointless trying to build new libraries with an old compiler because the old compiler is built to compile files against old libraries. >>> >>> >>> >>> - Jay >>> >>> >>>> Date: Fri, 15 Jan 2010 22:51:15 +0000 >>>> To: m3commit at elegosoft.com >>>> From: hosking at elego.de >>>> Subject: [M3commit] CVS Update: cm3 >>>> >>>> CVSROOT: /usr/cvs >>>> Changes by: hosking at birch. 10/01/15 22:51:15 >>>> >>>> Modified files: >>>> cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 >>>> >>>> Log message: >>>> Revert to VAL. >>>> >>> > From hosking at cs.purdue.edu Sat Jan 16 05:29:27 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 15 Jan 2010 23:29:27 -0500 Subject: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages In-Reply-To: References: <20100115215118.A9F482474001@birch.elegosoft.com>, , , , <46AFC820-D62E-472B-A0D0-6957153ECE17@cs.purdue.edu>, , <8089316A-A262-4CC7-8886-7350FC532D0F@cs.purdue.edu> Message-ID: <635BE76B-3EFD-4930-8029-DBBB14468869@cs.purdue.edu> The old (release) libraries don't have the VAL stuff do they? On 15 Jan 2010, at 23:15, Jay K wrote: > > I strongly suspect(ed) this bootstrapping is broken, by my changing libm3.File.T.status().size to LONGINT, and then using VAL(LONGINT, INTEGER) in m3quake/m3scanner. However, with the older libraries, duh, it is VAL(INTEGER, INTEGER). Is that legal? Ok, probably, sorry, I was confused. > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Fri, 15 Jan 2010 18:57:30 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >> Subject: Re: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages >> >> You can bootstrap (non-Windows) from pre-LONGINT, building and shipping in the following order: >> >> Using old (release) cm3 >> >> m3middle >> m3linker >> m3front >> m3quake >> cm3 >> >> This cm3 uses old run-time libraries, but now understands LONGINT and LONGCARD. >> >> m3core (new, with LONGINT/LONGCARD) >> libm3 (new, with LONGINT/LONGCARD) >> sysutils >> m3middle >> m3linker >> m3front >> m3quake >> cm3 >> >> This cm3 uses new run-time libraries. >> >> On 15 Jan 2010, at 18:45, Jay K wrote: >> >>> >>> I'm able to bootstrap the current system from pre-LONGINT using upgrade.py. >>> I'm not sure, but our regular builds might do that. >>> Not so now though. >>> I think you might be saying however that such a compiler might have bugs in it? >>> >>> - Jay >>> >>> >>> >>> ________________________________ >>>> From: hosking at cs.purdue.edu >>>> Date: Fri, 15 Jan 2010 17:50:17 -0500 >>>> To: jay.krell at cornell.edu >>>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>>> Subject: Re: [M3devel] LONGINT used by m3quake/cm3 packages >>>> >>>> >>>> >>>> On 15 Jan 2010, at 16:56, Jay K wrote: >>>> >>>> VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, >>>> but I think what I had is the way to go. >>>> The bootstrapping pain is otherwise novel. >>>> >>>> The bootstrapping pain is now no more novel than when LONGINT was first introduced... >>>> >>>> The compiler doesn't otherwise use LONGINT. >>>> (My doing that it started using it.) >>>> It ought not until after the current release? >>>> >>>> ... so it is pointless trying to build new libraries with an old compiler because the old compiler is built to compile files against old libraries. >>>> >>>> >>>> >>>> - Jay >>>> >>>> >>>>> Date: Fri, 15 Jan 2010 22:51:15 +0000 >>>>> To: m3commit at elegosoft.com >>>>> From: hosking at elego.de >>>>> Subject: [M3commit] CVS Update: cm3 >>>>> >>>>> CVSROOT: /usr/cvs >>>>> Changes by: hosking at birch. 10/01/15 22:51:15 >>>>> >>>>> Modified files: >>>>> cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 >>>>> >>>>> Log message: >>>>> Revert to VAL. >>>>> >>>> >> From jay.krell at cornell.edu Sat Jan 16 06:14:16 2010 From: jay.krell at cornell.edu (Jay K) Date: Sat, 16 Jan 2010 05:14:16 +0000 Subject: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages In-Reply-To: <635BE76B-3EFD-4930-8029-DBBB14468869@cs.purdue.edu> References: <20100115215118.A9F482474001@birch.elegosoft.com>, ,,, , , <46AFC820-D62E-472B-A0D0-6957153ECE17@cs.purdue.edu>, , , , <8089316A-A262-4CC7-8886-7350FC532D0F@cs.purdue.edu>, , <635BE76B-3EFD-4930-8029-DBBB14468869@cs.purdue.edu> Message-ID: No. They have File.T.status().size is INTEGER, and then m3quake/m3scanner call VAL(x, INTEGER) on that. I guess that is legal though. It doesn't matter if x is INTEGER or not, right? (In newer libraries, it is LONGINT). - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Fri, 15 Jan 2010 23:29:27 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com > Subject: Re: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages > > The old (release) libraries don't have the VAL stuff do they? > > On 15 Jan 2010, at 23:15, Jay K wrote: > >> >> I strongly suspect(ed) this bootstrapping is broken, by my changing libm3.File.T.status().size to LONGINT, and then using VAL(LONGINT, INTEGER) in m3quake/m3scanner. However, with the older libraries, duh, it is VAL(INTEGER, INTEGER). Is that legal? Ok, probably, sorry, I was confused. >> >> - Jay >> >> >> ---------------------------------------- >>> From: hosking at cs.purdue.edu >>> Date: Fri, 15 Jan 2010 18:57:30 -0500 >>> To: jay.krell at cornell.edu >>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>> Subject: Re: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages >>> >>> You can bootstrap (non-Windows) from pre-LONGINT, building and shipping in the following order: >>> >>> Using old (release) cm3 >>> >>> m3middle >>> m3linker >>> m3front >>> m3quake >>> cm3 >>> >>> This cm3 uses old run-time libraries, but now understands LONGINT and LONGCARD. >>> >>> m3core (new, with LONGINT/LONGCARD) >>> libm3 (new, with LONGINT/LONGCARD) >>> sysutils >>> m3middle >>> m3linker >>> m3front >>> m3quake >>> cm3 >>> >>> This cm3 uses new run-time libraries. >>> >>> On 15 Jan 2010, at 18:45, Jay K wrote: >>> >>>> >>>> I'm able to bootstrap the current system from pre-LONGINT using upgrade.py. >>>> I'm not sure, but our regular builds might do that. >>>> Not so now though. >>>> I think you might be saying however that such a compiler might have bugs in it? >>>> >>>> - Jay >>>> >>>> >>>> >>>> ________________________________ >>>>> From: hosking at cs.purdue.edu >>>>> Date: Fri, 15 Jan 2010 17:50:17 -0500 >>>>> To: jay.krell at cornell.edu >>>>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>>>> Subject: Re: [M3devel] LONGINT used by m3quake/cm3 packages >>>>> >>>>> >>>>> >>>>> On 15 Jan 2010, at 16:56, Jay K wrote: >>>>> >>>>> VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, >>>>> but I think what I had is the way to go. >>>>> The bootstrapping pain is otherwise novel. >>>>> >>>>> The bootstrapping pain is now no more novel than when LONGINT was first introduced... >>>>> >>>>> The compiler doesn't otherwise use LONGINT. >>>>> (My doing that it started using it.) >>>>> It ought not until after the current release? >>>>> >>>>> ... so it is pointless trying to build new libraries with an old compiler because the old compiler is built to compile files against old libraries. >>>>> >>>>> >>>>> >>>>> - Jay >>>>> >>>>> >>>>>> Date: Fri, 15 Jan 2010 22:51:15 +0000 >>>>>> To: m3commit at elegosoft.com >>>>>> From: hosking at elego.de >>>>>> Subject: [M3commit] CVS Update: cm3 >>>>>> >>>>>> CVSROOT: /usr/cvs >>>>>> Changes by: hosking at birch. 10/01/15 22:51:15 >>>>>> >>>>>> Modified files: >>>>>> cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 >>>>>> >>>>>> Log message: >>>>>> Revert to VAL. >>>>>> >>>>> >>> > From hosking at cs.purdue.edu Sat Jan 16 06:20:22 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 16 Jan 2010 00:20:22 -0500 Subject: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages In-Reply-To: References: <20100115215118.A9F482474001@birch.elegosoft.com>, , , , , , <46AFC820-D62E-472B-A0D0-6957153ECE17@cs.purdue.edu>, , , , <8089316A-A262-4CC7-8886-7350FC532D0F@cs.purdue.edu>, , <635BE76B-3EFD-4930-8029-DBBB14468869@cs.purdue.edu> Message-ID: That's fine. On 16 Jan 2010, at 00:14, Jay K wrote: > > No. They have File.T.status().size is INTEGER, and then m3quake/m3scanner call VAL(x, INTEGER) on that. I guess that is legal though. > It doesn't matter if x is INTEGER or not, right? > (In newer libraries, it is LONGINT). > > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Fri, 15 Jan 2010 23:29:27 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >> Subject: Re: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages >> >> The old (release) libraries don't have the VAL stuff do they? >> >> On 15 Jan 2010, at 23:15, Jay K wrote: >> >>> >>> I strongly suspect(ed) this bootstrapping is broken, by my changing libm3.File.T.status().size to LONGINT, and then using VAL(LONGINT, INTEGER) in m3quake/m3scanner. However, with the older libraries, duh, it is VAL(INTEGER, INTEGER). Is that legal? Ok, probably, sorry, I was confused. >>> >>> - Jay >>> >>> >>> ---------------------------------------- >>>> From: hosking at cs.purdue.edu >>>> Date: Fri, 15 Jan 2010 18:57:30 -0500 >>>> To: jay.krell at cornell.edu >>>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>>> Subject: Re: [M3commit] [M3devel] LONGINT used by m3quake/cm3 packages >>>> >>>> You can bootstrap (non-Windows) from pre-LONGINT, building and shipping in the following order: >>>> >>>> Using old (release) cm3 >>>> >>>> m3middle >>>> m3linker >>>> m3front >>>> m3quake >>>> cm3 >>>> >>>> This cm3 uses old run-time libraries, but now understands LONGINT and LONGCARD. >>>> >>>> m3core (new, with LONGINT/LONGCARD) >>>> libm3 (new, with LONGINT/LONGCARD) >>>> sysutils >>>> m3middle >>>> m3linker >>>> m3front >>>> m3quake >>>> cm3 >>>> >>>> This cm3 uses new run-time libraries. >>>> >>>> On 15 Jan 2010, at 18:45, Jay K wrote: >>>> >>>>> >>>>> I'm able to bootstrap the current system from pre-LONGINT using upgrade.py. >>>>> I'm not sure, but our regular builds might do that. >>>>> Not so now though. >>>>> I think you might be saying however that such a compiler might have bugs in it? >>>>> >>>>> - Jay >>>>> >>>>> >>>>> >>>>> ________________________________ >>>>>> From: hosking at cs.purdue.edu >>>>>> Date: Fri, 15 Jan 2010 17:50:17 -0500 >>>>>> To: jay.krell at cornell.edu >>>>>> CC: m3devel at elegosoft.com; m3commit at elegosoft.com >>>>>> Subject: Re: [M3devel] LONGINT used by m3quake/cm3 packages >>>>>> >>>>>> >>>>>> >>>>>> On 15 Jan 2010, at 16:56, Jay K wrote: >>>>>> >>>>>> VAL(LONGINT, INTEGER) is fine outside of cm3/m3quake, >>>>>> but I think what I had is the way to go. >>>>>> The bootstrapping pain is otherwise novel. >>>>>> >>>>>> The bootstrapping pain is now no more novel than when LONGINT was first introduced... >>>>>> >>>>>> The compiler doesn't otherwise use LONGINT. >>>>>> (My doing that it started using it.) >>>>>> It ought not until after the current release? >>>>>> >>>>>> ... so it is pointless trying to build new libraries with an old compiler because the old compiler is built to compile files against old libraries. >>>>>> >>>>>> >>>>>> >>>>>> - Jay >>>>>> >>>>>> >>>>>>> Date: Fri, 15 Jan 2010 22:51:15 +0000 >>>>>>> To: m3commit at elegosoft.com >>>>>>> From: hosking at elego.de >>>>>>> Subject: [M3commit] CVS Update: cm3 >>>>>>> >>>>>>> CVSROOT: /usr/cvs >>>>>>> Changes by: hosking at birch. 10/01/15 22:51:15 >>>>>>> >>>>>>> Modified files: >>>>>>> cm3/m3-sys/m3quake/src/: QCompiler.m3 QScanner.i3 QScanner.m3 >>>>>>> >>>>>>> Log message: >>>>>>> Revert to VAL. >>>>>>> >>>>>> >>>> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Sat Jan 16 11:44:55 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 11:44:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116104455.D3ACC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 11:44:55 Modified files: cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c SystemC.c Log message: quash warnings, be more compatible with more compilers, optimize, be compatible with libcmt.lib, etc. From jkrell at elego.de Sat Jan 16 11:46:14 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 11:46:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116104614.EC5AB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 11:46:14 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uconstants.c Uexec.c Ugrp.c Uin.c Unetdb.c UnixC.c UnixLink.c Uprocess.c Usocket.c UstatC.c UtimeC.c Uuio.c Log message: quash warnings, be more compatible, etc. From jkrell at elego.de Sat Jan 16 11:55:39 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 11:55:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116105539.6F06A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 11:55:39 Modified files: cm3/m3-libs/m3core/src/: m3core.h cm3/m3-libs/m3core/src/C/Common/: CerrnoC.c CsignalC.c CstdioC.c CstdlibC.c CstringC.c cm3/m3-libs/m3core/src/Csupport/Common/: hand.c cm3/m3-libs/m3core/src/runtime/WIN32/: RTOSc.c cm3/m3-libs/m3core/src/runtime/common/: RTIOc.c RTLinkerC.c RTMiscC.c RTUntracedMemoryC.c cm3/m3-libs/m3core/src/unix/Common/: Uexec.c Uin.c Unetdb.c UnixC.c UnixLink.c Uprocess.c UstatC.c UtimeC.c Uuio.c Log message: quash warnings, don't enable frame point omission -- keep the stack easily walked From jkrell at elego.de Sat Jan 16 12:23:35 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:23:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116112335.C39752474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:23:35 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: dtoa.h Log message: add some parens; compare with http://www.netlib.org/fp/dtoa.c From jkrell at elego.de Sat Jan 16 12:34:56 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:34:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116113456.F09812474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:34:56 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: dtoa.h Log message: quash warnings with #pragma and with two more small changes from http://www.netlib.org/fp/dtoa.c From jkrell at elego.de Sat Jan 16 12:35:33 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:35:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116113533.3CD532474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:35:33 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: fix warning caused by bug in new unused code From jkrell at elego.de Sat Jan 16 12:36:58 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:36:58 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116113658.58F2A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:36:58 Modified files: cm3/m3-libs/m3core/src/win32/: WinNTc.c Log message: quash warning From jkrell at elego.de Sat Jan 16 12:37:53 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:37:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116113753.1B0B22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:37:53 Modified files: cm3/m3-libs/m3core/src/Csupport/libgcc/: libgcc.c Log message: quash warnings From jkrell at elego.de Sat Jan 16 12:44:13 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:44:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116114413.9A1352474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:44:13 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: fix warnings, optimize, calling conventions; though it seems maybe we could implement this in Modula-3 well enough?, maybe even in m3middle? From jkrell at elego.de Sat Jan 16 12:46:20 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:46:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116114621.09E892474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:46:20 Modified files: cm3/m3-libs/m3core/src/Csupport/libgcc/: libgcc.c Log message: put in calling conventions; doesn't likely matter here, this file is mostly for SOLgnu -- gcc backend without gcc linker (maybe also Irix, AIX, HP-UX) From jkrell at elego.de Sat Jan 16 12:47:48 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:47:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116114748.CDB5D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:47:48 Modified files: cm3/m3-libs/m3core/src/Csupport/libgcc/: libgcc.c Log message: limit quashing a clearly Darwin-specific warning to Darwin (Apple, MacOSX, whatever) From jkrell at elego.de Sat Jan 16 12:54:54 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 12:54:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116115454.D0AC22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:54:54 Modified files: cm3/m3-libs/m3core/src/: m3core.h Log message: add calling conventions (point being to be independent of the default as specified on the command line and for this code to always have the same meaning; there are tradeoffs either way, granted From jkrell at elego.de Sat Jan 16 13:15:52 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:15:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116121552.E1AAC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:15:52 Modified files: cm3/m3-libs/m3core/src/: m3makefile Log message: fix newlines From jkrell at elego.de Sat Jan 16 13:17:09 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:17:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116121709.DD3EE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:17:09 Modified files: cm3/m3-libs/m3core/src/: m3core.h cm3/m3-libs/m3core/src/unix/Common/: UtimeC.c Log message: Win32 time_t varies between the old bad 32bit and the new good 64bit. So just don't expose anything time_t related. From jkrell at elego.de Sat Jan 16 13:27:55 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:27:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116122755.AE0E12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:27:55 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uexec.c Log message: fix char** vs. char * const * when compiling Win32/C++ From jkrell at elego.de Sat Jan 16 13:29:16 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:29:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116122916.AD4D22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:29:16 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Uexec.c Log message: fix another Win32/C++ const cast, and change #ifdef to #ifndef (and move the bodies) From jkrell at elego.de Sat Jan 16 13:35:37 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:35:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116123537.94F8A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:35:37 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UnixC.c Log message: be wary of truncating int to size_t in getcwd and gethostname -- don't expose them (this code isn't actually compiled for Win32, but it very well could be From jkrell at elego.de Sat Jan 16 13:41:31 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:41:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116124132.3E3E02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:41:31 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UnixLink.c Log message: fix unsigned/signed warning and workaround nonsensical warning that seems to trigger for any function pointer cast at all; note that these warnings, like others, have not been getting issued all along, it takes particular command lines to trigger them From jkrell at elego.de Sat Jan 16 13:44:16 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:44:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116124416.DA69C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:44:16 Modified files: cm3/m3-libs/m3core/src/: m3core.h Log message: #ifdef _WIN32 #ifndef WIN32 #define WIN32 #endif #endif for compat with old headers From jkrell at elego.de Sat Jan 16 13:44:56 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:44:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116124456.BB9402474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:44:56 Modified files: cm3/m3-libs/m3core/src/thread/WIN32/: ThreadWin32C.c Log message: quash warnings that aren't usually seen, add calling convention, compat with old headers From jkrell at elego.de Sat Jan 16 13:46:56 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:46:56 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116124658.5D3EB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:46:56 Modified files: cm3/m3-libs/m3core/src/unix/Common/: UtimeInternal.i3 Log message: fix newlines (file not alive, I haven't decided what to do here about the platform-specificity of related code, probably use version rewritten in C, but might use an 'if platform' in Modula-3) From jkrell at elego.de Sat Jan 16 13:55:14 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 13:55:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116125514.564DF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 13:55:14 Modified files: cm3/scripts/: Tag: release_branch_cm3_5_8 make-dist.sh Log message: chmod 755 setup.cmd I had around, not sure it is needed, and a newline From jkrell at elego.de Sat Jan 16 14:07:49 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 14:07:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116130749.2DF3B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 14:07:49 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Tag: release_branch_cm3_5_8 NT386.common Log message: from head: support for bootstrapping from older releases without 'pos'; also put back local, though that might break some releases From jkrell at elego.de Sat Jan 16 14:15:30 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 14:15:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116131530.60C3F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 14:15:30 Modified files: cm3/m3-sys/m3middle/src/: Tag: release_branch_cm3_5_8 m3makefile Log message: fix newlines From jkrell at elego.de Sat Jan 16 14:22:33 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 14:22:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116132233.642A92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 14:22:33 Modified files: cm3/m3-comm/events/src/: Tag: release_branch_cm3_5_8 m3overrides cm3/m3-comm/sharedobjgen/src/: Tag: release_branch_cm3_5_8 m3overrides cm3/m3-comm/stubgen/src/: Tag: release_branch_cm3_5_8 m3overrides Log message: some m3override centralization I had From jkrell at elego.de Sat Jan 16 14:30:36 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 14:30:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116133037.A2E552474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 14:30:36 Modified files: cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 QScanner.m3 Log message: from head: go back to VAL: VAL(INTEGER, INTEGER) is legal, there's no dependency here on LONGINT if the underlying library doesn't use it From jkrell at elego.de Sat Jan 16 14:31:35 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 14:31:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116133136.0726D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 14:31:35 Modified files: cm3/m3-sys/cm3/src/: Tag: release_branch_cm3_5_8 WebFile.m3 Log message: from head: go back to VAL: VAL(INTEGER, INTEGER) is legal, there's no dependency here on LONGINT if the underlying library doesn't use it From jkrell at elego.de Sat Jan 16 14:42:09 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 14:42:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116134209.79B3A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 14:42:09 Modified files: cm3/m3-comm/events/src/: Tag: release_branch_cm3_5_8 EventStubLib.m3 cm3/m3-comm/sharedobjgen/src/: Tag: release_branch_cm3_5_8 AstToType.m3 CodeForType.m3 Type.i3 Type.m3 Value.m3 cm3/m3-comm/stubgen/src/: Tag: release_branch_cm3_5_8 AstToType.m3 CodeForType.m3 Type.i3 Type.m3 Value.m3 cm3/m3-db/stable/src/: Tag: release_branch_cm3_5_8 StableLog.i3 StableLog.m3 cm3/m3-db/stablegen/src/: Tag: release_branch_cm3_5_8 AstToType.m3 GenModuleCode.m3 GenTypeCode.m3 Type.i3 Type.m3 Value.m3 cm3/m3-libs/libm3/src/pickle/ver2/: Tag: release_branch_cm3_5_8 ConvertPacking.m3 PickleStubs.i3 PickleStubs.m3 cm3/m3-libs/m3core/src/runtime/common/: Tag: release_branch_cm3_5_8 RTBuiltin.mx RTPacking.i3 RTPacking.m3 RTTipe.i3 RTTipe.m3 cm3/m3-sys/m3cggen/src/: Tag: release_branch_cm3_5_8 Main.m3 cm3/m3-sys/m3front/src/builtinTypes/: Tag: release_branch_cm3_5_8 BuiltinTypes.m3 m3makefile cm3/m3-sys/m3front/src/misc/: Tag: release_branch_cm3_5_8 CG.i3 CG.m3 TipeDesc.i3 Token.m3 cm3/m3-sys/m3front/src/types/: Tag: release_branch_cm3_5_8 RecordType.i3 RecordType.m3 SubrangeType.m3 cm3/m3-sys/m3middle/src/: Tag: release_branch_cm3_5_8 M3CG.i3 M3CG.m3 M3CG_BinRd.m3 M3CG_BinWr.m3 M3CG_Binary.i3 M3CG_Check.m3 M3CG_Ops.i3 M3CG_Rd.m3 M3CG_Wr.m3 cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 QCompiler.m3 QScanner.i3 cm3/m3-sys/m3tools/src/: Tag: release_branch_cm3_5_8 M3Const.m3 M3Type.i3 M3Type.m3 cm3/m3-tools/m3browser/src/: Tag: release_branch_cm3_5_8 Main.m3 cm3/m3-tools/m3tk/src/fe/: Tag: release_branch_cm3_5_8 StandardAsText.m3 WiredStandard.m3 cm3/m3-tools/m3tk/src/pl/: Tag: release_branch_cm3_5_8 M3LTextToType.m3 M3LTypeEquiv.m3 M3LTypeToText.i3 M3LTypeToText.m3 cm3/m3-tools/m3tk/src/sem/: Tag: release_branch_cm3_5_8 M3CMkStd.m3 M3CStdTypes.i3 M3CStdTypes.m3 M3CTypeChkUtil.i3 M3CTypeChkUtil.m3 cm3/m3-tools/m3tk/src/syn/: Tag: release_branch_cm3_5_8 M3CLex.m3 M3CParse.m3 M3CToken.i3 Added files: cm3/m3-sys/m3front/src/builtinTypes/: Tag: release_branch_cm3_5_8 LCard.i3 LCard.m3 Log message: copy from head: LONGINT, LONGCARD, and atomics come along for the ride From jay.krell at cornell.edu Sat Jan 16 14:45:22 2010 From: jay.krell at cornell.edu (Jay K) Date: Sat, 16 Jan 2010 13:45:22 +0000 Subject: [M3commit] longint/longcard/atomics copied from head to release In-Reply-To: <20100116134209.79B3A2474001@birch.elegosoft.com> References: <20100116134209.79B3A2474001@birch.elegosoft.com> Message-ID: There's also more "val" reversion here. Attached should match this. Pity no cvs command or web page can show it. (I try to make up for CVS lameness just by remembering a lot...not a good technique..) - Jay > Date: Sat, 16 Jan 2010 14:42:09 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/16 14:42:09 > > Modified files: > cm3/m3-comm/events/src/: Tag: release_branch_cm3_5_8 > EventStubLib.m3 > cm3/m3-comm/sharedobjgen/src/: Tag: release_branch_cm3_5_8 > AstToType.m3 CodeForType.m3 > Type.i3 Type.m3 Value.m3 > cm3/m3-comm/stubgen/src/: Tag: release_branch_cm3_5_8 > AstToType.m3 CodeForType.m3 Type.i3 > Type.m3 Value.m3 > cm3/m3-db/stable/src/: Tag: release_branch_cm3_5_8 StableLog.i3 > StableLog.m3 > cm3/m3-db/stablegen/src/: Tag: release_branch_cm3_5_8 > AstToType.m3 GenModuleCode.m3 > GenTypeCode.m3 Type.i3 Type.m3 > Value.m3 > cm3/m3-libs/libm3/src/pickle/ver2/: Tag: release_branch_cm3_5_8 > ConvertPacking.m3 > PickleStubs.i3 > PickleStubs.m3 > cm3/m3-libs/m3core/src/runtime/common/: Tag: > release_branch_cm3_5_8 > RTBuiltin.mx > RTPacking.i3 > RTPacking.m3 RTTipe.i3 > RTTipe.m3 > cm3/m3-sys/m3cggen/src/: Tag: release_branch_cm3_5_8 Main.m3 > cm3/m3-sys/m3front/src/builtinTypes/: Tag: > release_branch_cm3_5_8 > BuiltinTypes.m3 m3makefile > cm3/m3-sys/m3front/src/misc/: Tag: release_branch_cm3_5_8 CG.i3 > CG.m3 TipeDesc.i3 Token.m3 > cm3/m3-sys/m3front/src/types/: Tag: release_branch_cm3_5_8 > RecordType.i3 RecordType.m3 > SubrangeType.m3 > cm3/m3-sys/m3middle/src/: Tag: release_branch_cm3_5_8 M3CG.i3 > M3CG.m3 M3CG_BinRd.m3 M3CG_BinWr.m3 > M3CG_Binary.i3 M3CG_Check.m3 > M3CG_Ops.i3 M3CG_Rd.m3 M3CG_Wr.m3 > cm3/m3-sys/m3quake/src/: Tag: release_branch_cm3_5_8 > QCompiler.m3 QScanner.i3 > cm3/m3-sys/m3tools/src/: Tag: release_branch_cm3_5_8 M3Const.m3 > M3Type.i3 M3Type.m3 > cm3/m3-tools/m3browser/src/: Tag: release_branch_cm3_5_8 Main.m3 > cm3/m3-tools/m3tk/src/fe/: Tag: release_branch_cm3_5_8 > StandardAsText.m3 WiredStandard.m3 > cm3/m3-tools/m3tk/src/pl/: Tag: release_branch_cm3_5_8 > M3LTextToType.m3 M3LTypeEquiv.m3 > M3LTypeToText.i3 M3LTypeToText.m3 > cm3/m3-tools/m3tk/src/sem/: Tag: release_branch_cm3_5_8 > M3CMkStd.m3 M3CStdTypes.i3 > M3CStdTypes.m3 M3CTypeChkUtil.i3 > M3CTypeChkUtil.m3 > cm3/m3-tools/m3tk/src/syn/: Tag: release_branch_cm3_5_8 > M3CLex.m3 M3CParse.m3 M3CToken.i3 > Added files: > cm3/m3-sys/m3front/src/builtinTypes/: Tag: > release_branch_cm3_5_8 > LCard.i3 LCard.m3 > > Log message: > copy from head: LONGINT, LONGCARD, and atomics come along for the ride > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 4.txt URL: From hosking at cs.purdue.edu Sat Jan 16 19:51:41 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 16 Jan 2010 13:51:41 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100116114413.9A1352474001@birch.elegosoft.com> References: <20100116114413.9A1352474001@birch.elegosoft.com> Message-ID: <176BC4BE-B881-49C1-A24E-ABBED1AE46EC@cs.purdue.edu> m3middle? On 16 Jan 2010, at 12:44, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/16 12:44:13 > > Modified files: > cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c > > Log message: > fix warnings, optimize, calling conventions; though it seems maybe we could implement this in Modula-3 well enough?, maybe even in m3middle? -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Jan 16 20:53:51 2010 From: jay.krell at cornell.edu (Jay K) Date: Sat, 16 Jan 2010 19:53:51 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <176BC4BE-B881-49C1-A24E-ABBED1AE46EC@cs.purdue.edu> References: <20100116114413.9A1352474001@birch.elegosoft.com>, <176BC4BE-B881-49C1-A24E-ABBED1AE46EC@cs.purdue.edu> Message-ID: What I meant was, somewhere, either m3middle or m3front, or with extern pragmas, you could generate calls to abort instead of functions that call abort. Not a big deal. - Jay From: hosking at cs.purdue.edu Date: Sat, 16 Jan 2010 13:51:41 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 m3middle? On 16 Jan 2010, at 12:44, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:44:13 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: fix warnings, optimize, calling conventions; though it seems maybe we could implement this in Modula-3 well enough?, maybe even in m3middle? -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Jan 16 20:54:35 2010 From: jay.krell at cornell.edu (Jay K) Date: Sat, 16 Jan 2010 19:54:35 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <176BC4BE-B881-49C1-A24E-ABBED1AE46EC@cs.purdue.edu> References: <20100116114413.9A1352474001@birch.elegosoft.com>, <176BC4BE-B881-49C1-A24E-ABBED1AE46EC@cs.purdue.edu> Message-ID: m3middle/Target.m3 knows which platforms have a stack walker. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; jkrell at elego.de CC: m3commit at elegosoft.com Subject: RE: [M3commit] CVS Update: cm3 Date: Sat, 16 Jan 2010 19:53:51 +0000 What I meant was, somewhere, either m3middle or m3front, or with extern pragmas, you could generate calls to abort instead of functions that call abort. Not a big deal. - Jay From: hosking at cs.purdue.edu Date: Sat, 16 Jan 2010 13:51:41 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 m3middle? On 16 Jan 2010, at 12:44, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:44:13 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: fix warnings, optimize, calling conventions; though it seems maybe we could implement this in Modula-3 well enough?, maybe even in m3middle? -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Sat Jan 16 20:58:23 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 20:58:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116195823.50BAB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 20:58:23 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: dtoa.h Log message: use error directive instead of plain text; ok, maybe that's a 'new' feature, use both From jkrell at elego.de Sat Jan 16 20:59:33 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 20:59:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116195933.215C82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 20:59:33 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: dtoa.h Log message: quash an innocuous warning From jkrell at elego.de Sat Jan 16 21:13:44 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 21:13:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116201344.29C5C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 21:13:44 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: dtoa.h Log message: quash all but one assignment within conditional warning with gcc -Wall by adding parens where the current source does the same From jkrell at elego.de Sat Jan 16 21:26:33 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 21:26:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116202633.196A02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 21:26:33 Modified files: cm3/m3-libs/m3core/src/C/Common/: CerrnoC.c CsignalC.c CstdioC.c CstdlibC.c CstringC.c cm3/m3-libs/m3core/src/Csupport/Common/: hand.c cm3/m3-libs/m3core/src/runtime/WIN32/: RTOSc.c cm3/m3-libs/m3core/src/runtime/common/: RTIOc.c RTLinkerC.c RTMiscC.c RTUntracedMemoryC.c cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c cm3/m3-libs/m3core/src/unix/Common/: Uexec.c Uin.c Unetdb.c UnixC.c UnixLink.c Uprocess.c UstatC.c UtimeC.c Uuio.c Log message: just remove all the #pragma optimize, not a big deal either way From jkrell at elego.de Sat Jan 16 21:27:49 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 21:27:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116202749.7F60C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 21:27:49 Modified files: cm3/m3-libs/sysutils/src/: FSUtils.i3 FSUtilsUnsafe.i3 cm3/m3-libs/sysutils/src/POSIX/: FSUnix_cm3.m3 FSUnix_pm3.m3 cm3/m3-libs/sysutils/src/WIN32/: FSysWin32.m3 Log message: expose GetFileSize():INTEGER for >2GB on 64 bit maybe just remove this though, no current users From jkrell at elego.de Sat Jan 16 21:28:26 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 21:28:26 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116202826.B88D32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 21:28:26 Modified files: cm3/m3-libs/sysutils/src/: FSUtilsUnsafe.c SystemC.c Log message: remove #pragma optimize, not a big deal either way From jkrell at elego.de Sat Jan 16 21:29:57 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 16 Jan 2010 21:29:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100116202957.DD54A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 21:29:57 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTUntracedMemoryC.c Log message: missing an important muliplication; code not used yet From hosking at cs.purdue.edu Sun Jan 17 01:25:29 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 16 Jan 2010 19:25:29 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100116114413.9A1352474001@birch.elegosoft.com>, <176BC4BE-B881-49C1-A24E-ABBED1AE46EC@cs.purdue.edu> Message-ID: It would be an unnecessary complication of the compiler. Better to leave the aborts in the library. On 16 Jan 2010, at 14:54, Jay K wrote: > m3middle/Target.m3 knows which platforms have a stack walker. > > - Jay > > > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu; jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: RE: [M3commit] CVS Update: cm3 > Date: Sat, 16 Jan 2010 19:53:51 +0000 > > What I meant was, somewhere, either m3middle or m3front, or with extern pragmas, you could generate calls to abort instead of functions that call abort. Not a big deal. > > - Jay > > > > From: hosking at cs.purdue.edu > Date: Sat, 16 Jan 2010 13:51:41 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > m3middle? > > On 16 Jan 2010, at 12:44, Jay Krell wrote: > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/16 12:44:13 > > Modified files: > cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c > > Log message: > fix warnings, optimize, calling conventions; though it seems maybe we could implement this in Modula-3 well enough?, maybe even in m3middle? > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Jan 17 01:58:45 2010 From: jay.krell at cornell.edu (Jay K) Date: Sun, 17 Jan 2010 00:58:45 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100116114413.9A1352474001@birch.elegosoft.com>, <176BC4BE-B881-49C1-A24E-ABBED1AE46EC@cs.purdue.edu> , Message-ID: ok Subject: Re: [M3commit] CVS Update: cm3 From: hosking at cs.purdue.edu Date: Sat, 16 Jan 2010 19:25:29 -0500 CC: jkrell at elego.de; m3commit at elegosoft.com To: jay.krell at cornell.edu It would be an unnecessary complication of the compiler. Better to leave the aborts in the library. On 16 Jan 2010, at 14:54, Jay K wrote: m3middle/Target.m3 knows which platforms have a stack walker. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; jkrell at elego.de CC: m3commit at elegosoft.com Subject: RE: [M3commit] CVS Update: cm3 Date: Sat, 16 Jan 2010 19:53:51 +0000 What I meant was, somewhere, either m3middle or m3front, or with extern pragmas, you could generate calls to abort instead of functions that call abort. Not a big deal. - Jay From: hosking at cs.purdue.edu Date: Sat, 16 Jan 2010 13:51:41 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 m3middle? On 16 Jan 2010, at 12:44, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/16 12:44:13 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: fix warnings, optimize, calling conventions; though it seems maybe we could implement this in Modula-3 well enough?, maybe even in m3middle? -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Sun Jan 17 04:04:38 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 4:04:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117030438.ACDEF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 04:04:38 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: spaces in comments From jkrell at elego.de Sun Jan 17 07:18:29 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 7:18:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117061829.EA6042474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 07:18:29 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: fix bugs, warnings, and crashes (though the crashes are perhaps appropriate) unoptimized LONG_MIN divided by negative numbers give negative result but should be positive optimized version gives correct result gcc 4.2 optimized LONG_MIN divided by -1 raises an exception (possibly ok) gcc-4.2 -O2 -Wstrict-overflow=4 gives warnings about signed overlfow; guidance is to use unsigned The magnitude of no result should be changed here. Test code is included. Old versions are retained and exercised by test code, compared to new versions, altered only to avoid the exception. Passing int64 in K&R style also doesn't work; always use ANSI form; I do have HP-UX with K&R only compiler, revisit that later. All testing done on Darwin/x86 and Darwin/amd64, with gcc 4.2.1. Will test others shortly but hard to imagine there is anything wrong here. Unsigned operations are much better defined across all platforms and Darwin/x86/amd64 merit fixing. From jkrell at elego.de Sun Jan 17 07:31:38 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 7:31:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117063138.CD78C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 07:31:38 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: support strange limits.h that has maximum 64bit integer but not minimum (Linux/powerpc at least with no special switches) From jkrell at elego.de Sun Jan 17 07:48:00 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 7:48:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117064800.611D12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 07:48:00 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: cleanup: remove ugly indentation use macros and typedefs for genericity and incidentally for inlining move test code out of main into TestDiv nest last part in else no semantic change From jkrell at elego.de Sun Jan 17 07:51:14 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 7:51:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117065114.BBEAA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 07:51:14 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: disabl test code From jkrell at elego.de Sun Jan 17 08:02:31 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 8:02:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117070232.1EB242474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 08:02:31 Modified files: cm3/m3-libs/m3core/src/runtime/ex_frame/: RTStackC.c Log message: fix all non-NT platforms (__cdecl) and always use ANSI instead of K&R for now From jkrell at elego.de Sun Jan 17 08:16:08 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 8:16:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117071608.AC28C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 08:16:08 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: support more limits.h (VC 2.0) and quash warnings From jkrell at elego.de Sun Jan 17 08:27:08 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 8:27:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117072708.5AEAC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 08:27:08 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: I forgot to put parens in the macros, but it was ok. From jkrell at elego.de Sun Jan 17 09:41:33 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 9:41:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117084133.C22722474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 09:41:33 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: better: use direct division for anything with a zero or same signs only use unsigned if signs vary From jkrell at elego.de Sun Jan 17 09:44:06 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 9:44:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117084406.701342474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 09:44:06 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: fix comment: -Wstrict-overflow=4 is required to see the problem (or just run a test of unoptimized code..) From jkrell at elego.de Sun Jan 17 09:45:06 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 9:45:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117084506.A6CD32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 09:45:06 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: p.s.: restore trap for LONG_MIN / -1, depending on optimization, it seems reasonable From jkrell at elego.de Sun Jan 17 09:59:54 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 9:59:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117085954.8618B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 09:59:54 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: move up typedefs just to eliminate cascade error on ancient compilers From jkrell at elego.de Sun Jan 17 10:02:24 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 10:02:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117090224.C99552474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 10:02:24 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: use friendly macro From jkrell at elego.de Sun Jan 17 14:23:01 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 14:23:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117132301.52D252474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 14:23:01 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: also fix mod where inputs are minimum and negative Modula-3 mod (as opposed to every other programming language) is always supposed to have the sign of its second input, or be 0 However it was backwards, depending on compiler and optimizer (optimizer tends to *fix* the bug) test code included, much cleaner this time (see http://www.modula3.com/cm3/doc/reference/arithmetic.html) From jkrell at elego.de Sun Jan 17 14:28:22 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 14:28:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117132822.97DCC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 14:28:22 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: slight cleanup: #includes, better names for test functions, count more of the errors in the old versions From jkrell at elego.de Sun Jan 17 14:33:11 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 14:33:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117133311.B749D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 14:33:10 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: Tag: release_branch_cm3_5_8 ProcessPosixCommon.m3 Log message: go back a version: Unix.sleep isn't available in release branch From jkrell at elego.de Sun Jan 17 15:08:18 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 15:08:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117140818.B1AE62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 15:08:18 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: test more inputs, and random numbers (though not very random) From jkrell at elego.de Sun Jan 17 15:15:05 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 15:15:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117141505.E31142474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 15:15:05 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: test yet more values From jkrell at elego.de Sun Jan 17 15:50:54 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 15:50:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117145055.89C8B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 15:50:54 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: cleanup test code and get a little more coverage; there seems to be a problem From jkrell at elego.de Sun Jan 17 15:55:54 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 17 Jan 2010 15:55:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100117145554.C4A0F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/17 15:55:54 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: avoid test cases that overflow, that was the problem; mainline code doesn't special case overflow though From jkrell at elego.de Mon Jan 18 02:26:54 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 2:26:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118012654.326B82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 02:26:54 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: only compute a < 0 and b < 0 once per function (div and mod) From jkrell at elego.de Mon Jan 18 10:36:11 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 10:36:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118093612.13A502474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 10:36:11 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: move matching runctions next to each other, remove inconsistent extra parens From jkrell at elego.de Mon Jan 18 10:37:19 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 10:37:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118093719.86D582474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 10:37:19 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: check common case first From jkrell at elego.de Mon Jan 18 11:02:05 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 11:02:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118100205.8AB912474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 11:02:05 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Tag: release_branch_cm3_5_8 Unix.i3 UnixC.c Log message: bring over sleep wrapper from head From jkrell at elego.de Mon Jan 18 11:06:09 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 11:06:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118100609.40AA92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 11:06:09 Modified files: cm3/m3-libs/m3core/src/unix/Common/: Tag: release_branch_cm3_5_8 Unix.i3 Log message: import unsigned From jkrell at elego.de Mon Jan 18 12:12:25 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 12:12:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118111225.C48D32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 12:12:25 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 Log message: add Negate function From jkrell at elego.de Mon Jan 18 14:15:50 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 14:15:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118131550.59A2B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 14:15:50 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: disable test code From jkrell at elego.de Mon Jan 18 14:18:18 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 14:18:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118131818.A8FDE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 14:18:18 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: rename 'nu' to 'current' ('new' shouldn't be used, it conflicts with C++) From jkrell at elego.de Mon Jan 18 14:28:43 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 18 Jan 2010 14:28:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118132843.E768D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 14:28:43 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: add more constants for m3back; restore more verbose form that makes it easier to see these are arrays of bytes From hosking at cs.purdue.edu Mon Jan 18 15:11:02 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 18 Jan 2010 09:11:02 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100118132843.E768D2474001@birch.elegosoft.com> References: <20100118132843.E768D2474001@birch.elegosoft.com> Message-ID: Jay, m3middle is intended for m3front as the client. Not m3back. If you need all these constants you should put them somewhere in m3back. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 18 Jan 2010, at 14:28, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/18 14:28:43 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 > > Log message: > add more constants for m3back; restore more verbose form that makes it easier to see these are arrays of bytes -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at elego.de Mon Jan 18 15:25:00 2010 From: hosking at elego.de (Antony Hosking) Date: Mon, 18 Jan 2010 15:25:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100118142500.5BC8A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/18 15:25:00 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: Restore some readability! IBytes is declared as bytes so these values can *only* be bytes statically! Jay, these probably really don't belong here anyway. Shouldn't you be making use of the Target types instead? All of the constants you need are declared there. I don't see why you need to clutter up TInt. [Moreover, you have unsigned constants in the signed integer interface (TInt instead of TWord).] But I don't think any of this belongs here in the first place! For example: Target.Int16.min Target.Word8.max etc. From jay.krell at cornell.edu Mon Jan 18 21:52:36 2010 From: jay.krell at cornell.edu (Jay K) Date: Mon, 18 Jan 2010 20:52:36 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100118132843.E768D2474001@birch.elegosoft.com>, Message-ID: Putting them elsewhere violates the opacity. Not using this code in m3back would require duplication. m3back does recieve plenty of Target.Int parameters, and already uses TInt and maybe TWord, and TFloat. Hard to deal with the opaque parameters unless TInt is available... - Jay From: hosking at cs.purdue.edu Date: Mon, 18 Jan 2010 09:11:02 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 Jay, m3middle is intended for m3front as the client. Not m3back. If you need all these constants you should put them somewhere in m3back. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 On 18 Jan 2010, at 14:28, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/18 14:28:43 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: add more constants for m3back; restore more verbose form that makes it easier to see these are arrays of bytes -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Jan 18 22:57:24 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 18 Jan 2010 16:57:24 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100118132843.E768D2474001@birch.elegosoft.com>, Message-ID: <2C0A6815-97C9-48D0-AFF6-A1252636BE04@cs.purdue.edu> On 18 Jan 2010, at 15:52, Jay K wrote: > Putting them elsewhere violates the opacity. What's wrong with Target.Int8.max/min, etc.? Also, why should unsigned values be in TInt instead of TWord? > Not using this code in m3back would require duplication. Understood. > m3back does recieve plenty of Target.Int parameters, and already uses TInt and maybe TWord, and TFloat. > Hard to deal with the opaque parameters unless TInt is available... Nothing wrong with using TInt. Just use Target.x.min/max, instead of TInt consts. > > - Jay > > From: hosking at cs.purdue.edu > Date: Mon, 18 Jan 2010 09:11:02 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Jay, > > m3middle is intended for m3front as the client. > Not m3back. If you need all these constants you should put them somewhere in m3back. > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 > > > > > On 18 Jan 2010, at 14:28, Jay Krell wrote: > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/18 14:28:43 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 > > Log message: > add more constants for m3back; restore more verbose form that makes it easier to see these are arrays of bytes > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Jan 18 23:57:08 2010 From: jay.krell at cornell.edu (Jay K) Date: Mon, 18 Jan 2010 22:57:08 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <2C0A6815-97C9-48D0-AFF6-A1252636BE04@cs.purdue.edu> References: <20100118132843.E768D2474001@birch.elegosoft.com>, , , , <2C0A6815-97C9-48D0-AFF6-A1252636BE04@cs.purdue.edu> Message-ID: Maybe I'll use those. I like a very direct mechanical translation where I can. IF foo> bar => IF TInt.GT(foo, bar) whereas I could have used: => IF TInt.LT(bar, foo) and not introduced GT. imm := 16_FFFF => imm := TInt.FFFF whereas I could have used, had I known/though of it. Target.UInt16.max or such. TInt vs. TWord, ok. Their distinction is not always clear to me. For example TWord doesn't have as many conversion functions. I think NT386 mainly needs this stuff for efficiency not actually making it work. In particular it does constant folding. And it checks for it hi/lo/range checks can be eliminated -- which I suspect is redundant with m3front. I find the "n" parameter to FromInt confusing. Most uses I see use Target.Integer.bytes so I do too, but I'm not sure. That's a reason for forming constants, to avoid the unclear FromInt function. Why can't I just pass a host integer? Is that ambiguous? - Jay ________________________________ > From: hosking at cs.purdue.edu > Date: Mon, 18 Jan 2010 16:57:24 -0500 > To: jay.krell at cornell.edu > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > > > On 18 Jan 2010, at 15:52, Jay K wrote: > > Putting them elsewhere violates the opacity. > > What's wrong with Target.Int8.max/min, etc.? > > Also, why should unsigned values be in TInt instead of TWord? > > Not using this code in m3back would require duplication. > > Understood. > > m3back does recieve plenty of Target.Int parameters, and already uses TInt and maybe TWord, and TFloat. > Hard to deal with the opaque parameters unless TInt is available... > > Nothing wrong with using TInt. Just use Target.x.min/max, instead of TInt consts. > > > - Jay > > ________________________________ > From: hosking at cs.purdue.edu > Date: Mon, 18 Jan 2010 09:11:02 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Jay, > > m3middle is intended for m3front as the client. > Not m3back. If you need all these constants you should put them somewhere in m3back. > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 > > > > > On 18 Jan 2010, at 14:28, Jay Krell wrote: > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/18 14:28:43 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 > > Log message: > add more constants for m3back; restore more verbose form that makes it easier to see these are arrays of bytes > > > From jay.krell at cornell.edu Tue Jan 19 08:56:31 2010 From: jay.krell at cornell.edu (Jay K) Date: Tue, 19 Jan 2010 07:56:31 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100118142500.5BC8A2474001@birch.elegosoft.com> References: <20100118142500.5BC8A2474001@birch.elegosoft.com> Message-ID: > Restore some readability! fyi, the terser forms were my own recent introduction. There is some readability value in padding out to two digits, and as a side affect, it frees up "FF" and such to be actual Target.Int. - Jay > Date: Mon, 18 Jan 2010 15:25:00 +0000 > To: m3commit at elegosoft.com > From: hosking at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: hosking at birch. 10/01/18 15:25:00 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 > > Log message: > Restore some readability! IBytes is declared as bytes so these values can > *only* be bytes statically! Jay, these probably really don't belong here > anyway. Shouldn't you be making use of the Target types instead? All of the > constants you need are declared there. I don't see why you need to clutter up > TInt. [Moreover, you have unsigned constants in the signed integer interface > (TInt instead of TWord).] But I don't think any of this belongs here in the > first place! > > For example: > > Target.Int16.min > Target.Word8.max > etc. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Wed Jan 20 12:44:57 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 20 Jan 2010 12:44:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100120114458.064CE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/20 12:44:57 Modified files: cm3/m3-sys/m3front/src/misc/: Error.i3 Log message: fix typo in comment From jkrell at elego.de Wed Jan 20 13:56:22 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 20 Jan 2010 13:56:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100120125622.A7DA52474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/20 13:56:22 Modified files: cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 Stackx86.i3 Stackx86.m3 cm3/m3-sys/m3front/src/misc/: CG.m3 Error.i3 Error.m3 cm3/m3-sys/m3middle/src/: M3CG_BinWr.m3 M3CG_Check.m3 M3CG_Ops.i3 M3CG_Wr.m3 cm3/m3-sys/m3staloneback/src/: Main.m3 Log message: at warning callback so backends can issue warnings, not just errors From jay.krell at cornell.edu Wed Jan 20 13:57:42 2010 From: jay.krell at cornell.edu (Jay K) Date: Wed, 20 Jan 2010 12:57:42 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100120125622.A7DA52474001@birch.elegosoft.com> References: <20100120125622.A7DA52474001@birch.elegosoft.com> Message-ID: diff is attached (not sure how else you can easily find it with cvs...) > Date: Wed, 20 Jan 2010 13:56:22 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/20 13:56:22 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > Stackx86.i3 Stackx86.m3 > cm3/m3-sys/m3front/src/misc/: CG.m3 Error.i3 Error.m3 > cm3/m3-sys/m3middle/src/: M3CG_BinWr.m3 M3CG_Check.m3 > M3CG_Ops.i3 M3CG_Wr.m3 > cm3/m3-sys/m3staloneback/src/: Main.m3 > > Log message: > at warning callback so backends can issue warnings, not just errors > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 3.txt URL: From jkrell at elego.de Wed Jan 20 16:01:32 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 20 Jan 2010 16:01:32 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100120150133.04F542474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/20 16:01:32 Modified files: cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 M3x86Rep.i3 Stackx86.i3 Stackx86.m3 cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 Log message: convert much of m3back to use Target.Int instead of INTEGER This should at least allow it to propagate constant LONGINTs as well as perhaps otherwise help with implementing LONGINT, since the virtual stack is now of Target.Int instead of INTEGER Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead Also note that there's still a lot of "INTEGER" used. From jay.krell at cornell.edu Wed Jan 20 16:02:27 2010 From: jay.krell at cornell.edu (Jay K) Date: Wed, 20 Jan 2010 15:02:27 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100120150133.04F542474001@birch.elegosoft.com> References: <20100120150133.04F542474001@birch.elegosoft.com> Message-ID: diff attached > Date: Wed, 20 Jan 2010 16:01:32 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/20 16:01:32 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > convert much of m3back to use Target.Int instead of INTEGER > This should at least allow it to propagate constant LONGINTs > as well as perhaps otherwise help with implementing LONGINT, > since the virtual stack is now of Target.Int instead of INTEGER > > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead > > Also note that there's still a lot of "INTEGER" used. > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 1.txt URL: From jay.krell at cornell.edu Wed Jan 20 16:05:23 2010 From: jay.krell at cornell.edu (Jay K) Date: Wed, 20 Jan 2010 15:05:23 +0000 Subject: [M3commit] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: References: <20100120150133.04F542474001@birch.elegosoft.com>, Message-ID: This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. I did look through pretty much every single line in search of the one bug I saw working on it. It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. Which broke INC, it was adding 0 instead 1. You could see the bug in RTIO.PutString where it just kept outputing the first character. So I use TInt.Multiply instead. - Jay From: jay.krell at cornell.edu To: jkrell at elego.de; m3commit at elegosoft.com Date: Wed, 20 Jan 2010 15:02:27 +0000 Subject: Re: [M3commit] CVS Update: cm3 diff attached > Date: Wed, 20 Jan 2010 16:01:32 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/20 16:01:32 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > convert much of m3back to use Target.Int instead of INTEGER > This should at least allow it to propagate constant LONGINTs > as well as perhaps otherwise help with implementing LONGINT, > since the virtual stack is now of Target.Int instead of INTEGER > > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead > > Also note that there's still a lot of "INTEGER" used. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Wed Jan 20 16:09:07 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 20 Jan 2010 16:09:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100120150908.0B3BB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/20 16:09:07 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Log message: remove assert that was hunting for the 1 => 0 corruption, turns out it was TWord.Multiply From hosking at cs.purdue.edu Thu Jan 21 00:52:36 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 20 Jan 2010 18:52:36 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100120125622.A7DA52474001@birch.elegosoft.com> References: <20100120125622.A7DA52474001@birch.elegosoft.com> Message-ID: I don't understand what is going on here. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 20 Jan 2010, at 13:56, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/20 13:56:22 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > Stackx86.i3 Stackx86.m3 > cm3/m3-sys/m3front/src/misc/: CG.m3 Error.i3 Error.m3 > cm3/m3-sys/m3middle/src/: M3CG_BinWr.m3 M3CG_Check.m3 > M3CG_Ops.i3 M3CG_Wr.m3 > cm3/m3-sys/m3staloneback/src/: Main.m3 > > Log message: > at warning callback so backends can issue warnings, not just errors -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Jan 21 00:54:18 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 20 Jan 2010 18:54:18 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100120125622.A7DA52474001@birch.elegosoft.com> Message-ID: <2B939D34-18BE-48B8-9C60-6AF7F3E5CF06@cs.purdue.edu> OK, I see what's going on. Why would you *ever* have a warning instead of an error in the backend? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 20 Jan 2010, at 07:57, Jay K wrote: > diff is attached (not sure how else you can easily find it with cvs...) > > > > Date: Wed, 20 Jan 2010 13:56:22 +0000 > > To: m3commit at elegosoft.com > > From: jkrell at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/20 13:56:22 > > > > Modified files: > > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > > Stackx86.i3 Stackx86.m3 > > cm3/m3-sys/m3front/src/misc/: CG.m3 Error.i3 Error.m3 > > cm3/m3-sys/m3middle/src/: M3CG_BinWr.m3 M3CG_Check.m3 > > M3CG_Ops.i3 M3CG_Wr.m3 > > cm3/m3-sys/m3staloneback/src/: Main.m3 > > > > Log message: > > at warning callback so backends can issue warnings, not just errors > > > <3.txt> -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Jan 21 00:56:10 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 20 Jan 2010 18:56:10 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100120150133.04F542474001@birch.elegosoft.com> References: <20100120150133.04F542474001@birch.elegosoft.com> Message-ID: On 20 Jan 2010, at 16:01, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/20 16:01:32 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > convert much of m3back to use Target.Int instead of INTEGER > This should at least allow it to propagate constant LONGINTs > as well as perhaps otherwise help with implementing LONGINT, > since the virtual stack is now of Target.Int instead of INTEGER > > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead What???????? > > Also note that there's still a lot of "INTEGER" used. From hosking at cs.purdue.edu Thu Jan 21 00:59:30 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 20 Jan 2010 18:59:30 -0500 Subject: [M3commit] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: References: <20100120150133.04F542474001@birch.elegosoft.com>, Message-ID: <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu> Where's the bug in TWord.Multiply? If there were a bug we would have seen it by now surely? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 20 Jan 2010, at 10:05, Jay K wrote: > This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. > I did look through pretty much every single line in search of the one bug I saw working on it. > It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. > Which broke INC, it was adding 0 instead 1. > You could see the bug in RTIO.PutString where it just kept outputing the first character. > So I use TInt.Multiply instead. > > - Jay > > From: jay.krell at cornell.edu > To: jkrell at elego.de; m3commit at elegosoft.com > Date: Wed, 20 Jan 2010 15:02:27 +0000 > Subject: Re: [M3commit] CVS Update: cm3 > > diff attached > > > > > > > > Date: Wed, 20 Jan 2010 16:01:32 +0000 > > To: m3commit at elegosoft.com > > From: jkrell at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/20 16:01:32 > > > > Modified files: > > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 > > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > > > Log message: > > convert much of m3back to use Target.Int instead of INTEGER > > This should at least allow it to propagate constant LONGINTs > > as well as perhaps otherwise help with implementing LONGINT, > > since the virtual stack is now of Target.Int instead of INTEGER > > > > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead > > > > Also note that there's still a lot of "INTEGER" used. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Jan 21 02:00:39 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 20 Jan 2010 20:00:39 -0500 Subject: [M3commit] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu> References: <20100120150133.04F542474001@birch.elegosoft.com>, <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu> Message-ID: Jay, I don't know what you are talking about there being a bug in TWord.Multiply. This little program prints out 2, as would be expected: MODULE Main; IMPORT RTIO, TInt, TWord, Target; VAR i := TInt.Two; j: Target.Int; buf: ARRAY[0..10] OF CHAR; BEGIN TWord.Multiply (i, TInt.One, j); FOR k := 0 TO TInt.ToChars (i, buf) DO RTIO.PutChar(buf[k]); END; RTIO.PutChar('\n'); RTIO.Flush(); END Main. On 20 Jan 2010, at 18:59, Tony Hosking wrote: > Where's the bug in TWord.Multiply? > If there were a bug we would have seen it by now surely? > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 | Mobile +1 765 427 5484 > > > > > On 20 Jan 2010, at 10:05, Jay K wrote: > >> This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. >> I did look through pretty much every single line in search of the one bug I saw working on it. >> It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. >> Which broke INC, it was adding 0 instead 1. >> You could see the bug in RTIO.PutString where it just kept outputing the first character. >> So I use TInt.Multiply instead. >> >> - Jay >> >> From: jay.krell at cornell.edu >> To: jkrell at elego.de; m3commit at elegosoft.com >> Date: Wed, 20 Jan 2010 15:02:27 +0000 >> Subject: Re: [M3commit] CVS Update: cm3 >> >> diff attached >> >> >> >> >> >> >> > Date: Wed, 20 Jan 2010 16:01:32 +0000 >> > To: m3commit at elegosoft.com >> > From: jkrell at elego.de >> > Subject: [M3commit] CVS Update: cm3 >> > >> > CVSROOT: /usr/cvs >> > Changes by: jkrell at birch. 10/01/20 16:01:32 >> > >> > Modified files: >> > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 >> > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 >> > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 >> > >> > Log message: >> > convert much of m3back to use Target.Int instead of INTEGER >> > This should at least allow it to propagate constant LONGINTs >> > as well as perhaps otherwise help with implementing LONGINT, >> > since the virtual stack is now of Target.Int instead of INTEGER >> > >> > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead >> > >> > Also note that there's still a lot of "INTEGER" used. >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 21 03:52:13 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 21 Jan 2010 02:52:13 +0000 Subject: [M3commit] [M3devel] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: References: <20100120150133.04F542474001@birch.elegosoft.com>, , , , <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu>, Message-ID: I'll look into it again. There's definitely a problem somewhere. Maybe in my change. Maybe. Using TInt.Multiply vs. TWord.Multiply made the difference between INC() incrementing by zero or the correct amount. I had some number, I multiplied it by a variable that also happened to be 1, and I got zero. This was the only problem I ran into in changing from INTEGER to Target.Int. - Jay ________________________________ > From: hosking at cs.purdue.edu > Date: Wed, 20 Jan 2010 20:00:39 -0500 > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com; jay.krell at cornell.edu > Subject: Re: [M3devel] [M3commit] m3back using Target.Int in place of INTEGER a lot now > > > > > Jay, I don't know what you are talking about there being a bug in TWord.Multiply. > > This little program prints out 2, as would be expected: > > MODULE Main; > IMPORT RTIO, TInt, TWord, Target; > > VAR i := TInt.Two; > j: Target.Int; > buf: ARRAY[0..10] OF CHAR; > BEGIN > TWord.Multiply (i, TInt.One, j); > FOR k := 0 TO TInt.ToChars (i, buf) DO > RTIO.PutChar(buf[k]); > END; > RTIO.PutChar('\n'); > RTIO.Flush(); > END Main. > > > On 20 Jan 2010, at 18:59, Tony Hosking wrote: > > Where's the bug in TWord.Multiply? > If there were a bug we would have seen it by now surely? > > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 | Mobile +1 765 427 5484 > > > > > > > On 20 Jan 2010, at 10:05, Jay K wrote: > > This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. > I did look through pretty much every single line in search of the one bug I saw working on it. > It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. > Which broke INC, it was adding 0 instead 1. > You could see the bug in RTIO.PutString where it just kept outputing the first character. > So I use TInt.Multiply instead. > > - Jay > > ________________________________ > From: jay.krell at cornell.edu > To: jkrell at elego.de; m3commit at elegosoft.com > Date: Wed, 20 Jan 2010 15:02:27 +0000 > Subject: Re: [M3commit] CVS Update: cm3 > > diff attached > > > > > > >> Date: Wed, 20 Jan 2010 16:01:32 +0000 >> To: m3commit at elegosoft.com >> From: jkrell at elego.de >> Subject: [M3commit] CVS Update: cm3 >> >> CVSROOT: /usr/cvs >> Changes by: jkrell at birch. 10/01/20 16:01:32 >> >> Modified files: >> cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 >> M3x86Rep.i3 Stackx86.i3 Stackx86.m3 >> cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 >> >> Log message: >> convert much of m3back to use Target.Int instead of INTEGER >> This should at least allow it to propagate constant LONGINTs >> as well as perhaps otherwise help with implementing LONGINT, >> since the virtual stack is now of Target.Int instead of INTEGER >> >> Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead >> >> Also note that there's still a lot of "INTEGER" used. >> > > From jay.krell at cornell.edu Thu Jan 21 08:02:41 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 21 Jan 2010 07:02:41 +0000 Subject: [M3commit] [M3devel] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: References: <20100120150133.04F542474001@birch.elegosoft.com>, , , , <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu>, Message-ID: Hm. Ok. TInt.Multiply allows aliasing but TWord.Multiply does not. MODULE Main; IMPORT RTIO, Target, TInt, TWord; VAR a,b:Target.Int; BEGIN EVAL TInt.FromInt(1, BYTESIZE(INTEGER), a); EVAL TInt.FromInt(1, BYTESIZE(INTEGER), b); TWord.Multiply(a, b, a); RTIO.PutText(TInt.ToText(a)); RTIO.Flush(); END Main. prints 0. The code in m3back: PROCEDURE doindex_address (t: T; shift, size: INTEGER; neg: BOOLEAN) = ... (* Beware TWord.Multiply: x * 1 = 0 *) IF NOT TInt.Multiply(stop0.imm, tsize, stop0.imm) THEN t.Err("doindex_address: multiply overflowed"); END; - Jay From: hosking at cs.purdue.edu Date: Wed, 20 Jan 2010 20:00:39 -0500 To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com; m3commit at elegosoft.com; jay.krell at cornell.edu Subject: Re: [M3devel] [M3commit] m3back using Target.Int in place of INTEGER a lot now Jay, I don't know what you are talking about there being a bug in TWord.Multiply. This little program prints out 2, as would be expected: MODULE Main; IMPORT RTIO, TInt, TWord, Target; VAR i := TInt.Two; j: Target.Int; buf: ARRAY[0..10] OF CHAR; BEGIN TWord.Multiply (i, TInt.One, j); FOR k := 0 TO TInt.ToChars (i, buf) DO RTIO.PutChar(buf[k]); END; RTIO.PutChar('\n'); RTIO.Flush(); END Main. On 20 Jan 2010, at 18:59, Tony Hosking wrote: Where's the bug in TWord.Multiply? If there were a bug we would have seen it by now surely? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 On 20 Jan 2010, at 10:05, Jay K wrote: This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. I did look through pretty much every single line in search of the one bug I saw working on it. It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. Which broke INC, it was adding 0 instead 1. You could see the bug in RTIO.PutString where it just kept outputing the first character. So I use TInt.Multiply instead. - Jay From: jay.krell at cornell.edu To: jkrell at elego.de; m3commit at elegosoft.com Date: Wed, 20 Jan 2010 15:02:27 +0000 Subject: Re: [M3commit] CVS Update: cm3 diff attached > Date: Wed, 20 Jan 2010 16:01:32 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/20 16:01:32 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > convert much of m3back to use Target.Int instead of INTEGER > This should at least allow it to propagate constant LONGINTs > as well as perhaps otherwise help with implementing LONGINT, > since the virtual stack is now of Target.Int instead of INTEGER > > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead > > Also note that there's still a lot of "INTEGER" used. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 21 08:14:40 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 21 Jan 2010 07:14:40 +0000 Subject: [M3commit] [M3devel] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: References: <20100120150133.04F542474001@birch.elegosoft.com>, , , , , , , <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu>, , , Message-ID: TInt.Multiply is reasonable anyway, since the code wasn't using Word.Multiply but just INTEGER *. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Thu, 21 Jan 2010 07:02:41 +0000 CC: m3devel at elegosoft.com; m3commit at elegosoft.com Subject: Re: [M3commit] [M3devel] m3back using Target.Int in place of INTEGER a lot now Hm. Ok. TInt.Multiply allows aliasing but TWord.Multiply does not. MODULE Main; IMPORT RTIO, Target, TInt, TWord; VAR a,b:Target.Int; BEGIN EVAL TInt.FromInt(1, BYTESIZE(INTEGER), a); EVAL TInt.FromInt(1, BYTESIZE(INTEGER), b); TWord.Multiply(a, b, a); RTIO.PutText(TInt.ToText(a)); RTIO.Flush(); END Main. prints 0. The code in m3back: PROCEDURE doindex_address (t: T; shift, size: INTEGER; neg: BOOLEAN) = ... (* Beware TWord.Multiply: x * 1 = 0 *) IF NOT TInt.Multiply(stop0.imm, tsize, stop0.imm) THEN t.Err("doindex_address: multiply overflowed"); END; - Jay From: hosking at cs.purdue.edu Date: Wed, 20 Jan 2010 20:00:39 -0500 To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com; m3commit at elegosoft.com; jay.krell at cornell.edu Subject: Re: [M3devel] [M3commit] m3back using Target.Int in place of INTEGER a lot now Jay, I don't know what you are talking about there being a bug in TWord.Multiply. This little program prints out 2, as would be expected: MODULE Main; IMPORT RTIO, TInt, TWord, Target; VAR i := TInt.Two; j: Target.Int; buf: ARRAY[0..10] OF CHAR; BEGIN TWord.Multiply (i, TInt.One, j); FOR k := 0 TO TInt.ToChars (i, buf) DO RTIO.PutChar(buf[k]); END; RTIO.PutChar('\n'); RTIO.Flush(); END Main. On 20 Jan 2010, at 18:59, Tony Hosking wrote: Where's the bug in TWord.Multiply? If there were a bug we would have seen it by now surely? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 On 20 Jan 2010, at 10:05, Jay K wrote: This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. I did look through pretty much every single line in search of the one bug I saw working on it. It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. Which broke INC, it was adding 0 instead 1. You could see the bug in RTIO.PutString where it just kept outputing the first character. So I use TInt.Multiply instead. - Jay From: jay.krell at cornell.edu To: jkrell at elego.de; m3commit at elegosoft.com Date: Wed, 20 Jan 2010 15:02:27 +0000 Subject: Re: [M3commit] CVS Update: cm3 diff attached > Date: Wed, 20 Jan 2010 16:01:32 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/20 16:01:32 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > convert much of m3back to use Target.Int instead of INTEGER > This should at least allow it to propagate constant LONGINTs > as well as perhaps otherwise help with implementing LONGINT, > since the virtual stack is now of Target.Int instead of INTEGER > > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead > > Also note that there's still a lot of "INTEGER" used. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Thu Jan 21 08:40:35 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 8:40:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121074035.6FD8C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 08:40:35 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Stackx86.m3 Log message: restore accidentally removed constant folding in doabs rename 't' to 'tint' avoid aliasing in TInt.Multiply; remove comment about TWord.Multiply From jkrell at elego.de Thu Jan 21 09:06:36 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 9:06:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121080636.143682474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 09:06:36 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 Stackx86.i3 Stackx86.m3 Log message: more Target.Int, less INTEGER we have to special case -FIRST(INTEGER) and let it convert to an integer, even though it doesn't fit I call this AbsMinS32 in TInt, absolute value of MinS32 From jay.krell at cornell.edu Thu Jan 21 09:09:11 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 21 Jan 2010 08:09:11 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100121080636.143682474001@birch.elegosoft.com> References: <20100121080636.143682474001@birch.elegosoft.com> Message-ID: diff attached (not otherwise discoverable with CVS as far as I know) This -FIRST(INTEGER) thing is still bugging me. Maybe we can change Lex.m3 to not use it? - Jay > Date: Thu, 21 Jan 2010 09:06:36 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/21 09:06:36 > > Modified files: > cm3/m3-sys/m3middle/src/: TInt.i3 > cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 Stackx86.i3 > Stackx86.m3 > > Log message: > more Target.Int, less INTEGER > we have to special case -FIRST(INTEGER) and let it convert > to an integer, even though it doesn't fit > I call this AbsMinS32 in TInt, absolute value of MinS32 > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 1.txt URL: From hosking at cs.purdue.edu Thu Jan 21 09:38:45 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 21 Jan 2010 03:38:45 -0500 Subject: [M3commit] [M3devel] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: References: <20100120150133.04F542474001@birch.elegosoft.com>, , , , <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu>, Message-ID: <1DFF961A-09C7-4BAF-8593-D8128577786D@cs.purdue.edu> INC is defined on INTEGER values, not Word.T. I think your problem is somewhere else. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 20 Jan 2010, at 21:52, Jay K wrote: > > I'll look into it again. > There's definitely a problem somewhere. > Maybe in my change. Maybe. > > > Using TInt.Multiply vs. TWord.Multiply made the difference > between INC() incrementing by zero or the correct amount. > I had some number, I multiplied it by a variable > that also happened to be 1, and I got zero. > This was the only problem I ran into in changing > from INTEGER to Target.Int. > > > - Jay > > ________________________________ >> From: hosking at cs.purdue.edu >> Date: Wed, 20 Jan 2010 20:00:39 -0500 >> To: hosking at cs.purdue.edu >> CC: m3devel at elegosoft.com; m3commit at elegosoft.com; jay.krell at cornell.edu >> Subject: Re: [M3devel] [M3commit] m3back using Target.Int in place of INTEGER a lot now >> >> >> >> >> Jay, I don't know what you are talking about there being a bug in TWord.Multiply. >> >> This little program prints out 2, as would be expected: >> >> MODULE Main; >> IMPORT RTIO, TInt, TWord, Target; >> >> VAR i := TInt.Two; >> j: Target.Int; >> buf: ARRAY[0..10] OF CHAR; >> BEGIN >> TWord.Multiply (i, TInt.One, j); >> FOR k := 0 TO TInt.ToChars (i, buf) DO >> RTIO.PutChar(buf[k]); >> END; >> RTIO.PutChar('\n'); >> RTIO.Flush(); >> END Main. >> >> >> On 20 Jan 2010, at 18:59, Tony Hosking wrote: >> >> Where's the bug in TWord.Multiply? >> If there were a bug we would have seen it by now surely? >> >> >> Antony Hosking | Associate Professor | Computer Science | Purdue University >> 305 N. University Street | West Lafayette | IN 47907 | USA >> Office +1 765 494 6001 | Mobile +1 765 427 5484 >> >> >> >> >> >> >> On 20 Jan 2010, at 10:05, Jay K wrote: >> >> This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. >> I did look through pretty much every single line in search of the one bug I saw working on it. >> It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. >> Which broke INC, it was adding 0 instead 1. >> You could see the bug in RTIO.PutString where it just kept outputing the first character. >> So I use TInt.Multiply instead. >> >> - Jay >> >> ________________________________ >> From: jay.krell at cornell.edu >> To: jkrell at elego.de; m3commit at elegosoft.com >> Date: Wed, 20 Jan 2010 15:02:27 +0000 >> Subject: Re: [M3commit] CVS Update: cm3 >> >> diff attached >> >> >> >> >> >> >>> Date: Wed, 20 Jan 2010 16:01:32 +0000 >>> To: m3commit at elegosoft.com >>> From: jkrell at elego.de >>> Subject: [M3commit] CVS Update: cm3 >>> >>> CVSROOT: /usr/cvs >>> Changes by: jkrell at birch. 10/01/20 16:01:32 >>> >>> Modified files: >>> cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 >>> M3x86Rep.i3 Stackx86.i3 Stackx86.m3 >>> cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 >>> >>> Log message: >>> convert much of m3back to use Target.Int instead of INTEGER >>> This should at least allow it to propagate constant LONGINTs >>> as well as perhaps otherwise help with implementing LONGINT, >>> since the virtual stack is now of Target.Int instead of INTEGER >>> >>> Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead >>> >>> Also note that there's still a lot of "INTEGER" used. >>> >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Jan 21 09:40:36 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 21 Jan 2010 03:40:36 -0500 Subject: [M3commit] [M3devel] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: References: <20100120150133.04F542474001@birch.elegosoft.com>, , , , <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu>, Message-ID: <8AB90935-0C2B-4BF7-80A7-D0EBA22636AC@cs.purdue.edu> You should not assume that aliasing works for any of these operations. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 21 Jan 2010, at 02:02, Jay K wrote: > Hm. Ok. TInt.Multiply allows aliasing but TWord.Multiply does not. > > > MODULE Main; > IMPORT RTIO, Target, TInt, TWord; > VAR a,b:Target.Int; > BEGIN > EVAL TInt.FromInt(1, BYTESIZE(INTEGER), a); > EVAL TInt.FromInt(1, BYTESIZE(INTEGER), b); > TWord.Multiply(a, b, a); > RTIO.PutText(TInt.ToText(a)); > RTIO.Flush(); > END Main. > > > prints 0. > > The code in m3back: > > > PROCEDURE doindex_address (t: T; shift, size: INTEGER; neg: BOOLEAN) = > ... > (* Beware TWord.Multiply: x * 1 = 0 *) > IF NOT TInt.Multiply(stop0.imm, tsize, stop0.imm) THEN > t.Err("doindex_address: multiply overflowed"); > END; > > > > - Jay > > > From: hosking at cs.purdue.edu > Date: Wed, 20 Jan 2010 20:00:39 -0500 > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com; m3commit at elegosoft.com; jay.krell at cornell.edu > Subject: Re: [M3devel] [M3commit] m3back using Target.Int in place of INTEGER a lot now > > Jay, I don't know what you are talking about there being a bug in TWord.Multiply. > > This little program prints out 2, as would be expected: > > MODULE Main; > IMPORT RTIO, TInt, TWord, Target; > > VAR i := TInt.Two; > j: Target.Int; > buf: ARRAY[0..10] OF CHAR; > BEGIN > TWord.Multiply (i, TInt.One, j); > FOR k := 0 TO TInt.ToChars (i, buf) DO > RTIO.PutChar(buf[k]); > END; > RTIO.PutChar('\n'); > RTIO.Flush(); > END Main. > > > On 20 Jan 2010, at 18:59, Tony Hosking wrote: > > Where's the bug in TWord.Multiply? > If there were a bug we would have seen it by now surely? > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 > > > > > On 20 Jan 2010, at 10:05, Jay K wrote: > > This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. > I did look through pretty much every single line in search of the one bug I saw working on it. > It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. > Which broke INC, it was adding 0 instead 1. > You could see the bug in RTIO.PutString where it just kept outputing the first character. > So I use TInt.Multiply instead. > > - Jay > > From: jay.krell at cornell.edu > To: jkrell at elego.de; m3commit at elegosoft.com > Date: Wed, 20 Jan 2010 15:02:27 +0000 > Subject: Re: [M3commit] CVS Update: cm3 > > diff attached > > > > > > > > Date: Wed, 20 Jan 2010 16:01:32 +0000 > > To: m3commit at elegosoft.com > > From: jkrell at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/20 16:01:32 > > > > Modified files: > > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 > > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > > > Log message: > > convert much of m3back to use Target.Int instead of INTEGER > > This should at least allow it to propagate constant LONGINTs > > as well as perhaps otherwise help with implementing LONGINT, > > since the virtual stack is now of Target.Int instead of INTEGER > > > > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead > > > > Also note that there's still a lot of "INTEGER" used. > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 21 09:42:40 2010 From: jay.krell at cornell.edu (Jay K) Date: Thu, 21 Jan 2010 08:42:40 +0000 Subject: [M3commit] [M3devel] m3back using Target.Int in place of INTEGER a lot now In-Reply-To: <8AB90935-0C2B-4BF7-80A7-D0EBA22636AC@cs.purdue.edu> References: <20100120150133.04F542474001@birch.elegosoft.com>, , , , , , , <5C7ABC30-9520-4FC0-87A5-B57FDC3914AD@cs.purdue.edu>, , , , <8AB90935-0C2B-4BF7-80A7-D0EBA22636AC@cs.purdue.edu> Message-ID: I changed it to no longer: IF NOT TInt.Multiply(stop0.imm, tsize, tint) THEN t.Err("doindex_address: multiply overflowed"); END; stop0.imm := tint; - Jay From: hosking at cs.purdue.edu Date: Thu, 21 Jan 2010 03:40:36 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com; m3commit at elegosoft.com Subject: Re: [M3commit] [M3devel] m3back using Target.Int in place of INTEGER a lot now You should not assume that aliasing works for any of these operations. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 On 21 Jan 2010, at 02:02, Jay K wrote: Hm. Ok. TInt.Multiply allows aliasing but TWord.Multiply does not. MODULE Main; IMPORT RTIO, Target, TInt, TWord; VAR a,b:Target.Int; BEGIN EVAL TInt.FromInt(1, BYTESIZE(INTEGER), a); EVAL TInt.FromInt(1, BYTESIZE(INTEGER), b); TWord.Multiply(a, b, a); RTIO.PutText(TInt.ToText(a)); RTIO.Flush(); END Main. prints 0. The code in m3back: PROCEDURE doindex_address (t: T; shift, size: INTEGER; neg: BOOLEAN) = ... (* Beware TWord.Multiply: x * 1 = 0 *) IF NOT TInt.Multiply(stop0.imm, tsize, stop0.imm) THEN t.Err("doindex_address: multiply overflowed"); END; - Jay From: hosking at cs.purdue.edu Date: Wed, 20 Jan 2010 20:00:39 -0500 To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com; m3commit at elegosoft.com; jay.krell at cornell.edu Subject: Re: [M3devel] [M3commit] m3back using Target.Int in place of INTEGER a lot now Jay, I don't know what you are talking about there being a bug in TWord.Multiply. This little program prints out 2, as would be expected: MODULE Main; IMPORT RTIO, TInt, TWord, Target; VAR i := TInt.Two; j: Target.Int; buf: ARRAY[0..10] OF CHAR; BEGIN TWord.Multiply (i, TInt.One, j); FOR k := 0 TO TInt.ToChars (i, buf) DO RTIO.PutChar(buf[k]); END; RTIO.PutChar('\n'); RTIO.Flush(); END Main. On 20 Jan 2010, at 18:59, Tony Hosking wrote: Where's the bug in TWord.Multiply? If there were a bug we would have seen it by now surely? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 +1 765 494 6001 | Mobile +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 +1 765 427 5484 On 20 Jan 2010, at 10:05, Jay K wrote: This is fairly large and tedious. If anyone has the patience to look at every single line, please do. Thanks. I did look through pretty much every single line in search of the one bug I saw working on it. It turns out the bug was in TWord though. TWord.Multiply(x, 1) = 0. Which broke INC, it was adding 0 instead 1. You could see the bug in RTIO.PutString where it just kept outputing the first character. So I use TInt.Multiply instead. - Jay From: jay.krell at cornell.edu To: jkrell at elego.de; m3commit at elegosoft.com Date: Wed, 20 Jan 2010 15:02:27 +0000 Subject: Re: [M3commit] CVS Update: cm3 diff attached > Date: Wed, 20 Jan 2010 16:01:32 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/20 16:01:32 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > M3x86Rep.i3 Stackx86.i3 Stackx86.m3 > cm3/m3-sys/m3middle/src/: TInt.i3 TInt.m3 > > Log message: > convert much of m3back to use Target.Int instead of INTEGER > This should at least allow it to propagate constant LONGINTs > as well as perhaps otherwise help with implementing LONGINT, > since the virtual stack is now of Target.Int instead of INTEGER > > Beware that TWord.Multiply(x, 1) = 0, so I use TInt.Multiply instead > > Also note that there's still a lot of "INTEGER" used. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Thu Jan 21 10:48:18 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 10:48:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121094818.A01B12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 10:48:18 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Log message: preserve locked across corrupt as before From jkrell at elego.de Thu Jan 21 10:48:55 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 10:48:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121094855.7308A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 10:48:55 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 Log message: fix newlines From jkrell at elego.de Thu Jan 21 12:52:27 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 12:52:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121115227.AACBD2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 12:52:27 Modified files: cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 M3x86Rep.i3 Stackx86.m3 Log message: initial guesses for: fence, store_ordered, load_ordered, compare_exchange, exchange MIA: fetch_and_op, any testing (is there frontend support?), support for other than 32 bit types, much clue how this stuff works :( compare_exchange should be willing to use other registers, presumably From jkrell at elego.de Thu Jan 21 14:00:23 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 14:00:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121130023.9AECA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 14:00:23 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Codex86.m3 Codex86.i3 Log message: a more convincing compare_exchange that doesn't hardcode the register allocation and seems to fit the spec From jkrell at elego.de Thu Jan 21 14:02:07 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 14:02:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121130207.5E82E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 14:02:07 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: the return type of compare_exchange doesn't need to be checked like the others From jkrell at elego.de Thu Jan 21 14:06:37 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 14:06:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121130637.DAB232474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 14:06:37 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 Log message: I forgot the lock prefix. From jkrell at elego.de Thu Jan 21 14:54:34 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 21 Jan 2010 14:54:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100121135434.5EA0D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/21 14:54:34 Modified files: cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 Log message: an initial fairly convincing implementation of fetch_and_op - but it returns the new value not the old value - still not tested, not sure frontend supports it From hosking at cs.purdue.edu Thu Jan 21 15:19:11 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 21 Jan 2010 09:19:11 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100121135434.5EA0D2474001@birch.elegosoft.com> References: <20100121135434.5EA0D2474001@birch.elegosoft.com> Message-ID: <4C4366F4-7064-4FA1-873F-179CA0721B10@cs.purdue.edu> These will all be supported in the front end soon. You should be able to extract example sequences for x86 from the gcc intrinsics. Once I get that stuff working in the gcc-based backend you'll have an alternative to seeing example sequences. On 21 Jan 2010, at 14:54, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/21 14:54:34 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 > > Log message: > an initial fairly convincing implementation of fetch_and_op > - but it returns the new value not the old value > - still not tested, not sure frontend supports it -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Fri Jan 22 13:28:33 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 22 Jan 2010 13:28:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100122122833.7FBCC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/22 13:28:33 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Log message: fix another case where I broke copying 'locked' across register reinitialization (found by code inspection, not by any resulting incorrect codegen, surprising, I thought using self would make more bugs appear when they exist From jkrell at elego.de Fri Jan 22 14:02:47 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 22 Jan 2010 14:02:47 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100122130247.F07BA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/22 14:02:47 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 M3x86Rep.i3 Stackx86.m3 Log message: change reg from integer to array [0..1] of integer so we that we *might* enregister 64bit values and not just load, store, op all .reg uses changed to .reg[0] note that this does *not* actually add any functionality, certainly not longint many/most/all such places would need to be loops and longint needs certain special codegen (maybe some function calls -- after all, C uses function calls in a few places) From jkrell at elego.de Sat Jan 23 06:55:54 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 23 Jan 2010 6:55:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100123055554.70BD82474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/23 06:55:54 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: by pattern matching I believe these are fixes From jkrell at elego.de Sat Jan 23 07:17:53 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 23 Jan 2010 7:17:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100123061753.31AB62474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/23 07:17:53 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Log message: nicer way to preserve locked through InitRegister() From jkrell at elego.de Sat Jan 23 09:58:40 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 23 Jan 2010 9:58:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100123085840.F3A022474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/23 09:58:40 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: cleanup (a little less duplication) From jkrell at elego.de Sat Jan 23 16:09:07 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 23 Jan 2010 16:09:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100123150907.AE8CF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/23 16:09:07 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: just some comments: the stack protocol from M3CG_Ops.i3 missing on a few functions From jkrell at elego.de Sat Jan 23 20:34:50 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 23 Jan 2010 20:34:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100123193450.B98712474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/23 20:34:50 Modified files: cm3/m3-libs/libm3/src/fmtlex/: Lex.m3 Log message: avoid integer overflow on two's complement systems: replace -FIRST(INTEGER) with Word.Plus(-(FIRST(INTEGER) + 1), 1) (The value is then passed to Word.GT.) From jkrell at elego.de Sat Jan 23 20:42:03 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 23 Jan 2010 20:42:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100123194203.F16D72474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/23 20:42:03 Modified files: cm3/m3-libs/libm3/src/fmtlex/: Lex.m3 Log message: avoid overflow on -FIRST(LONGINT) as well From jkrell at elego.de Sat Jan 23 20:42:28 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 23 Jan 2010 20:42:28 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100123194228.97C542474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/23 20:42:28 Modified files: cm3/m3-libs/libm3/src/fmtlex/: Lex.m3 Log message: oops 1 => 1L From jkrell at elego.de Sat Jan 23 20:44:00 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 23 Jan 2010 20:44:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100123194400.83B662474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/23 20:44:00 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Codex86.m3 Log message: no longer allow integer overflow at compiel time (no longer using warning support then) From jkrell at elego.de Sun Jan 24 03:26:16 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 3:26:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124022616.79ED32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 03:26:16 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: remove unnecessary optimization (not in the generated code, just in some simple initialization) From hosking at cs.purdue.edu Sun Jan 24 10:26:26 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 24 Jan 2010 04:26:26 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100123193450.B98712474001@birch.elegosoft.com> References: <20100123193450.B98712474001@birch.elegosoft.com> Message-ID: <2BE78F60-01EF-4401-AD30-4668DC34407B@cs.purdue.edu> Seems overdone... On 23 Jan 2010, at 20:34, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/23 20:34:50 > > Modified files: > cm3/m3-libs/libm3/src/fmtlex/: Lex.m3 > > Log message: > avoid integer overflow on two's complement systems: > replace -FIRST(INTEGER) with Word.Plus(-(FIRST(INTEGER) + 1), 1) > (The value is then passed to Word.GT.) From hosking at cs.purdue.edu Sun Jan 24 10:28:01 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 24 Jan 2010 04:28:01 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100123194228.97C542474001@birch.elegosoft.com> References: <20100123194228.97C542474001@birch.elegosoft.com> Message-ID: I really don't like this... what's wrong with allowing compile-time overflow other than that it exposes 2-s complement representation? On 23 Jan 2010, at 20:42, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/23 20:42:28 > > Modified files: > cm3/m3-libs/libm3/src/fmtlex/: Lex.m3 > > Log message: > oops 1 => 1L From jay.krell at cornell.edu Sun Jan 24 11:57:09 2010 From: jay.krell at cornell.edu (Jay K) Date: Sun, 24 Jan 2010 10:57:09 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100123194228.97C542474001@birch.elegosoft.com>, Message-ID: Imagine if FloatMode worked. And if the compile-time evaluation wasn't performed. This code would fail. Though really..you know.. I don't think making FloatMode work makes sense. It should be an interface/type thing that determines statically at compile time if overflow is trapped. - Jay > From: hosking at cs.purdue.edu > Date: Sun, 24 Jan 2010 04:28:01 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > I really don't like this... > what's wrong with allowing compile-time overflow other than that it exposes 2-s complement representation? > > On 23 Jan 2010, at 20:42, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/23 20:42:28 > > > > Modified files: > > cm3/m3-libs/libm3/src/fmtlex/: Lex.m3 > > > > Log message: > > oops 1 => 1L > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Jan 24 12:00:35 2010 From: jay.krell at cornell.edu (Jay K) Date: Sun, 24 Jan 2010 11:00:35 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <2BE78F60-01EF-4401-AD30-4668DC34407B@cs.purdue.edu> References: <20100123193450.B98712474001@birch.elegosoft.com>, <2BE78F60-01EF-4401-AD30-4668DC34407B@cs.purdue.edu> Message-ID: The previous form is not portable to systems that trap on overflow...if such a thing really makes sense. It is good practise to avoid that in C too, since signed overflow is undefined, and gcc actually sometimes mangles code that depends on signed overflow. Really, look at how I got here. By using Target.Int in m3back and not ignoring errors. And look at what I had to do to get it to compile with a warning. I had to check for a specific value and hardcode the result. This is actually needed in multiple places. When I wrote test code that resembles the Lex code, it triggered a failure to convert Target.Int to INTEGER in a different place in m3back. - Jay > From: hosking at cs.purdue.edu > Date: Sun, 24 Jan 2010 04:26:26 -0500 > To: jkrell at elego.de > CC: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > Seems overdone... > > On 23 Jan 2010, at 20:34, Jay Krell wrote: > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/23 20:34:50 > > > > Modified files: > > cm3/m3-libs/libm3/src/fmtlex/: Lex.m3 > > > > Log message: > > avoid integer overflow on two's complement systems: > > replace -FIRST(INTEGER) with Word.Plus(-(FIRST(INTEGER) + 1), 1) > > (The value is then passed to Word.GT.) > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Sun Jan 24 13:02:22 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 13:02:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124120222.A87852474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 13:02:22 Modified files: cm3/m3-sys/m3middle/src/: TWord.i3 TWord.m3 Log message: add functions LeftShift and RightShift, by moving the code out of Shift, and have Shift call them From jkrell at elego.de Sun Jan 24 13:07:41 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 13:07:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124120741.F05FF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 13:07:41 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 Log message: when pushing immediate values in the range [-128,127], use the two byte form (0x6A value) instead of 5 byte form (0x68 value..) From jkrell at elego.de Sun Jan 24 13:08:43 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 13:08:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124120843.3492A2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 13:08:43 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: let 64bit types through FixReturnValue and remove redundant code from this function From jkrell at elego.de Sun Jan 24 13:12:12 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 13:12:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124121212.93C402474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 13:12:12 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: add a bunch of functions under #ifdef _WIN32 that I strongly believe will be used for initial int64 support (and may drop out as the support improves) in particular, the backend will need mainly pushimm(64bit) pushvar(64bit) and calls to these functions Once the compiler generates calls to these functions, there will be bootstrapping pain -- current m3core will be needed. make unused functions static From jkrell at elego.de Sun Jan 24 13:29:15 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 13:29:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124122915.9475D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 13:29:15 Modified files: cm3/m3-sys/m3middle/src/: TWord.i3 TWord.m3 Log message: add EQ, NE, GE, GT to augment the existing LT, LE From jkrell at elego.de Sun Jan 24 14:34:09 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 14:34:09 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124133410.5141C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 14:34:09 Modified files: cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 M3x86Rep.i3 Stackx86.m3 Log message: work in progress on supporting 64bit integers in particular splitting up 64bit operands into two 32bit operands also traffic a little bit more in Target.Int instead of INTEGER, but not much and more needed From jkrell at elego.de Sun Jan 24 14:41:03 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 14:41:03 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124134103.183892474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 14:41:03 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 Log message: split pushImm function out of pushOp From jkrell at elego.de Sun Jan 24 21:32:18 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 21:32:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124203220.7C2992474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 21:32:18 Modified files: cm3/scripts/python/: Tag: release_branch_cm3_5_8 pylib.py Log message: no change, just trigger PPC_LINUX build From jkrell at elego.de Sun Jan 24 22:20:31 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 24 Jan 2010 22:20:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100124212031.C24AD2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/24 22:20:31 Modified files: cm3/m3-sys/m3objfile/src/: M3ObjFile.i3 NTObjFile.m3 Log message: add appendBytes support that takes an ARRAY OF [0..255] This will be used by the int64/longint support. Otherwise the common way to add was via an INTEGER (look at how -default:libc is added, yuck, we scan remove that anyway) From jkrell at elego.de Mon Jan 25 08:17:46 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 25 Jan 2010 8:17:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100125071746.D26622474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/25 08:17:46 Modified files: cm3/m3-sys/m3objfile/src/: NTObjFile.m3 Log message: much cleaner albeit less safe (can we have it both ways?) From jkrell at elego.de Mon Jan 25 08:38:19 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 25 Jan 2010 8:38:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100125073820.52E2C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/25 08:38:19 Modified files: cm3/m3-sys/m3objfile/src/: NTObjFile.m3 Log message: remove entire drective section its only use was inappropriate -- for -defaultlib:libc libc.lib was always a bad idea and doesn't exist any longer and we have long since been countermanding this with -nodefaultlib in the link commands in the config file besides that, "defaultlibc:libc" was encoded as an "integer", gross From jkrell at elego.de Mon Jan 25 09:08:48 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 25 Jan 2010 9:08:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100125080849.71B1C2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/25 09:08:48 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: work in progress: longint/int64 aggressively using function calls: add, subtract, multiply, divide, mod, negate, min, max, no, shift, shift_left, shift_right, rotate, rotate_left, rotate_right, swap, pop, and, or, xor, abs slight hack here is that we mangle the 64bit functions signatures and calling conventions such as to have the C compiler maintain the stack This should probably be among the first things fixed once things are working or partly working or earlier (though really the constant folding is target-independent and should be elsewhere, like in m3front) This requires updating m3core (or at least hand.obj). still to handle: insert, extract load, store (partly implemented) function parameters and return value From jkrell at elego.de Mon Jan 25 10:09:43 2010 From: jkrell at elego.de (Jay Krell) Date: Mon, 25 Jan 2010 10:09:43 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100125090944.0D15E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/25 10:09:43 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 Log message: rethink the pushOp changes a bit From hosking at cs.purdue.edu Tue Jan 26 00:32:30 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 25 Jan 2010 18:32:30 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: References: <20100123194228.97C542474001@birch.elegosoft.com>, Message-ID: <21F5C8CD-0CCE-4155-B2FC-B5CBE61D97C3@cs.purdue.edu> Finally got a chance to check this out. It turns out that the expression -FIRST(INTEGER) actually does overflow at compile time, so it is actually a compile-time error to write: CONST v = -FIRST(INTEGER); Even worse, on a system where overflow causes a trap that code in Lex.m3 would have failed. The expression you wrote doesn't overflow at compile-time, so it is much safer, allowing: CONST v = Word.Plus(-(FIRST(INTEGER)+1), 1); Good catch! On 24 Jan 2010, at 05:57, Jay K wrote: > Imagine if FloatMode worked. > And if the compile-time evaluation wasn't performed. > This code would fail. > > > Though really..you know.. I don't think making FloatMode work makes sense. > It should be an interface/type thing that determines statically at compile time > if overflow is trapped. > > > - Jay > > > From: hosking at cs.purdue.edu > > Date: Sun, 24 Jan 2010 04:28:01 -0500 > > To: jkrell at elego.de > > CC: m3commit at elegosoft.com > > Subject: Re: [M3commit] CVS Update: cm3 > > > > I really don't like this... > > what's wrong with allowing compile-time overflow other than that it exposes 2-s complement representation? > > > > On 23 Jan 2010, at 20:42, Jay Krell wrote: > > > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 10/01/23 20:42:28 > > > > > > Modified files: > > > cm3/m3-libs/libm3/src/fmtlex/: Lex.m3 > > > > > > Log message: > > > oops 1 => 1L > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Tue Jan 26 12:12:35 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 26 Jan 2010 12:12:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126111235.D961E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/26 12:12:35 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Log message: one variable per line when using "WITH" use "WITH" to shorten some source From jkrell at elego.de Tue Jan 26 13:24:02 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 26 Jan 2010 13:24:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126122402.D54DB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/26 13:24:02 Modified files: cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 Log message: add simple helper functions: PROCEDURE TypeByteSize(t: CGType): CARDINAL; PROCEDURE TypeByteAlign(t: CGType): CARDINAL; PROCEDURE TypeBitAlign(t: CGType): CARDINAL; PROCEDURE TypeBitSize(t: CGType): CARDINAL; that I believe I'll need. From jkrell at elego.de Tue Jan 26 13:28:23 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 26 Jan 2010 13:28:23 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126122823.1AAFE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/26 13:28:23 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: assert false for void and struct (we'll see how this works out; structs do have size/alignment, but per-struct, and it should be possible to enregister small structs) From jkrell at elego.de Tue Jan 26 13:36:29 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 26 Jan 2010 13:36:29 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126123631.AA69BCC103@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/26 13:36:29 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: use lookup table for most types From jkrell at elego.de Tue Jan 26 13:47:05 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 26 Jan 2010 13:47:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126124705.94E272474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/26 13:47:05 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 M3x86Rep.i3 Stackx86.i3 Stackx86.m3 Log message: - the virtual stack needs types (similar to my previous idea of sizes, but more general) - at certain places, split procedure foo into foo and foo1, where foo "splits" its operand(s), loops over them calling foo1 This should suffice for several operations like push/pop/mov/load/store, and, not, or, xor though notable not quite for add, sub, cmp also "find" needs work, and the "reguse" data being indexed by virtual stack pointer worries me This might provide such that most of the code is unchanged for int64, and we continue to have both constant folding and enregistration; I wouldn't try so hard for these, but it seems a good approach in the interest of making parameter passing work. From jkrell at elego.de Tue Jan 26 14:14:39 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 26 Jan 2010 14:14:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126131439.E8CDC2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/26 14:14:39 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: allow for 8 byte alignment From jkrell at elego.de Tue Jan 26 14:18:19 2010 From: jkrell at elego.de (Jay Krell) Date: Tue, 26 Jan 2010 14:18:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126131819.E579E2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/26 14:18:19 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: leave max_align := 64 for NT386, Cygwin, MinGWin, Interix (still 32 for NetBSD/Linux/FreeBSD/x86); this probably breaks pickles with 64bit types, e.g. longreal From hosking at cs.purdue.edu Tue Jan 26 18:40:39 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 26 Jan 2010 12:40:39 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100126122402.D54DB2474001@birch.elegosoft.com> References: <20100126122402.D54DB2474001@birch.elegosoft.com> Message-ID: <25588017-D52E-4775-A134-9C61617E2422@cs.purdue.edu> You don't need these! Use TargetMap.CG_Align/CG_Align_bytes/CG_Size/CG_Bytes instead. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 26 Jan 2010, at 13:24, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/26 13:24:02 > > Modified files: > cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 > > Log message: > add simple helper functions: > PROCEDURE TypeByteSize(t: CGType): CARDINAL; > PROCEDURE TypeByteAlign(t: CGType): CARDINAL; > PROCEDURE TypeBitAlign(t: CGType): CARDINAL; > PROCEDURE TypeBitSize(t: CGType): CARDINAL; > > that I believe I'll need. -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at elego.de Tue Jan 26 20:51:07 2010 From: hosking at elego.de (Antony Hosking) Date: Tue, 26 Jan 2010 20:51:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126195107.EAE62CC308@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/26 20:51:07 Modified files: cm3/doc/reference/: syntax.html Log message: Some minor corrections. From hosking at elego.de Tue Jan 26 20:52:14 2010 From: hosking at elego.de (Antony Hosking) Date: Tue, 26 Jan 2010 20:52:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126195214.2AB902474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/26 20:52:14 Modified files: cm3/doc/reference/complete/: m3-defn-complete.tex Log message: Ident -> Id From hosking at elego.de Tue Jan 26 20:52:53 2010 From: hosking at elego.de (Antony Hosking) Date: Tue, 26 Jan 2010 20:52:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100126195253.A5CF92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/26 20:52:53 Modified files: cm3/doc/reference/complete/: m3-defn-complete.pdf m3-defn-complete.ps Log message: Regenerate. From jay.krell at cornell.edu Tue Jan 26 23:36:20 2010 From: jay.krell at cornell.edu (Jay K) Date: Tue, 26 Jan 2010 22:36:20 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <25588017-D52E-4775-A134-9C61617E2422@cs.purdue.edu> References: <20100126122402.D54DB2474001@birch.elegosoft.com>, <25588017-D52E-4775-A134-9C61617E2422@cs.purdue.edu> Message-ID: oops, ok. I had only seen constant arrays that didn't handle Addr. I'll use what you say instead. - Jay From: hosking at cs.purdue.edu Date: Tue, 26 Jan 2010 12:40:39 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 You don't need these! Use TargetMap.CG_Align/CG_Align_bytes/CG_Size/CG_Bytes instead. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 26 Jan 2010, at 13:24, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/26 13:24:02 Modified files: cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 Log message: add simple helper functions: PROCEDURE TypeByteSize(t: CGType): CARDINAL; PROCEDURE TypeByteAlign(t: CGType): CARDINAL; PROCEDURE TypeBitAlign(t: CGType): CARDINAL; PROCEDURE TypeBitSize(t: CGType): CARDINAL; that I believe I'll need. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Wed Jan 27 14:34:57 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 27 Jan 2010 14:34:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100127133457.5E1D32474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/27 14:34:57 Modified files: cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 Log message: remove TypeByteSize, TypeByteAlign, TypeBitAlign, TypeBitSize From jkrell at elego.de Wed Jan 27 14:53:24 2010 From: jkrell at elego.de (Jay Krell) Date: Wed, 27 Jan 2010 14:53:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100127135324.F2EF02474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/27 14:53:24 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: slightly more algorithmic-based-on-strings target configuration should even fix some bugs: FreeBSD/x86 first readable address is 4K byte, not 4K bits Setting this value higher is just a very slight optimization. Likewise for PA{32,64}_HPUX. aligned_procedures based on architecture, not OS This leaves jumpbuf as basically the only thing that varies per precise target, everything else is factored on something with fewer variants. (ok, Has_stack_walker also) also max_align, which seems often wrong From jkrell at elego.de Thu Jan 28 08:16:02 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 28 Jan 2010 8:16:02 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100128071602.EAAF92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/28 08:16:02 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: fix incorrect but possibly safe edit to how comparison conditions are computed From jkrell at elego.de Thu Jan 28 08:17:21 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 28 Jan 2010 8:17:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100128071721.42AFA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/28 08:17:21 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: undo longint/int64 change that isn't going to be correct From jkrell at elego.de Thu Jan 28 14:28:20 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 28 Jan 2010 14:28:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100128132821.161762474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/28 14:28:20 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 M3x86Rep.i3 Stackx86.m3 Log message: rename some fields more verbosely for better searchabilty t => vartype type => mvartype type => proctype s => size (varsize?) a => align (varalign?) searching for whole word "t" and "type" wasn't very helpful and the existing of both vartype and mvartype is confusing From jkrell at elego.de Thu Jan 28 14:42:19 2010 From: jkrell at elego.de (Jay Krell) Date: Thu, 28 Jan 2010 14:42:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100128134219.BE6EA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/28 14:42:19 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 M3x86Rep.i3 Stackx86.m3 Log message: more renaming for readability (some just altering style of previous, but also renaming more fields) size => flit_size proctype => proc_type varsize => var_size mvarsize => mvar_size align => var_align size => var_size mvaroffset => mvar_offset mvartype => mvar_type etc. From rodney_bates at lcwb.coop Thu Jan 28 17:22:28 2010 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Thu, 28 Jan 2010 10:22:28 -0600 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100128134219.BE6EA2474001@birch.elegosoft.com> References: <20100128134219.BE6EA2474001@birch.elegosoft.com> Message-ID: <4B61B9C4.5020800@lcwb.coop> I highly support this kind of change. Very short identifiers are classic cases of sacrificing readability in favor of saving keystrokes during writing--a very bad tradeoff. The poor wretches who get/have to maintain the code pay the price for somebody else's laziness. Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/28 14:42:19 > > Modified files: > cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 M3x86Rep.i3 > Stackx86.m3 > > Log message: > more renaming for readability (some just altering style of previous, > but also renaming more fields) > size => flit_size > proctype => proc_type > varsize => var_size > mvarsize => mvar_size > align => var_align > size => var_size > mvaroffset => mvar_offset > mvartype => mvar_type > etc. > > From hosking at elego.de Thu Jan 28 19:02:46 2010 From: hosking at elego.de (Antony Hosking) Date: Thu, 28 Jan 2010 19:02:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100128180246.C38A92474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/28 19:02:46 Modified files: cm3/m3-sys/m3front/src/builtinOps/: Ord.m3 Log message: Fix typing of ORD for the fact that it varies (INTEGER/LONGINT) depending on the underlying type of its argument. From jay.krell at cornell.edu Fri Jan 29 06:00:46 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 29 Jan 2010 05:00:46 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <4B61B9C4.5020800@lcwb.coop> References: <20100128134219.BE6EA2474001@birch.elegosoft.com>, <4B61B9C4.5020800@lcwb.coop> Message-ID: Thanks. I depend heavily on plain text search, including "whole word". I find that "language aware" tools are generally lacking in availability, features, scale, ease of use. Plain text search, augmented with a file system cache and/or possibly an index, is available and scales and handles all languages potentially. This is an area where C really trumps C++, because of the existance of namespaces and classes to scope names that are broadly visible, you end up with function names like "Init" instead of "WindowInit", etc. Operator overloading is a problem too -- I can't search for "+" on a particular type. Modula-3 encourages these problems too I believe. C's global namespace is usually considered a problem, and it is, but it is also a feature. This is also a reason to not use "file level static" in C. Parameter names and local variable names don't seem to matter, as they truly have small visiblity (well, parameter names in Modula-3 don't). But function names, type names, record/object fields.. I am often lazy myself, but just forward me this email, call me a hypocrite, go ahead and lengthen names I made too short. :) I'm not sure what the difference is between var.vartype and mvar.mvartype. mvar contains var. I suspect var.vartype is "more correct for the data" and mvar.mvartype is the "type of the access". Like, if I were to "split" an acces to a 64bit variable into two access, var.vartype should be unchanged, mvar.mvartype can be changed. I was going to be lazy and ask here, but then decided to try to read the code more. These changes are not condusive to diffing, granted. They add a lot of noise. Stuck between two bad things I'm afraid there. - Jay > Date: Thu, 28 Jan 2010 10:22:28 -0600 > From: rodney_bates at lcwb.coop > To: m3commit at elegosoft.com > Subject: Re: [M3commit] CVS Update: cm3 > > I highly support this kind of change. Very short identifiers > are classic cases of sacrificing readability in favor of > saving keystrokes during writing--a very bad tradeoff. > The poor wretches who get/have to maintain the code pay the > price for somebody else's laziness. > > Jay Krell wrote: > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 10/01/28 14:42:19 > > > > Modified files: > > cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 M3x86Rep.i3 > > Stackx86.m3 > > > > Log message: > > more renaming for readability (some just altering style of previous, > > but also renaming more fields) > > size => flit_size > > proctype => proc_type > > varsize => var_size > > mvarsize => mvar_size > > align => var_align > > size => var_size > > mvaroffset => mvar_offset > > mvartype => mvar_type > > etc. > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Fri Jan 29 09:34:50 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 9:34:50 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129083450.D0E56CC362@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 09:34:50 Modified files: cm3/m3-sys/m3back/src/: Wrx86.m3 Log message: more verbose debug output n:8,x:0,0,0,80,ff,ff,ff,ff is getting changed to n:8,x:0,0,0,80,0,0,0,0 this shows at least that the frontend isn't to blame, probably my "SplitOperand" From jkrell at elego.de Fri Jan 29 09:57:33 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 9:57:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129085733.63129CC308@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 09:57:33 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: in ToInt and IntI, do the conversion even if there is overflow (still returning FALSE for overflow) From jkrell at elego.de Fri Jan 29 09:58:11 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 9:58:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129085811.B3242CC308@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 09:58:11 Modified files: cm3/m3-sys/m3middle/src/: TInt.m3 Log message: in ToInt and IntI, do the conversion even if there is overflow (still returning FALSE for overflow) From jkrell at elego.de Fri Jan 29 09:59:08 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 9:59:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129085908.32881CC308@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 09:59:08 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: go back a version, checked in wrong file (Target.m3 vs. TInt.m3) From jkrell at elego.de Fri Jan 29 12:25:16 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 12:25:16 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129112516.B9DF42474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 12:25:16 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: fix important comments in set_union, intersection, difference, sym_difference that document the inputs/outputs in terms of the virtual stack merge pop_param and load_stack_param moving pop_param's floating point support to load_stack_param though given, floating point probably requires depth = 0 use load_stack_param in set_union, etc. for clarity pop_param is just shorthand for load_stack_param(0) + discard(1) Given 1) the incorrect comments and 2) the varying use of load_stack_param(!=0) and pop_param, the code was quite confusing, and therefore hard to base other function-call based operations on, such as int64 stuff. a little bit of re-formating and adding comments From jay.krell at cornell.edu Fri Jan 29 12:26:17 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 29 Jan 2010 11:26:17 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100129112516.B9DF42474001@birch.elegosoft.com> References: <20100129112516.B9DF42474001@birch.elegosoft.com> Message-ID: diff attached > Date: Fri, 29 Jan 2010 12:25:16 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/29 12:25:16 > > Modified files: > cm3/m3-sys/m3back/src/: M3x86.m3 > > Log message: > fix important comments in set_union, intersection, difference, sym_difference > that document the inputs/outputs in terms of the virtual stack > > merge pop_param and load_stack_param > moving pop_param's floating point support to load_stack_param > though given, floating point probably requires depth = 0 > > use load_stack_param in set_union, etc. for clarity > pop_param is just shorthand for load_stack_param(0) + discard(1) > > Given 1) the incorrect comments and 2) the varying use of > load_stack_param(!=0) and pop_param, the code was quite confusing, > and therefore hard to base other function-call based operations > on, such as int64 stuff. > > a little bit of re-formating and adding comments > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 1.txt URL: From jkrell at elego.de Fri Jan 29 12:32:24 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 12:32:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129113224.89F332474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 12:32:24 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: use unsigned types for set sizes and indices, esp. since they are used with div and mod From jkrell at elego.de Fri Jan 29 12:36:07 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 12:36:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129113607.EBCFBCC362@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 12:36:07 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: declare rotate intrinsics and fix warning about unused parameter -- I think we will use most of these functions after all, at least initially From jkrell at elego.de Fri Jan 29 12:36:36 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 12:36:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129113636.88CE7CC362@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 12:36:36 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: use 'uint64' shorthand From jkrell at elego.de Fri Jan 29 12:40:27 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 12:40:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129114027.B4E932474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 12:40:27 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: just add some comments and an assert From jkrell at elego.de Fri Jan 29 12:50:41 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 12:50:41 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129115042.1B8DA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 12:50:41 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: use unsigned types for set indices, esp. since they are used with div and mod From jkrell at elego.de Fri Jan 29 13:10:44 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 13:10:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129121044.7FE922474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 13:10:44 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: prepare new version of set_range that uses shifting instead of a cache-hogging lookup table; not yet active, and really need to change the compiler to not reference the other variant of the lookup table From jkrell at elego.de Fri Jan 29 13:44:39 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 13:44:39 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129124439.87E702474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 13:44:39 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: hand.c Log message: test code for set_range From jkrell at elego.de Fri Jan 29 14:22:06 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 14:22:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129132206.76864CC362@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 14:22:06 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: m3makefile Log message: new set of int64 functions, for win32 only, in a separate file for now, probably all but three of these will be used (and/or/xor are *particularly* easy to implement inline, you just operate on the two halves independently) From jkrell at elego.de Fri Jan 29 14:29:54 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 14:29:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129132954.ACDFB2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 14:29:54 Modified files: cm3/m3-libs/m3core/src/Csupport/Common/: m3makefile Log message: disable for now, it causes a link error From jkrell at elego.de Fri Jan 29 15:52:53 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 15:52:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129145253.69E7F2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 15:52:53 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: remove the new 64bit builtings pending getting more working From hosking at cs.purdue.edu Fri Jan 29 16:31:35 2010 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 29 Jan 2010 10:31:35 -0500 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20100129085733.63129CC308@birch.elegosoft.com> References: <20100129085733.63129CC308@birch.elegosoft.com> Message-ID: <06B64727-043A-47EC-BFF1-2680AA899A89@cs.purdue.edu> Why do you need that? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 29 Jan 2010, at 09:57, Jay Krell wrote: > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 10/01/29 09:57:33 > > Modified files: > cm3/m3-sys/m3middle/src/: Target.m3 > > Log message: > in ToInt and IntI, do the conversion even if there is overflow (still returning FALSE for overflow) -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Fri Jan 29 16:32:46 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 16:32:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129153246.1818D2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 16:32:46 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Log message: remove partial inlining that earlier optimizationg programmers were fond of authoring in particular, every call to expand_stack is preceded by the check: IF t.stacktop = t.vstacklimit; have expand_stack do the check A really good compiler (not this one, alas) might inline the check in the caller. From jkrell at elego.de Fri Jan 29 16:48:37 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 16:48:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129154837.5D2142474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 16:48:37 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3 M3x86Rep.i3 Stackx86.m3 Log message: longint/int64 work in progress no real change unless you make the edit in Target.m3 From jkrell at elego.de Fri Jan 29 17:08:55 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 17:08:55 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129160856.050AF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 17:08:55 Modified files: cm3/m3-sys/m3middle/src/: M3ID.i3 M3ID.m3 Log message: add Length function From jkrell at elego.de Fri Jan 29 17:11:12 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 17:11:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129161112.ADC952474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 17:11:12 Modified files: cm3/m3-sys/m3middle/src/: M3ID.m3 Log message: be sure Length works for NoID From jkrell at elego.de Fri Jan 29 17:17:53 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 17:17:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129161753.ACF5B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 17:17:53 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: oops: NTObjFile.m3 doesn't like importing the same symbol repeatedly so our temporary filler 'abort' wasn't good From jkrell at elego.de Fri Jan 29 17:28:21 2010 From: jkrell at elego.de (Jay Krell) Date: Fri, 29 Jan 2010 17:28:21 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100129162821.C5AAA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 17:28:21 Added files: cm3/m3-libs/m3core/src/Csupport/Common/: hand2.c Log message: forgot to add this, ok From jay.krell at cornell.edu Fri Jan 29 17:48:50 2010 From: jay.krell at cornell.edu (Jay K) Date: Fri, 29 Jan 2010 16:48:50 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <06B64727-043A-47EC-BFF1-2680AA899A89@cs.purdue.edu> References: <20100129085733.63129CC308@birch.elegosoft.com>, <06B64727-043A-47EC-BFF1-2680AA899A89@cs.purdue.edu> Message-ID: For now I'm treating the error as a warning and continuing on. - Jay From: hosking at cs.purdue.edu Date: Fri, 29 Jan 2010 10:31:35 -0500 To: jkrell at elego.de CC: m3commit at elegosoft.com Subject: Re: [M3commit] CVS Update: cm3 Why do you need that? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 29 Jan 2010, at 09:57, Jay Krell wrote: CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/29 09:57:33 Modified files: cm3/m3-sys/m3middle/src/: Target.m3 Log message: in ToInt and IntI, do the conversion even if there is overflow (still returning FALSE for overflow) -------------- next part -------------- An HTML attachment was scrubbed... URL: From jkrell at elego.de Sat Jan 30 11:45:25 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 30 Jan 2010 11:45:25 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100130104525.9DD262474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/30 11:45:25 Modified files: cm3/m3-sys/m3back/src/: Codex86.m3 Stackx86.m3 Log message: - use the return value of findbin rather than something kind of incidental, but assert the coincidence - comparison # 4 should generally be < 4 From jkrell at elego.de Sat Jan 30 12:26:11 2010 From: jkrell at elego.de (Jay Krell) Date: Sat, 30 Jan 2010 12:26:11 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100130112611.8C4FA2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/30 12:26:11 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Log message: add back assertions From hosking at elego.de Sat Jan 30 22:28:34 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 30 Jan 2010 22:28:34 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100130212834.5F7B52474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/30 22:28:34 Modified files: cm3/m3-sys/m3middle/src/: M3CG_Rd.m3 Log message: Reformat. From hosking at elego.de Sat Jan 30 22:29:49 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 30 Jan 2010 22:29:49 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100130212949.8B6E22474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/30 22:29:49 Modified files: cm3/m3-sys/m3middle/src/: M3CG.m3 Log message: Rename params. From hosking at elego.de Sat Jan 30 23:03:35 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 30 Jan 2010 23:03:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100130220335.6A1382474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/30 23:03:35 Modified files: cm3/m3-sys/m3cc/gcc/gcc/m3cg/: parse.c Log message: Some fixes. From hosking at elego.de Sat Jan 30 23:03:59 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 30 Jan 2010 23:03:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100130220359.DC5BF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/30 23:03:59 Modified files: cm3/m3-sys/m3middle/src/: M3CG_BinWr.m3 M3CG_Check.m3 M3CG_Ops.i3 M3CG_Wr.m3 M3ID.i3 M3ID.m3 TInt.i3 TInt.m3 Target.i3 Target.m3 Log message: Update support for atomic operations. From hosking at elego.de Sat Jan 30 23:07:06 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 30 Jan 2010 23:07:06 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100130220707.2CF452474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/30 23:07:06 Modified files: cm3/m3-sys/m3front/src/misc/: CG.m3 Log message: Reformat only. From hosking at elego.de Sat Jan 30 23:11:31 2010 From: hosking at elego.de (Antony Hosking) Date: Sat, 30 Jan 2010 23:11:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100130221131.B11BF2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: hosking at birch. 10/01/30 23:11:31 Modified files: cm3/m3-sys/m3front/src/: m3makefile cm3/m3-sys/m3front/src/misc/: CG.i3 Error.i3 Error.m3 M3Front.m3 cm3/m3-sys/m3front/src/types/: ProcType.i3 ProcType.m3 cm3/m3-sys/m3front/src/values/: Formal.i3 Formal.m3 Added files: cm3/m3-sys/m3front/src/builtinAtomic/: AtomicModule.ig AtomicModule.mg CompareSwap.ig CompareSwap.mg Fence.ig Fence.mg FetchAnd.ig FetchAnd.mg FetchDec.ig FetchDec.mg FetchInc.ig FetchInc.mg FetchOr.ig FetchOr.mg FetchXOr.mg FetchXor.ig IsLockFree.ig IsLockFree.mg Load.ig Load.mg Store.ig Store.mg Swap.ig Swap.mg atomic.tmpl m3makefile Log message: Initial support for builtin atomic values (see Atomic.ig). From jkrell at elego.de Sun Jan 31 13:11:30 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 31 Jan 2010 13:11:30 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100131121130.994512474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/31 13:11:30 Modified files: cm3/m3-sys/m3back/src/: Codex86.i3 Codex86.m3 M3x86.m3 Stackx86.i3 Stackx86.m3 Log message: adapt so it builds with recent m3middle changes: comment out warnings TInt.MaxS8 => Target.Int8.max TInt.MinS8 => Target.Int8.min TInt.FF => Target.Word8.max TInt.FFFF => Target.Word16.max TInt.FFFFFFFF => Target.Word32.max TInt.MinS32 => Target.Int32.min (notice loss of const-ness; it is only pack/align that is *perhaps* not constant, perhaps platform-specific, but not really, perhaps only if you absolutely need to match C structs and have them tightly packed; we generally don't do that, we might as well adapt conservative platform-independent packing/alignment results (there seems to be something wrong with Darwin targets here though, some missing align pragma or such, NT386 has a related problem e.g. in mklib) M3ID.Length(a) > 0 => t := M3ID.ToText(a); t # NIL AND Text.Length(t) > 0 (notice loss of avoiding heap allocation) From jkrell at elego.de Sun Jan 31 13:12:22 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 31 Jan 2010 13:12:22 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100131121222.4E2342474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/31 13:12:22 Modified files: cm3/m3-sys/m3staloneback/src/: Main.m3 Log message: remove warning stuff per m3middle changes From jkrell at elego.de Sun Jan 31 13:37:00 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 31 Jan 2010 13:37:00 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100131123700.D06532474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/31 13:37:00 Modified files: cm3/m3-sys/m3front/src/values/: Module.m3 Log message: allow for more builtiins From jkrell at elego.de Sun Jan 31 13:38:37 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 31 Jan 2010 13:38:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100131123837.5CADE2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/31 13:38:37 Modified files: cm3/m3-sys/mklib/src/: Main.m3 Log message: turn ignored unaligned pragma into comment From jkrell at elego.de Sun Jan 31 13:41:24 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 31 Jan 2010 13:41:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100131124126.6A6B12474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/31 13:41:24 Modified files: cm3/m3-sys/mklib/src/: Main.m3 Log message: BYTE => UINT8 From jkrell at elego.de Sun Jan 31 13:47:45 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 31 Jan 2010 13:47:45 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100131124745.2A16B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/31 13:47:45 Modified files: cm3/m3-sys/m3middle/src/: TInt.i3 Log message: reduce interface slightly From jkrell at elego.de Sun Jan 31 13:54:31 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 31 Jan 2010 13:54:31 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100131125431.4F8062474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/31 13:54:31 Modified files: cm3/m3-sys/m3back/src/: M3x86.m3 Log message: smaller From jkrell at elego.de Sun Jan 31 13:58:40 2010 From: jkrell at elego.de (Jay Krell) Date: Sun, 31 Jan 2010 13:58:40 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20100131125840.7E44B2474001@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 10/01/31 13:58:40 Modified files: cm3/m3-sys/m3back/src/: Stackx86.m3 Log message: quash warnings (code still in flux)