From jkrell at elego.de Fri Jan 4 17:55:24 2013 From: jkrell at elego.de (Jay Krell) Date: Fri, 4 Jan 2013 17:55:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130117231207.1C26DCCA9F@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/04 17:55:24 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTProcessC.c Log message: formatting, parents From jkrell at elego.de Fri Jan 4 17:18:36 2013 From: jkrell at elego.de (Jay Krell) Date: Fri, 4 Jan 2013 17:18:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130117232801.255ABCCA60@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/04 17:18:36 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTProcessC.c Log message: add parens From jkrell at elego.de Fri Jan 4 17:49:05 2013 From: jkrell at elego.de (Jay Krell) Date: Fri, 4 Jan 2013 17:49:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130118004405.C830FCCA9D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/04 17:49:05 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTProcessC.c Log message: fix it to compile; user threads only? From jkrell at elego.de Fri Jan 4 17:55:48 2013 From: jkrell at elego.de (Jay Krell) Date: Fri, 4 Jan 2013 17:55:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130118012039.E1B59CCB29@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/04 17:55:48 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTProcessC.c Log message: remove unused label, to fix warning From jkrell at elego.de Wed Jan 9 07:14:57 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Jan 2013 7:14:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130118011905.030C2CCABA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/09 07:14:57 Modified files: cm3/m3-sys/m3back/src/: M3C.m3 Log message: use locals to capture the values for check_hi/lo/nil/range/index, but not check_eq -- it doesn't need it, due to inconsistency in M3CG. Note that this is nice and conservative and should save some duplicate evaluation, but whatever cases I looked at, it is pretty bad. Here are the ones I looked at: Xor.mg in m3front: PROCEDURE Compile (ce: CallExpr.T) = BEGIN Expr.Compile (ce.args[0]); Expr.Compile (ce.args[1]); CG.Xor (Word_types[rep].cg_type); END Compile; check_index is applied to "0" and "1". Constants. No point in the temporary. It is easy to optimize away..but it is not easy to not allocate the temporary. Temporaries are allocated with way less information. WordInsert: (*(INT64*)(&L_277_L_278))=(INT64)( /* cast_removed2: INT64 */ i2_L_138); //line 111 "../AMD64_DARWIN/WordInsert.m3 => ../src/builtinWord/Insert.mg" /*check_lo*/if(L_277_L_278 CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/04 18:00:06 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c test_thread_sigaltstack.c test_timer.c Log message: fix warnings..gcc is unfortunate From jkrell at elego.de Mon Jan 28 08:08:33 2013 From: jkrell at elego.de (Jay Krell) Date: Mon, 28 Jan 2013 8:08:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130128070833.8048A5DEB87@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/28 08:08:33 Modified files: cm3/scratch/macho/: hash.c Log message: memmove is safer than memcpy return 1 from hashtable_add to indicate a new entry created From jkrell at elego.de Mon Jan 28 08:01:53 2013 From: jkrell at elego.de (Jay Krell) Date: Mon, 28 Jan 2013 8:01:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130128070153.D6CF85DEB84@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/28 08:01:53 Modified files: cm3/scratch/macho/: hash.c Log message: fix (unused code) From jkrell at elego.de Mon Jan 28 08:38:59 2013 From: jkrell at elego.de (Jay Krell) Date: Mon, 28 Jan 2013 8:38:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130128073859.852EF5DEB84@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/28 08:38:59 Modified files: cm3/m3-tools/cvsup/suptcp/src/common/: SupErrnoC.c Log message: extern "C" -- make it valid C++ w/o changing external linked names #include "m3core.h" -- cleanup portability #ifdefs/#defines From jkrell at elego.de Mon Jan 28 08:40:18 2013 From: jkrell at elego.de (Jay Krell) Date: Mon, 28 Jan 2013 8:40:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130128074018.0DED65DEB84@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/28 08:40:18 Modified files: cm3/m3-tools/cvsup/suptcp/src/common/: SupErrnoC.c Log message: and give explicit calling conventions for the sake of outlier NT/x86 From jkrell at elego.de Mon Jan 28 11:39:01 2013 From: jkrell at elego.de (Jay Krell) Date: Mon, 28 Jan 2013 11:39:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130128103901.DB4835DEB84@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/28 11:39:01 Modified files: cm3/m3-sys/m3back/src/: M3C.m3 Log message: optionally put in "default:assert(!"error message") on cases (need to retest to see if this is needed) significantly relax range checks on integer literals; trust the frontend? From jkrell at elego.de Mon Jan 28 11:59:15 2013 From: jkrell at elego.de (Jay Krell) Date: Mon, 28 Jan 2013 11:59:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130128105915.B6BC95DEB84@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/28 11:59:15 Modified files: cm3/m3-sys/m3tests/src/p2/p227/: Main.m3 Log message: insert flush callt From jkrell at elego.de Mon Jan 28 12:02:19 2013 From: jkrell at elego.de (Jay Krell) Date: Mon, 28 Jan 2013 12:02:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130128110219.F2F135DEB84@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/28 12:02:19 Modified files: cm3/m3-tools/cvsup/suplib/src/: UnixMiscC.c Log message: extern "C" calling conventions fix function pointer type? initialize locals (might incur a warning) From jkrell at elego.de Mon Jan 28 12:03:12 2013 From: jkrell at elego.de (Jay Krell) Date: Mon, 28 Jan 2013 12:03:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130128110312.5CD6D5DEB86@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/28 12:03:12 Modified files: cm3/m3-tools/cvsup/suplib/src/FreeBSD/: UProcTitle.c Log message: C++ calling conventions let it compile for all platforms, albeit the function will silently do nothing except on FreeBSD From jkrell at elego.de Wed Jan 30 09:19:37 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 9:19:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130081937.97C105DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 09:19:37 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosix.m3 Log message: fix awful race condition in IsDevNull It is kind of too bad we don't have a more efficient way to do this -- just the one heavyweight double heap allocated MUTEX type (double?) From jkrell at elego.de Wed Jan 30 11:21:46 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 11:21:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130102146.74F205DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 11:21:46 Modified files: cm3/m3-sys/m3back/src/: M3C.m3 Log message: cast INT8 literals to INT8, because they are often out of range, and otherwise Sun cc warns From jkrell at elego.de Wed Jan 30 11:26:04 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 11:26:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130102604.40CB75DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 11:26:04 Modified files: cm3/m3-sys/m3back/src/: M3C.m3 Log message: also cast INT16 literals to INT16 Solaris cc: Unicode.m3.c", line 261: warning: initializer does not fit or is out of range: 65370 From jkrell at elego.de Wed Jan 30 11:38:54 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 11:38:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130103854.9073D5DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 11:38:54 Modified files: cm3/m3-sys/m3back/src/: M3C.m3 Log message: remove L from end of EXTENDED literals -- it would be for long double, but we use double, and Solaris cc warngs in LongFloatExtras.m3 From jkrell at elego.de Wed Jan 30 11:39:44 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 11:39:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130103944.F37FA5DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 11:39:44 Modified files: cm3/m3-sys/m3back/src/: M3C.m3 Log message: put back \000 suffix, the code is in a loop and the correctness of previous was unclear and the change was besides the point of removing the 'L' From jkrell at elego.de Wed Jan 30 12:24:08 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 12:24:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130112408.941A05DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 12:24:08 Modified files: cm3/m3-sys/m3back/src/: M3C.m3 Log message: put: #ifdef __SUNPRO_C #pragma error_messages(off, E_STATEMENT_NOT_REACHED) #endif at the top of every file, to quash a few warnings - tested some with Solaris cc 12.2 and 12.3 What do older versions do?? - tested some with Solaris CC (C++) It #defines something else (__SUNPRO_CC?) and doesn't issue the warnings..and doesn't seem to understand the #pragmas ? From jkrell at elego.de Wed Jan 30 12:57:51 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 12:57:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130115751.ACCA75DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 12:57:51 Modified files: cm3/m3-sys/cm3/src/: Builder.m3 M3Backend.m3 M3Build.m3 ./: Builder.m3 M3Backend.m3 M3Build.m3 cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 Log message: add "C" mode to builder Use it like so in config file: if defined("HasCBackend") if HasCBackend() M3_BACKEND_MODE = "C" end end It has been more or less tested on the following targets: AMD64_DARWIN (the most testing) I386_DARWIN (been a while) AMD64_LINUX SPARC32_SOLARIS SPARC64_SOLARIS I386_SOLARIS AMD64_SOLARIS It probably just works everywhere at least with gcc and Solaris cc. Microsoft Visual C++ (i.e. AMD64_NT) will be tried soon. Debugging is not good -- no structs. For Darwin, that is no regression, since stabs and m3gdb don't work there anyway. From jay.krell at cornell.edu Wed Jan 30 13:01:31 2013 From: jay.krell at cornell.edu (Jay K) Date: Wed, 30 Jan 2013 12:01:31 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20130130115751.ACCA75DEB8A@birch.elegosoft.com> References: <20130130115751.ACCA75DEB8A@birch.elegosoft.com> Message-ID: diff attached > Date: Wed, 30 Jan 2013 12:57:51 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 13/01/30 12:57:51 > > Modified files: > cm3/m3-sys/cm3/src/: Builder.m3 M3Backend.m3 M3Build.m3 > ./: Builder.m3 M3Backend.m3 M3Build.m3 > cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 > > Log message: > add "C" mode to builder > > Use it like so in config file: > if defined("HasCBackend") > if HasCBackend() > M3_BACKEND_MODE = "C" > end > end > > It has been more or less tested on the following targets: > AMD64_DARWIN (the most testing) > I386_DARWIN (been a while) > AMD64_LINUX > SPARC32_SOLARIS > SPARC64_SOLARIS > I386_SOLARIS > AMD64_SOLARIS > > It probably just works everywhere at least with gcc and Solaris cc. > Microsoft Visual C++ (i.e. AMD64_NT) will be tried soon. > > Debugging is not good -- no structs. > For Darwin, that is no regression, since stabs and m3gdb don't work there anyway. > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 5u.txt URL: From jkrell at elego.de Wed Jan 30 13:09:14 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 13:09:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130120915.0845D5DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 13:09:14 Modified files: cm3/m3-sys/cm3/src/: Builder.m3 Log message: adding missing case From jkrell at elego.de Wed Jan 30 14:07:38 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:07:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130130738.F39BB5DEB92@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:07:38 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: rename USE_C_BACKEND to USE_C_BACKEND_VIA_M3CGCAT This isn't likely to be used any longer. Perhaps we can rollback m3cgcat, but I also think it is ok asis. From jkrell at elego.de Wed Jan 30 14:08:13 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:08:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130130813.A3A435DEB92@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:08:13 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: NT386 NT386.common Log message: move some code to common From jkrell at elego.de Wed Jan 30 14:08:46 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:08:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130130847.172A15DEB92@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:08:46 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: I386_NT Log message: move some code to common From jkrell at elego.de Wed Jan 30 14:10:35 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:10:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130131036.9A08F5DEB92@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:10:35 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: NT386 Log message: unify From jkrell at elego.de Wed Jan 30 14:14:24 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:14:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130131426.848E05DEB87@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:14:24 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: NT386 NT386.common I386_NT Log message: factor out common code to common file From jkrell at elego.de Wed Jan 30 14:17:27 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:17:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130131727.3CB295DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:17:27 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: NT386.common Added files: cm3/m3-sys/cminstall/src/config-no-install/: NT.common Log message: factor out common code to common file From jkrell at elego.de Wed Jan 30 14:20:20 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:20:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130132020.5F3EA5DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:20:20 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: NT.common Added files: cm3/m3-sys/cminstall/src/config-no-install/: AMD64_NT Log message: add AMD64_NT From jkrell at elego.de Wed Jan 30 14:35:12 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:35:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130133513.126165DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:35:12 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Darwin.common Log message: switch all Darwin targets to C backend From jkrell at elego.de Wed Jan 30 14:36:52 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:36:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130133652.346CB5DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:36:52 Modified files: cm3/scripts/python/: pylib.py Log message: add "c" to boot1.py command line if using C backend This will alter the Makefile just a bit -- all foo.m3.o files, no foo.mo From jkrell at elego.de Wed Jan 30 14:44:07 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:44:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130134408.1C84F5DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:44:07 Modified files: cm3/m3-libs/m3core/src/runtime/NT386/: RTSignal.m3 Log message: DWORD to INTEGER, in case it works with 64bit targets, in case From jkrell at elego.de Wed Jan 30 14:45:04 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:45:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130134504.A84965DEB8B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:45:04 Added files: cm3/m3-libs/m3core/src/runtime/AMD64_NT/: m3makefile Log message: add AMD64_NT From jkrell at elego.de Thu Jan 31 09:57:15 2013 From: jkrell at elego.de (Jay Krell) Date: Thu, 31 Jan 2013 9:57:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130131085715.136C55DEB87@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/31 09:57:15 Added files: cm3/m3-libs/libm3/src/os/WIN32/: SocketWin32C.c Log message: intial copy of SocketWin32.m3 From jkrell at elego.de Fri Jan 4 17:55:24 2013 From: jkrell at elego.de (Jay Krell) Date: Fri, 4 Jan 2013 17:55:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130117231207.1C26DCCA9F@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/04 17:55:24 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTProcessC.c Log message: formatting, parents From jkrell at elego.de Fri Jan 4 17:18:36 2013 From: jkrell at elego.de (Jay Krell) Date: Fri, 4 Jan 2013 17:18:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130117232801.255ABCCA60@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/04 17:18:36 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTProcessC.c Log message: add parens From jkrell at elego.de Fri Jan 4 17:49:05 2013 From: jkrell at elego.de (Jay Krell) Date: Fri, 4 Jan 2013 17:49:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130118004405.C830FCCA9D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/04 17:49:05 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTProcessC.c Log message: fix it to compile; user threads only? From jkrell at elego.de Fri Jan 4 17:55:48 2013 From: jkrell at elego.de (Jay Krell) Date: Fri, 4 Jan 2013 17:55:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130118012039.E1B59CCB29@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/04 17:55:48 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTProcessC.c Log message: remove unused label, to fix warning From jkrell at elego.de Wed Jan 9 07:14:57 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Jan 2013 7:14:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130118011905.030C2CCABA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/09 07:14:57 Modified files: cm3/m3-sys/m3back/src/: M3C.m3 Log message: use locals to capture the values for check_hi/lo/nil/range/index, but not check_eq -- it doesn't need it, due to inconsistency in M3CG. Note that this is nice and conservative and should save some duplicate evaluation, but whatever cases I looked at, it is pretty bad. Here are the ones I looked at: Xor.mg in m3front: PROCEDURE Compile (ce: CallExpr.T) = BEGIN Expr.Compile (ce.args[0]); Expr.Compile (ce.args[1]); CG.Xor (Word_types[rep].cg_type); END Compile; check_index is applied to "0" and "1". Constants. No point in the temporary. It is easy to optimize away..but it is not easy to not allocate the temporary. Temporaries are allocated with way less information. WordInsert: (*(INT64*)(&L_277_L_278))=(INT64)( /* cast_removed2: INT64 */ i2_L_138); //line 111 "../AMD64_DARWIN/WordInsert.m3 => ../src/builtinWord/Insert.mg" /*check_lo*/if(L_277_L_278 CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/04 18:00:06 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c test_thread_sigaltstack.c test_timer.c Log message: fix warnings..gcc is unfortunate From jkrell at elego.de Mon Jan 28 08:08:33 2013 From: jkrell at elego.de (Jay Krell) Date: Mon, 28 Jan 2013 8:08:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130128070833.8048A5DEB87@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/28 08:08:33 Modified files: cm3/scratch/macho/: hash.c Log message: memmove is safer than memcpy return 1 from hashtable_add to indicate a new entry created From jkrell at elego.de Mon Jan 28 08:01:53 2013 From: jkrell at elego.de (Jay Krell) Date: Mon, 28 Jan 2013 8:01:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130128070153.D6CF85DEB84@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/28 08:01:53 Modified files: cm3/scratch/macho/: hash.c Log message: fix (unused code) From jkrell at elego.de Mon Jan 28 08:38:59 2013 From: jkrell at elego.de (Jay Krell) Date: Mon, 28 Jan 2013 8:38:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130128073859.852EF5DEB84@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/28 08:38:59 Modified files: cm3/m3-tools/cvsup/suptcp/src/common/: SupErrnoC.c Log message: extern "C" -- make it valid C++ w/o changing external linked names #include "m3core.h" -- cleanup portability #ifdefs/#defines From jkrell at elego.de Mon Jan 28 08:40:18 2013 From: jkrell at elego.de (Jay Krell) Date: Mon, 28 Jan 2013 8:40:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130128074018.0DED65DEB84@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/28 08:40:18 Modified files: cm3/m3-tools/cvsup/suptcp/src/common/: SupErrnoC.c Log message: and give explicit calling conventions for the sake of outlier NT/x86 From jkrell at elego.de Mon Jan 28 11:39:01 2013 From: jkrell at elego.de (Jay Krell) Date: Mon, 28 Jan 2013 11:39:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130128103901.DB4835DEB84@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/28 11:39:01 Modified files: cm3/m3-sys/m3back/src/: M3C.m3 Log message: optionally put in "default:assert(!"error message") on cases (need to retest to see if this is needed) significantly relax range checks on integer literals; trust the frontend? From jkrell at elego.de Mon Jan 28 11:59:15 2013 From: jkrell at elego.de (Jay Krell) Date: Mon, 28 Jan 2013 11:59:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130128105915.B6BC95DEB84@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/28 11:59:15 Modified files: cm3/m3-sys/m3tests/src/p2/p227/: Main.m3 Log message: insert flush callt From jkrell at elego.de Mon Jan 28 12:02:19 2013 From: jkrell at elego.de (Jay Krell) Date: Mon, 28 Jan 2013 12:02:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130128110219.F2F135DEB84@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/28 12:02:19 Modified files: cm3/m3-tools/cvsup/suplib/src/: UnixMiscC.c Log message: extern "C" calling conventions fix function pointer type? initialize locals (might incur a warning) From jkrell at elego.de Mon Jan 28 12:03:12 2013 From: jkrell at elego.de (Jay Krell) Date: Mon, 28 Jan 2013 12:03:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130128110312.5CD6D5DEB86@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/28 12:03:12 Modified files: cm3/m3-tools/cvsup/suplib/src/FreeBSD/: UProcTitle.c Log message: C++ calling conventions let it compile for all platforms, albeit the function will silently do nothing except on FreeBSD From jkrell at elego.de Wed Jan 30 09:19:37 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 9:19:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130081937.97C105DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 09:19:37 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosix.m3 Log message: fix awful race condition in IsDevNull It is kind of too bad we don't have a more efficient way to do this -- just the one heavyweight double heap allocated MUTEX type (double?) From jkrell at elego.de Wed Jan 30 11:21:46 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 11:21:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130102146.74F205DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 11:21:46 Modified files: cm3/m3-sys/m3back/src/: M3C.m3 Log message: cast INT8 literals to INT8, because they are often out of range, and otherwise Sun cc warns From jkrell at elego.de Wed Jan 30 11:26:04 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 11:26:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130102604.40CB75DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 11:26:04 Modified files: cm3/m3-sys/m3back/src/: M3C.m3 Log message: also cast INT16 literals to INT16 Solaris cc: Unicode.m3.c", line 261: warning: initializer does not fit or is out of range: 65370 From jkrell at elego.de Wed Jan 30 11:38:54 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 11:38:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130103854.9073D5DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 11:38:54 Modified files: cm3/m3-sys/m3back/src/: M3C.m3 Log message: remove L from end of EXTENDED literals -- it would be for long double, but we use double, and Solaris cc warngs in LongFloatExtras.m3 From jkrell at elego.de Wed Jan 30 11:39:44 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 11:39:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130103944.F37FA5DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 11:39:44 Modified files: cm3/m3-sys/m3back/src/: M3C.m3 Log message: put back \000 suffix, the code is in a loop and the correctness of previous was unclear and the change was besides the point of removing the 'L' From jkrell at elego.de Wed Jan 30 12:24:08 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 12:24:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130112408.941A05DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 12:24:08 Modified files: cm3/m3-sys/m3back/src/: M3C.m3 Log message: put: #ifdef __SUNPRO_C #pragma error_messages(off, E_STATEMENT_NOT_REACHED) #endif at the top of every file, to quash a few warnings - tested some with Solaris cc 12.2 and 12.3 What do older versions do?? - tested some with Solaris CC (C++) It #defines something else (__SUNPRO_CC?) and doesn't issue the warnings..and doesn't seem to understand the #pragmas ? From jkrell at elego.de Wed Jan 30 12:57:51 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 12:57:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130115751.ACCA75DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 12:57:51 Modified files: cm3/m3-sys/cm3/src/: Builder.m3 M3Backend.m3 M3Build.m3 ./: Builder.m3 M3Backend.m3 M3Build.m3 cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 Log message: add "C" mode to builder Use it like so in config file: if defined("HasCBackend") if HasCBackend() M3_BACKEND_MODE = "C" end end It has been more or less tested on the following targets: AMD64_DARWIN (the most testing) I386_DARWIN (been a while) AMD64_LINUX SPARC32_SOLARIS SPARC64_SOLARIS I386_SOLARIS AMD64_SOLARIS It probably just works everywhere at least with gcc and Solaris cc. Microsoft Visual C++ (i.e. AMD64_NT) will be tried soon. Debugging is not good -- no structs. For Darwin, that is no regression, since stabs and m3gdb don't work there anyway. From jay.krell at cornell.edu Wed Jan 30 13:01:31 2013 From: jay.krell at cornell.edu (Jay K) Date: Wed, 30 Jan 2013 12:01:31 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20130130115751.ACCA75DEB8A@birch.elegosoft.com> References: <20130130115751.ACCA75DEB8A@birch.elegosoft.com> Message-ID: diff attached > Date: Wed, 30 Jan 2013 12:57:51 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 13/01/30 12:57:51 > > Modified files: > cm3/m3-sys/cm3/src/: Builder.m3 M3Backend.m3 M3Build.m3 > ./: Builder.m3 M3Backend.m3 M3Build.m3 > cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 > > Log message: > add "C" mode to builder > > Use it like so in config file: > if defined("HasCBackend") > if HasCBackend() > M3_BACKEND_MODE = "C" > end > end > > It has been more or less tested on the following targets: > AMD64_DARWIN (the most testing) > I386_DARWIN (been a while) > AMD64_LINUX > SPARC32_SOLARIS > SPARC64_SOLARIS > I386_SOLARIS > AMD64_SOLARIS > > It probably just works everywhere at least with gcc and Solaris cc. > Microsoft Visual C++ (i.e. AMD64_NT) will be tried soon. > > Debugging is not good -- no structs. > For Darwin, that is no regression, since stabs and m3gdb don't work there anyway. > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 5u.txt URL: From jkrell at elego.de Wed Jan 30 13:09:14 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 13:09:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130120915.0845D5DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 13:09:14 Modified files: cm3/m3-sys/cm3/src/: Builder.m3 Log message: adding missing case From jkrell at elego.de Wed Jan 30 14:07:38 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:07:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130130738.F39BB5DEB92@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:07:38 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: rename USE_C_BACKEND to USE_C_BACKEND_VIA_M3CGCAT This isn't likely to be used any longer. Perhaps we can rollback m3cgcat, but I also think it is ok asis. From jkrell at elego.de Wed Jan 30 14:08:13 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:08:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130130813.A3A435DEB92@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:08:13 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: NT386 NT386.common Log message: move some code to common From jkrell at elego.de Wed Jan 30 14:08:46 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:08:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130130847.172A15DEB92@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:08:46 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: I386_NT Log message: move some code to common From jkrell at elego.de Wed Jan 30 14:10:35 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:10:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130131036.9A08F5DEB92@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:10:35 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: NT386 Log message: unify From jkrell at elego.de Wed Jan 30 14:14:24 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:14:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130131426.848E05DEB87@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:14:24 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: NT386 NT386.common I386_NT Log message: factor out common code to common file From jkrell at elego.de Wed Jan 30 14:17:27 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:17:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130131727.3CB295DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:17:27 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: NT386.common Added files: cm3/m3-sys/cminstall/src/config-no-install/: NT.common Log message: factor out common code to common file From jkrell at elego.de Wed Jan 30 14:20:20 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:20:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130132020.5F3EA5DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:20:20 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: NT.common Added files: cm3/m3-sys/cminstall/src/config-no-install/: AMD64_NT Log message: add AMD64_NT From jkrell at elego.de Wed Jan 30 14:35:12 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:35:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130133513.126165DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:35:12 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Darwin.common Log message: switch all Darwin targets to C backend From jkrell at elego.de Wed Jan 30 14:36:52 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:36:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130133652.346CB5DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:36:52 Modified files: cm3/scripts/python/: pylib.py Log message: add "c" to boot1.py command line if using C backend This will alter the Makefile just a bit -- all foo.m3.o files, no foo.mo From jkrell at elego.de Wed Jan 30 14:44:07 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:44:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130134408.1C84F5DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:44:07 Modified files: cm3/m3-libs/m3core/src/runtime/NT386/: RTSignal.m3 Log message: DWORD to INTEGER, in case it works with 64bit targets, in case From jkrell at elego.de Wed Jan 30 14:45:04 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:45:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130134504.A84965DEB8B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:45:04 Added files: cm3/m3-libs/m3core/src/runtime/AMD64_NT/: m3makefile Log message: add AMD64_NT From jkrell at elego.de Thu Jan 31 09:57:15 2013 From: jkrell at elego.de (Jay Krell) Date: Thu, 31 Jan 2013 9:57:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130131085715.136C55DEB87@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/31 09:57:15 Added files: cm3/m3-libs/libm3/src/os/WIN32/: SocketWin32C.c Log message: intial copy of SocketWin32.m3 From jkrell at elego.de Fri Jan 4 17:55:24 2013 From: jkrell at elego.de (Jay Krell) Date: Fri, 4 Jan 2013 17:55:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130117231207.1C26DCCA9F@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/04 17:55:24 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTProcessC.c Log message: formatting, parents From jkrell at elego.de Fri Jan 4 17:18:36 2013 From: jkrell at elego.de (Jay Krell) Date: Fri, 4 Jan 2013 17:18:36 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130117232801.255ABCCA60@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/04 17:18:36 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTProcessC.c Log message: add parens From jkrell at elego.de Fri Jan 4 17:49:05 2013 From: jkrell at elego.de (Jay Krell) Date: Fri, 4 Jan 2013 17:49:05 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130118004405.C830FCCA9D@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/04 17:49:05 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTProcessC.c Log message: fix it to compile; user threads only? From jkrell at elego.de Fri Jan 4 17:55:48 2013 From: jkrell at elego.de (Jay Krell) Date: Fri, 4 Jan 2013 17:55:48 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130118012039.E1B59CCB29@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/04 17:55:48 Modified files: cm3/m3-libs/m3core/src/runtime/common/: RTProcessC.c Log message: remove unused label, to fix warning From jkrell at elego.de Wed Jan 9 07:14:57 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 9 Jan 2013 7:14:57 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130118011905.030C2CCABA@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/09 07:14:57 Modified files: cm3/m3-sys/m3back/src/: M3C.m3 Log message: use locals to capture the values for check_hi/lo/nil/range/index, but not check_eq -- it doesn't need it, due to inconsistency in M3CG. Note that this is nice and conservative and should save some duplicate evaluation, but whatever cases I looked at, it is pretty bad. Here are the ones I looked at: Xor.mg in m3front: PROCEDURE Compile (ce: CallExpr.T) = BEGIN Expr.Compile (ce.args[0]); Expr.Compile (ce.args[1]); CG.Xor (Word_types[rep].cg_type); END Compile; check_index is applied to "0" and "1". Constants. No point in the temporary. It is easy to optimize away..but it is not easy to not allocate the temporary. Temporaries are allocated with way less information. WordInsert: (*(INT64*)(&L_277_L_278))=(INT64)( /* cast_removed2: INT64 */ i2_L_138); //line 111 "../AMD64_DARWIN/WordInsert.m3 => ../src/builtinWord/Insert.mg" /*check_lo*/if(L_277_L_278 CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/04 18:00:06 Modified files: cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosixC.c test_thread_sigaltstack.c test_timer.c Log message: fix warnings..gcc is unfortunate From jkrell at elego.de Mon Jan 28 08:08:33 2013 From: jkrell at elego.de (Jay Krell) Date: Mon, 28 Jan 2013 8:08:33 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130128070833.8048A5DEB87@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/28 08:08:33 Modified files: cm3/scratch/macho/: hash.c Log message: memmove is safer than memcpy return 1 from hashtable_add to indicate a new entry created From jkrell at elego.de Mon Jan 28 08:01:53 2013 From: jkrell at elego.de (Jay Krell) Date: Mon, 28 Jan 2013 8:01:53 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130128070153.D6CF85DEB84@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/28 08:01:53 Modified files: cm3/scratch/macho/: hash.c Log message: fix (unused code) From jkrell at elego.de Mon Jan 28 08:38:59 2013 From: jkrell at elego.de (Jay Krell) Date: Mon, 28 Jan 2013 8:38:59 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130128073859.852EF5DEB84@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/28 08:38:59 Modified files: cm3/m3-tools/cvsup/suptcp/src/common/: SupErrnoC.c Log message: extern "C" -- make it valid C++ w/o changing external linked names #include "m3core.h" -- cleanup portability #ifdefs/#defines From jkrell at elego.de Mon Jan 28 08:40:18 2013 From: jkrell at elego.de (Jay Krell) Date: Mon, 28 Jan 2013 8:40:18 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130128074018.0DED65DEB84@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/28 08:40:18 Modified files: cm3/m3-tools/cvsup/suptcp/src/common/: SupErrnoC.c Log message: and give explicit calling conventions for the sake of outlier NT/x86 From jkrell at elego.de Mon Jan 28 11:39:01 2013 From: jkrell at elego.de (Jay Krell) Date: Mon, 28 Jan 2013 11:39:01 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130128103901.DB4835DEB84@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/28 11:39:01 Modified files: cm3/m3-sys/m3back/src/: M3C.m3 Log message: optionally put in "default:assert(!"error message") on cases (need to retest to see if this is needed) significantly relax range checks on integer literals; trust the frontend? From jkrell at elego.de Mon Jan 28 11:59:15 2013 From: jkrell at elego.de (Jay Krell) Date: Mon, 28 Jan 2013 11:59:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130128105915.B6BC95DEB84@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/28 11:59:15 Modified files: cm3/m3-sys/m3tests/src/p2/p227/: Main.m3 Log message: insert flush callt From jkrell at elego.de Mon Jan 28 12:02:19 2013 From: jkrell at elego.de (Jay Krell) Date: Mon, 28 Jan 2013 12:02:19 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130128110219.F2F135DEB84@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/28 12:02:19 Modified files: cm3/m3-tools/cvsup/suplib/src/: UnixMiscC.c Log message: extern "C" calling conventions fix function pointer type? initialize locals (might incur a warning) From jkrell at elego.de Mon Jan 28 12:03:12 2013 From: jkrell at elego.de (Jay Krell) Date: Mon, 28 Jan 2013 12:03:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130128110312.5CD6D5DEB86@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/28 12:03:12 Modified files: cm3/m3-tools/cvsup/suplib/src/FreeBSD/: UProcTitle.c Log message: C++ calling conventions let it compile for all platforms, albeit the function will silently do nothing except on FreeBSD From jkrell at elego.de Wed Jan 30 09:19:37 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 9:19:37 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130081937.97C105DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 09:19:37 Modified files: cm3/m3-libs/libm3/src/os/POSIX/: FilePosix.m3 Log message: fix awful race condition in IsDevNull It is kind of too bad we don't have a more efficient way to do this -- just the one heavyweight double heap allocated MUTEX type (double?) From jkrell at elego.de Wed Jan 30 11:21:46 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 11:21:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130102146.74F205DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 11:21:46 Modified files: cm3/m3-sys/m3back/src/: M3C.m3 Log message: cast INT8 literals to INT8, because they are often out of range, and otherwise Sun cc warns From jkrell at elego.de Wed Jan 30 11:26:04 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 11:26:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130102604.40CB75DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 11:26:04 Modified files: cm3/m3-sys/m3back/src/: M3C.m3 Log message: also cast INT16 literals to INT16 Solaris cc: Unicode.m3.c", line 261: warning: initializer does not fit or is out of range: 65370 From jkrell at elego.de Wed Jan 30 11:38:54 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 11:38:54 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130103854.9073D5DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 11:38:54 Modified files: cm3/m3-sys/m3back/src/: M3C.m3 Log message: remove L from end of EXTENDED literals -- it would be for long double, but we use double, and Solaris cc warngs in LongFloatExtras.m3 From jkrell at elego.de Wed Jan 30 11:39:44 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 11:39:44 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130103944.F37FA5DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 11:39:44 Modified files: cm3/m3-sys/m3back/src/: M3C.m3 Log message: put back \000 suffix, the code is in a loop and the correctness of previous was unclear and the change was besides the point of removing the 'L' From jkrell at elego.de Wed Jan 30 12:24:08 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 12:24:08 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130112408.941A05DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 12:24:08 Modified files: cm3/m3-sys/m3back/src/: M3C.m3 Log message: put: #ifdef __SUNPRO_C #pragma error_messages(off, E_STATEMENT_NOT_REACHED) #endif at the top of every file, to quash a few warnings - tested some with Solaris cc 12.2 and 12.3 What do older versions do?? - tested some with Solaris CC (C++) It #defines something else (__SUNPRO_CC?) and doesn't issue the warnings..and doesn't seem to understand the #pragmas ? From jkrell at elego.de Wed Jan 30 12:57:51 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 12:57:51 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130115751.ACCA75DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 12:57:51 Modified files: cm3/m3-sys/cm3/src/: Builder.m3 M3Backend.m3 M3Build.m3 ./: Builder.m3 M3Backend.m3 M3Build.m3 cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 Log message: add "C" mode to builder Use it like so in config file: if defined("HasCBackend") if HasCBackend() M3_BACKEND_MODE = "C" end end It has been more or less tested on the following targets: AMD64_DARWIN (the most testing) I386_DARWIN (been a while) AMD64_LINUX SPARC32_SOLARIS SPARC64_SOLARIS I386_SOLARIS AMD64_SOLARIS It probably just works everywhere at least with gcc and Solaris cc. Microsoft Visual C++ (i.e. AMD64_NT) will be tried soon. Debugging is not good -- no structs. For Darwin, that is no regression, since stabs and m3gdb don't work there anyway. From jay.krell at cornell.edu Wed Jan 30 13:01:31 2013 From: jay.krell at cornell.edu (Jay K) Date: Wed, 30 Jan 2013 12:01:31 +0000 Subject: [M3commit] CVS Update: cm3 In-Reply-To: <20130130115751.ACCA75DEB8A@birch.elegosoft.com> References: <20130130115751.ACCA75DEB8A@birch.elegosoft.com> Message-ID: diff attached > Date: Wed, 30 Jan 2013 12:57:51 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 13/01/30 12:57:51 > > Modified files: > cm3/m3-sys/cm3/src/: Builder.m3 M3Backend.m3 M3Build.m3 > ./: Builder.m3 M3Backend.m3 M3Build.m3 > cm3/m3-sys/m3middle/src/: Target.i3 Target.m3 > > Log message: > add "C" mode to builder > > Use it like so in config file: > if defined("HasCBackend") > if HasCBackend() > M3_BACKEND_MODE = "C" > end > end > > It has been more or less tested on the following targets: > AMD64_DARWIN (the most testing) > I386_DARWIN (been a while) > AMD64_LINUX > SPARC32_SOLARIS > SPARC64_SOLARIS > I386_SOLARIS > AMD64_SOLARIS > > It probably just works everywhere at least with gcc and Solaris cc. > Microsoft Visual C++ (i.e. AMD64_NT) will be tried soon. > > Debugging is not good -- no structs. > For Darwin, that is no regression, since stabs and m3gdb don't work there anyway. > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 5u.txt URL: From jkrell at elego.de Wed Jan 30 13:09:14 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 13:09:14 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130120915.0845D5DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 13:09:14 Modified files: cm3/m3-sys/cm3/src/: Builder.m3 Log message: adding missing case From jkrell at elego.de Wed Jan 30 14:07:38 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:07:38 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130130738.F39BB5DEB92@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:07:38 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: cm3cfg.common Log message: rename USE_C_BACKEND to USE_C_BACKEND_VIA_M3CGCAT This isn't likely to be used any longer. Perhaps we can rollback m3cgcat, but I also think it is ok asis. From jkrell at elego.de Wed Jan 30 14:08:13 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:08:13 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130130813.A3A435DEB92@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:08:13 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: NT386 NT386.common Log message: move some code to common From jkrell at elego.de Wed Jan 30 14:08:46 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:08:46 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130130847.172A15DEB92@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:08:46 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: I386_NT Log message: move some code to common From jkrell at elego.de Wed Jan 30 14:10:35 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:10:35 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130131036.9A08F5DEB92@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:10:35 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: NT386 Log message: unify From jkrell at elego.de Wed Jan 30 14:14:24 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:14:24 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130131426.848E05DEB87@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:14:24 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: NT386 NT386.common I386_NT Log message: factor out common code to common file From jkrell at elego.de Wed Jan 30 14:17:27 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:17:27 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130131727.3CB295DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:17:27 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: NT386.common Added files: cm3/m3-sys/cminstall/src/config-no-install/: NT.common Log message: factor out common code to common file From jkrell at elego.de Wed Jan 30 14:20:20 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:20:20 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130132020.5F3EA5DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:20:20 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: NT.common Added files: cm3/m3-sys/cminstall/src/config-no-install/: AMD64_NT Log message: add AMD64_NT From jkrell at elego.de Wed Jan 30 14:35:12 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:35:12 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130133513.126165DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:35:12 Modified files: cm3/m3-sys/cminstall/src/config-no-install/: Darwin.common Log message: switch all Darwin targets to C backend From jkrell at elego.de Wed Jan 30 14:36:52 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:36:52 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130133652.346CB5DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:36:52 Modified files: cm3/scripts/python/: pylib.py Log message: add "c" to boot1.py command line if using C backend This will alter the Makefile just a bit -- all foo.m3.o files, no foo.mo From jkrell at elego.de Wed Jan 30 14:44:07 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:44:07 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130134408.1C84F5DEB8A@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:44:07 Modified files: cm3/m3-libs/m3core/src/runtime/NT386/: RTSignal.m3 Log message: DWORD to INTEGER, in case it works with 64bit targets, in case From jkrell at elego.de Wed Jan 30 14:45:04 2013 From: jkrell at elego.de (Jay Krell) Date: Wed, 30 Jan 2013 14:45:04 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130130134504.A84965DEB8B@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/30 14:45:04 Added files: cm3/m3-libs/m3core/src/runtime/AMD64_NT/: m3makefile Log message: add AMD64_NT From jkrell at elego.de Thu Jan 31 09:57:15 2013 From: jkrell at elego.de (Jay Krell) Date: Thu, 31 Jan 2013 9:57:15 () Subject: [M3commit] CVS Update: cm3 Message-ID: <20130131085715.136C55DEB87@birch.elegosoft.com> CVSROOT: /usr/cvs Changes by: jkrell at birch. 13/01/31 09:57:15 Added files: cm3/m3-libs/libm3/src/os/WIN32/: SocketWin32C.c Log message: intial copy of SocketWin32.m3