From rodney.m.bates at acm.org Fri Jul 17 22:53:26 2015 From: rodney.m.bates at acm.org (Rodney Bates) Date: Fri, 17 Jul 2015 13:53:26 -0700 Subject: [M3commit] [modula3/cm3] 79a67a: Implement UnGetCodePoint and several things entail... Message-ID: <55a96b4636dac_54f3f9c7aabf29c6593@hookshot-fe2-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 79a67a27a680096f54d98a276bdf2508cbd6c1d6 https://github.com/modula3/cm3/commit/79a67a27a680096f54d98a276bdf2508cbd6c1d6 Author: Rodney Bates Date: 2015-07-17 (Fri, 17 Jul 2015) Changed paths: M m3-libs/libm3/src/rw/Rd.i3 M m3-libs/libm3/src/rw/Rd.m3 M m3-libs/libunicode/src/UniRd.i3 M m3-libs/libunicode/src/UniRd.m3 M m3-libs/libunicode/src/UniRdClass.i3 M m3-libs/libunicode/src/UnsafeUniRd.i3 M m3-libs/libunicode/src/UnsafeUniRd.m3 M m3-libs/libunicode/tests/ungetmulti/src/TestRd.m3 M m3-libs/libunicode/tests/unird/src/TestUniRd.m3 Log Message: ----------- Implement UnGetCodePoint and several things entailed thereby. Changes to be committed: (relative to m3-libs/libm3/src/rw) modified: Rd.i3 modified: Rd.m3 modified: ../../../libunicode/src/UniRd.i3 modified: ../../../libunicode/src/UniRd.m3 modified: ../../../libunicode/src/UniRdClass.i3 modified: ../../../libunicode/src/UnsafeUniRd.i3 modified: ../../../libunicode/src/UnsafeUniRd.m3 modified: ../../../libunicode/tests/ungetmulti/src/TestRd.m3 modified: ../../../libunicode/tests/unird/src/TestUniRd.m3 Implement UniRd.UnGetCodePoint. This required: Substantially reworking lots of procedures in UnsafeUniRd. Formerly, these handled ungetting of CR and LF code points by keeping state variables in the UniRd.T. This was implemented before Rd.UnGetMulti existed. This would have gotten a lot messier with UnGetCodePoint. Now, all ungetting of code points is implemented using ungetting of single CHARs. This also makes for somewhat sane semantics of mixing gets/ungets to the unicode stream (UniRd.T) with those to the source CHAR stream, (Rd.T), as well as seeks, if you dare, and don't exceed the maximum unget CHAR count. Changing Rd.UnGetMulti to accept a new parameter (UnGetCount) giving the numbef of chars to unget. Although the above could have been done-without, it would have been pretty awkward to execute up to 8 successive calls on UnGetMulti. The new parameter is defaulted to 1, so existing calls will compile/run without change. However, a number of existing calls in the distribution are changed to supply the 1 explicitly, for clarity. Updating test programs TestRd.m3 and TestUniRd.m3, to test some of the new behavour. From jay.krell at cornell.edu Sat Jul 18 11:02:34 2015 From: jay.krell at cornell.edu (Jay Krell) Date: Sat, 18 Jul 2015 02:02:34 -0700 Subject: [M3commit] [modula3/cm3] 869ec1: slightly reduce critical section in rare path Message-ID: <55aa162a42717_4e0d3fbc32daf2b895237@hookshot-fe4-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 869ec182a399f04a288afd3fee2567bdf9dd340e https://github.com/modula3/cm3/commit/869ec182a399f04a288afd3fee2567bdf9dd340e Author: Jay Krell Date: 2015-06-22 (Mon, 22 Jun 2015) Changed paths: M m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3 Log Message: ----------- slightly reduce critical section in rare path Commit: 4c90dc4b625e7533e4a7cc26cc3840a7480b4091 https://github.com/modula3/cm3/commit/4c90dc4b625e7533e4a7cc26cc3840a7480b4091 Author: Jay Krell Date: 2015-06-23 (Tue, 23 Jun 2015) Changed paths: M m3-sys/m3front/src/misc/Marker.m3 Log Message: ----------- Merge branch 'master' of github.com:modula3/cm3 remove parens on if expressions likely written by me in C style Commit: 59c2715996ea36c64d556b13c2e357b005da2075 https://github.com/modula3/cm3/commit/59c2715996ea36c64d556b13c2e357b005da2075 Author: Jay Krell Date: 2015-06-23 (Tue, 23 Jun 2015) Changed paths: M m3-db/mysql/src/MySQL.i3 M m3-db/mysql/src/MySQL.m3 M m3-db/mysql/src/MySQLRaw.i3 M m3-db/mysql/src/MySQLRaw.m3 M m3-db/mysql/src/class/MySQLMaps.i3 M m3-db/mysql/src/class/MySQLMaps.m3 M m3-db/mysql/swig/mysql.i M m3-db/mysql/swig/mysqlapi.i M m3-db/mysql/swig/mysqlmaps.i M m3-db/mysql/swig/mysqltypes.i M m3-db/mysql/test/src/Main.m3 M m3-libs/libm3/src/rw/Rd.i3 M m3-libs/libm3/src/rw/Rd.m3 M m3-libs/libunicode/src/UniRd.i3 M m3-libs/libunicode/src/UniRd.m3 M m3-libs/libunicode/src/UniRdClass.i3 M m3-libs/libunicode/src/UnsafeUniRd.i3 M m3-libs/libunicode/src/UnsafeUniRd.m3 M m3-libs/libunicode/tests/ungetmulti/src/TestRd.m3 M m3-libs/libunicode/tests/unird/src/TestUniRd.m3 M m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3 Log Message: ----------- eerge branch 'master' of github.com:modula3/cm3 pull from master Compare: https://github.com/modula3/cm3/compare/79a67a27a680...59c2715996ea From jay.krell at cornell.edu Sat Jul 18 11:27:40 2015 From: jay.krell at cornell.edu (Jay Krell) Date: Sat, 18 Jul 2015 02:27:40 -0700 Subject: [M3commit] [modula3/cm3] 384ae9: remove incorrect declaration of FastUnGetCharMulti Message-ID: <55aa1c0c24704_5f553f9a76bd52b83878b@hookshot-fe6-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 384ae951b177bdc48504a7e0d2fffa16bdd4401e https://github.com/modula3/cm3/commit/384ae951b177bdc48504a7e0d2fffa16bdd4401e Author: Jay Krell Date: 2015-07-18 (Sat, 18 Jul 2015) Changed paths: M m3-libs/libm3/src/rw/UnsafeRd.i3 Log Message: ----------- remove incorrect declaration of FastUnGetCharMulti From jay.krell at cornell.edu Sat Jul 18 13:00:40 2015 From: jay.krell at cornell.edu (Jay Krell) Date: Sat, 18 Jul 2015 04:00:40 -0700 Subject: [M3commit] [modula3/cm3] a8ac6f: Test to show if each TRY costs a frame, or if each... Message-ID: <55aa31d823882_361e3ffa72f7d29c6255b@hookshot-fe1-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: a8ac6f927221aefa8d9705e077b30cec731959da https://github.com/modula3/cm3/commit/a8ac6f927221aefa8d9705e077b30cec731959da Author: Jay Krell Date: 2015-07-18 (Sat, 18 Jul 2015) Changed paths: A m3-sys/m3tests/src/p2/p259/Main.m3 A m3-sys/m3tests/src/p2/p259/m3makefile Log Message: ----------- Test to show if each TRY costs a frame, or if each function with any number of TRYs has one frame; the answer is that each TRY costs a frame -- expensive. From rodney.m.bates at acm.org Sat Jul 18 16:55:36 2015 From: rodney.m.bates at acm.org (Rodney Bates) Date: Sat, 18 Jul 2015 07:55:36 -0700 Subject: [M3commit] [modula3/cm3] 4d96a4: Supply UnsafeRd.i3, missing from commit 79a67a27a6... Message-ID: <55aa68e8ebc6e_1e353f9471b9f2b8184ef@hookshot-fe5-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 4d96a4afe87f5810cab204dc6a2e70139d844f78 https://github.com/modula3/cm3/commit/4d96a4afe87f5810cab204dc6a2e70139d844f78 Author: Rodney Bates Date: 2015-07-18 (Sat, 18 Jul 2015) Changed paths: M m3-libs/libm3/src/rw/UnsafeRd.i3 Log Message: ----------- Supply UnsafeRd.i3, missing from commit 79a67a27a680096f54d98a276bdf2508cbd6c1d6 Changes to be committed: modified: UnsafeRd.i3 From rodney.m.bates at acm.org Sat Jul 18 17:03:10 2015 From: rodney.m.bates at acm.org (Rodney Bates) Date: Sat, 18 Jul 2015 08:03:10 -0700 Subject: [M3commit] [modula3/cm3] 16a860: Reinstate temporarily disabled TestGetWideSubLine. Message-ID: <55aa6aae9817c_1c963fbd4f25b2b87447b@hookshot-fe5-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 16a8606c90326f23497675012b4089dacd969be7 https://github.com/modula3/cm3/commit/16a8606c90326f23497675012b4089dacd969be7 Author: Rodney Bates Date: 2015-07-18 (Sat, 18 Jul 2015) Changed paths: M m3-libs/libunicode/tests/unird/src/TestUniRd.m3 Log Message: ----------- Reinstate temporarily disabled TestGetWideSubLine. Changes to be committed: modified: TestUniRd.m3 From jay.krell at cornell.edu Sun Jul 19 11:31:23 2015 From: jay.krell at cornell.edu (Jay Krell) Date: Sun, 19 Jul 2015 02:31:23 -0700 Subject: [M3commit] [modula3/cm3] 22288f: 1) prepare for alloca suppport Message-ID: <55ab6e6b52cbb_3dfa3fa4a21a92b879437@hookshot-fe2-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 22288fb93dab6b12ae19ca5747b1933289299871 https://github.com/modula3/cm3/commit/22288fb93dab6b12ae19ca5747b1933289299871 Author: Jay Krell Date: 2015-07-19 (Sun, 19 Jul 2015) Changed paths: M m3-sys/m3back/src/M3C.m3 Log Message: ----------- 1) prepare for alloca suppport 2) remove unnecessary #include -- we only need size_t for Win32 alloca, the frontend issues typedefs for WORD_T and INTEGER (though really I'd like to reverse this eventually and have the frontend not know INTEGER/WORD/pointer size) Commit: d94cde0abefda01e3f78abdd0809ee335b85dd1a https://github.com/modula3/cm3/commit/d94cde0abefda01e3f78abdd0809ee335b85dd1a Author: Jay Krell Date: 2015-07-19 (Sun, 19 Jul 2015) Changed paths: M m3-libs/libm3/src/rw/UnsafeRd.i3 M m3-libs/libunicode/tests/unird/src/TestUniRd.m3 Log Message: ----------- Merge branch 'master' of github.com:modula3/cm3 pull from master Compare: https://github.com/modula3/cm3/compare/16a8606c9032...d94cde0abefd From jay.krell at cornell.edu Sun Jul 19 11:32:33 2015 From: jay.krell at cornell.edu (Jay Krell) Date: Sun, 19 Jul 2015 02:32:33 -0700 Subject: [M3commit] [modula3/cm3] 902dc7: remove one errant pound sign Message-ID: <55ab6eb15c31_72a13f99ac87f2a0948e3@hookshot-fe5-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 902dc7f1dc70afd13bb1c61f84dbe181efa46b73 https://github.com/modula3/cm3/commit/902dc7f1dc70afd13bb1c61f84dbe181efa46b73 Author: Jay Krell Date: 2015-07-19 (Sun, 19 Jul 2015) Changed paths: M m3-sys/m3back/src/M3C.m3 Log Message: ----------- remove one errant pound sign From rodney.m.bates at acm.org Tue Jul 21 18:14:43 2015 From: rodney.m.bates at acm.org (Rodney Bates) Date: Tue, 21 Jul 2015 09:14:43 -0700 Subject: [M3commit] [modula3/cm3] 961ec4: Add record of current test output, for future comp... Message-ID: <55ae6ff34849e_6e8f3fa2fb1312c053694@hookshot-fe1-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 961ec4fb76ac8658a6b1ed4dd2e7416633bcd5f8 https://github.com/modula3/cm3/commit/961ec4fb76ac8658a6b1ed4dd2e7416633bcd5f8 Author: Rodney Bates Date: 2015-07-18 (Sat, 18 Jul 2015) Changed paths: A m3-libs/libunicode/tests/unird/README Log Message: ----------- Add record of current test output, for future comparison. Changes to be committed: new file: m3-libs/libunicode/tests/unird/README Commit: a857b5c1caa5917a4754280d324edd82540b06fa https://github.com/modula3/cm3/commit/a857b5c1caa5917a4754280d324edd82540b06fa Author: Rodney Bates Date: 2015-07-21 (Tue, 21 Jul 2015) Changed paths: M m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3 A m3-libs/m3core/src/thread/PTHREAD/ThreadPThread0.m3 M m3-libs/m3core/src/thread/PTHREAD/m3makefile Log Message: ----------- O(1) FIFO wakeup of waiters on both Mutexs and Conditions. Formerly, Mutex wakeup was FIFO but used an O(n) per wakeup algorithm, while Condition wakeup was LIFO but O(1). Make both cases FIFO and O(1) by using one-way, circularly linked lists, with the origin pointer pointing to the list tail. No change in object types needed. This showed slight reductions in number of "appears starved or deadlocked" messages in the thread test at m3-libs/m3core/tests/thread, for a few combinations of thread count and iteration count. Total runtime variations were in the noise. In some cases, 4-core CPU utilizations appeared slightly higher in a visual graph. Also documented non-obvious dynamically-changing rule about what mutex protects two fields in an Activation. Since this is both fragile and potentially high-stakes, the old version of ThreadPThread.m3 is now committed in m3-libs/m3core/src/thread/PTHREAD/ThreadPThread0.m3, for quicker reversion, should bugs appear. Look in the m3makefile for quick comment in/out to revert. You will probably have to clean, compile (to link), and ship all involved libraries and your main program. Changes to be committed: modified: thread/PTHREAD/ThreadPThread.m3 new file: thread/PTHREAD/ThreadPThread0.m3 modified: thread/PTHREAD/m3makefile Commit: 3ab68ebfb6b08b6972883db5c127ee5eb79eaa14 https://github.com/modula3/cm3/commit/3ab68ebfb6b08b6972883db5c127ee5eb79eaa14 Author: Rodney Bates Date: 2015-07-21 (Tue, 21 Jul 2015) Changed paths: M m3-sys/m3back/src/M3C.m3 Log Message: ----------- Merge branch 'master' of https://github.com/modula3/cm3 Compare: https://github.com/modula3/cm3/compare/902dc7f1dc70...3ab68ebfb6b0 From jay.krell at cornell.edu Wed Jul 22 03:55:27 2015 From: jay.krell at cornell.edu (Jay Krell) Date: Tue, 21 Jul 2015 18:55:27 -0700 Subject: [M3commit] [modula3/cm3] 8eef76: - alloca support work in progress Message-ID: <55aef80f7e780_78ec3faf364592bc826be@hookshot-fe3-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 8eef76cf5898317cc51dabb3dca7f748d3fa48f2 https://github.com/modula3/cm3/commit/8eef76cf5898317cc51dabb3dca7f748d3fa48f2 Author: Jay Krell Date: 2015-07-20 (Mon, 20 Jul 2015) Changed paths: M m3-sys/m3back/src/M3x86.m3 M m3-sys/m3middle/src/Target.i3 M m3-sys/m3middle/src/Target.m3 Log Message: ----------- - alloca support work in progress - fewer linear searches and string compares related to calling conventions (perhaps should use an enumeration here instead of integers) Commit: 3129c090bd15a1ac0a0da3992a965fa2eddf65f6 https://github.com/modula3/cm3/commit/3129c090bd15a1ac0a0da3992a965fa2eddf65f6 Author: Jay Krell Date: 2015-07-20 (Mon, 20 Jul 2015) Changed paths: M m3-sys/m3middle/src/Target.m3 Log Message: ----------- remove unused code Commit: 2a0b6e40b44c2be3cc6829cd4e319520f5d63811 https://github.com/modula3/cm3/commit/2a0b6e40b44c2be3cc6829cd4e319520f5d63811 Author: Jay Krell Date: 2015-07-20 (Mon, 20 Jul 2015) Changed paths: M m3-sys/m3back/src/M3C.m3 Log Message: ----------- restore size_t typedef for memcmp etc. Commit: 8f33683e2ac799f97ee7b56eacb6837a2626f9c4 https://github.com/modula3/cm3/commit/8f33683e2ac799f97ee7b56eacb6837a2626f9c4 Author: Jay Krell Date: 2015-07-21 (Tue, 21 Jul 2015) Changed paths: A m3-libs/libunicode/tests/unird/README M m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3 A m3-libs/m3core/src/thread/PTHREAD/ThreadPThread0.m3 M m3-libs/m3core/src/thread/PTHREAD/m3makefile Log Message: ----------- Merge branch 'master' of github.com:modula3/cm3 pull Compare: https://github.com/modula3/cm3/compare/3ab68ebfb6b0...8f33683e2ac7 From jay.krell at cornell.edu Wed Jul 22 06:27:34 2015 From: jay.krell at cornell.edu (Jay Krell) Date: Tue, 21 Jul 2015 21:27:34 -0700 Subject: [M3commit] [modula3/cm3] 93f3ed: no need for "signed" -- gratuitous K&R incompatibi... Message-ID: <55af1bb6e9d07_700e3feef2f6d29c97257@hookshot-fe3-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 93f3ed9ff0687685f8c8c0f3e34cbf662f21d74c https://github.com/modula3/cm3/commit/93f3ed9ff0687685f8c8c0f3e34cbf662f21d74c Author: Jay Krell Date: 2015-07-21 (Tue, 21 Jul 2015) Changed paths: M m3-libs/m3core/src/m3core.h Log Message: ----------- no need for "signed" -- gratuitous K&R incompatibility except for char (TODO) typedef INTEGER for __LP64__ and _LP64 Commit: 8a56c694775779f184ac291a3a9b9c48e504b1f7 https://github.com/modula3/cm3/commit/8a56c694775779f184ac291a3a9b9c48e504b1f7 Author: Jay Krell Date: 2015-07-21 (Tue, 21 Jul 2015) Changed paths: M m3-sys/m3back/src/M3C.m3 Log Message: ----------- get size_t efficiently (and still reliably) for gcc and clang add clarifying comments Compare: https://github.com/modula3/cm3/compare/8f33683e2ac7...8a56c6947757 From jay.krell at cornell.edu Thu Jul 23 02:03:56 2015 From: jay.krell at cornell.edu (Jay Krell) Date: Wed, 22 Jul 2015 17:03:56 -0700 Subject: [M3commit] [modula3/cm3] 35bf8e: test case for open array stuff -- there is a bug h... Message-ID: <55b02f6cd0d29_7c583f90bcb7b2b81149d2@hookshot-fe1-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 35bf8eed0349574e14ff11679843fbbcbe3c6848 https://github.com/modula3/cm3/commit/35bf8eed0349574e14ff11679843fbbcbe3c6848 Author: Jay Krell Date: 2015-07-22 (Wed, 22 Jul 2015) Changed paths: A m3-sys/m3tests/src/p2/p260/Main.m3 A m3-sys/m3tests/src/p2/p260/m3makefile Log Message: ----------- test case for open array stuff -- there is a bug here it seems ,at least in the C backend, for subarrays Commit: 478a4eb3805a6b1d97f109277cb2d1649f2d7c0d https://github.com/modula3/cm3/commit/478a4eb3805a6b1d97f109277cb2d1649f2d7c0d Author: Jay Krell Date: 2015-07-22 (Wed, 22 Jul 2015) Changed paths: M m3-sys/m3tests/src/p2/p260/Main.m3 Log Message: ----------- extend open array test Commit: 791f6e3cd25d69d34a6353e8629ac8922e4ba72c https://github.com/modula3/cm3/commit/791f6e3cd25d69d34a6353e8629ac8922e4ba72c Author: Jay Krell Date: 2015-07-22 (Wed, 22 Jul 2015) Changed paths: M m3-sys/m3tests/src/p2/p260/Main.m3 Log Message: ----------- fix test case -- subarray second number is a count not a terminal index, the test code was wrong Commit: 6fea513ac87ffef059270c3163b9c11d2f5998ea https://github.com/modula3/cm3/commit/6fea513ac87ffef059270c3163b9c11d2f5998ea Author: Jay Krell Date: 2015-07-22 (Wed, 22 Jul 2015) Changed paths: M m3-sys/m3back/src/M3C.m3 Log Message: ----------- some work on open arrays and pointer typedefs and cleanup open arrays need work in m3front Commit: 0fc168d8c4c54df60d264160a324f152925a4b02 https://github.com/modula3/cm3/commit/0fc168d8c4c54df60d264160a324f152925a4b02 Author: Jay Krell Date: 2015-07-22 (Wed, 22 Jul 2015) Changed paths: M m3-sys/m3back/src/M3C.m3 Log Message: ----------- cleanup and comments, more todo here Compare: https://github.com/modula3/cm3/compare/8a56c6947757...0fc168d8c4c5 From rodney.m.bates at acm.org Wed Jul 29 22:47:11 2015 From: rodney.m.bates at acm.org (Rodney Bates) Date: Wed, 29 Jul 2015 13:47:11 -0700 Subject: [M3commit] [modula3/cm3] 4f232e: Lots of new bindings in package llvmbindings -- un... Message-ID: <55b93bcfada30_514a3faf8390929c398c@hookshot-fe3-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 4f232e33c91f71c8f6bc603d319c8e7e24ae86ec https://github.com/modula3/cm3/commit/4f232e33c91f71c8f6bc603d319c8e7e24ae86ec Author: Rodney Bates Date: 2015-07-29 (Wed, 29 Jul 2015) Changed paths: M m3-sys/llvmbindings/src/LLVM.i3 A m3-sys/llvmbindings/src/LLVMTypes.i3 A m3-sys/llvmbindings/src/M3DIBuilder.cpp A m3-sys/llvmbindings/src/M3DIBuilder.h A m3-sys/llvmbindings/src/M3DIBuilder.i3 M m3-sys/llvmbindings/src/M3Extras.cpp M m3-sys/llvmbindings/src/M3Extras.h M m3-sys/llvmbindings/src/Makefile M m3-sys/llvmbindings/src/README M m3-sys/llvmbindings/src/m3makefile Log Message: ----------- Lots of new bindings in package llvmbindings -- untested. Gather bits and pieces of several existing bindings to llvm in one Modula-3 package. Add a complete binding to DIBuilder, updated to llvm 3.6.1. Unless you are developing the llvm-derived backend, you should have no need to build this package. The C/C++ parts have been built sucessfully with gcc 4.8.1 and clang 3.4.2. As committed, Makefile is set to call gcc. These bindings have to be linked to a compiled llvm infrastructure of the appropriate version. This takes *hours* to build. (If you thought compiling the gcc-derived back end was slow compared to compiling Modula-3 code, you ain't seen nothin'.) It is premature to require all Modula-3 users to do this, either as separate steps or with a copy of llvm copied into the M3 distribution. So for now, the m3makefile has some hard-coded references to llvm things. You will surely have to edit these to build this package, after having built llvm. See comments in m3makefile. Between a bug in cm3's import_obj from the build directory and lack of support running C++ in the cm3 build system, it was necessary to build the C/C++ components in the src directory, despite their being target-dependent. Fix this someday. See README for more information. Changes to be committed: (use "git reset HEAD ..." to unstage) modified: LLVM.i3 new file: LLVMTypes.i3 new file: M3DIBuilder.cpp new file: M3DIBuilder.h new file: M3DIBuilder.i3 modified: M3Extras.cpp modified: M3Extras.h modified: Makefile modified: README modified: m3makefile From rodney.m.bates at acm.org Fri Jul 31 22:05:21 2015 From: rodney.m.bates at acm.org (Rodney Bates) Date: Fri, 31 Jul 2015 13:05:21 -0700 Subject: [M3commit] [modula3/cm3] 1087b2: Fix typo in UnsafeUniRd.m3. Message-ID: <55bbd501476fc_36613f9784f712b8419f3@hookshot-fe4-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 1087b266a5d5498ef81444e4ea906460fe49e0c0 https://github.com/modula3/cm3/commit/1087b266a5d5498ef81444e4ea906460fe49e0c0 Author: Rodney Bates Date: 2015-07-31 (Fri, 31 Jul 2015) Changed paths: M m3-libs/libunicode/src/UnsafeUniRd.m3 Log Message: ----------- Fix typo in UnsafeUniRd.m3. Changes to be committed: modified: m3-libs/libunicode/src/UnsafeUniRd.m3 Commit: 67b3bbaa038ae251757d26be8248f6e6d3615935 https://github.com/modula3/cm3/commit/67b3bbaa038ae251757d26be8248f6e6d3615935 Author: Rodney Bates Date: 2015-07-31 (Fri, 31 Jul 2015) Changed paths: M m3-libs/m3core/src/m3core.h Log Message: ----------- m3core.h was giving many compile failures compiling m3core and cm3. Just one line, #361, reverted. This made the failures go away. This may not be the right way to fix this. Changes to be committed: modified: m3-libs/m3core/src/m3core.h Compare: https://github.com/modula3/cm3/compare/4f232e33c91f...67b3bbaa038a From rodney.m.bates at acm.org Fri Jul 31 22:38:09 2015 From: rodney.m.bates at acm.org (Rodney Bates) Date: Fri, 31 Jul 2015 13:38:09 -0700 Subject: [M3commit] [modula3/cm3] 004d0f: Initial integration of llvm back end into cm3's bu... Message-ID: <55bbdcb12329c_5cbf3fb5f742b2a0990b@hookshot-fe5-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 004d0f687b912e65fb810dc6ca38917208beacd1 https://github.com/modula3/cm3/commit/004d0f687b912e65fb810dc6ca38917208beacd1 Author: Rodney Bates Date: 2015-07-31 (Fri, 31 Jul 2015) Changed paths: M m3-sys/cm3/src/Builder.m3 M m3-sys/cm3/src/M3Backend.m3 M m3-sys/cm3/src/M3Build.m3 M m3-sys/cm3/src/Makefile.m3 M m3-sys/cm3/src/m3makefile M m3-sys/cm3/src/version.quake M m3-sys/cminstall/src/config-no-install/Unix.common M m3-sys/m3middle/src/Target.i3 M m3-sys/m3middle/src/Target.m3 M m3-sys/m3quake/src/M3Path.i3 M m3-sys/m3quake/src/M3Path.m3 Log Message: ----------- Initial integration of llvm back end into cm3's build system. Add four new backend modes, the last four of: IntegratedObject, (* "0" -- don't call m3_backend, M3CG produces object code *) IntegratedAssembly, (* "1" -- don't call m3_backend, M3CG produces assembly code, run asm. *) ExternalObject, (* "2" -- call m3_backend, it produces object code *) ExternalAssembly, (* "3" -- call m3_backend, it produces assembly code, run asm *) C, (* "4" -- don't call m3_backend, call compile_c, M3CG produces C *) IntLlvmObj, (* "5" -- M3CG uses llvm to directly produce object code. *) IntLlvmAsm, (* "6" -- M3CG uses llvm to directly produce assembly code, run asm. *) ExtLlvmObj, (* "7" -- M3CG produces llvm bitcode. call compile_llvm. It produces object code. *) ExtLlvmAsm (* "8" -- M3CG produces llvm bitcode. call compile_llvm. It produces assembly code, run asm. *) m3_backend is a quake script that runs the gcc-derived back end. compile_c is a quake script that runs a C compiler, usually gcc. compile_llvm is a quake script that calls an llvm IR compiler, currently llc. All of these new modes expect a M3CG.T that directly produces llvm IR, assembly code, or object code. Even for llvm IR, such a code generator would probably need to link in major portions of llvm code. That is very large and very slow to compile. Right now, there is a do-nothing M3CG.T found in m3-sys/cm3/cm3/src/llvmdummy Changes to be committed: modified: m3-sys/cm3/src/Builder.m3 modified: m3-sys/cm3/src/M3Backend.m3 modified: m3-sys/cm3/src/M3Build.m3 modified: m3-sys/cm3/src/Makefile.m3 modified: m3-sys/cm3/src/m3makefile modified: m3-sys/cm3/src/version.quake modified: m3-sys/cminstall/src/config-no-install/Unix.common modified: m3-sys/m3middle/src/Target.i3 modified: m3-sys/m3middle/src/Target.m3 modified: m3-sys/m3quake/src/M3Path.i3 modified: m3-sys/m3quake/src/M3Path.m3 Commit: 9ac6ecd619179882ed37988526008defc0b3d054 https://github.com/modula3/cm3/commit/9ac6ecd619179882ed37988526008defc0b3d054 Author: Rodney Bates Date: 2015-07-31 (Fri, 31 Jul 2015) Changed paths: A m3-sys/cm3/src/llvmdummy/LLGen.i3 A m3-sys/cm3/src/llvmdummy/LLGen.m3 A m3-sys/cm3/src/llvmdummy/README A m3-sys/cm3/src/llvmdummy/m3makefile Log Message: ----------- Initial integration of llvm back end into cm3's build system. (2nd try) (* The parent of this commit belongs with this one.) This should not affect anyone, without extra effor. Changes to be committed: new file: m3-sys/cm3/src/llvmdummy/LLGen.i3 new file: m3-sys/cm3/src/llvmdummy/LLGen.m3 new file: m3-sys/cm3/src/llvmdummy/README new file: m3-sys/cm3/src/llvmdummy/m3makefile Add four new backend modes, the last four of: IntegratedObject, (* "0" -- don't call m3_backend, M3CG produces object code *) IntegratedAssembly, (* "1" -- don't call m3_backend, M3CG produces assembly code, run asm. *) ExternalObject, (* "2" -- call m3_backend, it produces object code *) ExternalAssembly, (* "3" -- call m3_backend, it produces assembly code, run asm *) C, (* "4" -- don't call m3_backend, call compile_c, M3CG produces C *) IntLlvmObj, (* "5" -- M3CG uses llvm to directly produce object code. *) IntLlvmAsm, (* "6" -- M3CG uses llvm to directly produce assembly code, run asm. *) ExtLlvmObj, (* "7" -- M3CG produces llvm bitcode. call compile_llvm. It produces object code. *) ExtLlvmAsm (* "8" -- M3CG produces llvm bitcode. call compile_llvm. It produces assembly code, run asm. *) m3_backend is a quake script that runs the gcc-derived back end. compile_c is a quake script that runs a C compiler, usually gcc. compile_llvm is a quake script that calls an llvm IR compiler, currently llc. All of these new modes expect a M3CG.T that directly produces llvm IR, assembly code, or object code. Even for llvm IR, such a code generator would probably need to link in major portions of llvm code. That is very large and very slow to compile. Right now, there is a do-nothing M3CG.T found in m3-sys/cm3/src/llvmdummy, which has no need to link in any of llvm. See m3-sys/cm3/src/m3makefile. This change does not add a mode for emitting cm3 IR and running a separate executable to take it into llvm, which is the form of llvm backend we have now. Compare: https://github.com/modula3/cm3/compare/67b3bbaa038a...9ac6ecd61917 From rodney.m.bates at acm.org Fri Jul 17 22:53:26 2015 From: rodney.m.bates at acm.org (Rodney Bates) Date: Fri, 17 Jul 2015 13:53:26 -0700 Subject: [M3commit] [modula3/cm3] 79a67a: Implement UnGetCodePoint and several things entail... Message-ID: <55a96b4636dac_54f3f9c7aabf29c6593@hookshot-fe2-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 79a67a27a680096f54d98a276bdf2508cbd6c1d6 https://github.com/modula3/cm3/commit/79a67a27a680096f54d98a276bdf2508cbd6c1d6 Author: Rodney Bates Date: 2015-07-17 (Fri, 17 Jul 2015) Changed paths: M m3-libs/libm3/src/rw/Rd.i3 M m3-libs/libm3/src/rw/Rd.m3 M m3-libs/libunicode/src/UniRd.i3 M m3-libs/libunicode/src/UniRd.m3 M m3-libs/libunicode/src/UniRdClass.i3 M m3-libs/libunicode/src/UnsafeUniRd.i3 M m3-libs/libunicode/src/UnsafeUniRd.m3 M m3-libs/libunicode/tests/ungetmulti/src/TestRd.m3 M m3-libs/libunicode/tests/unird/src/TestUniRd.m3 Log Message: ----------- Implement UnGetCodePoint and several things entailed thereby. Changes to be committed: (relative to m3-libs/libm3/src/rw) modified: Rd.i3 modified: Rd.m3 modified: ../../../libunicode/src/UniRd.i3 modified: ../../../libunicode/src/UniRd.m3 modified: ../../../libunicode/src/UniRdClass.i3 modified: ../../../libunicode/src/UnsafeUniRd.i3 modified: ../../../libunicode/src/UnsafeUniRd.m3 modified: ../../../libunicode/tests/ungetmulti/src/TestRd.m3 modified: ../../../libunicode/tests/unird/src/TestUniRd.m3 Implement UniRd.UnGetCodePoint. This required: Substantially reworking lots of procedures in UnsafeUniRd. Formerly, these handled ungetting of CR and LF code points by keeping state variables in the UniRd.T. This was implemented before Rd.UnGetMulti existed. This would have gotten a lot messier with UnGetCodePoint. Now, all ungetting of code points is implemented using ungetting of single CHARs. This also makes for somewhat sane semantics of mixing gets/ungets to the unicode stream (UniRd.T) with those to the source CHAR stream, (Rd.T), as well as seeks, if you dare, and don't exceed the maximum unget CHAR count. Changing Rd.UnGetMulti to accept a new parameter (UnGetCount) giving the numbef of chars to unget. Although the above could have been done-without, it would have been pretty awkward to execute up to 8 successive calls on UnGetMulti. The new parameter is defaulted to 1, so existing calls will compile/run without change. However, a number of existing calls in the distribution are changed to supply the 1 explicitly, for clarity. Updating test programs TestRd.m3 and TestUniRd.m3, to test some of the new behavour. From jay.krell at cornell.edu Sat Jul 18 11:02:34 2015 From: jay.krell at cornell.edu (Jay Krell) Date: Sat, 18 Jul 2015 02:02:34 -0700 Subject: [M3commit] [modula3/cm3] 869ec1: slightly reduce critical section in rare path Message-ID: <55aa162a42717_4e0d3fbc32daf2b895237@hookshot-fe4-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 869ec182a399f04a288afd3fee2567bdf9dd340e https://github.com/modula3/cm3/commit/869ec182a399f04a288afd3fee2567bdf9dd340e Author: Jay Krell Date: 2015-06-22 (Mon, 22 Jun 2015) Changed paths: M m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3 Log Message: ----------- slightly reduce critical section in rare path Commit: 4c90dc4b625e7533e4a7cc26cc3840a7480b4091 https://github.com/modula3/cm3/commit/4c90dc4b625e7533e4a7cc26cc3840a7480b4091 Author: Jay Krell Date: 2015-06-23 (Tue, 23 Jun 2015) Changed paths: M m3-sys/m3front/src/misc/Marker.m3 Log Message: ----------- Merge branch 'master' of github.com:modula3/cm3 remove parens on if expressions likely written by me in C style Commit: 59c2715996ea36c64d556b13c2e357b005da2075 https://github.com/modula3/cm3/commit/59c2715996ea36c64d556b13c2e357b005da2075 Author: Jay Krell Date: 2015-06-23 (Tue, 23 Jun 2015) Changed paths: M m3-db/mysql/src/MySQL.i3 M m3-db/mysql/src/MySQL.m3 M m3-db/mysql/src/MySQLRaw.i3 M m3-db/mysql/src/MySQLRaw.m3 M m3-db/mysql/src/class/MySQLMaps.i3 M m3-db/mysql/src/class/MySQLMaps.m3 M m3-db/mysql/swig/mysql.i M m3-db/mysql/swig/mysqlapi.i M m3-db/mysql/swig/mysqlmaps.i M m3-db/mysql/swig/mysqltypes.i M m3-db/mysql/test/src/Main.m3 M m3-libs/libm3/src/rw/Rd.i3 M m3-libs/libm3/src/rw/Rd.m3 M m3-libs/libunicode/src/UniRd.i3 M m3-libs/libunicode/src/UniRd.m3 M m3-libs/libunicode/src/UniRdClass.i3 M m3-libs/libunicode/src/UnsafeUniRd.i3 M m3-libs/libunicode/src/UnsafeUniRd.m3 M m3-libs/libunicode/tests/ungetmulti/src/TestRd.m3 M m3-libs/libunicode/tests/unird/src/TestUniRd.m3 M m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3 Log Message: ----------- eerge branch 'master' of github.com:modula3/cm3 pull from master Compare: https://github.com/modula3/cm3/compare/79a67a27a680...59c2715996ea From jay.krell at cornell.edu Sat Jul 18 11:27:40 2015 From: jay.krell at cornell.edu (Jay Krell) Date: Sat, 18 Jul 2015 02:27:40 -0700 Subject: [M3commit] [modula3/cm3] 384ae9: remove incorrect declaration of FastUnGetCharMulti Message-ID: <55aa1c0c24704_5f553f9a76bd52b83878b@hookshot-fe6-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 384ae951b177bdc48504a7e0d2fffa16bdd4401e https://github.com/modula3/cm3/commit/384ae951b177bdc48504a7e0d2fffa16bdd4401e Author: Jay Krell Date: 2015-07-18 (Sat, 18 Jul 2015) Changed paths: M m3-libs/libm3/src/rw/UnsafeRd.i3 Log Message: ----------- remove incorrect declaration of FastUnGetCharMulti From jay.krell at cornell.edu Sat Jul 18 13:00:40 2015 From: jay.krell at cornell.edu (Jay Krell) Date: Sat, 18 Jul 2015 04:00:40 -0700 Subject: [M3commit] [modula3/cm3] a8ac6f: Test to show if each TRY costs a frame, or if each... Message-ID: <55aa31d823882_361e3ffa72f7d29c6255b@hookshot-fe1-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: a8ac6f927221aefa8d9705e077b30cec731959da https://github.com/modula3/cm3/commit/a8ac6f927221aefa8d9705e077b30cec731959da Author: Jay Krell Date: 2015-07-18 (Sat, 18 Jul 2015) Changed paths: A m3-sys/m3tests/src/p2/p259/Main.m3 A m3-sys/m3tests/src/p2/p259/m3makefile Log Message: ----------- Test to show if each TRY costs a frame, or if each function with any number of TRYs has one frame; the answer is that each TRY costs a frame -- expensive. From rodney.m.bates at acm.org Sat Jul 18 16:55:36 2015 From: rodney.m.bates at acm.org (Rodney Bates) Date: Sat, 18 Jul 2015 07:55:36 -0700 Subject: [M3commit] [modula3/cm3] 4d96a4: Supply UnsafeRd.i3, missing from commit 79a67a27a6... Message-ID: <55aa68e8ebc6e_1e353f9471b9f2b8184ef@hookshot-fe5-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 4d96a4afe87f5810cab204dc6a2e70139d844f78 https://github.com/modula3/cm3/commit/4d96a4afe87f5810cab204dc6a2e70139d844f78 Author: Rodney Bates Date: 2015-07-18 (Sat, 18 Jul 2015) Changed paths: M m3-libs/libm3/src/rw/UnsafeRd.i3 Log Message: ----------- Supply UnsafeRd.i3, missing from commit 79a67a27a680096f54d98a276bdf2508cbd6c1d6 Changes to be committed: modified: UnsafeRd.i3 From rodney.m.bates at acm.org Sat Jul 18 17:03:10 2015 From: rodney.m.bates at acm.org (Rodney Bates) Date: Sat, 18 Jul 2015 08:03:10 -0700 Subject: [M3commit] [modula3/cm3] 16a860: Reinstate temporarily disabled TestGetWideSubLine. Message-ID: <55aa6aae9817c_1c963fbd4f25b2b87447b@hookshot-fe5-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 16a8606c90326f23497675012b4089dacd969be7 https://github.com/modula3/cm3/commit/16a8606c90326f23497675012b4089dacd969be7 Author: Rodney Bates Date: 2015-07-18 (Sat, 18 Jul 2015) Changed paths: M m3-libs/libunicode/tests/unird/src/TestUniRd.m3 Log Message: ----------- Reinstate temporarily disabled TestGetWideSubLine. Changes to be committed: modified: TestUniRd.m3 From jay.krell at cornell.edu Sun Jul 19 11:31:23 2015 From: jay.krell at cornell.edu (Jay Krell) Date: Sun, 19 Jul 2015 02:31:23 -0700 Subject: [M3commit] [modula3/cm3] 22288f: 1) prepare for alloca suppport Message-ID: <55ab6e6b52cbb_3dfa3fa4a21a92b879437@hookshot-fe2-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 22288fb93dab6b12ae19ca5747b1933289299871 https://github.com/modula3/cm3/commit/22288fb93dab6b12ae19ca5747b1933289299871 Author: Jay Krell Date: 2015-07-19 (Sun, 19 Jul 2015) Changed paths: M m3-sys/m3back/src/M3C.m3 Log Message: ----------- 1) prepare for alloca suppport 2) remove unnecessary #include -- we only need size_t for Win32 alloca, the frontend issues typedefs for WORD_T and INTEGER (though really I'd like to reverse this eventually and have the frontend not know INTEGER/WORD/pointer size) Commit: d94cde0abefda01e3f78abdd0809ee335b85dd1a https://github.com/modula3/cm3/commit/d94cde0abefda01e3f78abdd0809ee335b85dd1a Author: Jay Krell Date: 2015-07-19 (Sun, 19 Jul 2015) Changed paths: M m3-libs/libm3/src/rw/UnsafeRd.i3 M m3-libs/libunicode/tests/unird/src/TestUniRd.m3 Log Message: ----------- Merge branch 'master' of github.com:modula3/cm3 pull from master Compare: https://github.com/modula3/cm3/compare/16a8606c9032...d94cde0abefd From jay.krell at cornell.edu Sun Jul 19 11:32:33 2015 From: jay.krell at cornell.edu (Jay Krell) Date: Sun, 19 Jul 2015 02:32:33 -0700 Subject: [M3commit] [modula3/cm3] 902dc7: remove one errant pound sign Message-ID: <55ab6eb15c31_72a13f99ac87f2a0948e3@hookshot-fe5-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 902dc7f1dc70afd13bb1c61f84dbe181efa46b73 https://github.com/modula3/cm3/commit/902dc7f1dc70afd13bb1c61f84dbe181efa46b73 Author: Jay Krell Date: 2015-07-19 (Sun, 19 Jul 2015) Changed paths: M m3-sys/m3back/src/M3C.m3 Log Message: ----------- remove one errant pound sign From rodney.m.bates at acm.org Tue Jul 21 18:14:43 2015 From: rodney.m.bates at acm.org (Rodney Bates) Date: Tue, 21 Jul 2015 09:14:43 -0700 Subject: [M3commit] [modula3/cm3] 961ec4: Add record of current test output, for future comp... Message-ID: <55ae6ff34849e_6e8f3fa2fb1312c053694@hookshot-fe1-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 961ec4fb76ac8658a6b1ed4dd2e7416633bcd5f8 https://github.com/modula3/cm3/commit/961ec4fb76ac8658a6b1ed4dd2e7416633bcd5f8 Author: Rodney Bates Date: 2015-07-18 (Sat, 18 Jul 2015) Changed paths: A m3-libs/libunicode/tests/unird/README Log Message: ----------- Add record of current test output, for future comparison. Changes to be committed: new file: m3-libs/libunicode/tests/unird/README Commit: a857b5c1caa5917a4754280d324edd82540b06fa https://github.com/modula3/cm3/commit/a857b5c1caa5917a4754280d324edd82540b06fa Author: Rodney Bates Date: 2015-07-21 (Tue, 21 Jul 2015) Changed paths: M m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3 A m3-libs/m3core/src/thread/PTHREAD/ThreadPThread0.m3 M m3-libs/m3core/src/thread/PTHREAD/m3makefile Log Message: ----------- O(1) FIFO wakeup of waiters on both Mutexs and Conditions. Formerly, Mutex wakeup was FIFO but used an O(n) per wakeup algorithm, while Condition wakeup was LIFO but O(1). Make both cases FIFO and O(1) by using one-way, circularly linked lists, with the origin pointer pointing to the list tail. No change in object types needed. This showed slight reductions in number of "appears starved or deadlocked" messages in the thread test at m3-libs/m3core/tests/thread, for a few combinations of thread count and iteration count. Total runtime variations were in the noise. In some cases, 4-core CPU utilizations appeared slightly higher in a visual graph. Also documented non-obvious dynamically-changing rule about what mutex protects two fields in an Activation. Since this is both fragile and potentially high-stakes, the old version of ThreadPThread.m3 is now committed in m3-libs/m3core/src/thread/PTHREAD/ThreadPThread0.m3, for quicker reversion, should bugs appear. Look in the m3makefile for quick comment in/out to revert. You will probably have to clean, compile (to link), and ship all involved libraries and your main program. Changes to be committed: modified: thread/PTHREAD/ThreadPThread.m3 new file: thread/PTHREAD/ThreadPThread0.m3 modified: thread/PTHREAD/m3makefile Commit: 3ab68ebfb6b08b6972883db5c127ee5eb79eaa14 https://github.com/modula3/cm3/commit/3ab68ebfb6b08b6972883db5c127ee5eb79eaa14 Author: Rodney Bates Date: 2015-07-21 (Tue, 21 Jul 2015) Changed paths: M m3-sys/m3back/src/M3C.m3 Log Message: ----------- Merge branch 'master' of https://github.com/modula3/cm3 Compare: https://github.com/modula3/cm3/compare/902dc7f1dc70...3ab68ebfb6b0 From jay.krell at cornell.edu Wed Jul 22 03:55:27 2015 From: jay.krell at cornell.edu (Jay Krell) Date: Tue, 21 Jul 2015 18:55:27 -0700 Subject: [M3commit] [modula3/cm3] 8eef76: - alloca support work in progress Message-ID: <55aef80f7e780_78ec3faf364592bc826be@hookshot-fe3-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 8eef76cf5898317cc51dabb3dca7f748d3fa48f2 https://github.com/modula3/cm3/commit/8eef76cf5898317cc51dabb3dca7f748d3fa48f2 Author: Jay Krell Date: 2015-07-20 (Mon, 20 Jul 2015) Changed paths: M m3-sys/m3back/src/M3x86.m3 M m3-sys/m3middle/src/Target.i3 M m3-sys/m3middle/src/Target.m3 Log Message: ----------- - alloca support work in progress - fewer linear searches and string compares related to calling conventions (perhaps should use an enumeration here instead of integers) Commit: 3129c090bd15a1ac0a0da3992a965fa2eddf65f6 https://github.com/modula3/cm3/commit/3129c090bd15a1ac0a0da3992a965fa2eddf65f6 Author: Jay Krell Date: 2015-07-20 (Mon, 20 Jul 2015) Changed paths: M m3-sys/m3middle/src/Target.m3 Log Message: ----------- remove unused code Commit: 2a0b6e40b44c2be3cc6829cd4e319520f5d63811 https://github.com/modula3/cm3/commit/2a0b6e40b44c2be3cc6829cd4e319520f5d63811 Author: Jay Krell Date: 2015-07-20 (Mon, 20 Jul 2015) Changed paths: M m3-sys/m3back/src/M3C.m3 Log Message: ----------- restore size_t typedef for memcmp etc. Commit: 8f33683e2ac799f97ee7b56eacb6837a2626f9c4 https://github.com/modula3/cm3/commit/8f33683e2ac799f97ee7b56eacb6837a2626f9c4 Author: Jay Krell Date: 2015-07-21 (Tue, 21 Jul 2015) Changed paths: A m3-libs/libunicode/tests/unird/README M m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3 A m3-libs/m3core/src/thread/PTHREAD/ThreadPThread0.m3 M m3-libs/m3core/src/thread/PTHREAD/m3makefile Log Message: ----------- Merge branch 'master' of github.com:modula3/cm3 pull Compare: https://github.com/modula3/cm3/compare/3ab68ebfb6b0...8f33683e2ac7 From jay.krell at cornell.edu Wed Jul 22 06:27:34 2015 From: jay.krell at cornell.edu (Jay Krell) Date: Tue, 21 Jul 2015 21:27:34 -0700 Subject: [M3commit] [modula3/cm3] 93f3ed: no need for "signed" -- gratuitous K&R incompatibi... Message-ID: <55af1bb6e9d07_700e3feef2f6d29c97257@hookshot-fe3-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 93f3ed9ff0687685f8c8c0f3e34cbf662f21d74c https://github.com/modula3/cm3/commit/93f3ed9ff0687685f8c8c0f3e34cbf662f21d74c Author: Jay Krell Date: 2015-07-21 (Tue, 21 Jul 2015) Changed paths: M m3-libs/m3core/src/m3core.h Log Message: ----------- no need for "signed" -- gratuitous K&R incompatibility except for char (TODO) typedef INTEGER for __LP64__ and _LP64 Commit: 8a56c694775779f184ac291a3a9b9c48e504b1f7 https://github.com/modula3/cm3/commit/8a56c694775779f184ac291a3a9b9c48e504b1f7 Author: Jay Krell Date: 2015-07-21 (Tue, 21 Jul 2015) Changed paths: M m3-sys/m3back/src/M3C.m3 Log Message: ----------- get size_t efficiently (and still reliably) for gcc and clang add clarifying comments Compare: https://github.com/modula3/cm3/compare/8f33683e2ac7...8a56c6947757 From jay.krell at cornell.edu Thu Jul 23 02:03:56 2015 From: jay.krell at cornell.edu (Jay Krell) Date: Wed, 22 Jul 2015 17:03:56 -0700 Subject: [M3commit] [modula3/cm3] 35bf8e: test case for open array stuff -- there is a bug h... Message-ID: <55b02f6cd0d29_7c583f90bcb7b2b81149d2@hookshot-fe1-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 35bf8eed0349574e14ff11679843fbbcbe3c6848 https://github.com/modula3/cm3/commit/35bf8eed0349574e14ff11679843fbbcbe3c6848 Author: Jay Krell Date: 2015-07-22 (Wed, 22 Jul 2015) Changed paths: A m3-sys/m3tests/src/p2/p260/Main.m3 A m3-sys/m3tests/src/p2/p260/m3makefile Log Message: ----------- test case for open array stuff -- there is a bug here it seems ,at least in the C backend, for subarrays Commit: 478a4eb3805a6b1d97f109277cb2d1649f2d7c0d https://github.com/modula3/cm3/commit/478a4eb3805a6b1d97f109277cb2d1649f2d7c0d Author: Jay Krell Date: 2015-07-22 (Wed, 22 Jul 2015) Changed paths: M m3-sys/m3tests/src/p2/p260/Main.m3 Log Message: ----------- extend open array test Commit: 791f6e3cd25d69d34a6353e8629ac8922e4ba72c https://github.com/modula3/cm3/commit/791f6e3cd25d69d34a6353e8629ac8922e4ba72c Author: Jay Krell Date: 2015-07-22 (Wed, 22 Jul 2015) Changed paths: M m3-sys/m3tests/src/p2/p260/Main.m3 Log Message: ----------- fix test case -- subarray second number is a count not a terminal index, the test code was wrong Commit: 6fea513ac87ffef059270c3163b9c11d2f5998ea https://github.com/modula3/cm3/commit/6fea513ac87ffef059270c3163b9c11d2f5998ea Author: Jay Krell Date: 2015-07-22 (Wed, 22 Jul 2015) Changed paths: M m3-sys/m3back/src/M3C.m3 Log Message: ----------- some work on open arrays and pointer typedefs and cleanup open arrays need work in m3front Commit: 0fc168d8c4c54df60d264160a324f152925a4b02 https://github.com/modula3/cm3/commit/0fc168d8c4c54df60d264160a324f152925a4b02 Author: Jay Krell Date: 2015-07-22 (Wed, 22 Jul 2015) Changed paths: M m3-sys/m3back/src/M3C.m3 Log Message: ----------- cleanup and comments, more todo here Compare: https://github.com/modula3/cm3/compare/8a56c6947757...0fc168d8c4c5 From rodney.m.bates at acm.org Wed Jul 29 22:47:11 2015 From: rodney.m.bates at acm.org (Rodney Bates) Date: Wed, 29 Jul 2015 13:47:11 -0700 Subject: [M3commit] [modula3/cm3] 4f232e: Lots of new bindings in package llvmbindings -- un... Message-ID: <55b93bcfada30_514a3faf8390929c398c@hookshot-fe3-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 4f232e33c91f71c8f6bc603d319c8e7e24ae86ec https://github.com/modula3/cm3/commit/4f232e33c91f71c8f6bc603d319c8e7e24ae86ec Author: Rodney Bates Date: 2015-07-29 (Wed, 29 Jul 2015) Changed paths: M m3-sys/llvmbindings/src/LLVM.i3 A m3-sys/llvmbindings/src/LLVMTypes.i3 A m3-sys/llvmbindings/src/M3DIBuilder.cpp A m3-sys/llvmbindings/src/M3DIBuilder.h A m3-sys/llvmbindings/src/M3DIBuilder.i3 M m3-sys/llvmbindings/src/M3Extras.cpp M m3-sys/llvmbindings/src/M3Extras.h M m3-sys/llvmbindings/src/Makefile M m3-sys/llvmbindings/src/README M m3-sys/llvmbindings/src/m3makefile Log Message: ----------- Lots of new bindings in package llvmbindings -- untested. Gather bits and pieces of several existing bindings to llvm in one Modula-3 package. Add a complete binding to DIBuilder, updated to llvm 3.6.1. Unless you are developing the llvm-derived backend, you should have no need to build this package. The C/C++ parts have been built sucessfully with gcc 4.8.1 and clang 3.4.2. As committed, Makefile is set to call gcc. These bindings have to be linked to a compiled llvm infrastructure of the appropriate version. This takes *hours* to build. (If you thought compiling the gcc-derived back end was slow compared to compiling Modula-3 code, you ain't seen nothin'.) It is premature to require all Modula-3 users to do this, either as separate steps or with a copy of llvm copied into the M3 distribution. So for now, the m3makefile has some hard-coded references to llvm things. You will surely have to edit these to build this package, after having built llvm. See comments in m3makefile. Between a bug in cm3's import_obj from the build directory and lack of support running C++ in the cm3 build system, it was necessary to build the C/C++ components in the src directory, despite their being target-dependent. Fix this someday. See README for more information. Changes to be committed: (use "git reset HEAD ..." to unstage) modified: LLVM.i3 new file: LLVMTypes.i3 new file: M3DIBuilder.cpp new file: M3DIBuilder.h new file: M3DIBuilder.i3 modified: M3Extras.cpp modified: M3Extras.h modified: Makefile modified: README modified: m3makefile From rodney.m.bates at acm.org Fri Jul 31 22:05:21 2015 From: rodney.m.bates at acm.org (Rodney Bates) Date: Fri, 31 Jul 2015 13:05:21 -0700 Subject: [M3commit] [modula3/cm3] 1087b2: Fix typo in UnsafeUniRd.m3. Message-ID: <55bbd501476fc_36613f9784f712b8419f3@hookshot-fe4-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 1087b266a5d5498ef81444e4ea906460fe49e0c0 https://github.com/modula3/cm3/commit/1087b266a5d5498ef81444e4ea906460fe49e0c0 Author: Rodney Bates Date: 2015-07-31 (Fri, 31 Jul 2015) Changed paths: M m3-libs/libunicode/src/UnsafeUniRd.m3 Log Message: ----------- Fix typo in UnsafeUniRd.m3. Changes to be committed: modified: m3-libs/libunicode/src/UnsafeUniRd.m3 Commit: 67b3bbaa038ae251757d26be8248f6e6d3615935 https://github.com/modula3/cm3/commit/67b3bbaa038ae251757d26be8248f6e6d3615935 Author: Rodney Bates Date: 2015-07-31 (Fri, 31 Jul 2015) Changed paths: M m3-libs/m3core/src/m3core.h Log Message: ----------- m3core.h was giving many compile failures compiling m3core and cm3. Just one line, #361, reverted. This made the failures go away. This may not be the right way to fix this. Changes to be committed: modified: m3-libs/m3core/src/m3core.h Compare: https://github.com/modula3/cm3/compare/4f232e33c91f...67b3bbaa038a From rodney.m.bates at acm.org Fri Jul 31 22:38:09 2015 From: rodney.m.bates at acm.org (Rodney Bates) Date: Fri, 31 Jul 2015 13:38:09 -0700 Subject: [M3commit] [modula3/cm3] 004d0f: Initial integration of llvm back end into cm3's bu... Message-ID: <55bbdcb12329c_5cbf3fb5f742b2a0990b@hookshot-fe5-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 004d0f687b912e65fb810dc6ca38917208beacd1 https://github.com/modula3/cm3/commit/004d0f687b912e65fb810dc6ca38917208beacd1 Author: Rodney Bates Date: 2015-07-31 (Fri, 31 Jul 2015) Changed paths: M m3-sys/cm3/src/Builder.m3 M m3-sys/cm3/src/M3Backend.m3 M m3-sys/cm3/src/M3Build.m3 M m3-sys/cm3/src/Makefile.m3 M m3-sys/cm3/src/m3makefile M m3-sys/cm3/src/version.quake M m3-sys/cminstall/src/config-no-install/Unix.common M m3-sys/m3middle/src/Target.i3 M m3-sys/m3middle/src/Target.m3 M m3-sys/m3quake/src/M3Path.i3 M m3-sys/m3quake/src/M3Path.m3 Log Message: ----------- Initial integration of llvm back end into cm3's build system. Add four new backend modes, the last four of: IntegratedObject, (* "0" -- don't call m3_backend, M3CG produces object code *) IntegratedAssembly, (* "1" -- don't call m3_backend, M3CG produces assembly code, run asm. *) ExternalObject, (* "2" -- call m3_backend, it produces object code *) ExternalAssembly, (* "3" -- call m3_backend, it produces assembly code, run asm *) C, (* "4" -- don't call m3_backend, call compile_c, M3CG produces C *) IntLlvmObj, (* "5" -- M3CG uses llvm to directly produce object code. *) IntLlvmAsm, (* "6" -- M3CG uses llvm to directly produce assembly code, run asm. *) ExtLlvmObj, (* "7" -- M3CG produces llvm bitcode. call compile_llvm. It produces object code. *) ExtLlvmAsm (* "8" -- M3CG produces llvm bitcode. call compile_llvm. It produces assembly code, run asm. *) m3_backend is a quake script that runs the gcc-derived back end. compile_c is a quake script that runs a C compiler, usually gcc. compile_llvm is a quake script that calls an llvm IR compiler, currently llc. All of these new modes expect a M3CG.T that directly produces llvm IR, assembly code, or object code. Even for llvm IR, such a code generator would probably need to link in major portions of llvm code. That is very large and very slow to compile. Right now, there is a do-nothing M3CG.T found in m3-sys/cm3/cm3/src/llvmdummy Changes to be committed: modified: m3-sys/cm3/src/Builder.m3 modified: m3-sys/cm3/src/M3Backend.m3 modified: m3-sys/cm3/src/M3Build.m3 modified: m3-sys/cm3/src/Makefile.m3 modified: m3-sys/cm3/src/m3makefile modified: m3-sys/cm3/src/version.quake modified: m3-sys/cminstall/src/config-no-install/Unix.common modified: m3-sys/m3middle/src/Target.i3 modified: m3-sys/m3middle/src/Target.m3 modified: m3-sys/m3quake/src/M3Path.i3 modified: m3-sys/m3quake/src/M3Path.m3 Commit: 9ac6ecd619179882ed37988526008defc0b3d054 https://github.com/modula3/cm3/commit/9ac6ecd619179882ed37988526008defc0b3d054 Author: Rodney Bates Date: 2015-07-31 (Fri, 31 Jul 2015) Changed paths: A m3-sys/cm3/src/llvmdummy/LLGen.i3 A m3-sys/cm3/src/llvmdummy/LLGen.m3 A m3-sys/cm3/src/llvmdummy/README A m3-sys/cm3/src/llvmdummy/m3makefile Log Message: ----------- Initial integration of llvm back end into cm3's build system. (2nd try) (* The parent of this commit belongs with this one.) This should not affect anyone, without extra effor. Changes to be committed: new file: m3-sys/cm3/src/llvmdummy/LLGen.i3 new file: m3-sys/cm3/src/llvmdummy/LLGen.m3 new file: m3-sys/cm3/src/llvmdummy/README new file: m3-sys/cm3/src/llvmdummy/m3makefile Add four new backend modes, the last four of: IntegratedObject, (* "0" -- don't call m3_backend, M3CG produces object code *) IntegratedAssembly, (* "1" -- don't call m3_backend, M3CG produces assembly code, run asm. *) ExternalObject, (* "2" -- call m3_backend, it produces object code *) ExternalAssembly, (* "3" -- call m3_backend, it produces assembly code, run asm *) C, (* "4" -- don't call m3_backend, call compile_c, M3CG produces C *) IntLlvmObj, (* "5" -- M3CG uses llvm to directly produce object code. *) IntLlvmAsm, (* "6" -- M3CG uses llvm to directly produce assembly code, run asm. *) ExtLlvmObj, (* "7" -- M3CG produces llvm bitcode. call compile_llvm. It produces object code. *) ExtLlvmAsm (* "8" -- M3CG produces llvm bitcode. call compile_llvm. It produces assembly code, run asm. *) m3_backend is a quake script that runs the gcc-derived back end. compile_c is a quake script that runs a C compiler, usually gcc. compile_llvm is a quake script that calls an llvm IR compiler, currently llc. All of these new modes expect a M3CG.T that directly produces llvm IR, assembly code, or object code. Even for llvm IR, such a code generator would probably need to link in major portions of llvm code. That is very large and very slow to compile. Right now, there is a do-nothing M3CG.T found in m3-sys/cm3/src/llvmdummy, which has no need to link in any of llvm. See m3-sys/cm3/src/m3makefile. This change does not add a mode for emitting cm3 IR and running a separate executable to take it into llvm, which is the form of llvm backend we have now. Compare: https://github.com/modula3/cm3/compare/67b3bbaa038a...9ac6ecd61917 From rodney.m.bates at acm.org Fri Jul 17 22:53:26 2015 From: rodney.m.bates at acm.org (Rodney Bates) Date: Fri, 17 Jul 2015 13:53:26 -0700 Subject: [M3commit] [modula3/cm3] 79a67a: Implement UnGetCodePoint and several things entail... Message-ID: <55a96b4636dac_54f3f9c7aabf29c6593@hookshot-fe2-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 79a67a27a680096f54d98a276bdf2508cbd6c1d6 https://github.com/modula3/cm3/commit/79a67a27a680096f54d98a276bdf2508cbd6c1d6 Author: Rodney Bates Date: 2015-07-17 (Fri, 17 Jul 2015) Changed paths: M m3-libs/libm3/src/rw/Rd.i3 M m3-libs/libm3/src/rw/Rd.m3 M m3-libs/libunicode/src/UniRd.i3 M m3-libs/libunicode/src/UniRd.m3 M m3-libs/libunicode/src/UniRdClass.i3 M m3-libs/libunicode/src/UnsafeUniRd.i3 M m3-libs/libunicode/src/UnsafeUniRd.m3 M m3-libs/libunicode/tests/ungetmulti/src/TestRd.m3 M m3-libs/libunicode/tests/unird/src/TestUniRd.m3 Log Message: ----------- Implement UnGetCodePoint and several things entailed thereby. Changes to be committed: (relative to m3-libs/libm3/src/rw) modified: Rd.i3 modified: Rd.m3 modified: ../../../libunicode/src/UniRd.i3 modified: ../../../libunicode/src/UniRd.m3 modified: ../../../libunicode/src/UniRdClass.i3 modified: ../../../libunicode/src/UnsafeUniRd.i3 modified: ../../../libunicode/src/UnsafeUniRd.m3 modified: ../../../libunicode/tests/ungetmulti/src/TestRd.m3 modified: ../../../libunicode/tests/unird/src/TestUniRd.m3 Implement UniRd.UnGetCodePoint. This required: Substantially reworking lots of procedures in UnsafeUniRd. Formerly, these handled ungetting of CR and LF code points by keeping state variables in the UniRd.T. This was implemented before Rd.UnGetMulti existed. This would have gotten a lot messier with UnGetCodePoint. Now, all ungetting of code points is implemented using ungetting of single CHARs. This also makes for somewhat sane semantics of mixing gets/ungets to the unicode stream (UniRd.T) with those to the source CHAR stream, (Rd.T), as well as seeks, if you dare, and don't exceed the maximum unget CHAR count. Changing Rd.UnGetMulti to accept a new parameter (UnGetCount) giving the numbef of chars to unget. Although the above could have been done-without, it would have been pretty awkward to execute up to 8 successive calls on UnGetMulti. The new parameter is defaulted to 1, so existing calls will compile/run without change. However, a number of existing calls in the distribution are changed to supply the 1 explicitly, for clarity. Updating test programs TestRd.m3 and TestUniRd.m3, to test some of the new behavour. From jay.krell at cornell.edu Sat Jul 18 11:02:34 2015 From: jay.krell at cornell.edu (Jay Krell) Date: Sat, 18 Jul 2015 02:02:34 -0700 Subject: [M3commit] [modula3/cm3] 869ec1: slightly reduce critical section in rare path Message-ID: <55aa162a42717_4e0d3fbc32daf2b895237@hookshot-fe4-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 869ec182a399f04a288afd3fee2567bdf9dd340e https://github.com/modula3/cm3/commit/869ec182a399f04a288afd3fee2567bdf9dd340e Author: Jay Krell Date: 2015-06-22 (Mon, 22 Jun 2015) Changed paths: M m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3 Log Message: ----------- slightly reduce critical section in rare path Commit: 4c90dc4b625e7533e4a7cc26cc3840a7480b4091 https://github.com/modula3/cm3/commit/4c90dc4b625e7533e4a7cc26cc3840a7480b4091 Author: Jay Krell Date: 2015-06-23 (Tue, 23 Jun 2015) Changed paths: M m3-sys/m3front/src/misc/Marker.m3 Log Message: ----------- Merge branch 'master' of github.com:modula3/cm3 remove parens on if expressions likely written by me in C style Commit: 59c2715996ea36c64d556b13c2e357b005da2075 https://github.com/modula3/cm3/commit/59c2715996ea36c64d556b13c2e357b005da2075 Author: Jay Krell Date: 2015-06-23 (Tue, 23 Jun 2015) Changed paths: M m3-db/mysql/src/MySQL.i3 M m3-db/mysql/src/MySQL.m3 M m3-db/mysql/src/MySQLRaw.i3 M m3-db/mysql/src/MySQLRaw.m3 M m3-db/mysql/src/class/MySQLMaps.i3 M m3-db/mysql/src/class/MySQLMaps.m3 M m3-db/mysql/swig/mysql.i M m3-db/mysql/swig/mysqlapi.i M m3-db/mysql/swig/mysqlmaps.i M m3-db/mysql/swig/mysqltypes.i M m3-db/mysql/test/src/Main.m3 M m3-libs/libm3/src/rw/Rd.i3 M m3-libs/libm3/src/rw/Rd.m3 M m3-libs/libunicode/src/UniRd.i3 M m3-libs/libunicode/src/UniRd.m3 M m3-libs/libunicode/src/UniRdClass.i3 M m3-libs/libunicode/src/UnsafeUniRd.i3 M m3-libs/libunicode/src/UnsafeUniRd.m3 M m3-libs/libunicode/tests/ungetmulti/src/TestRd.m3 M m3-libs/libunicode/tests/unird/src/TestUniRd.m3 M m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3 Log Message: ----------- eerge branch 'master' of github.com:modula3/cm3 pull from master Compare: https://github.com/modula3/cm3/compare/79a67a27a680...59c2715996ea From jay.krell at cornell.edu Sat Jul 18 11:27:40 2015 From: jay.krell at cornell.edu (Jay Krell) Date: Sat, 18 Jul 2015 02:27:40 -0700 Subject: [M3commit] [modula3/cm3] 384ae9: remove incorrect declaration of FastUnGetCharMulti Message-ID: <55aa1c0c24704_5f553f9a76bd52b83878b@hookshot-fe6-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 384ae951b177bdc48504a7e0d2fffa16bdd4401e https://github.com/modula3/cm3/commit/384ae951b177bdc48504a7e0d2fffa16bdd4401e Author: Jay Krell Date: 2015-07-18 (Sat, 18 Jul 2015) Changed paths: M m3-libs/libm3/src/rw/UnsafeRd.i3 Log Message: ----------- remove incorrect declaration of FastUnGetCharMulti From jay.krell at cornell.edu Sat Jul 18 13:00:40 2015 From: jay.krell at cornell.edu (Jay Krell) Date: Sat, 18 Jul 2015 04:00:40 -0700 Subject: [M3commit] [modula3/cm3] a8ac6f: Test to show if each TRY costs a frame, or if each... Message-ID: <55aa31d823882_361e3ffa72f7d29c6255b@hookshot-fe1-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: a8ac6f927221aefa8d9705e077b30cec731959da https://github.com/modula3/cm3/commit/a8ac6f927221aefa8d9705e077b30cec731959da Author: Jay Krell Date: 2015-07-18 (Sat, 18 Jul 2015) Changed paths: A m3-sys/m3tests/src/p2/p259/Main.m3 A m3-sys/m3tests/src/p2/p259/m3makefile Log Message: ----------- Test to show if each TRY costs a frame, or if each function with any number of TRYs has one frame; the answer is that each TRY costs a frame -- expensive. From rodney.m.bates at acm.org Sat Jul 18 16:55:36 2015 From: rodney.m.bates at acm.org (Rodney Bates) Date: Sat, 18 Jul 2015 07:55:36 -0700 Subject: [M3commit] [modula3/cm3] 4d96a4: Supply UnsafeRd.i3, missing from commit 79a67a27a6... Message-ID: <55aa68e8ebc6e_1e353f9471b9f2b8184ef@hookshot-fe5-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 4d96a4afe87f5810cab204dc6a2e70139d844f78 https://github.com/modula3/cm3/commit/4d96a4afe87f5810cab204dc6a2e70139d844f78 Author: Rodney Bates Date: 2015-07-18 (Sat, 18 Jul 2015) Changed paths: M m3-libs/libm3/src/rw/UnsafeRd.i3 Log Message: ----------- Supply UnsafeRd.i3, missing from commit 79a67a27a680096f54d98a276bdf2508cbd6c1d6 Changes to be committed: modified: UnsafeRd.i3 From rodney.m.bates at acm.org Sat Jul 18 17:03:10 2015 From: rodney.m.bates at acm.org (Rodney Bates) Date: Sat, 18 Jul 2015 08:03:10 -0700 Subject: [M3commit] [modula3/cm3] 16a860: Reinstate temporarily disabled TestGetWideSubLine. Message-ID: <55aa6aae9817c_1c963fbd4f25b2b87447b@hookshot-fe5-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 16a8606c90326f23497675012b4089dacd969be7 https://github.com/modula3/cm3/commit/16a8606c90326f23497675012b4089dacd969be7 Author: Rodney Bates Date: 2015-07-18 (Sat, 18 Jul 2015) Changed paths: M m3-libs/libunicode/tests/unird/src/TestUniRd.m3 Log Message: ----------- Reinstate temporarily disabled TestGetWideSubLine. Changes to be committed: modified: TestUniRd.m3 From jay.krell at cornell.edu Sun Jul 19 11:31:23 2015 From: jay.krell at cornell.edu (Jay Krell) Date: Sun, 19 Jul 2015 02:31:23 -0700 Subject: [M3commit] [modula3/cm3] 22288f: 1) prepare for alloca suppport Message-ID: <55ab6e6b52cbb_3dfa3fa4a21a92b879437@hookshot-fe2-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 22288fb93dab6b12ae19ca5747b1933289299871 https://github.com/modula3/cm3/commit/22288fb93dab6b12ae19ca5747b1933289299871 Author: Jay Krell Date: 2015-07-19 (Sun, 19 Jul 2015) Changed paths: M m3-sys/m3back/src/M3C.m3 Log Message: ----------- 1) prepare for alloca suppport 2) remove unnecessary #include -- we only need size_t for Win32 alloca, the frontend issues typedefs for WORD_T and INTEGER (though really I'd like to reverse this eventually and have the frontend not know INTEGER/WORD/pointer size) Commit: d94cde0abefda01e3f78abdd0809ee335b85dd1a https://github.com/modula3/cm3/commit/d94cde0abefda01e3f78abdd0809ee335b85dd1a Author: Jay Krell Date: 2015-07-19 (Sun, 19 Jul 2015) Changed paths: M m3-libs/libm3/src/rw/UnsafeRd.i3 M m3-libs/libunicode/tests/unird/src/TestUniRd.m3 Log Message: ----------- Merge branch 'master' of github.com:modula3/cm3 pull from master Compare: https://github.com/modula3/cm3/compare/16a8606c9032...d94cde0abefd From jay.krell at cornell.edu Sun Jul 19 11:32:33 2015 From: jay.krell at cornell.edu (Jay Krell) Date: Sun, 19 Jul 2015 02:32:33 -0700 Subject: [M3commit] [modula3/cm3] 902dc7: remove one errant pound sign Message-ID: <55ab6eb15c31_72a13f99ac87f2a0948e3@hookshot-fe5-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 902dc7f1dc70afd13bb1c61f84dbe181efa46b73 https://github.com/modula3/cm3/commit/902dc7f1dc70afd13bb1c61f84dbe181efa46b73 Author: Jay Krell Date: 2015-07-19 (Sun, 19 Jul 2015) Changed paths: M m3-sys/m3back/src/M3C.m3 Log Message: ----------- remove one errant pound sign From rodney.m.bates at acm.org Tue Jul 21 18:14:43 2015 From: rodney.m.bates at acm.org (Rodney Bates) Date: Tue, 21 Jul 2015 09:14:43 -0700 Subject: [M3commit] [modula3/cm3] 961ec4: Add record of current test output, for future comp... Message-ID: <55ae6ff34849e_6e8f3fa2fb1312c053694@hookshot-fe1-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 961ec4fb76ac8658a6b1ed4dd2e7416633bcd5f8 https://github.com/modula3/cm3/commit/961ec4fb76ac8658a6b1ed4dd2e7416633bcd5f8 Author: Rodney Bates Date: 2015-07-18 (Sat, 18 Jul 2015) Changed paths: A m3-libs/libunicode/tests/unird/README Log Message: ----------- Add record of current test output, for future comparison. Changes to be committed: new file: m3-libs/libunicode/tests/unird/README Commit: a857b5c1caa5917a4754280d324edd82540b06fa https://github.com/modula3/cm3/commit/a857b5c1caa5917a4754280d324edd82540b06fa Author: Rodney Bates Date: 2015-07-21 (Tue, 21 Jul 2015) Changed paths: M m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3 A m3-libs/m3core/src/thread/PTHREAD/ThreadPThread0.m3 M m3-libs/m3core/src/thread/PTHREAD/m3makefile Log Message: ----------- O(1) FIFO wakeup of waiters on both Mutexs and Conditions. Formerly, Mutex wakeup was FIFO but used an O(n) per wakeup algorithm, while Condition wakeup was LIFO but O(1). Make both cases FIFO and O(1) by using one-way, circularly linked lists, with the origin pointer pointing to the list tail. No change in object types needed. This showed slight reductions in number of "appears starved or deadlocked" messages in the thread test at m3-libs/m3core/tests/thread, for a few combinations of thread count and iteration count. Total runtime variations were in the noise. In some cases, 4-core CPU utilizations appeared slightly higher in a visual graph. Also documented non-obvious dynamically-changing rule about what mutex protects two fields in an Activation. Since this is both fragile and potentially high-stakes, the old version of ThreadPThread.m3 is now committed in m3-libs/m3core/src/thread/PTHREAD/ThreadPThread0.m3, for quicker reversion, should bugs appear. Look in the m3makefile for quick comment in/out to revert. You will probably have to clean, compile (to link), and ship all involved libraries and your main program. Changes to be committed: modified: thread/PTHREAD/ThreadPThread.m3 new file: thread/PTHREAD/ThreadPThread0.m3 modified: thread/PTHREAD/m3makefile Commit: 3ab68ebfb6b08b6972883db5c127ee5eb79eaa14 https://github.com/modula3/cm3/commit/3ab68ebfb6b08b6972883db5c127ee5eb79eaa14 Author: Rodney Bates Date: 2015-07-21 (Tue, 21 Jul 2015) Changed paths: M m3-sys/m3back/src/M3C.m3 Log Message: ----------- Merge branch 'master' of https://github.com/modula3/cm3 Compare: https://github.com/modula3/cm3/compare/902dc7f1dc70...3ab68ebfb6b0 From jay.krell at cornell.edu Wed Jul 22 03:55:27 2015 From: jay.krell at cornell.edu (Jay Krell) Date: Tue, 21 Jul 2015 18:55:27 -0700 Subject: [M3commit] [modula3/cm3] 8eef76: - alloca support work in progress Message-ID: <55aef80f7e780_78ec3faf364592bc826be@hookshot-fe3-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 8eef76cf5898317cc51dabb3dca7f748d3fa48f2 https://github.com/modula3/cm3/commit/8eef76cf5898317cc51dabb3dca7f748d3fa48f2 Author: Jay Krell Date: 2015-07-20 (Mon, 20 Jul 2015) Changed paths: M m3-sys/m3back/src/M3x86.m3 M m3-sys/m3middle/src/Target.i3 M m3-sys/m3middle/src/Target.m3 Log Message: ----------- - alloca support work in progress - fewer linear searches and string compares related to calling conventions (perhaps should use an enumeration here instead of integers) Commit: 3129c090bd15a1ac0a0da3992a965fa2eddf65f6 https://github.com/modula3/cm3/commit/3129c090bd15a1ac0a0da3992a965fa2eddf65f6 Author: Jay Krell Date: 2015-07-20 (Mon, 20 Jul 2015) Changed paths: M m3-sys/m3middle/src/Target.m3 Log Message: ----------- remove unused code Commit: 2a0b6e40b44c2be3cc6829cd4e319520f5d63811 https://github.com/modula3/cm3/commit/2a0b6e40b44c2be3cc6829cd4e319520f5d63811 Author: Jay Krell Date: 2015-07-20 (Mon, 20 Jul 2015) Changed paths: M m3-sys/m3back/src/M3C.m3 Log Message: ----------- restore size_t typedef for memcmp etc. Commit: 8f33683e2ac799f97ee7b56eacb6837a2626f9c4 https://github.com/modula3/cm3/commit/8f33683e2ac799f97ee7b56eacb6837a2626f9c4 Author: Jay Krell Date: 2015-07-21 (Tue, 21 Jul 2015) Changed paths: A m3-libs/libunicode/tests/unird/README M m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3 A m3-libs/m3core/src/thread/PTHREAD/ThreadPThread0.m3 M m3-libs/m3core/src/thread/PTHREAD/m3makefile Log Message: ----------- Merge branch 'master' of github.com:modula3/cm3 pull Compare: https://github.com/modula3/cm3/compare/3ab68ebfb6b0...8f33683e2ac7 From jay.krell at cornell.edu Wed Jul 22 06:27:34 2015 From: jay.krell at cornell.edu (Jay Krell) Date: Tue, 21 Jul 2015 21:27:34 -0700 Subject: [M3commit] [modula3/cm3] 93f3ed: no need for "signed" -- gratuitous K&R incompatibi... Message-ID: <55af1bb6e9d07_700e3feef2f6d29c97257@hookshot-fe3-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 93f3ed9ff0687685f8c8c0f3e34cbf662f21d74c https://github.com/modula3/cm3/commit/93f3ed9ff0687685f8c8c0f3e34cbf662f21d74c Author: Jay Krell Date: 2015-07-21 (Tue, 21 Jul 2015) Changed paths: M m3-libs/m3core/src/m3core.h Log Message: ----------- no need for "signed" -- gratuitous K&R incompatibility except for char (TODO) typedef INTEGER for __LP64__ and _LP64 Commit: 8a56c694775779f184ac291a3a9b9c48e504b1f7 https://github.com/modula3/cm3/commit/8a56c694775779f184ac291a3a9b9c48e504b1f7 Author: Jay Krell Date: 2015-07-21 (Tue, 21 Jul 2015) Changed paths: M m3-sys/m3back/src/M3C.m3 Log Message: ----------- get size_t efficiently (and still reliably) for gcc and clang add clarifying comments Compare: https://github.com/modula3/cm3/compare/8f33683e2ac7...8a56c6947757 From jay.krell at cornell.edu Thu Jul 23 02:03:56 2015 From: jay.krell at cornell.edu (Jay Krell) Date: Wed, 22 Jul 2015 17:03:56 -0700 Subject: [M3commit] [modula3/cm3] 35bf8e: test case for open array stuff -- there is a bug h... Message-ID: <55b02f6cd0d29_7c583f90bcb7b2b81149d2@hookshot-fe1-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 35bf8eed0349574e14ff11679843fbbcbe3c6848 https://github.com/modula3/cm3/commit/35bf8eed0349574e14ff11679843fbbcbe3c6848 Author: Jay Krell Date: 2015-07-22 (Wed, 22 Jul 2015) Changed paths: A m3-sys/m3tests/src/p2/p260/Main.m3 A m3-sys/m3tests/src/p2/p260/m3makefile Log Message: ----------- test case for open array stuff -- there is a bug here it seems ,at least in the C backend, for subarrays Commit: 478a4eb3805a6b1d97f109277cb2d1649f2d7c0d https://github.com/modula3/cm3/commit/478a4eb3805a6b1d97f109277cb2d1649f2d7c0d Author: Jay Krell Date: 2015-07-22 (Wed, 22 Jul 2015) Changed paths: M m3-sys/m3tests/src/p2/p260/Main.m3 Log Message: ----------- extend open array test Commit: 791f6e3cd25d69d34a6353e8629ac8922e4ba72c https://github.com/modula3/cm3/commit/791f6e3cd25d69d34a6353e8629ac8922e4ba72c Author: Jay Krell Date: 2015-07-22 (Wed, 22 Jul 2015) Changed paths: M m3-sys/m3tests/src/p2/p260/Main.m3 Log Message: ----------- fix test case -- subarray second number is a count not a terminal index, the test code was wrong Commit: 6fea513ac87ffef059270c3163b9c11d2f5998ea https://github.com/modula3/cm3/commit/6fea513ac87ffef059270c3163b9c11d2f5998ea Author: Jay Krell Date: 2015-07-22 (Wed, 22 Jul 2015) Changed paths: M m3-sys/m3back/src/M3C.m3 Log Message: ----------- some work on open arrays and pointer typedefs and cleanup open arrays need work in m3front Commit: 0fc168d8c4c54df60d264160a324f152925a4b02 https://github.com/modula3/cm3/commit/0fc168d8c4c54df60d264160a324f152925a4b02 Author: Jay Krell Date: 2015-07-22 (Wed, 22 Jul 2015) Changed paths: M m3-sys/m3back/src/M3C.m3 Log Message: ----------- cleanup and comments, more todo here Compare: https://github.com/modula3/cm3/compare/8a56c6947757...0fc168d8c4c5 From rodney.m.bates at acm.org Wed Jul 29 22:47:11 2015 From: rodney.m.bates at acm.org (Rodney Bates) Date: Wed, 29 Jul 2015 13:47:11 -0700 Subject: [M3commit] [modula3/cm3] 4f232e: Lots of new bindings in package llvmbindings -- un... Message-ID: <55b93bcfada30_514a3faf8390929c398c@hookshot-fe3-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 4f232e33c91f71c8f6bc603d319c8e7e24ae86ec https://github.com/modula3/cm3/commit/4f232e33c91f71c8f6bc603d319c8e7e24ae86ec Author: Rodney Bates Date: 2015-07-29 (Wed, 29 Jul 2015) Changed paths: M m3-sys/llvmbindings/src/LLVM.i3 A m3-sys/llvmbindings/src/LLVMTypes.i3 A m3-sys/llvmbindings/src/M3DIBuilder.cpp A m3-sys/llvmbindings/src/M3DIBuilder.h A m3-sys/llvmbindings/src/M3DIBuilder.i3 M m3-sys/llvmbindings/src/M3Extras.cpp M m3-sys/llvmbindings/src/M3Extras.h M m3-sys/llvmbindings/src/Makefile M m3-sys/llvmbindings/src/README M m3-sys/llvmbindings/src/m3makefile Log Message: ----------- Lots of new bindings in package llvmbindings -- untested. Gather bits and pieces of several existing bindings to llvm in one Modula-3 package. Add a complete binding to DIBuilder, updated to llvm 3.6.1. Unless you are developing the llvm-derived backend, you should have no need to build this package. The C/C++ parts have been built sucessfully with gcc 4.8.1 and clang 3.4.2. As committed, Makefile is set to call gcc. These bindings have to be linked to a compiled llvm infrastructure of the appropriate version. This takes *hours* to build. (If you thought compiling the gcc-derived back end was slow compared to compiling Modula-3 code, you ain't seen nothin'.) It is premature to require all Modula-3 users to do this, either as separate steps or with a copy of llvm copied into the M3 distribution. So for now, the m3makefile has some hard-coded references to llvm things. You will surely have to edit these to build this package, after having built llvm. See comments in m3makefile. Between a bug in cm3's import_obj from the build directory and lack of support running C++ in the cm3 build system, it was necessary to build the C/C++ components in the src directory, despite their being target-dependent. Fix this someday. See README for more information. Changes to be committed: (use "git reset HEAD ..." to unstage) modified: LLVM.i3 new file: LLVMTypes.i3 new file: M3DIBuilder.cpp new file: M3DIBuilder.h new file: M3DIBuilder.i3 modified: M3Extras.cpp modified: M3Extras.h modified: Makefile modified: README modified: m3makefile From rodney.m.bates at acm.org Fri Jul 31 22:05:21 2015 From: rodney.m.bates at acm.org (Rodney Bates) Date: Fri, 31 Jul 2015 13:05:21 -0700 Subject: [M3commit] [modula3/cm3] 1087b2: Fix typo in UnsafeUniRd.m3. Message-ID: <55bbd501476fc_36613f9784f712b8419f3@hookshot-fe4-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 1087b266a5d5498ef81444e4ea906460fe49e0c0 https://github.com/modula3/cm3/commit/1087b266a5d5498ef81444e4ea906460fe49e0c0 Author: Rodney Bates Date: 2015-07-31 (Fri, 31 Jul 2015) Changed paths: M m3-libs/libunicode/src/UnsafeUniRd.m3 Log Message: ----------- Fix typo in UnsafeUniRd.m3. Changes to be committed: modified: m3-libs/libunicode/src/UnsafeUniRd.m3 Commit: 67b3bbaa038ae251757d26be8248f6e6d3615935 https://github.com/modula3/cm3/commit/67b3bbaa038ae251757d26be8248f6e6d3615935 Author: Rodney Bates Date: 2015-07-31 (Fri, 31 Jul 2015) Changed paths: M m3-libs/m3core/src/m3core.h Log Message: ----------- m3core.h was giving many compile failures compiling m3core and cm3. Just one line, #361, reverted. This made the failures go away. This may not be the right way to fix this. Changes to be committed: modified: m3-libs/m3core/src/m3core.h Compare: https://github.com/modula3/cm3/compare/4f232e33c91f...67b3bbaa038a From rodney.m.bates at acm.org Fri Jul 31 22:38:09 2015 From: rodney.m.bates at acm.org (Rodney Bates) Date: Fri, 31 Jul 2015 13:38:09 -0700 Subject: [M3commit] [modula3/cm3] 004d0f: Initial integration of llvm back end into cm3's bu... Message-ID: <55bbdcb12329c_5cbf3fb5f742b2a0990b@hookshot-fe5-cp1-prd.iad.github.net.mail> Branch: refs/heads/master Home: https://github.com/modula3/cm3 Commit: 004d0f687b912e65fb810dc6ca38917208beacd1 https://github.com/modula3/cm3/commit/004d0f687b912e65fb810dc6ca38917208beacd1 Author: Rodney Bates Date: 2015-07-31 (Fri, 31 Jul 2015) Changed paths: M m3-sys/cm3/src/Builder.m3 M m3-sys/cm3/src/M3Backend.m3 M m3-sys/cm3/src/M3Build.m3 M m3-sys/cm3/src/Makefile.m3 M m3-sys/cm3/src/m3makefile M m3-sys/cm3/src/version.quake M m3-sys/cminstall/src/config-no-install/Unix.common M m3-sys/m3middle/src/Target.i3 M m3-sys/m3middle/src/Target.m3 M m3-sys/m3quake/src/M3Path.i3 M m3-sys/m3quake/src/M3Path.m3 Log Message: ----------- Initial integration of llvm back end into cm3's build system. Add four new backend modes, the last four of: IntegratedObject, (* "0" -- don't call m3_backend, M3CG produces object code *) IntegratedAssembly, (* "1" -- don't call m3_backend, M3CG produces assembly code, run asm. *) ExternalObject, (* "2" -- call m3_backend, it produces object code *) ExternalAssembly, (* "3" -- call m3_backend, it produces assembly code, run asm *) C, (* "4" -- don't call m3_backend, call compile_c, M3CG produces C *) IntLlvmObj, (* "5" -- M3CG uses llvm to directly produce object code. *) IntLlvmAsm, (* "6" -- M3CG uses llvm to directly produce assembly code, run asm. *) ExtLlvmObj, (* "7" -- M3CG produces llvm bitcode. call compile_llvm. It produces object code. *) ExtLlvmAsm (* "8" -- M3CG produces llvm bitcode. call compile_llvm. It produces assembly code, run asm. *) m3_backend is a quake script that runs the gcc-derived back end. compile_c is a quake script that runs a C compiler, usually gcc. compile_llvm is a quake script that calls an llvm IR compiler, currently llc. All of these new modes expect a M3CG.T that directly produces llvm IR, assembly code, or object code. Even for llvm IR, such a code generator would probably need to link in major portions of llvm code. That is very large and very slow to compile. Right now, there is a do-nothing M3CG.T found in m3-sys/cm3/cm3/src/llvmdummy Changes to be committed: modified: m3-sys/cm3/src/Builder.m3 modified: m3-sys/cm3/src/M3Backend.m3 modified: m3-sys/cm3/src/M3Build.m3 modified: m3-sys/cm3/src/Makefile.m3 modified: m3-sys/cm3/src/m3makefile modified: m3-sys/cm3/src/version.quake modified: m3-sys/cminstall/src/config-no-install/Unix.common modified: m3-sys/m3middle/src/Target.i3 modified: m3-sys/m3middle/src/Target.m3 modified: m3-sys/m3quake/src/M3Path.i3 modified: m3-sys/m3quake/src/M3Path.m3 Commit: 9ac6ecd619179882ed37988526008defc0b3d054 https://github.com/modula3/cm3/commit/9ac6ecd619179882ed37988526008defc0b3d054 Author: Rodney Bates Date: 2015-07-31 (Fri, 31 Jul 2015) Changed paths: A m3-sys/cm3/src/llvmdummy/LLGen.i3 A m3-sys/cm3/src/llvmdummy/LLGen.m3 A m3-sys/cm3/src/llvmdummy/README A m3-sys/cm3/src/llvmdummy/m3makefile Log Message: ----------- Initial integration of llvm back end into cm3's build system. (2nd try) (* The parent of this commit belongs with this one.) This should not affect anyone, without extra effor. Changes to be committed: new file: m3-sys/cm3/src/llvmdummy/LLGen.i3 new file: m3-sys/cm3/src/llvmdummy/LLGen.m3 new file: m3-sys/cm3/src/llvmdummy/README new file: m3-sys/cm3/src/llvmdummy/m3makefile Add four new backend modes, the last four of: IntegratedObject, (* "0" -- don't call m3_backend, M3CG produces object code *) IntegratedAssembly, (* "1" -- don't call m3_backend, M3CG produces assembly code, run asm. *) ExternalObject, (* "2" -- call m3_backend, it produces object code *) ExternalAssembly, (* "3" -- call m3_backend, it produces assembly code, run asm *) C, (* "4" -- don't call m3_backend, call compile_c, M3CG produces C *) IntLlvmObj, (* "5" -- M3CG uses llvm to directly produce object code. *) IntLlvmAsm, (* "6" -- M3CG uses llvm to directly produce assembly code, run asm. *) ExtLlvmObj, (* "7" -- M3CG produces llvm bitcode. call compile_llvm. It produces object code. *) ExtLlvmAsm (* "8" -- M3CG produces llvm bitcode. call compile_llvm. It produces assembly code, run asm. *) m3_backend is a quake script that runs the gcc-derived back end. compile_c is a quake script that runs a C compiler, usually gcc. compile_llvm is a quake script that calls an llvm IR compiler, currently llc. All of these new modes expect a M3CG.T that directly produces llvm IR, assembly code, or object code. Even for llvm IR, such a code generator would probably need to link in major portions of llvm code. That is very large and very slow to compile. Right now, there is a do-nothing M3CG.T found in m3-sys/cm3/src/llvmdummy, which has no need to link in any of llvm. See m3-sys/cm3/src/m3makefile. This change does not add a mode for emitting cm3 IR and running a separate executable to take it into llvm, which is the form of llvm backend we have now. Compare: https://github.com/modula3/cm3/compare/67b3bbaa038a...9ac6ecd61917