From peter.mckinna at gmail.com Fri Feb 26 04:46:32 2016 From: peter.mckinna at gmail.com (Peter McKinna) Date: Fri, 26 Feb 2016 14:46:32 +1100 Subject: [M3devel] Another Word bug Message-ID: Compiling this snippet with the typo & instead of , PROCEDURE T() = VAR j : INTEGER; BEGIN j := Word.And(1 & 3); END T; gives "../src/Test.m3", line 7: illegal operand(s) for '&' *** *** runtime error: *** An array subscript was out of range. *** file "../AMD64_LINUX/WordAnd.m3 => ../src/builtinWord/And.mg", line 44 *** Aborted (core dumped) Anyone?? -------------- next part -------------- An HTML attachment was scrubbed... URL: From rodney_bates at lcwb.coop Fri Feb 26 18:38:31 2016 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Fri, 26 Feb 2016 11:38:31 -0600 Subject: [M3devel] Another Word bug In-Reply-To: References: Message-ID: <56D08D97.5060001@lcwb.coop> Fixed in fa9293a on github. On 02/25/2016 09:46 PM, Peter McKinna wrote: > Compiling this snippet with the typo & instead of , > > PROCEDURE T() = > VAR j : INTEGER; > BEGIN > j := Word.And(1 & 3); > END T; > > gives > > "../src/Test.m3", line 7: illegal operand(s) for '&' > > > *** > *** runtime error: > *** An array subscript was out of range. > *** file "../AMD64_LINUX/WordAnd.m3 => ../src/builtinWord/And.mg", line 44 > *** > > Aborted (core dumped) > > A -- Rodney Bates rodney.m.bates at acm.org From jay.krell at cornell.edu Sun Feb 28 23:39:15 2016 From: jay.krell at cornell.edu (Jay K) Date: Sun, 28 Feb 2016 22:39:15 +0000 Subject: [M3devel] cm3 linking to Visual C++ runtime In-Reply-To: References: , , , Message-ID: For a very long time, to link the Visual C++ C runtime library, you linked to one of: libcmt.lib -- static C runtime msvcrt.lib -- import library for dynamic C runtime, and static startup code libcmtD.lib - debug static C runtime msvcrtD.lib -- import library for debug dynamic C runtime, and static startup code This changes with Visual C++ 14/2015. The C runtime has been split into three pieces. I believe you have to link to three libraries. msvcrt.lib ucrt.lib vcruntime.lib OR: libcmt.lib libucrt.lib libvcruntime.lib Part of the rationale here is to actually slow down the rate of change. Previously, the entire C runtime was revised with every release. Now, a large chunk of it has been moved out into the "operating system" and will remain compatible with all toolsets. That is the "ucrt" part. U is for universal. "makefile breakage" is unfortunate. I'm not sure what to do in the config files, to automatically work with anything. Perhaps remove the /nodefaultlib. /nodefaultlib has a lot of precedent in multiple systems, but so does not using it. For now, please adjust your config files. Probably removing /nodefaultlib is the right thing. A long time ago, there were cm3 releases set to use the non-thread-safe C runtime. /nodefaultlib was needed to workaround that. The non-thread-safe C runtime has not now existed for a while. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Feb 28 23:46:49 2016 From: jay.krell at cornell.edu (Jay K) Date: Sun, 28 Feb 2016 22:46:49 +0000 Subject: [M3devel] cm3 linking to Visual C++ runtime In-Reply-To: References: , , , , , , , Message-ID: Sorry, I forgot, I already did this: NT.common: if USE_MSVCRT SYSTEM_LIBS{"LIBC"} += [LibIn("msvcrt")] if equal ($CM3_VS2015_OR_NEWER, "1") SYSTEM_LIBS{"LIBC"} += [LibIn("vcruntime")] SYSTEM_LIBS{"LIBC"} += [LibIn("ucrt")] end else SYSTEM_LIBS{"LIBC"} += [LibIn("libcmt")] if equal ($CM3_VS2015_OR_NEWER, "1") SYSTEM_LIBS{"LIBC"} += [LibIn("libvcruntime")] SYSTEM_LIBS{"LIBC"} += [LibIn("libucrt")] end end so: set CM3_VS2015_OR_NEWER=1 in your environment. Easy enough? I'm not sure. - Jay From: jay.krell at cornell.edu To: dmuysers at hotmail.com; m3devel at elegosoft.com Date: Sun, 28 Feb 2016 22:39:15 +0000 Subject: [M3devel] cm3 linking to Visual C++ runtime For a very long time, to link the Visual C++ C runtime library, you linked to one of: libcmt.lib -- static C runtime msvcrt.lib -- import library for dynamic C runtime, and static startup code libcmtD.lib - debug static C runtime msvcrtD.lib -- import library for debug dynamic C runtime, and static startup code This changes with Visual C++ 14/2015. The C runtime has been split into three pieces. I believe you have to link to three libraries. msvcrt.lib ucrt.lib vcruntime.lib OR: libcmt.lib libucrt.lib libvcruntime.lib Part of the rationale here is to actually slow down the rate of change. Previously, the entire C runtime was revised with every release. Now, a large chunk of it has been moved out into the "operating system" and will remain compatible with all toolsets. That is the "ucrt" part. U is for universal. "makefile breakage" is unfortunate. I'm not sure what to do in the config files, to automatically work with anything. Perhaps remove the /nodefaultlib. /nodefaultlib has a lot of precedent in multiple systems, but so does not using it. For now, please adjust your config files. Probably removing /nodefaultlib is the right thing. A long time ago, there were cm3 releases set to use the non-thread-safe C runtime. /nodefaultlib was needed to workaround that. The non-thread-safe C runtime has not now existed for a while. - Jay _______________________________________________ M3devel mailing list M3devel at elegosoft.com https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel -------------- next part -------------- An HTML attachment was scrubbed... URL: From peter.mckinna at gmail.com Fri Feb 26 04:46:32 2016 From: peter.mckinna at gmail.com (Peter McKinna) Date: Fri, 26 Feb 2016 14:46:32 +1100 Subject: [M3devel] Another Word bug Message-ID: Compiling this snippet with the typo & instead of , PROCEDURE T() = VAR j : INTEGER; BEGIN j := Word.And(1 & 3); END T; gives "../src/Test.m3", line 7: illegal operand(s) for '&' *** *** runtime error: *** An array subscript was out of range. *** file "../AMD64_LINUX/WordAnd.m3 => ../src/builtinWord/And.mg", line 44 *** Aborted (core dumped) Anyone?? -------------- next part -------------- An HTML attachment was scrubbed... URL: From rodney_bates at lcwb.coop Fri Feb 26 18:38:31 2016 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Fri, 26 Feb 2016 11:38:31 -0600 Subject: [M3devel] Another Word bug In-Reply-To: References: Message-ID: <56D08D97.5060001@lcwb.coop> Fixed in fa9293a on github. On 02/25/2016 09:46 PM, Peter McKinna wrote: > Compiling this snippet with the typo & instead of , > > PROCEDURE T() = > VAR j : INTEGER; > BEGIN > j := Word.And(1 & 3); > END T; > > gives > > "../src/Test.m3", line 7: illegal operand(s) for '&' > > > *** > *** runtime error: > *** An array subscript was out of range. > *** file "../AMD64_LINUX/WordAnd.m3 => ../src/builtinWord/And.mg", line 44 > *** > > Aborted (core dumped) > > A -- Rodney Bates rodney.m.bates at acm.org From jay.krell at cornell.edu Sun Feb 28 23:39:15 2016 From: jay.krell at cornell.edu (Jay K) Date: Sun, 28 Feb 2016 22:39:15 +0000 Subject: [M3devel] cm3 linking to Visual C++ runtime In-Reply-To: References: , , , Message-ID: For a very long time, to link the Visual C++ C runtime library, you linked to one of: libcmt.lib -- static C runtime msvcrt.lib -- import library for dynamic C runtime, and static startup code libcmtD.lib - debug static C runtime msvcrtD.lib -- import library for debug dynamic C runtime, and static startup code This changes with Visual C++ 14/2015. The C runtime has been split into three pieces. I believe you have to link to three libraries. msvcrt.lib ucrt.lib vcruntime.lib OR: libcmt.lib libucrt.lib libvcruntime.lib Part of the rationale here is to actually slow down the rate of change. Previously, the entire C runtime was revised with every release. Now, a large chunk of it has been moved out into the "operating system" and will remain compatible with all toolsets. That is the "ucrt" part. U is for universal. "makefile breakage" is unfortunate. I'm not sure what to do in the config files, to automatically work with anything. Perhaps remove the /nodefaultlib. /nodefaultlib has a lot of precedent in multiple systems, but so does not using it. For now, please adjust your config files. Probably removing /nodefaultlib is the right thing. A long time ago, there were cm3 releases set to use the non-thread-safe C runtime. /nodefaultlib was needed to workaround that. The non-thread-safe C runtime has not now existed for a while. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Feb 28 23:46:49 2016 From: jay.krell at cornell.edu (Jay K) Date: Sun, 28 Feb 2016 22:46:49 +0000 Subject: [M3devel] cm3 linking to Visual C++ runtime In-Reply-To: References: , , , , , , , Message-ID: Sorry, I forgot, I already did this: NT.common: if USE_MSVCRT SYSTEM_LIBS{"LIBC"} += [LibIn("msvcrt")] if equal ($CM3_VS2015_OR_NEWER, "1") SYSTEM_LIBS{"LIBC"} += [LibIn("vcruntime")] SYSTEM_LIBS{"LIBC"} += [LibIn("ucrt")] end else SYSTEM_LIBS{"LIBC"} += [LibIn("libcmt")] if equal ($CM3_VS2015_OR_NEWER, "1") SYSTEM_LIBS{"LIBC"} += [LibIn("libvcruntime")] SYSTEM_LIBS{"LIBC"} += [LibIn("libucrt")] end end so: set CM3_VS2015_OR_NEWER=1 in your environment. Easy enough? I'm not sure. - Jay From: jay.krell at cornell.edu To: dmuysers at hotmail.com; m3devel at elegosoft.com Date: Sun, 28 Feb 2016 22:39:15 +0000 Subject: [M3devel] cm3 linking to Visual C++ runtime For a very long time, to link the Visual C++ C runtime library, you linked to one of: libcmt.lib -- static C runtime msvcrt.lib -- import library for dynamic C runtime, and static startup code libcmtD.lib - debug static C runtime msvcrtD.lib -- import library for debug dynamic C runtime, and static startup code This changes with Visual C++ 14/2015. The C runtime has been split into three pieces. I believe you have to link to three libraries. msvcrt.lib ucrt.lib vcruntime.lib OR: libcmt.lib libucrt.lib libvcruntime.lib Part of the rationale here is to actually slow down the rate of change. Previously, the entire C runtime was revised with every release. Now, a large chunk of it has been moved out into the "operating system" and will remain compatible with all toolsets. That is the "ucrt" part. U is for universal. "makefile breakage" is unfortunate. I'm not sure what to do in the config files, to automatically work with anything. Perhaps remove the /nodefaultlib. /nodefaultlib has a lot of precedent in multiple systems, but so does not using it. For now, please adjust your config files. Probably removing /nodefaultlib is the right thing. A long time ago, there were cm3 releases set to use the non-thread-safe C runtime. /nodefaultlib was needed to workaround that. The non-thread-safe C runtime has not now existed for a while. - Jay _______________________________________________ M3devel mailing list M3devel at elegosoft.com https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel -------------- next part -------------- An HTML attachment was scrubbed... URL: From peter.mckinna at gmail.com Fri Feb 26 04:46:32 2016 From: peter.mckinna at gmail.com (Peter McKinna) Date: Fri, 26 Feb 2016 14:46:32 +1100 Subject: [M3devel] Another Word bug Message-ID: Compiling this snippet with the typo & instead of , PROCEDURE T() = VAR j : INTEGER; BEGIN j := Word.And(1 & 3); END T; gives "../src/Test.m3", line 7: illegal operand(s) for '&' *** *** runtime error: *** An array subscript was out of range. *** file "../AMD64_LINUX/WordAnd.m3 => ../src/builtinWord/And.mg", line 44 *** Aborted (core dumped) Anyone?? -------------- next part -------------- An HTML attachment was scrubbed... URL: From rodney_bates at lcwb.coop Fri Feb 26 18:38:31 2016 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Fri, 26 Feb 2016 11:38:31 -0600 Subject: [M3devel] Another Word bug In-Reply-To: References: Message-ID: <56D08D97.5060001@lcwb.coop> Fixed in fa9293a on github. On 02/25/2016 09:46 PM, Peter McKinna wrote: > Compiling this snippet with the typo & instead of , > > PROCEDURE T() = > VAR j : INTEGER; > BEGIN > j := Word.And(1 & 3); > END T; > > gives > > "../src/Test.m3", line 7: illegal operand(s) for '&' > > > *** > *** runtime error: > *** An array subscript was out of range. > *** file "../AMD64_LINUX/WordAnd.m3 => ../src/builtinWord/And.mg", line 44 > *** > > Aborted (core dumped) > > A -- Rodney Bates rodney.m.bates at acm.org From jay.krell at cornell.edu Sun Feb 28 23:39:15 2016 From: jay.krell at cornell.edu (Jay K) Date: Sun, 28 Feb 2016 22:39:15 +0000 Subject: [M3devel] cm3 linking to Visual C++ runtime In-Reply-To: References: , , , Message-ID: For a very long time, to link the Visual C++ C runtime library, you linked to one of: libcmt.lib -- static C runtime msvcrt.lib -- import library for dynamic C runtime, and static startup code libcmtD.lib - debug static C runtime msvcrtD.lib -- import library for debug dynamic C runtime, and static startup code This changes with Visual C++ 14/2015. The C runtime has been split into three pieces. I believe you have to link to three libraries. msvcrt.lib ucrt.lib vcruntime.lib OR: libcmt.lib libucrt.lib libvcruntime.lib Part of the rationale here is to actually slow down the rate of change. Previously, the entire C runtime was revised with every release. Now, a large chunk of it has been moved out into the "operating system" and will remain compatible with all toolsets. That is the "ucrt" part. U is for universal. "makefile breakage" is unfortunate. I'm not sure what to do in the config files, to automatically work with anything. Perhaps remove the /nodefaultlib. /nodefaultlib has a lot of precedent in multiple systems, but so does not using it. For now, please adjust your config files. Probably removing /nodefaultlib is the right thing. A long time ago, there were cm3 releases set to use the non-thread-safe C runtime. /nodefaultlib was needed to workaround that. The non-thread-safe C runtime has not now existed for a while. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Feb 28 23:46:49 2016 From: jay.krell at cornell.edu (Jay K) Date: Sun, 28 Feb 2016 22:46:49 +0000 Subject: [M3devel] cm3 linking to Visual C++ runtime In-Reply-To: References: , , , , , , , Message-ID: Sorry, I forgot, I already did this: NT.common: if USE_MSVCRT SYSTEM_LIBS{"LIBC"} += [LibIn("msvcrt")] if equal ($CM3_VS2015_OR_NEWER, "1") SYSTEM_LIBS{"LIBC"} += [LibIn("vcruntime")] SYSTEM_LIBS{"LIBC"} += [LibIn("ucrt")] end else SYSTEM_LIBS{"LIBC"} += [LibIn("libcmt")] if equal ($CM3_VS2015_OR_NEWER, "1") SYSTEM_LIBS{"LIBC"} += [LibIn("libvcruntime")] SYSTEM_LIBS{"LIBC"} += [LibIn("libucrt")] end end so: set CM3_VS2015_OR_NEWER=1 in your environment. Easy enough? I'm not sure. - Jay From: jay.krell at cornell.edu To: dmuysers at hotmail.com; m3devel at elegosoft.com Date: Sun, 28 Feb 2016 22:39:15 +0000 Subject: [M3devel] cm3 linking to Visual C++ runtime For a very long time, to link the Visual C++ C runtime library, you linked to one of: libcmt.lib -- static C runtime msvcrt.lib -- import library for dynamic C runtime, and static startup code libcmtD.lib - debug static C runtime msvcrtD.lib -- import library for debug dynamic C runtime, and static startup code This changes with Visual C++ 14/2015. The C runtime has been split into three pieces. I believe you have to link to three libraries. msvcrt.lib ucrt.lib vcruntime.lib OR: libcmt.lib libucrt.lib libvcruntime.lib Part of the rationale here is to actually slow down the rate of change. Previously, the entire C runtime was revised with every release. Now, a large chunk of it has been moved out into the "operating system" and will remain compatible with all toolsets. That is the "ucrt" part. U is for universal. "makefile breakage" is unfortunate. I'm not sure what to do in the config files, to automatically work with anything. Perhaps remove the /nodefaultlib. /nodefaultlib has a lot of precedent in multiple systems, but so does not using it. For now, please adjust your config files. Probably removing /nodefaultlib is the right thing. A long time ago, there were cm3 releases set to use the non-thread-safe C runtime. /nodefaultlib was needed to workaround that. The non-thread-safe C runtime has not now existed for a while. - Jay _______________________________________________ M3devel mailing list M3devel at elegosoft.com https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel -------------- next part -------------- An HTML attachment was scrubbed... URL: