From rodney_bates at lcwb.coop Sat Aug 3 00:22:45 2013 From: rodney_bates at lcwb.coop (Rodney Bates) Date: Fri, 2 Aug 2013 15:22:45 -0700 Subject: [M3devel] Fwd: Re: Pickles, TextLiterals, and word size Message-ID: <20130802152245.122A9693@resin11.mta.everyone.net> This is more complicated than I thought, but fortunately, more manageable. When a fingerprint derives from the components of its type, it uses the fingerprints of the declared static types of the fields (or elements). A pickled object, accessible through such a field gets the fingerprint of its allocated type. In the case I have, the field is declared as TEXT, while its value is an object of (sub)type TextLiteral.T, the problematic type. So recognizing both fingerprints for TextLiteral.T will work fine, unless there is an old stored pickle with a field/element of type TextLiteral.T Not a likely way to code things, I would expect. -Rodney Bates --- Begin forwarded message: From: "Rodney M. Bates" To: m3devel at elegosoft.com Subject: Re: [M3devel] Pickles, TextLiterals, and word size Date: Wed, 24 Jul 2013 15:59:12 -0500 On 07/24/2013 12:14 PM, Rodney M. Bates wrote: > > > On 07/24/2013 10:34 AM, Hendrik Boom wrote: >> On Wed, Jul 24, 2013 at 09:10:31AM -0500, Rodney M. Bates wrote: >>> There is what I would call a bug in TextLiteral.i3 whose effect is that a >>> TextLiteral.T has a different fingerprint on 32- and 64-bit machines. >>> So you can't pickle a Text literal on one word-sized machine and unpickle >>> it on the other. >>> >>> But fixing this will have the effect of invalidating any existing pickles >>> written on a 64-bit machine before the fix, so they can't be read after >>> the fix, even on a 64-bit machine. They would have to be rewritten after >>> the fix. >> >> Ah! The problems of long-term compatibility! >> >> Is there any way of looking at a a pickle and determining whether it >> comes from a 32- of 64- bit machine? > > Yes, the pickle contains word size, LONGINT/LONGCARD size, floating > point representation, endianness, lazy alignment, maximum alignment, > record alignment, and now, widechar size, all for the system it was > written on. > > >> >> It there a way of special-casing the specific fingerprint that's about >> to be invalidated, so as to convert it properly on input only, while >> generating the new one on output? >> > > Yes, I thought about this. It would not be hard to find out what the > two fingerprints are and test one read from a pickle against these values. > > But the problem is, there is an unbounded set of types that would depend > indirectly on this, and they can't all be accounted for. Using, e.g., > BITSIZE(INTEGER) as a bound in a range is the way this is happening > it the subject case. > > Hmm, maybe I could just do the specific derived fingerprints for a > TextLiteral.T, and that would be good enough. Let the programmer be > responsible for other types. I think it would fix the immediate > problem without undermining anything existing. No, that won't work either. That would only fix the case where the TextLiteral is the top-level, and thus only, "object" in a pickle. Not very likely. When the TextLiteral is a field/element of some containing object, it is the topmost object in the entire pickle whose fingerprint is used to find the type in the reading program. Actually, pickling a TextLiteral might not be very common at all. > > I already have file dumps I can dig the values out of. I'll look > into that. Thanks! > > >>> >>> Is anybody doing the latter? Would having to recreate your pickles be a >>> problem? Apparently, nobody is going cross-word-size, or we'd have heard >>> about it. >>> >>> I would like to fix it properly, but don't want to undermine anybody's >>> working system. >>> >> > > From rodney_bates at lcwb.coop Sat Aug 3 04:26:50 2013 From: rodney_bates at lcwb.coop (Rodney Bates) Date: Fri, 2 Aug 2013 19:26:50 -0700 Subject: [M3devel] Fwd: Re: netobj bug report Message-ID: <20130802192650.122A8024@resin11.mta.everyone.net> Your analysis makes sense to me, though I don't know much about this code. It certainly seems like it would make the immediate symptom go away. However, I wonder if it will do what you want. Formal r has type NetObj.T or a subtype thereof, and r has an enlighteningly named field r. Is r.r the ordinary object that is being networked? And is it the exporting of r that fills in r.r to non-NIL? If this is the case, it seems like getting pickling to complete before exporting would just pickle r with r.r=NIL. Does that do any good? rom: mika at async.caltech.edu To: "Coleburn, Randy" Cc: m3devel at elegosoft.com Subject: Re: [M3devel] netobj bug report Date: Fri, 26 Jul 2013 20:07:17 -0700 Hi Randy (or anyone on m3devel), Have you considered my bug report? Can someone who knows the code better than me analyze the situation and either clear my code or justify the existing code as checked in and tell me what I'm doing wrong? I have had to change the code as I described in my old pm3 sources to get my application working, tired of doing workarounds. I strongly suspect we're dealing with an annoying bug, and it looks present in both Pickle.m3 and Pickle2.m3, all versions (CM3, PM3 at least). Mika "Coleburn, Randy" writes: >Hi Mika: > >I'm deep in the middle of some other stuff, but read your post with interes= >t because I've done a LOT of work with both Pickles and Network Objects. > >On the surface, I'm not sure whether this is a bug or not. I've never enco= >untered this problem before. But, my brain is in left-field right now with= > all else I have going on. > >I know that I always used the Pickle2 (2nd generation of pickles) to get ar= >ound some problems with the first generation. I never used PM3, just CM3 a= >nd the original "SRC-Systems Research Center" versions. > >I know you can also write and register special "pickler" procedures for any= > particular object to get around problems with the default pickling procedu= >res (read/write). I've had to do this on occasion both to resolve problems= > and to increase performance. I can provide examples if you need them. > >--Randy > >Randy C. Coleburn, CISSP-ISSEP, GCED >Corporate Information Security Officer (CISO) >Scientific Research Corporation > >-----Original Message----- >From: mika at async.caltech.edu [mailto:mika at async.caltech.edu]=20 >Sent: Thursday, June 27, 2013 7:01 PM >To: m3devel at elegosoft.com >Subject: EXT:[M3devel] netobj bug report > >Hi m3devel, > >I think I found a bug in the Network Objects code. > >Here is what I was doing: I made an object that I wanted to export using Ne= >twork Objects, but I *also* wanted to Pickle the object locally (for persis= >tence). > >I find that if I create the object and try to pickle it, I get a Pickle err= >or "Can't pickle a surrogate object". =20 > >The source of the error is in StubLib.m3, the Pickle special that is record= >ed for network objects: > >PROCEDURE OutSpecial(self: Pickle.Special; > r: REFANY; > writer: Pickle.Writer) > RAISES {Pickle.Error, Wr.Failure, Thread.Alerted} =3D > BEGIN > TYPECASE writer OF > | SpecWr(wtr) =3D> OutRef(wtr.c, r); > ELSE > TYPECASE r OF > | NetObj.T(x) =3D> > IF NOT ISTYPE(x.r, Transport.Location) THEN > (* This will gratuitously pickle the ExportInfo ref > embedded in x.r. It would be better to exclude this > if and when possible, but it shouldn't hurt for now. *) > Pickle.Special.write(self, r, writer); > ELSE > RAISE Pickle.Error("Can't pickle a surrogate object"); > END; > ELSE RAISE Pickle.Error("Can't Pickle Rd.T or Wr.T"); > END; > END; > END OutSpecial; > >(In CM3, OutSpecial2 has the same bug for Pickle2 pickles. PM3 doesn't hav= >e Pickle2 nor OutSpecial2.) > >The problem is the test > > IF NOT ISTYPE(x.r, Transport.Location) THEN > (* This will gratuitously pickle the ExportInfo ref > embedded in x.r. It would be better to exclude this > if and when possible, but it shouldn't hurt for now. *) > Pickle.Special.write(self, r, writer); > ELSE > RAISE Pickle.Error("Can't pickle a surrogate object"); > END; > >The intent, I think, is that an object that is remote (that is, has x.r of = >type Transport.Location) should not be pickle-able. > >The problem is that x.r is initially NIL, and NIL is a member of Transport.= >Location. > >My workaround is to FIRST export the object before attempting to Pickle it.= > This works fine but it shouldn't be necessary, should it? What if I don'= >t want to export the object, but just pickle it? > >I believe the test should be changed to be > >IF x.r =3D NIL OR NOT ISTYPE(x.r, Transport.Location) THEN... > > Mika > From rodney_bates at lcwb.coop Sat Aug 3 04:36:27 2013 From: rodney_bates at lcwb.coop (Rodney Bates) Date: Fri, 2 Aug 2013 19:36:27 -0700 Subject: [M3devel] What code does un/marshalling for network objects? Message-ID: <20130802193627.122A80ED@resin11.mta.everyone.net> An HTML attachment was scrubbed... URL: From mika at async.caltech.edu Sat Aug 3 07:54:08 2013 From: mika at async.caltech.edu (mika at async.caltech.edu) Date: Fri, 02 Aug 2013 22:54:08 -0700 Subject: [M3devel] Fwd: Re: netobj bug report In-Reply-To: <20130802192650.122A8024@resin11.mta.everyone.net> References: <20130802192650.122A8024@resin11.mta.everyone.net> Message-ID: <20130803055408.8C1BE1A208F@async.async.caltech.edu> I believe "r" is just a field for the Network Objects system to know whether the object is a real object or a surrogate. In that case, pickling it with it NIL does precisely the right thing for a real, local object. I doubt it could be a pointer to the "real" object because the real object is the same as the NetObj.T itself (a subtype thereof). r.r would have to point to r in that case. Which doesn't make much sense. Mika "Rodney Bates" writes: > >Your analysis makes sense to me, though I don't know much about this code. >It certainly seems like it would make the immediate symptom go away. >However, I wonder if it will do what you want. > >Formal r has type NetObj.T or a subtype thereof, and r has an enlighteningly >named field r. Is r.r the ordinary object that is being networked? >And is it the exporting of r that fills in r.r to non-NIL? If this is >the case, it seems like getting pickling to complete before exporting would >just pickle r with r.r=NIL. Does that do any good? > >rom: mika at async.caltech.edu >To: "Coleburn, Randy" >Cc: m3devel at elegosoft.com >Subject: Re: [M3devel] netobj bug report >Date: Fri, 26 Jul 2013 20:07:17 -0700 > >Hi Randy (or anyone on m3devel), > >Have you considered my bug report? Can someone who knows the code better >than me analyze the situation and either clear my code or justify the >existing code as checked in and tell me what I'm doing wrong? > >I have had to change the code as I described in my old pm3 sources to >get my application working, tired of doing workarounds. > >I strongly suspect we're dealing with an annoying bug, and it looks >present in both Pickle.m3 and Pickle2.m3, all versions (CM3, PM3 at least). > > Mika > >"Coleburn, Randy" writes: >>Hi Mika: >> >>I'm deep in the middle of some other stuff, but read your post with interes= >>t because I've done a LOT of work with both Pickles and Network Objects. >> >>On the surface, I'm not sure whether this is a bug or not. I've never enco= >>untered this problem before. But, my brain is in left-field right now with= >> all else I have going on. >> >>I know that I always used the Pickle2 (2nd generation of pickles) to get ar= >>ound some problems with the first generation. I never used PM3, just CM3 a= >>nd the original "SRC-Systems Research Center" versions. >> >>I know you can also write and register special "pickler" procedures for any= >> particular object to get around problems with the default pickling procedu= >>res (read/write). I've had to do this on occasion both to resolve problems= >> and to increase performance. I can provide examples if you need them. >> >>--Randy >> >>Randy C. Coleburn, CISSP-ISSEP, GCED >>Corporate Information Security Officer (CISO) >>Scientific Research Corporation >> >>-----Original Message----- >>From: mika at async.caltech.edu [mailto:mika at async.caltech.edu]=20 >>Sent: Thursday, June 27, 2013 7:01 PM >>To: m3devel at elegosoft.com >>Subject: EXT:[M3devel] netobj bug report >> >>Hi m3devel, >> >>I think I found a bug in the Network Objects code. >> >>Here is what I was doing: I made an object that I wanted to export using Ne= >>twork Objects, but I *also* wanted to Pickle the object locally (for persis= >>tence). >> >>I find that if I create the object and try to pickle it, I get a Pickle err= >>or "Can't pickle a surrogate object". =20 >> >>The source of the error is in StubLib.m3, the Pickle special that is record= >>ed for network objects: >> >>PROCEDURE OutSpecial(self: Pickle.Special; >> r: REFANY; >> writer: Pickle.Writer) >> RAISES {Pickle.Error, Wr.Failure, Thread.Alerted} =3D >> BEGIN >> TYPECASE writer OF >> | SpecWr(wtr) =3D> OutRef(wtr.c, r); >> ELSE >> TYPECASE r OF >> | NetObj.T(x) =3D> >> IF NOT ISTYPE(x.r, Transport.Location) THEN >> (* This will gratuitously pickle the ExportInfo ref >> embedded in x.r. It would be better to exclude this >> if and when possible, but it shouldn't hurt for now. *) >> Pickle.Special.write(self, r, writer); >> ELSE >> RAISE Pickle.Error("Can't pickle a surrogate object"); >> END; >> ELSE RAISE Pickle.Error("Can't Pickle Rd.T or Wr.T"); >> END; >> END; >> END OutSpecial; >> >>(In CM3, OutSpecial2 has the same bug for Pickle2 pickles. PM3 doesn't hav= >>e Pickle2 nor OutSpecial2.) >> >>The problem is the test >> >> IF NOT ISTYPE(x.r, Transport.Location) THEN >> (* This will gratuitously pickle the ExportInfo ref >> embedded in x.r. It would be better to exclude this >> if and when possible, but it shouldn't hurt for now. *) >> Pickle.Special.write(self, r, writer); >> ELSE >> RAISE Pickle.Error("Can't pickle a surrogate object"); >> END; >> >>The intent, I think, is that an object that is remote (that is, has x.r of = >>type Transport.Location) should not be pickle-able. >> >>The problem is that x.r is initially NIL, and NIL is a member of Transport.= >>Location. >> >>My workaround is to FIRST export the object before attempting to Pickle it.= >> This works fine but it shouldn't be necessary, should it? What if I don'= >>t want to export the object, but just pickle it? >> >>I believe the test should be changed to be >> >>IF x.r =3D NIL OR NOT ISTYPE(x.r, Transport.Location) THEN... >> >> Mika >> > From jay.krell at cornell.edu Mon Aug 5 05:12:06 2013 From: jay.krell at cornell.edu (Jay K) Date: Mon, 5 Aug 2013 03:12:06 +0000 Subject: [M3devel] TextLiteral/MaxBytes 32bit/64bit pickling In-Reply-To: <20130802222554.816175DEB89@birch.elegosoft.com> References: <20130802222554.816175DEB89@birch.elegosoft.com> Message-ID: Ideally I could have a TextLiteral on a 64bit machine larger than 2GB or 4GB. I would not be able to unpickle it on a 32bit machine and that would be ok. There a long standing problem though anyway in the frontend where INTEGER is used in place of TInt.T or LONGINT, giving 32bit limits to 64bit targets. I put in a hack actually to change MaxBytes to be a 32bit limit, to fix cross compiling from 32bit to 64bit. Maybe this is something different though. I realize that is quite a TextLiteral but I think, generally, if it fits in target address space, it should work. Heck, we should think about "persistant disk based" data structures that don't even fit in memory. e.g. file systems, movies, etc. - Jay > Date: Sat, 3 Aug 2013 00:25:54 +0000 > To: m3commit at elegosoft.com > From: rodney at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: rodney at birch. 13/08/03 00:25:54 > > Modified files: > cm3/m3-libs/libm3/src/pickle/ver2/: Tag: devel_unicode > Pickle2.m3 > > Log message: > An almost solution to the problem of TextLiteral.T's having MaxBytes > dependent on word size, making pickling of TextLiteral.T fail across > different word sizes. > > Hard code the fingerprint for the 64-bit case and translate it to > the one for 32-bit systems, in pickles. Also vice-versa. > > The best long-term solution also involves making TextLiteral.MaxBytes > word-size-independent. This could invalidate some preexisting pickles, > but only if they contain heap objects with a field or element with > declared static type TextLiteral.T, which seems quite unlikely. If > such fields/methods are declared as TEXT, the actual allocated type of > their referents can be TextLiteral.T and all will work. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From rodney_bates at lcwb.coop Fri Aug 9 03:47:04 2013 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Thu, 08 Aug 2013 20:47:04 -0500 Subject: [M3devel] TextLiteral/MaxBytes 32bit/64bit pickling In-Reply-To: References: <20130802222554.816175DEB89@birch.elegosoft.com> Message-ID: <52044A18.5050606@lcwb.coop> On 08/04/2013 10:12 PM, Jay K wrote: > Ideally I could have a TextLiteral on a 64bit machine larger than 2GB or 4GB. > I would not be able to unpickle it on a 32bit machine and that would be ok. > > > There a long standing problem though anyway in the frontend where INTEGER > is used in place of TInt.T or LONGINT, giving 32bit limits to 64bit targets. I presume this, plus the fact that the compiler lays everything out in _bits_ is why the DIV BITSIZE(Byte)? > > > I put in a hack actually to change MaxBytes to be a 32bit limit, to fix > cross compiling from 32bit to 64bit. Maybe this is something different though. > I have done the same thing in my local directories, but for a different reason. It gives a consistent fingerprint to TextLiteral.T, so it can cross-pickled, so to speak, 32<->64. I also located the two fingerprints for the two sizes and am now mapping between them in Pickles, so that old pickles, generated on either machine, can be read. But this suggests another strategy. In the case of TextLiteral.T, the static size of the array is neither correct nor depended on. So we could just hard-code one of the fingerprints (probably the 32-bit one) in the compiler and always emit it rather than computing it from the type. That would keep pickles happy and allow the actual declared size to be adjusted to suit whatever other criteria mattered. > > I realize that is quite a TextLiteral but I think, generally, if it fits in target address space, it should work. > Heck, we should think about "persistant disk based" data structures that don't even fit in memory. > e.g. file systems, movies, etc. > > > - Jay > > > > Date: Sat, 3 Aug 2013 00:25:54 +0000 > > To: m3commit at elegosoft.com > > From: rodney at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: rodney at birch. 13/08/03 00:25:54 > > > > Modified files: > > cm3/m3-libs/libm3/src/pickle/ver2/: Tag: devel_unicode > > Pickle2.m3 > > > > Log message: > > An almost solution to the problem of TextLiteral.T's having MaxBytes > > dependent on word size, making pickling of TextLiteral.T fail across > > different word sizes. > > > > Hard code the fingerprint for the 64-bit case and translate it to > > the one for 32-bit systems, in pickles. Also vice-versa. > > > > The best long-term solution also involves making TextLiteral.MaxBytes > > word-size-independent. This could invalidate some preexisting pickles, > > but only if they contain heap objects with a field or element with > > declared static type TextLiteral.T, which seems quite unlikely. If > > such fields/methods are declared as TEXT, the actual allocated type of > > their referents can be TextLiteral.T and all will work. > > From rcolebur at SCIRES.COM Sun Aug 18 03:23:24 2013 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Sun, 18 Aug 2013 01:23:24 +0000 Subject: [M3devel] syntax err in SocketWin32.m3 Message-ID: <0BB8FA59C2932741A3A2941A8B9D8BFF5CEF9613@ATLEX04-SRV.SCIRES.LOCAL> Jay: I'm trying to rebuild cm3 on Windows XP. I'm getting a compile error at line 59 in m3-libs\libm3\src\os\WIN32\SocketWin32.m3 That line is as follows: True : BOOL := 1; The type BOOL is not defined. Later this variable is used in the call EVAL setsockopt (t.sock, SOL_SOCKET, SO_REUSEADDR, ADR(True), BYTESIZE(True)); I'm not sure if we could replace with "True : BOOLEAN := TRUE;" or if the setsockopt is expecting a certain encoding. Based on the file history, I think you may have made this change, so thought I would run it past you first before I messed around with it. Thanks, Randy Coleburn -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Aug 19 08:56:13 2013 From: jay.krell at cornell.edu (Jay K) Date: Mon, 19 Aug 2013 06:56:13 +0000 Subject: [M3devel] syntax err in SocketWin32.m3 In-Reply-To: <0BB8FA59C2932741A3A2941A8B9D8BFF5CEF9613@ATLEX04-SRV.SCIRES.LOCAL> References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CEF9613@ATLEX04-SRV.SCIRES.LOCAL> Message-ID: BOOLEAN is wrong. It should be WinDef.BOOL or int or such -- 4 bytes. Not INTEGER, that will be 8 bytes on Win64. - Jay From: rcolebur at SCIRES.COM To: m3devel at elegosoft.com Date: Sun, 18 Aug 2013 01:23:24 +0000 Subject: [M3devel] syntax err in SocketWin32.m3 Jay: I'm trying to rebuild cm3 on Windows XP. I'm getting a compile error at line 59 in m3-libs\libm3\src\os\WIN32\SocketWin32.m3 That line is as follows: True : BOOL := 1; The type BOOL is not defined. Later this variable is used in the call EVAL setsockopt (t.sock, SOL_SOCKET, SO_REUSEADDR, ADR(True), BYTESIZE(True)); I'm not sure if we could replace with "True : BOOLEAN := TRUE;" or if the setsockopt is expecting a certain encoding. Based on the file history, I think you may have made this change, so thought I would run it past you first before I messed around with it. Thanks, Randy Coleburn -------------- next part -------------- An HTML attachment was scrubbed... URL: From dmuysers at hotmail.com Tue Aug 20 19:23:26 2013 From: dmuysers at hotmail.com (Dirk Muysers) Date: Tue, 20 Aug 2013 19:23:26 +0200 Subject: [M3devel] Build Automation Message-ID: Is Gradle a better quake? -------------- next part -------------- An HTML attachment was scrubbed... URL: From dragisha at m3w.org Fri Aug 23 22:03:16 2013 From: dragisha at m3w.org (=?utf-8?Q?Dragi=C5=A1a_Duri=C4=87?=) Date: Fri, 23 Aug 2013 22:03:16 +0200 Subject: [M3devel] Build Automation In-Reply-To: References: Message-ID: Gradle is better maven, better ant, better Ivy, etc? It is from/for Java world. It integrates other Java ecosystem build tools and extends them. It is written in Groovy, and lots of its "virtue" derives from this fact. To be useable for us, it probably first needs to integrate quake. Not an easy task, without clear benefits. -- Dragi?a Duri? dragisha at m3w.org On Aug 20, 2013, at 7:23 PM, Dirk Muysers wrote: > Is Gradle a better quake? -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Aug 25 09:31:57 2013 From: jay.krell at cornell.edu (Jay K) Date: Sun, 25 Aug 2013 07:31:57 +0000 Subject: [M3devel] Build Automation In-Reply-To: References: , Message-ID: For what we use it for, Quake is hard to beat. What are you missing in Quake? It falls down only slightly: - not as much parallelism as it could have - it is an obscure system, like Modula-3 - it is perhaps fairly Modula-3 specific; but it is extensible and we do have C/C++ in their, presumably one could add Java/C# support reasonably easily.. - doesn't offer building multiple programs/modules in one invocation -- directory traversal; we layer thin scripts over it - the name -- I assume it meant quick make it wins: - integrated with the compiler (this can be viewed as bad too) - declarative (or at least appears so, it is actually clever and imperative, but it is a great facsimile) - presumably efficient -- they actually compile it down to a bytecode internally and execute that! - presumably efficient -- underlying native code Modula-3 implementation..if this means anything any longer, so much is written in JavaScript, C#, Java, theoretical efficiencies all over the place and yet most things seem ok - Jay From: dragisha at m3w.org Date: Fri, 23 Aug 2013 22:03:16 +0200 To: dmuysers at hotmail.com CC: m3devel at elegosoft.com Subject: Re: [M3devel] Build Automation Gradle is better maven, better ant, better Ivy, etc. It is from/for Java world. It integrates other Java ecosystem build tools and extends them. It is written in Groovy, and lots of its "virtue" derives from this fact. To be useable for us, it probably first needs to integrate quake. Not an easy task, without clear benefits. --Dragi?a Duri?dragisha at m3w.org On Aug 20, 2013, at 7:23 PM, Dirk Muysers wrote: Is Gradle a better quake? -------------- next part -------------- An HTML attachment was scrubbed... URL: From dmuysers at hotmail.com Sun Aug 25 12:00:09 2013 From: dmuysers at hotmail.com (Dirk Muysers) Date: Sun, 25 Aug 2013 12:00:09 +0200 Subject: [M3devel] Build Automation In-Reply-To: References: , Message-ID: I am not missing anything in quake. I just thought it was worth a look. If I would redo M3 (and I am too old for that), I would write a single byte-code producing compiler. So, no compelling need for quake or any other build tool. Plus a platform-dependent runtime and jitter (using e.g. libjit). Would make the whole thing much simpler. The biggest mistake IMHO was CM's new text model that obliges to code two branches for nearly any text-related job. I would have kept the pm3 text model but encoded in UTF-8. There is nearly no runtime penalty as one accesses text almost always sequentially. Tell me a single case where one needs random access to individual characters. I tried to do that, but TEXT is used in every nock and corner of the libraries. Also, surprisingly, it is significantly more difficult to revert from the cm3 to the pm3 model than CM's passage to the alternate model. You have to touch almost every module in the system. It took me half a day to grep through the libraries with Text, Text8, Text16, TextLiteral etc. And restarting from pm3 sacrifices the indeniable improvements of the cm3 compiler, disregarding its text model. That wide-character blunder was first introduced by Microsoft (does that surprise anybody?) when they thought that Unicode would never go beyond 16 bits. Sun followed the trail with Java and so did CM with M3. S. Ballmer's resignation (thanks the gods) comes to late to reverse the trend. Newer text models (e.g. Go) all acknowledge the mistake and use UTF-8. I am currently working at a Unicode-friendly library that uses UTF-8 text side-by-side with the existing cm3 TEXT. From: Jay K Sent: Sunday, August 25, 2013 9:31 AM To: Dragi?a Duri? ; Dirk Muysers Cc: m3devel Subject: RE: [M3devel] Build Automation For what we use it for, Quake is hard to beat. What are you missing in Quake? It falls down only slightly: - not as much parallelism as it could have - it is an obscure system, like Modula-3 - it is perhaps fairly Modula-3 specific; but it is extensible and we do have C/C++ in their, presumably one could add Java/C# support reasonably easily.. - doesn't offer building multiple programs/modules in one invocation -- directory traversal; we layer thin scripts over it - the name -- I assume it meant quick make it wins: - integrated with the compiler (this can be viewed as bad too) - declarative (or at least appears so, it is actually clever and imperative, but it is a great facsimile) - presumably efficient -- they actually compile it down to a bytecode internally and execute that! - presumably efficient -- underlying native code Modula-3 implementation..if this means anything any longer, so much is written in JavaScript, C#, Java, theoretical efficiencies all over the place and yet most things seem ok - Jay -------------------------------------------------------------------------------- From: dragisha at m3w.org Date: Fri, 23 Aug 2013 22:03:16 +0200 To: dmuysers at hotmail.com CC: m3devel at elegosoft.com Subject: Re: [M3devel] Build Automation Gradle is better maven, better ant, better Ivy, etc. It is from/for Java world. It integrates other Java ecosystem build tools and extends them. It is written in Groovy, and lots of its "virtue" derives from this fact. To be useable for us, it probably first needs to integrate quake. Not an easy task, without clear benefits. -- Dragi?a Duri? dragisha at m3w.org On Aug 20, 2013, at 7:23 PM, Dirk Muysers wrote: Is Gradle a better quake? -------------- next part -------------- An HTML attachment was scrubbed... URL: From rodney_bates at lcwb.coop Sun Aug 25 17:10:07 2013 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Sun, 25 Aug 2013 10:10:07 -0500 Subject: [M3devel] Build Automation In-Reply-To: References: , Message-ID: <521A1E4F.7070908@lcwb.coop> On 08/25/2013 05:00 AM, Dirk Muysers wrote: > I am not missing anything in quake. I just thought it was worth a look. > If I would redo M3 (and I am too old for that), I would write a single > byte-code producing compiler. So, no compelling need for quake > or any other build tool. Plus a platform-dependent runtime and jitter > (using e.g. libjit). Would make the whole thing much simpler. > The biggest mistake IMHO was CM's new text modelthat obliges to > code two branches for nearly any text-related job. I would have kept > the pm3 text model but encoded in UTF-8. There is nearly no runtime > penalty as one accesses text almost always sequentially. Tell me a > single case where one needs random access to individual characters. I have lots of them. > I tried to do that, but TEXT is used in every nock and corner of the > libraries. Also, surprisingly, it is significantly more difficult to revert > from the cm3 to the pm3 model than CM's passage to the alternate > model. You have to touch almost every module in the system. It took > me half a day to grep through the libraries with Text, Text8, Text16, > TextLiteral etc. And restarting from pm3 sacrifices the indeniable > improvements of the cm3 compiler, disregarding its text model. > That wide-character blunder was first introduced by Microsoft (does > that surprise anybody?) when they thought that Unicode would never > go beyond 16 bits. Sun followed the trail with Java and so did CM > with M3. S. Ballmer's resignation (thanks the gods) comes to late to > reverse the trend. Newer text models (e.g. Go) all acknowledge the > mistake and use UTF-8. In the devel_unicode branch, there is now a mostly-working system that provides low-level support of full Unicode. It's lower-level than what (according to my admittedly sketchy impression) you (Dirk) are working on. The simplified description is, all it does is change WIDECHAR to hold all of Unicode. Arrays of WIDECHAR, etc, and TEXT just fall out of this. Specifically, ORD(LAST(WIDECHAR))=16_10FFFF. (But, as an implementation detail, BITSIZE(WIDECHAR)=32). Actually, there's another part. New library code provides streams almost like Rd and Wr that do encoding/decoding in nine (I think) different encodings, many of them variable-length, including UTF-8 and all the other Unicode encodings. When Modula-3 had only CHAR, we had two different abstractions: Text and streams (Rd, Wr). Slightly oversimplified, Text is inherently designed for random access. (Yeah, I know this took a hit with CM3, but it's still feasible.) Streams are inherently sequential. In the branch, these two abstractions get full Unicode support while preserving their original characteristics. I feel _very_ strongly that it is wrong to axe the possiblity of random access in Text. Yes, a lot of usage is sequential, but not all, and Text is a very easy-to-use, purely functional abstraction that often is just so much easier than ARRAY OF (WIDE)CHAR, for many other purposes in addition to random access. I personally probably use Text.GetChar (and Text.Sub) more often in non-sequential patterns than sequential. If you are adventurous, you could probably start trying it out now. I am still working on testing/development on pickle and netobj compatability between programs compiled with different WIDECHAR sizes, plus various loose ends. Also, I have to come up with a definitive procedure for bootstrapping it. > I am currently working at a Unicode-friendly library that uses UTF-8 > text side-by-side with the existing cm3 TEXT. > > *From:* Jay K > *Sent:* Sunday, August 25, 2013 9:31 AM > *To:* Dragi?a Duri? ; Dirk Muysers > *Cc:* m3devel > *Subject:* RE: [M3devel] Build Automation > > For what we use it for, Quake is hard to beat. > > What are you missing in Quake? > > It falls down only slightly: > - not as much parallelism as it could have > - it is an obscure system, like Modula-3 > - it is perhaps fairly Modula-3 specific; but it is extensible and we do have C/C++ in their, presumably one could add Java/C# support reasonably easily.. > - doesn't offer building multiple programs/modules in one invocation -- directory traversal; we layer thin scripts over it > - the name -- I assume it meant quick make > > it wins: > - integrated with the compiler (this can be viewed as bad too) > - declarative (or at least appears so, it is actually clever and imperative, but it is a great facsimile) > - presumably efficient -- they actually compile it down to a bytecode internally and execute that! > - presumably efficient -- underlying native code Modula-3 implementation..if this means anything any longer, so much is written in JavaScript, C#, Java, theoretical efficiencies all over the place and yet most things seem ok > > > - Jay > > > > > ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- > From: dragisha at m3w.org > Date: Fri, 23 Aug 2013 22:03:16 +0200 > To: dmuysers at hotmail.com > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Build Automation > > Gradle is better maven, better ant, better Ivy, etc. It is from/for Java world. > > It integrates other Java ecosystem build tools and extends them. It is written in Groovy, and lots of its "virtue" derives from this fact. > > To be useable for us, it probably first needs to integrate quake. Not an easy task, without clear benefits. > > -- > Dragi?a Duri? > dragisha at m3w.org > > > > On Aug 20, 2013, at 7:23 PM, Dirk Muysers wrote: > > Is Gradle a better quake? > > From rcolebur at SCIRES.COM Mon Aug 26 00:59:19 2013 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Sun, 25 Aug 2013 22:59:19 +0000 Subject: [M3devel] problems rebuilding on Win XP Message-ID: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF046CD@ATLEX04-SRV.SCIRES.LOCAL> I'm having all sorts of problems rebuilding cm3 on WinXP. I have an old WinXP laptop on which I had a working cm3 system circa 2008. I decided to update to the last sources, so I used CVS to update my sandbox from the HEAD branch. Then, I began the rebuild process. Stage 1 of the rebuild went ok, then when I got to stage 2, I ran into a problem with a compile error in "cm3/m3-libs/libm3/src/os/WIN32/SocketWin32.m3" that I repaired with Jay's help. Now going back thru the rebuild again, the compilation failed in stage 1 (even though it had worked previously). Figuring that I'd somehow messed up everything, I saved off my bin, pkg, lib folders and replaced them with an old backup of a working system. Now, I run into all kinds of problems with the system trying to find stuff in "I386_NT" folders instead of "NT386". I tried renaming all the NT386 folders to I386_NT, but that didn't help (seems that internally something still wants the NT386). So, I modify cm3.cfg to force use of NT386, so I can make progress again, but now I'm getting all kinds of compilation errors. Given my predicament, is there some minimalist binary distribution I can download, install, and use to rebuild everything in my sandbox afresh on 32-bit Windows XP ? (BTW, this system uses Visual Studio 2008 for the linker and other Microsoft tools.) Has there been a definite plan to change the naming of "NT386" to "I386_NT" ? Once I get the 32-bit XP working, I'm going to want to build everything on Windows 7 (64-bit), so any thoughts in advance on how to best succeed in that endeavor are also appreciated. Thanks, Randy Coleburn -------------- next part -------------- An HTML attachment was scrubbed... URL: From rodney_bates at lcwb.coop Mon Aug 26 01:59:28 2013 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Sun, 25 Aug 2013 18:59:28 -0500 Subject: [M3devel] 64-bit big endian? Message-ID: <521A9A60.9030005@lcwb.coop> Do we have any 64-bit big endian targets? There is missing code in StubLib that would be needed if we do. From hosking at cs.purdue.edu Mon Aug 26 02:27:53 2013 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 25 Aug 2013 20:27:53 -0400 Subject: [M3devel] 64-bit big endian? In-Reply-To: <521A9A60.9030005@lcwb.coop> References: <521A9A60.9030005@lcwb.coop> Message-ID: <03B7B647-E633-4873-8057-EC6A817616A9@cs.purdue.edu> Any SPARC big-endian 64-bit? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Mobile +1 765 427 5484 On Aug 25, 2013, at 7:59 PM, "Rodney M. Bates" wrote: > Do we have any 64-bit big endian targets? There is missing code in > StubLib that would be needed if we do. > From rcolebur at SCIRES.COM Mon Aug 26 16:35:01 2013 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Mon, 26 Aug 2013 14:35:01 +0000 Subject: [M3devel] 64-bit big endian? Message-ID: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF04FF8@ATLEX04-SRV.SCIRES.LOCAL> I've been thinking about loading cm3 on an old SPARC that I have. I am pretty sure it is 64bit. Not sure of the endian-ness---I'll have to check. Right now, I've got to get cm3 working again on 32-bit XP. --Randy Coleburn -----Original Message----- From: Tony Hosking [mailto:hosking at cs.purdue.edu] Sent: Sunday, August 25, 2013 8:28 PM To: Rodney M. Bates Cc: m3devel Subject: EXT:Re: [M3devel] 64-bit big endian? Any SPARC big-endian 64-bit? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Mobile +1 765 427 5484 On Aug 25, 2013, at 7:59 PM, "Rodney M. Bates" wrote: > Do we have any 64-bit big endian targets? There is missing code in > StubLib that would be needed if we do. > From microcode at zoho.com Mon Aug 26 16:40:47 2013 From: microcode at zoho.com (microcode at zoho.com) Date: Mon, 26 Aug 2013 14:40:47 +0000 Subject: [M3devel] 64-bit big endian? In-Reply-To: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF04FF8@ATLEX04-SRV.SCIRES.LOCAL> References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF04FF8@ATLEX04-SRV.SCIRES.LOCAL> Message-ID: <20130826144047.GB12430@zoho.com> I think what Tony meant is all SPARC is big endian. Which old SPARC do you have? We can probably tell you if it is 64 bit or not. On Mon, Aug 26, 2013 at 02:35:01PM +0000, Coleburn, Randy wrote: > I've been thinking about loading cm3 on an old SPARC that I have. I am pretty sure it is 64bit. Not sure of the endian-ness---I'll have to check. Right now, I've got to get cm3 working again on 32-bit XP. > --Randy Coleburn > > -----Original Message----- > From: Tony Hosking [mailto:hosking at cs.purdue.edu] > Sent: Sunday, August 25, 2013 8:28 PM > To: Rodney M. Bates > Cc: m3devel > Subject: EXT:Re: [M3devel] 64-bit big endian? > > Any SPARC big-endian 64-bit? > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA Mobile +1 765 427 5484 > > > > > > On Aug 25, 2013, at 7:59 PM, "Rodney M. Bates" wrote: > > > Do we have any 64-bit big endian targets? There is missing code in > > StubLib that would be needed if we do. > > > -- _ _ ._ _ _ <_> ___ _ _ ___ ___ ___ _| | ___ | ' ' || |/ | '| '_>/ . \/ | '/ . \/ . |/ ._> |_|_|_||_|\_|_.|_| \___/\_|_.\___/\___|\___. From rodney_bates at lcwb.coop Mon Aug 26 20:22:10 2013 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Mon, 26 Aug 2013 13:22:10 -0500 Subject: [M3devel] 64-bit big endian? In-Reply-To: <521A9A60.9030005@lcwb.coop> References: <521A9A60.9030005@lcwb.coop> Message-ID: <521B9CD2.3090703@lcwb.coop> I accidentally found the answer to this while working on a different problem. The files in cminstall/src/config-no-install/.common, etc. contain both endianness and word size for the targets we support. These are also installed in /usr/local/cm3/bin/config. HPPA64, MIPS64, SPARC64 On 08/25/2013 06:59 PM, Rodney M. Bates wrote: > Do we have any 64-bit big endian targets? There is missing code in > StubLib that would be needed if we do. > > From microcode at zoho.com Mon Aug 26 20:41:05 2013 From: microcode at zoho.com (microcode at zoho.com) Date: Mon, 26 Aug 2013 18:41:05 +0000 Subject: [M3devel] 64-bit big endian? In-Reply-To: <521B9CD2.3090703@lcwb.coop> References: <521A9A60.9030005@lcwb.coop> <521B9CD2.3090703@lcwb.coop> Message-ID: <20130826184105.GA16184@zoho.com> On Mon, Aug 26, 2013 at 01:22:10PM -0500, Rodney M. Bates wrote: > I accidentally found the answer to this while working on a different problem. > The files in cminstall/src/config-no-install/.common, etc. contain both > endianness and word size for the targets we support. These are also installed > in /usr/local/cm3/bin/config. > > HPPA64, MIPS64, SPARC64 MIPS is a bi-endian platform. There are a little-endian MIPS64 boxes also, but I guess from your post M3 wouldn't support them. SPARC64 is also technically bi-endian for data although I don't know if any OS runs little-endian on it. All the "normal" stuff that runs on it is big endian. From rcolebur at SCIRES.COM Tue Aug 27 02:49:00 2013 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Tue, 27 Aug 2013 00:49:00 +0000 Subject: [M3devel] need some help with linker error Message-ID: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL> Jay: I'm getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. The full text of the m3core.lst file is also shown at the end of this message. msvcrt.lib m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj m3core.def : error LNK2001: unresolved external symbol _xmm m3core.lib : fatal error LNK1120: 1 unresolved externals Any ideas on what I should do to resolve this problem? Thanks, Randy Coleburn Microsoft (R) Incremental Linker Version 11.00.51106.1 Copyright (C) Microsoft Corporation. All rights reserved. -nodefaultlib -debug -incremental:no -opt:ref -delayload:ws2_32.dll -delayload:advapi32.dll -delayload:gdi32.dll -delayload:netapi32.dll -delayload:user32.dll -delayload:comctl32.dll -delayload:rpcrt4.dll -delayload:iphlpapid.dll delayimp.lib -def:m3core.def -dll -out:m3core.dll hand.obj dtoa.obj libgcc.obj RTHooks.io RTHooks.mo RT0.io RT0.mo RuntimeError.io RuntimeError.mo Compiler.io Compiler.mo RTAllocator.io RTAllocator.mo RTAllocCnts.io RTAllocStats.io RTAllocStats.mo RTHeap.io RTHeap.mo RTHeapInfo.io RTHeapInfo.mo RTHeapMap.io RTHeapMap.mo RTHeapRep.io RTHeapRep.mo RTHeapStats.io RTHeapStats.mo RTCollector.io RTCollector.mo RTCollectorSRC.io RTWeakRef.io RTIO.io RTIO.mo RTIOc.obj RTLinkerX.io RTLinker.io RTLinker.mo RTLinkerC.obj RTDebug.io RTDebug.mo RTDebugC.obj RTError.io RTError.mo RTException.io RTException.mo RTMapOp.io RTMapOp.mo RTMisc.io RTMisc.mo RTMiscC.obj RTModule.io RTPacking.io RTPacking.mo RTParams.io RTParams.mo RTProcedure.io RTProcedure.mo RTProcess.io RTProcess.mo RTProcessC.obj RTThread.io RTTipe.io RTTipe.mo RTType.io RTType.mo RTTypeFP.io RTTypeFP.mo RTTypeMap.io RTTypeMap.mo RTutils.io RTutils.mo RTHeapDebug.io RTHeapDebug.mo RTArgs.io RTHeapEvent.io RTProcedureSRC.io RTSignal.io RTStack.io RTTypeSRC.io RTOS.io RTMachine.io RTArgs.mo RTOS.mo RTPerfTool.io RTPerfTool.mo RTOSc.obj RTSignal.mo RTMachInfo.io RTMachInfo.mo RTExFrame.mo RTStackC.obj Thread.io ThreadF.io Scheduler.io ThreadDebug.io ThreadDebug.obj MutexRep.io ThreadEvent.io ThreadContext.io ThreadWin32.io ThreadWin32.mo ThreadWin32C.obj WinBaseTypes.io WinDef.io WinDef.mo WinNT.io WinNT.mo WinNTc.obj WinError.io WinBase.io WinCon.io WinGDI.io WinGDI.mo WinIoctl.io WinIoctl.mo WinNetwk.io WinNLS.io WinReg.io WinReg.mo WinSock.io WinSock.mo WinUser.io WinUser.mo WinUserC.obj WinVer.io WinVer.mo NB30.io NB30.mo CDErr.io CommDlg.io TlHelp32.io WinMidi.io WinCommCtrl.io WinTabCon.io WinTabCon.mo WinListView.io WinListView.mo WinImageList.io WinImageList.mo UtimeC.obj UnixC.obj UnixLink.obj Uexec.io Uexec.obj Unetdb.io Unetdb.obj Umman.obj Ugrp.io Ugrp.obj Uin.obj Uugid.obj Uuio.obj Uutmp.obj Usignal.obj Upwd.obj Uprocess.obj Usignal.io Uconstants.obj Uutmp.io Umman.io Uuio.io Upwd.io Uugid.io Uprocess.io Unix.io Unix.mo Utime.io Utypes.io Uerror.io Usched.io Usocket.io Usocket.obj Ustat.io Udir.io UdirC.obj Uin.io Cerrno.io Cstddef.io Cstdint.io Cstdlib.io CstdlibC.obj Ctypes.io M3toC.io M3toC.mo CerrnoC.obj Cstring.io CstringC.obj Cstdio.io CstdioC.obj Csignal.io CsignalC.obj Csetjmp.io BasicCtypes.io FPU.io RealFloat.io LongFloat.io ExtendedFloat.io IEEESpecial.io IEEESpecial.mo Real.mo LongReal.mo Extended.mo DragonInt.io DragonInt.mo DragonT.io DragonT.mo FloatMode.io FloatMode.mo Real.io LongReal.io Extended.io RealFloat.mo LongFloat.mo ExtendedFloat.mo RealRep.io LongRealRep.io Time.io Tick.io Date.io FmtTime.io FmtTime.mo TickPortable.mo Time.mo TimeWin32.io TimeWin32.mo DateWin32.mo CConvert.io CConvert.mo Convert.io Convert.mo String8.io String8.mo String16.io String16.mo Text.io Text.mo TextClass.io TextClass.mo TextLiteral.io TextLiteral.mo Text8.io Text8.mo Text8Short.io Text8Short.mo Text8CString.io Text8CString.mo Text16.io Text16.mo Text16Short.io Text16Short.mo TextSub.io TextSub.mo TextCat.io TextCat.mo TextStats.io TextStats.mo TextConv.io TextConv.mo Fingerprint.io Fingerprint.mo Poly.io Poly.mo PolyBasis.io PolyBasis.mo Main.io WeakRef.io WeakRef.mo WordRep.io Word.io LongRep.io Long.io Word.mo Long.mo Boolean.io Boolean.mo Char.io Char.mo Int32.io Int32.mo Int64.io Int64.mo Integer.io Integer.mo Longint.io Longint.mo Refany.io Refany.mo ASCII.io ASCII.mo WideChar.io WideChar.mo Unicode.io Unicode.mo Address.io Address.mo iphlpapi.lib rpcrt4.lib winspool.lib comctl32.lib ws2_32.lib comdlg32.lib netapi32.lib gdi32.lib user32.lib advapi32.lib kernel32.lib msvcrt.lib m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj m3core.def : error LNK2001: unresolved external symbol _xmm m3core.lib : fatal error LNK1120: 1 unresolved externals -------------- next part -------------- An HTML attachment was scrubbed... URL: From rodney_bates at lcwb.coop Tue Aug 27 03:03:20 2013 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Mon, 26 Aug 2013 20:03:20 -0500 Subject: [M3devel] need some help with linker error In-Reply-To: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL> References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL> Message-ID: <521BFAD8.3040504@lcwb.coop> This is just a wild guess, but there are two dtoa.c files, in m3-libs/m3core/src/Csupport/little-endian/dtoa.c and m3-libs/m3core/src/Csupport/big-endian/dtoa.c No doubt they are alternatives. Is there a chance both are getting linked in? Or one from the modula-3 distribution, and one already in some MS-supplied library? On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > Jay: > > I?m getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > The full text of the m3core.lst file is also shown at the end of this message. > > msvcrt.lib > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > m3core.def : error LNK2001: unresolved external symbol _xmm > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > Any ideas on what I should do to resolve this problem? > > Thanks, > > Randy Coleburn > > From jay.krell at cornell.edu Tue Aug 27 08:43:53 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: [M3devel] need some help with linker error In-Reply-To: <521BFAD8.3040504@lcwb.coop> References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL>, <521BFAD8.3040504@lcwb.coop> Message-ID: > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I?m getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Aug 27 09:35:28 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 07:35:28 +0000 Subject: [M3devel] 64-bit big endian? In-Reply-To: <20130826184105.GA16184@zoho.com> References: <521A9A60.9030005@lcwb.coop>, <521B9CD2.3090703@lcwb.coop>, <20130826184105.GA16184@zoho.com> Message-ID: > There are a little-endian MIPS64 boxes also, OpenBSD/loongson? I was running on that. We are extremely portable. Endianness is of almost no concern. Processor is of almost no concern. We use the gcc backend and pthreads for portability. Or Windows. The gcc requirement will be relaxed to any C or C++ compiler. The system was implemented to be about that portable and I believe I fairly well proved it succeeded. I got it to run on several similar systems that it hadn't run on or hadn't recently run on, and I got close on still others. Give just a bit of time and hardware, I'm IA64/HPUX/Irix/VMS/AIX/Tru64 whatever you can muster, we'll work with it. But most of these systems people don't use anyway. And, it is getting better. We'll need just a C or C++ compiler, and pthreads or Win32. We should be about as portable as any "package" on any widely used Posix or Windows system. Maybe some day we'll even output JavaScript and run in a browser, via emscriptem... (We'll also remove some of trickier mostly Posix code with cooperative suspend...) - Jay > Date: Mon, 26 Aug 2013 18:41:05 +0000 > From: microcode at zoho.com > To: m3devel at elegosoft.com > Subject: Re: [M3devel] 64-bit big endian? > > On Mon, Aug 26, 2013 at 01:22:10PM -0500, Rodney M. Bates wrote: > > I accidentally found the answer to this while working on a different problem. > > The files in cminstall/src/config-no-install/.common, etc. contain both > > endianness and word size for the targets we support. These are also installed > > in /usr/local/cm3/bin/config. > > > > HPPA64, MIPS64, SPARC64 > > MIPS is a bi-endian platform. There are a little-endian MIPS64 boxes also, > but I guess from your post M3 wouldn't support them. > > SPARC64 is also technically bi-endian for data although I don't know if any > OS runs little-endian on it. All the "normal" stuff that runs on it is big > endian. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Aug 27 09:38:16 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 07:38:16 +0000 Subject: [M3devel] 64-bit big endian? In-Reply-To: References: <521A9A60.9030005@lcwb.coop>, <521B9CD2.3090703@lcwb.coop>, , <20130826184105.GA16184@zoho.com>, Message-ID: SPARC64_SOLARIS is here: https://modula3.elegosoft.com/cm3/uploaded-archives/index.html - Jay From: jay.krell at cornell.edu To: microcode at zoho.com; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 07:35:28 +0000 Subject: Re: [M3devel] 64-bit big endian? > There are a little-endian MIPS64 boxes also, OpenBSD/loongson? I was running on that. We are extremely portable. Endianness is of almost no concern. Processor is of almost no concern. We use the gcc backend and pthreads for portability. Or Windows. The gcc requirement will be relaxed to any C or C++ compiler. The system was implemented to be about that portable and I believe I fairly well proved it succeeded. I got it to run on several similar systems that it hadn't run on or hadn't recently run on, and I got close on still others. Give just a bit of time and hardware, I'm IA64/HPUX/Irix/VMS/AIX/Tru64 whatever you can muster, we'll work with it. But most of these systems people don't use anyway. And, it is getting better. We'll need just a C or C++ compiler, and pthreads or Win32. We should be about as portable as any "package" on any widely used Posix or Windows system. Maybe some day we'll even output JavaScript and run in a browser, via emscriptem... (We'll also remove some of trickier mostly Posix code with cooperative suspend...) - Jay > Date: Mon, 26 Aug 2013 18:41:05 +0000 > From: microcode at zoho.com > To: m3devel at elegosoft.com > Subject: Re: [M3devel] 64-bit big endian? > > On Mon, Aug 26, 2013 at 01:22:10PM -0500, Rodney M. Bates wrote: > > I accidentally found the answer to this while working on a different problem. > > The files in cminstall/src/config-no-install/.common, etc. contain both > > endianness and word size for the targets we support. These are also installed > > in /usr/local/cm3/bin/config. > > > > HPPA64, MIPS64, SPARC64 > > MIPS is a bi-endian platform. There are a little-endian MIPS64 boxes also, > but I guess from your post M3 wouldn't support them. > > SPARC64 is also technically bi-endian for data although I don't know if any > OS runs little-endian on it. All the "normal" stuff that runs on it is big > endian. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From microcode at zoho.com Tue Aug 27 09:51:46 2013 From: microcode at zoho.com (microcode at zoho.com) Date: Tue, 27 Aug 2013 07:51:46 +0000 Subject: [M3devel] 64-bit big endian? In-Reply-To: References: <521A9A60.9030005@lcwb.coop> <521B9CD2.3090703@lcwb.coop> <20130826184105.GA16184@zoho.com> Message-ID: <20130827075146.GA18129@zoho.com> On Tue, Aug 27, 2013 at 07:35:28AM +0000, Jay K wrote: > > There are a little-endian MIPS64 boxes also, > > OpenBSD/loongson? I was running on that. Yes, that's what I was thinking of. Are you saying you have CM3 running on it? > We are extremely portable. Endianness is of almost no concern. Processor > is of almost no concern. > We use the gcc backend and pthreads for portability. Or Windows. > The gcc requirement will be relaxed to any C or C++ compiler. That will really be great. A lot of times I want to run something and it has gcc-isms and doesn't build with other compilers. > The system was implemented to be about that portable and I believe I > fairly well proved it succeeded. I got it to run on several similar > systems that it hadn't run on or hadn't recently run on, and I got close > on still others. Give just a bit of time and hardware, I'm > IA64/HPUX/Irix/VMS/AIX/Tru64 whatever you can muster, we'll work with > it. But most of these systems people don't use anyway. I have friends with a lot more hardware than me and they seem to just accept the fact they can only run software X on boxes a and b and not c, d or e. I don't like to get stuck not being able to run something on the few different boxes I have so I tend not to look too hard at stuff that won't run everywhere. I've been so busy with other projects that I haven't had time to look at Modula-3 (not just CM3) but it's definitely on my list since I do appreciate good language design. I was impressed on all the platform support I saw on the homepage and I've been lurking on the mailing list to see what you guys are up to. From jay.krell at cornell.edu Tue Aug 27 10:03:17 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 08:03:17 +0000 Subject: [M3devel] 64-bit big endian? In-Reply-To: <20130827075146.GA18129@zoho.com> References: <521A9A60.9030005@lcwb.coop> <521B9CD2.3090703@lcwb.coop>, <20130826184105.GA16184@zoho.com>, , <20130827075146.GA18129@zoho.com> Message-ID: There likely are no gcc-isms in the code. The C code that is in there has been compiled with Visual C++ (partly), Digital cc, Sun cc, maybe others that I'm forgetting (bundled K&R HP-UX cc? a weirdo SGI cc I found.. VMS cc?). Sun cc definitely. Tru64 cc fairly recently. It is just that someone needs to have already ported the gcc backend to the target. We carry a form of the gcc backend with us. At least for now, and for a very long time (10+ years). I have a C-generating backend, in very good shape, but nobody else uses it yet. It can compile the entire system and has a better debugging experience on systems with no m3gdb support (e.g. MacOSX). > Are you saying you have CM3 running on it? I don't currently. I haven't powered on those machines in over a year now. But I was working on it. The point is though, it is generally pretty easy. OpenBSD is a slight challenge because mainline gcc no longer supports it. But they have ports. You get to merge a little the ports to our fork of mainline. But most of the diffs are not in the backend anyway. Mostly OpenBSD/mips is the same Linux/mips, etc. They generally all share calling conventions and assembler syntax, and that is mostly all the backend cares about. Occasionally a small problem is found. For example we over-use bitfields and that showed up as a problem on MIPS. I was also working on Irix. The system is very portable and has been shown to run with little additional effort on a number of systems. It used to be the biggest part of a port was rewriting /usr/include in Modula-3. It was tedious and error prone. But I fixed that. We now have our own C to bridge that safely once and done. - Jay > Date: Tue, 27 Aug 2013 07:51:46 +0000 > From: microcode at zoho.com > To: m3devel at elegosoft.com > Subject: Re: [M3devel] 64-bit big endian? > > On Tue, Aug 27, 2013 at 07:35:28AM +0000, Jay K wrote: > > > There are a little-endian MIPS64 boxes also, > > > > OpenBSD/loongson? I was running on that. > > Yes, that's what I was thinking of. Are you saying you have CM3 running on > it? > > > We are extremely portable. Endianness is of almost no concern. Processor > > is of almost no concern. > > We use the gcc backend and pthreads for portability. Or Windows. > > The gcc requirement will be relaxed to any C or C++ compiler. > > That will really be great. A lot of times I want to run something and it has > gcc-isms and doesn't build with other compilers. > > > The system was implemented to be about that portable and I believe I > > fairly well proved it succeeded. I got it to run on several similar > > systems that it hadn't run on or hadn't recently run on, and I got close > > on still others. Give just a bit of time and hardware, I'm > > IA64/HPUX/Irix/VMS/AIX/Tru64 whatever you can muster, we'll work with > > it. But most of these systems people don't use anyway. > > I have friends with a lot more hardware than me and they seem to just accept > the fact they can only run software X on boxes a and b and not c, d or e. I > don't like to get stuck not being able to run something on the few different > boxes I have so I tend not to look too hard at stuff that won't run > everywhere. I've been so busy with other projects that I haven't had time to > look at Modula-3 (not just CM3) but it's definitely on my list since I do > appreciate good language design. I was impressed on all the platform support > I saw on the homepage and I've been lurking on the mailing list to see what > you guys are up to. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Aug 27 11:07:25 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: [M3devel] need some help with linker error In-Reply-To: References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL>, , <521BFAD8.3040504@lcwb.coop>, Message-ID: I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I?m getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Aug 27 16:55:13 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 14:55:13 +0000 Subject: [M3devel] need some help with linker error In-Reply-To: References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL>, , , <521BFAD8.3040504@lcwb.coop>, , , Message-ID: Hm. That leaves me with: +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ --- building in NT386 --- ignoring ..\src\m3overrides *** *** runtime error: *** Attempt to reference an illegal memory location. *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 0x14f028 0x76f22d94 0x14f040 0x76f22ce8 0x14f054 0x759bc3d4 0x14f068 0x6302dcc2 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc ator.m3 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin 32.m3 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl ector.m3 ......... ......... ... more frames ... *** execution of [, ] failed *** Not good. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: Re: [M3devel] need some help with linker error I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I?m getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Aug 27 17:28:15 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 15:28:15 +0000 Subject: [M3devel] need some help with linker error In-Reply-To: References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL>, , , , <521BFAD8.3040504@lcwb.coop>, , , , , , Message-ID: This is fixed now too. Dragisha had introduced heap corruption in FSWin32.m3 trying to improve Unicode support. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 14:55:13 +0000 Subject: Re: [M3devel] need some help with linker error Hm. That leaves me with: +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ --- building in NT386 --- ignoring ..\src\m3overrides *** *** runtime error: *** Attempt to reference an illegal memory location. *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 0x14f028 0x76f22d94 0x14f040 0x76f22ce8 0x14f054 0x759bc3d4 0x14f068 0x6302dcc2 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc ator.m3 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin 32.m3 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl ector.m3 ......... ......... ... more frames ... *** execution of [, ] failed *** Not good. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: Re: [M3devel] need some help with linker error I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I?m getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Aug 27 20:18:36 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 18:18:36 +0000 Subject: [M3devel] problems rebuilding on Win XP In-Reply-To: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF046CD@ATLEX04-SRV.SCIRES.LOCAL> References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF046CD@ATLEX04-SRV.SCIRES.LOCAL> Message-ID: > is there some minimalist binary distribution I can download, install, and use I used one of these: http://www.opencm3.net/uploaded-archives/cm3-all-x86-pre5.8.5-VC80.msi http://www.opencm3.net/uploaded-archives/cm3-all-x86-pre5.8.5-VC90.msi but any of these ought to work: http://www.opencm3.net/uploaded-archives/cm3-min-x86-pre5.8.5-*.zip * any of VC20 VC40 VC41 VC42 VC50 VC60 VC70 VC80 VC90 VC80 vs. VC90 shouldn't need to match what you are using, it is just what they were built with. Some of them depend on the "VC redist", which you likely already have. and upgrade.py You'll need the fix in FSWin32.m3. I'll try to test some of these this week, and 1) upload updated archives and 2) try the C backend to target AMD64_NT! That was one of the goals of the C backend -- new targets, w/o gcc backend. "NT386" is probably still supported, but I'd really like to someday get rid of: NT386, SOLsun, SOLgnu, LINUXLIBC6, FreeBSD4. For years we have had: I386_NT, SPARC_SOLARIS, I386_LINUX, I386_FREEBSD. With the C backend, even these names will have less significance, as the backend output is nearly the same across many targets, and hopefully will become more common in time. - Jay From: rcolebur at SCIRES.COM To: m3devel at elegosoft.com Date: Sun, 25 Aug 2013 22:59:19 +0000 Subject: [M3devel] problems rebuilding on Win XP I?m having all sorts of problems rebuilding cm3 on WinXP. I have an old WinXP laptop on which I had a working cm3 system circa 2008. I decided to update to the last sources, so I used CVS to update my sandbox from the HEAD branch. Then, I began the rebuild process. Stage 1 of the rebuild went ok, then when I got to stage 2, I ran into a problem with a compile error in ?cm3/m3-libs/libm3/src/os/WIN32/SocketWin32.m3? that I repaired with Jay?s help. Now going back thru the rebuild again, the compilation failed in stage 1 (even though it had worked previously). Figuring that I?d somehow messed up everything, I saved off my bin, pkg, lib folders and replaced them with an old backup of a working system. Now, I run into all kinds of problems with the system trying to find stuff in ?I386_NT? folders instead of ?NT386?. I tried renaming all the NT386 folders to I386_NT, but that didn?t help (seems that internally something still wants the NT386). So, I modify cm3.cfg to force use of NT386, so I can make progress again, but now I?m getting all kinds of compilation errors. Given my predicament, is there some minimalist binary distribution I can download, install, and use to rebuild everything in my sandbox afresh on 32-bit Windows XP ? (BTW, this system uses Visual Studio 2008 for the linker and other Microsoft tools.) Has there been a definite plan to change the naming of ?NT386? to ?I386_NT? ? Once I get the 32-bit XP working, I?m going to want to build everything on Windows 7 (64-bit), so any thoughts in advance on how to best succeed in that endeavor are also appreciated. Thanks, Randy Coleburn -------------- next part -------------- An HTML attachment was scrubbed... URL: From dragisha at m3w.org Wed Aug 28 00:25:15 2013 From: dragisha at m3w.org (=?utf-8?Q?Dragi=C5=A1a_Duri=C4=87?=) Date: Wed, 28 Aug 2013 00:25:15 +0200 Subject: [M3devel] need some help with linker error In-Reply-To: References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL>, , , , <521BFAD8.3040504@lcwb.coop>, , , , , , Message-ID: <68D3C880-5B6B-45AA-BEB5-2D14E87A2AA8@m3w.org> heh :). More like trying to introduce some support. There was no such thing beforehand. I am glad you fixed my first aid effort. Thanks! -- Dragi?a Duri? dragisha at m3w.org On Aug 27, 2013, at 5:28 PM, Jay K wrote: > This is fixed now too. > Dragisha had introduced heap corruption in FSWin32.m3 trying to improve Unicode support. > > - Jay > > From: jay.krell at cornell.edu > To: rodney_bates at lcwb.coop; m3devel at elegosoft.com > Date: Tue, 27 Aug 2013 14:55:13 +0000 > Subject: Re: [M3devel] need some help with linker error > > Hm. That leaves me with: > > +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ > --- building in NT386 --- > ignoring ..\src\m3overrides > > *** > *** runtime error: > *** Attempt to reference an illegal memory location. > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 > 0x14f028 0x76f22d94 > 0x14f040 0x76f22ce8 > 0x14f054 0x759bc3d4 > 0x14f068 0x6302dcc2 > 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 > 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc > ator.m3 > 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin > 32.m3 > 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 > 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl > ector.m3 > ......... ......... ... more frames ... > *** execution of [, pFunction at 0x0197B630>] failed *** > > Not good. > > - Jay > > > > > From: jay.krell at cornell.edu > To: rodney_bates at lcwb.coop; m3devel at elegosoft.com > Date: Tue, 27 Aug 2013 09:07:25 +0000 > Subject: Re: [M3devel] need some help with linker error > > I updated m3-sys/mklib to ignore these. > Let me know if there are any more problems. > > Thanks, > - Jay > > From: jay.krell at cornell.edu > To: rodney_bates at lcwb.coop; m3devel at elegosoft.com > Date: Tue, 27 Aug 2013 06:43:53 +0000 > Subject: Re: [M3devel] need some help with linker error > > > Is there a chance both are getting linked in? > > No. There is no chance of this. > > > > Or one from the modula-3 distribution, and one already in some MS-supplied > > library? > > > No. There is no chance of this either. > > > I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . > These are floating point constants for code that uses sse2. > You are targeting 32bit, right? > Still, I guess these might occur, with newer compilers. > I'll look into it. > We already have to code exclude the older forms of floating point constants. > > - Jay > > > > Date: Mon, 26 Aug 2013 20:03:20 -0500 > > From: rodney_bates at lcwb.coop > > To: m3devel at elegosoft.com > > Subject: Re: [M3devel] need some help with linker error > > > > This is just a wild guess, but there are two dtoa.c files, in > > > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > > > No doubt they are alternatives. Is there a chance both are getting linked in? > > Or one from the modula-3 distribution, and one already in some MS-supplied > > library? > > > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > > Jay: > > > > > > I?m getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > > > msvcrt.lib > > > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > > > Any ideas on what I should do to resolve this problem? > > > > > > Thanks, > > > > > > Randy Coleburn > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From jay.krell at cornell.edu Wed Aug 28 00:35:49 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 22:35:49 +0000 Subject: [M3devel] need some help with linker error In-Reply-To: <68D3C880-5B6B-45AA-BEB5-2D14E87A2AA8@m3w.org> References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL>, , , , <521BFAD8.3040504@lcwb.coop>, , , , , , , <68D3C880-5B6B-45AA-BEB5-2D14E87A2AA8@m3w.org> Message-ID: There was already some support, of a small subset. :) - Jay Subject: Re: [M3devel] need some help with linker error From: dragisha at m3w.org Date: Wed, 28 Aug 2013 00:25:15 +0200 CC: rodney_bates at lcwb.coop; m3devel at elegosoft.com To: jay.krell at cornell.edu heh :). More like trying to introduce some support. There was no such thing beforehand. I am glad you fixed my first aid effort. Thanks! --Dragi?a Duri?dragisha at m3w.org On Aug 27, 2013, at 5:28 PM, Jay K wrote:This is fixed now too. Dragisha had introduced heap corruption in FSWin32.m3 trying to improve Unicode support. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 14:55:13 +0000 Subject: Re: [M3devel] need some help with linker error Hm. That leaves me with: +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ --- building in NT386 --- ignoring ..\src\m3overrides *** *** runtime error: *** Attempt to reference an illegal memory location. *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 0x14f028 0x76f22d94 0x14f040 0x76f22ce8 0x14f054 0x759bc3d4 0x14f068 0x6302dcc2 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc ator.m3 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin 32.m3 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl ector.m3 ......... ......... ... more frames ... *** execution of [, ] failed *** Not good. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: Re: [M3devel] need some help with linker error I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I'm getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Aug 28 10:02:11 2013 From: jay.krell at cornell.edu (Jay K) Date: Wed, 28 Aug 2013 08:02:11 +0000 Subject: [M3devel] m3_round long double to int64? In-Reply-To: <20130828075816.A00679D620B@birch.elegosoft.com> References: <20130828075816.A00679D620B@birch.elegosoft.com> Message-ID: Anyone want to tackle this? INT64 __stdcall m3_round(long double f); rounds to nearest, breaks ties in the IEEE way (toward even, or such), presumably. Make it correct for 32bit, 64bit, big endian, little endian. Assume IEEE754. You can assume long double is the same as double. You'll likely want to split it into mantissa and exponent. Thanks, - Jay > Date: Wed, 28 Aug 2013 09:58:16 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 13/08/28 09:58:16 > > Modified files: > cm3/m3-sys/m3back/src/: M3C.m3 > > Log message: > win64: temporary workaround: truncate instead of round > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Thu Aug 29 03:58:27 2013 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Thu, 29 Aug 2013 02:58:27 +0100 (BST) Subject: [M3devel] m3_round long double to int64? In-Reply-To: References: <20130828075816.A00679D620B@birch.elegosoft.com> Message-ID: <1377741507.7927.YahooMailNeo@web172805.mail.ir2.yahoo.com> Hi all: No, no, no: http://www.youtube.com/watch?v=o2hj7F7y_jk#t=6m51s to? 9:56 Long double may necessarily map to IEEE format anyway though http://en.wikipedia.org/wiki/Long_double Thanks in advance ________________________________ De: Jay K Para: m3devel Enviado: Mi?rcoles 28 de agosto de 2013 3:02 Asunto: [M3devel] m3_round long double to int64? Anyone?want to tackle this? ? INT64 __stdcall m3_round(long double f); ? rounds to nearest, breaks ties in the?IEEE way (toward even, or such), presumably. ? Make it correct for 32bit, 64bit, big endian, little endian. Assume IEEE754. ? You can assume long double is the same as double. You'll likely want to split it into mantissa and exponent. ? Thanks, ?- Jay ? > Date: Wed, 28 Aug 2013 09:58:16 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 13/08/28 09:58:16 > > Modified files: > cm3/m3-sys/m3back/src/: M3C.m3 > > Log message: > win64: temporary workaround: truncate instead of round > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Aug 30 01:46:53 2013 From: jay.krell at cornell.edu (Jay) Date: Thu, 29 Aug 2013 16:46:53 -0700 Subject: [M3devel] m3_round long double to int64? In-Reply-To: <1377741507.7927.YahooMailNeo@web172805.mail.ir2.yahoo.com> References: <20130828075816.A00679D620B@birch.elegosoft.com> <1377741507.7927.YahooMailNeo@web172805.mail.ir2.yahoo.com> Message-ID: <111F0513-00FF-49C1-9F30-4E82ED9987C7@gmail.com> Sorry, my mistake. Ignore long double. We only care about double. - Jay On Aug 28, 2013, at 6:58 PM, "Daniel Alejandro Benavides D." wrote: > Hi all: > No, no, no: > http://www.youtube.com/watch?v=o2hj7F7y_jk#t=6m51s > to 9:56 > > Long double may necessarily map to IEEE format anyway though > http://en.wikipedia.org/wiki/Long_double > > Thanks in advance > > De: Jay K > Para: m3devel > Enviado: Mi?rcoles 28 de agosto de 2013 3:02 > Asunto: [M3devel] m3_round long double to int64? > > > Anyone want to tackle this? > > INT64 __stdcall m3_round(long double f); > > rounds to nearest, breaks ties in the IEEE way (toward even, or such), presumably. > > Make it correct for 32bit, 64bit, big endian, little endian. > Assume IEEE754. > > You can assume long double is the same as double. > You'll likely want to split it into mantissa and exponent. > > Thanks, > - Jay > > > > Date: Wed, 28 Aug 2013 09:58:16 +0000 > > To: m3commit at elegosoft.com > > From: jkrell at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 13/08/28 09:58:16 > > > > Modified files: > > cm3/m3-sys/m3back/src/: M3C.m3 > > > > Log message: > > win64: temporary workaround: truncate instead of round > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Aug 30 07:56:51 2013 From: jay.krell at cornell.edu (Jay K) Date: Fri, 30 Aug 2013 05:56:51 +0000 Subject: [M3devel] extend TInt to 72 bits In-Reply-To: <2A3E5E3E-5192-4F34-A491-74572E8D270D@cs.purdue.edu> References: <20130319043014.95C479C6006@birch.elegosoft.com> <6EBA93AC-491C-40F1-9150-8E68ECE3D5A9@gmail.com>, <2A3E5E3E-5192-4F34-A491-74572E8D270D@cs.purdue.edu> Message-ID: reminder "we" need to think/look about this, maybe me soon, maybe I had noticed on my machine TWord.i3 CONST LE = TInt.LE, which is a nice intermediate fallout from this..but we need to maybe double check... - Jay > CC: jkrell at elego.de; m3commit at elegosoft.com > From: hosking at cs.purdue.edu > Subject: Re: [M3commit] CVS Update: cm3 > Date: Tue, 19 Mar 2013 13:58:40 -0500 > To: jay.krell at cornell.edu > > Probably ok, but I'm not totally sure. Need to audit all the uses. > > Sent from my iPad > > On Mar 19, 2013, at 10:53 AM, Jay wrote: > > > Wondering later: maybe code depends on the range being limited? > > > > > > - Jay > > > > On Mar 18, 2013, at 10:30 PM, Jay Krell wrote: > > > >> CVSROOT: /usr/cvs > >> Changes by: jkrell at birch. 13/03/19 05:30:14 > >> > >> Modified files: > >> cm3/m3-sys/m3middle/src/: TInt.i3 TWord.i3 > >> > >> Log message: > >> extend TInt to 72 bits, so that TWord isn't really needed, > >> as TInt can represent the full range of 64 bit signed and unsigned values > >> > >> add constant "Two" > >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Aug 30 08:02:41 2013 From: jay.krell at cornell.edu (Jay K) Date: Fri, 30 Aug 2013 06:02:41 +0000 Subject: [M3devel] cm3 -DTARGET=foo Message-ID: I'd like the above to work. Or cm3 -target=foo or -target:foo. The underlying implementation would be "like" -DTARGET=foo. This doesn't work due to the order of evaluation, command line vs. config file vs. -D written to a file. I don't have the change yet. Any objection to the intent? I wonder if it might subtlely reorder things though. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Fri Aug 30 16:29:52 2013 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Fri, 30 Aug 2013 15:29:52 +0100 (BST) Subject: [M3devel] cm3 -DTARGET=foo In-Reply-To: References: Message-ID: <1377872992.23372.YahooMailNeo@web172805.mail.ir2.yahoo.com> Hi all: but adding -DHOST=boot. This would allow cross compilation insitu, ideally, cross compilations will be available from cm3ide in a M3 interpreter (Olivetti) generating JVM-bytecodes. Hard but doable. Thanks in advance ________________________________ De: Jay K Para: m3devel Enviado: Viernes 30 de agosto de 2013 1:02 Asunto: [M3devel] cm3 -DTARGET=foo I'd like the above to work. Or cm3 -target=foo or -target:foo. The underlying implementation would be "like" -DTARGET=foo. This doesn't work due to the order of evaluation, command line vs. config file vs. -D written to a file. I don't have the change yet. Any objection to the intent? I wonder if it might subtlely reorder things though. ?- Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcolebur at SCIRES.COM Fri Aug 30 18:12:32 2013 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Fri, 30 Aug 2013 16:12:32 +0000 Subject: [M3devel] need some help with linker error Message-ID: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF0B6A7@ATLEX04-SRV.SCIRES.LOCAL> Jay: I appreciate your help. I just updated via CVS to get all your latest changes, but I am still getting the error with non-unique match for _xmm. See below: ... msvcrt.lib m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj m3core.def : error LNK2001: unresolved external symbol _xmm m3core.lib : fatal error LNK1120: 1 unresolved externals Can you point me in the right direction to solve this problem? Thanks, Randy Coleburn From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Tuesday, August 27, 2013 11:28 AM To: Rodney M. Bates; m3devel Subject: EXT:Re: [M3devel] need some help with linker error This is fixed now too. Dragisha had introduced heap corruption in FSWin32.m3 trying to improve Unicode support. - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 14:55:13 +0000 Subject: Re: [M3devel] need some help with linker error Hm. That leaves me with: +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ --- building in NT386 --- ignoring ..\src\m3overrides *** *** runtime error: *** Attempt to reference an illegal memory location. *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 0x14f028 0x76f22d94 0x14f040 0x76f22ce8 0x14f054 0x759bc3d4 0x14f068 0x6302dcc2 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc ator.m3 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin 32.m3 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl ector.m3 ......... ......... ... more frames ... *** execution of [, ] failed *** Not good. - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: Re: [M3devel] need some help with linker error I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I'm getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Aug 30 18:17:49 2013 From: jay.krell at cornell.edu (Jay) Date: Fri, 30 Aug 2013 09:17:49 -0700 Subject: [M3devel] cm3 -DTARGET=foo In-Reply-To: <1377872992.23372.YahooMailNeo@web172805.mail.ir2.yahoo.com> References: <1377872992.23372.YahooMailNeo@web172805.mail.ir2.yahoo.com> Message-ID: This makes little/no sense. We already have -boot, which is wierd, works, useful. Host is always trivially known. - Jay On Aug 30, 2013, at 7:29 AM, "Daniel Alejandro Benavides D." wrote: > Hi all: > but adding -DHOST=boot. > > This would allow cross compilation insitu, ideally, cross compilations will be available from > cm3ide in a M3 interpreter (Olivetti) generating JVM-bytecodes. > > Hard but doable. > > Thanks in advance > > De: Jay K > Para: m3devel > Enviado: Viernes 30 de agosto de 2013 1:02 > Asunto: [M3devel] cm3 -DTARGET=foo > > I'd like the above to work. > > Or cm3 -target=foo or -target:foo. > The underlying implementation would be "like" -DTARGET=foo. > > This doesn't work due to the order of evaluation, command line vs. config file vs. -D written to a file. > > I don't have the change yet. > > Any objection to the intent? > > I wonder if it might subtlely reorder things though. > > > - Jay > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Fri Aug 30 19:05:32 2013 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Fri, 30 Aug 2013 18:05:32 +0100 (BST) Subject: [M3devel] cm3 -DTARGET=foo In-Reply-To: References: <1377872992.23372.YahooMailNeo@web172805.mail.ir2.yahoo.com> Message-ID: <1377882332.86588.YahooMailNeo@web172803.mail.ir2.yahoo.com> Hi all: no, the HOST is trivially fixed, but it's not known until runtime in a web browser, why not use clients of CM3-IDE as hosts. Obviously you need a distributed compiler and building system. An example of bootstrapping compilers in interpreters: http://researcher.watson.ibm.com/researcher/files/us-bacon/Bacon90Portable.pdf Thanks in advance ________________________________ De: Jay Para: Daniel Alejandro Benavides D. CC: Jay K ; m3devel Enviado: Viernes 30 de agosto de 2013 11:17 Asunto: Re: [M3devel] cm3 -DTARGET=foo This makes little/no sense. We already have -boot, which is wierd, works, useful. Host is always trivially known. ?- Jay On Aug 30, 2013, at 7:29 AM, "Daniel Alejandro Benavides D." wrote: Hi all: >but adding -DHOST=boot. > >This would allow cross compilation insitu, ideally, cross compilations will be available from > >cm3ide in a M3 interpreter (Olivetti) generating JVM-bytecodes. > > >Hard but doable. > > >Thanks in advance > > > > >________________________________ > De: Jay K >Para: m3devel >Enviado: Viernes 30 de agosto de 2013 1:02 >Asunto: [M3devel] cm3 -DTARGET=foo > > > >I'd like the above to work. > >Or cm3 -target=foo or -target:foo. >The underlying implementation would be "like" -DTARGET=foo. > >This doesn't work due to the order of evaluation, command line vs. config file vs. -D written to a file. > >I don't have the change yet. > >Any objection to the intent? > >I wonder if it might subtlely reorder things though. > > >?- Jay > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Aug 30 21:46:06 2013 From: jay.krell at cornell.edu (Jay K) Date: Fri, 30 Aug 2013 19:46:06 +0000 Subject: [M3devel] need some help with linker error In-Reply-To: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF0B6A7@ATLEX04-SRV.SCIRES.LOCAL> References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF0B6A7@ATLEX04-SRV.SCIRES.LOCAL> Message-ID: Did you run upgrade.py? - Jay From: rcolebur at SCIRES.COM To: m3devel at elegosoft.com Date: Fri, 30 Aug 2013 16:12:32 +0000 Subject: Re: [M3devel] need some help with linker error Jay: I appreciate your help. I just updated via CVS to get all your latest changes, but I am still getting the error with non-unique match for _xmm. See below: ? msvcrt.lib m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj m3core.def : error LNK2001: unresolved external symbol _xmm m3core.lib : fatal error LNK1120: 1 unresolved externals Can you point me in the right direction to solve this problem? Thanks, Randy Coleburn From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Tuesday, August 27, 2013 11:28 AM To: Rodney M. Bates; m3devel Subject: EXT:Re: [M3devel] need some help with linker error This is fixed now too. Dragisha had introduced heap corruption in FSWin32.m3 trying to improve Unicode support. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 14:55:13 +0000 Subject: Re: [M3devel] need some help with linker error Hm. That leaves me with: +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ --- building in NT386 --- ignoring ..\src\m3overrides *** *** runtime error: *** Attempt to reference an illegal memory location. *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 0x14f028 0x76f22d94 0x14f040 0x76f22ce8 0x14f054 0x759bc3d4 0x14f068 0x6302dcc2 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc ator.m3 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin 32.m3 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl ector.m3 ......... ......... ... more frames ... *** execution of [, ] failed *** Not good. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: Re: [M3devel] need some help with linker error I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I?m getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Aug 31 08:17:08 2013 From: jay.krell at cornell.edu (Jay K) Date: Sat, 31 Aug 2013 06:17:08 +0000 Subject: [M3devel] how to write constants? Message-ID: What is the right way to do this for 64bit systems? other : INT32 = 16_FFFFFFFF; "../src/win32/WinUser.i3", line 1321: warning: value not assignable (range fault) WS_POPUP : INT32 = 16_80000000; "../src/win32/WinVer.i3", line 37: warning: value not assignable (range fault) VS_FFI_SIGNATURE : INT32 = 16_FEEF04BD; I'm guessing.. other : INT32 := -1; WS_POPUP = FIRST(INT32) VS_FFI_SIGNATURE : INT32 = -17890115; (* 16_FEEF04BD *) ? - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcolebur at SCIRES.COM Sat Aug 31 16:59:21 2013 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Sat, 31 Aug 2013 14:59:21 +0000 Subject: [M3devel] need some help with linker error Message-ID: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF0C98C@ATLEX04-SRV.SCIRES.LOCAL> Jay: I tried upgrade.py, without success. Here are the results: C:\cm3\Sandbox\scripts\python>python upgrade.py Traceback (most recent call last): File "upgrade.py", line 4, in import pylib File "C:\cm3\Sandbox\scripts\python\pylib.py", line 900 PackageDB = (PackageDB or map(lambda(a): a.replace("\n", "").replace('\\', '/').replace("\r", ""), open(PKGSDB))) ^ SyntaxError: invalid syntax I'm not familiar with python, so I'm not in a position to debug what is wrong. --Randy From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Friday, August 30, 2013 6:07 PM To: Coleburn, Randy Subject: EXT:RE: [M3devel] need some help with linker error RCC_upgradeCM3.cmd looks incorrect. Please try upgrade.py. - Jay ________________________________ From: rcolebur at SCIRES.COM To: jay.krell at cornell.edu Subject: RE: [M3devel] need some help with linker error Date: Fri, 30 Aug 2013 20:06:13 +0000 No, I ran my batch/CMD scripts, but these are based on what you had described previously as the correct steps. Is there a new dependency or step I need to be aware of? --Randy From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Friday, August 30, 2013 3:46 PM To: Coleburn, Randy; m3devel Subject: EXT:RE: [M3devel] need some help with linker error Did you run upgrade.py? - Jay ________________________________ From: rcolebur at SCIRES.COM To: m3devel at elegosoft.com Date: Fri, 30 Aug 2013 16:12:32 +0000 Subject: Re: [M3devel] need some help with linker error Jay: I appreciate your help. I just updated via CVS to get all your latest changes, but I am still getting the error with non-unique match for _xmm. See below: ... msvcrt.lib m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj m3core.def : error LNK2001: unresolved external symbol _xmm m3core.lib : fatal error LNK1120: 1 unresolved externals Can you point me in the right direction to solve this problem? Thanks, Randy Coleburn From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Tuesday, August 27, 2013 11:28 AM To: Rodney M. Bates; m3devel Subject: EXT:Re: [M3devel] need some help with linker error This is fixed now too. Dragisha had introduced heap corruption in FSWin32.m3 trying to improve Unicode support. - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 14:55:13 +0000 Subject: Re: [M3devel] need some help with linker error Hm. That leaves me with: +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ --- building in NT386 --- ignoring ..\src\m3overrides *** *** runtime error: *** Attempt to reference an illegal memory location. *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 0x14f028 0x76f22d94 0x14f040 0x76f22ce8 0x14f054 0x759bc3d4 0x14f068 0x6302dcc2 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc ator.m3 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin 32.m3 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl ector.m3 ......... ......... ... more frames ... *** execution of [, ] failed *** Not good. - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: Re: [M3devel] need some help with linker error I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I'm getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Aug 31 17:58:53 2013 From: jay.krell at cornell.edu (Jay K) Date: Sat, 31 Aug 2013 15:58:53 +0000 Subject: [M3devel] need some help with linker error In-Reply-To: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF0C98C@ATLEX04-SRV.SCIRES.LOCAL> References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF0C98C@ATLEX04-SRV.SCIRES.LOCAL> Message-ID: What version of Python? Maybe too old? upgrade (i.e. your cmd) needs to include, not skip, mklib. Compare it to the others. The fix was in mklib and your cmd varies in this respect. - Jay From: rcolebur at SCIRES.COM To: m3devel at elegosoft.com CC: jay.krell at cornell.edu Subject: RE: [M3devel] need some help with linker error Date: Sat, 31 Aug 2013 14:59:21 +0000 Jay: I tried upgrade.py, without success. Here are the results: C:\cm3\Sandbox\scripts\python>python upgrade.py Traceback (most recent call last): File "upgrade.py", line 4, in import pylib File "C:\cm3\Sandbox\scripts\python\pylib.py", line 900 PackageDB = (PackageDB or map(lambda(a): a.replace("\n", "").replace('\\', '/').replace("\r", ""), open(PKGSDB))) ^ SyntaxError: invalid syntax I?m not familiar with python, so I?m not in a position to debug what is wrong. --Randy From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Friday, August 30, 2013 6:07 PM To: Coleburn, Randy Subject: EXT:RE: [M3devel] need some help with linker error RCC_upgradeCM3.cmd looks incorrect. Please try upgrade.py. - Jay From: rcolebur at SCIRES.COM To: jay.krell at cornell.edu Subject: RE: [M3devel] need some help with linker error Date: Fri, 30 Aug 2013 20:06:13 +0000 No, I ran my batch/CMD scripts, but these are based on what you had described previously as the correct steps. Is there a new dependency or step I need to be aware of? --Randy From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Friday, August 30, 2013 3:46 PM To: Coleburn, Randy; m3devel Subject: EXT:RE: [M3devel] need some help with linker error Did you run upgrade.py? - Jay From: rcolebur at SCIRES.COM To: m3devel at elegosoft.com Date: Fri, 30 Aug 2013 16:12:32 +0000 Subject: Re: [M3devel] need some help with linker error Jay: I appreciate your help. I just updated via CVS to get all your latest changes, but I am still getting the error with non-unique match for _xmm. See below: ? msvcrt.lib m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj m3core.def : error LNK2001: unresolved external symbol _xmm m3core.lib : fatal error LNK1120: 1 unresolved externals Can you point me in the right direction to solve this problem? Thanks, Randy Coleburn From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Tuesday, August 27, 2013 11:28 AM To: Rodney M. Bates; m3devel Subject: EXT:Re: [M3devel] need some help with linker error This is fixed now too. Dragisha had introduced heap corruption in FSWin32.m3 trying to improve Unicode support. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 14:55:13 +0000 Subject: Re: [M3devel] need some help with linker error Hm. That leaves me with: +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ --- building in NT386 --- ignoring ..\src\m3overrides *** *** runtime error: *** Attempt to reference an illegal memory location. *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 0x14f028 0x76f22d94 0x14f040 0x76f22ce8 0x14f054 0x759bc3d4 0x14f068 0x6302dcc2 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc ator.m3 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin 32.m3 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl ector.m3 ......... ......... ... more frames ... *** execution of [, ] failed *** Not good. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: Re: [M3devel] need some help with linker error I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I?m getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Aug 31 18:55:11 2013 From: jay.krell at cornell.edu (Jay K) Date: Sat, 31 Aug 2013 16:55:11 +0000 Subject: [M3devel] how to write constants and deal with full range unsigned types?? In-Reply-To: References: Message-ID: This is a recurring problem esp. for Win64. AMD64_NT gets this far: ProcessWin32.m3: PROCEDURE GetFileHandle(hd: DWORD; ds: FileWin32.DirectionSet): File.T = VAR h := WinBase.GetStdHandle(hd); END GetFileHandle; The hd values are small negative numbers. DWORD is unsigned 32bit. This area doesn't seem to work well, doesn't interoperate with C well. (and then the stack goes unaligned raising an exception) - Jay From: jay.krell at cornell.edu To: m3devel at elegosoft.com Date: Sat, 31 Aug 2013 06:17:08 +0000 Subject: [M3devel] how to write constants? What is the right way to do this for 64bit systems? other : INT32 = 16_FFFFFFFF; "../src/win32/WinUser.i3", line 1321: warning: value not assignable (range fault) WS_POPUP : INT32 = 16_80000000; "../src/win32/WinVer.i3", line 37: warning: value not assignable (range fault) VS_FFI_SIGNATURE : INT32 = 16_FEEF04BD; I'm guessing.. other : INT32 := -1; WS_POPUP = FIRST(INT32) VS_FFI_SIGNATURE : INT32 = -17890115; (* 16_FEEF04BD *) ? - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Sat Aug 31 22:39:20 2013 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sat, 31 Aug 2013 21:39:20 +0100 (BST) Subject: [M3devel] Missing web pages or server elegosoft.com busy Message-ID: <1377981560.4878.YahooMailNeo@web172806.mail.ir2.yahoo.com> Hi all: I've been paying attention to: http://opencm3.net/ It seems to me maybe it is unresponsive, specially the "main frame", or the web page from an error I saw from mail.elegosoft.com, aroung 8:00 pm GMT and, 1 hour ago approx. Menu frames were working (top.html and nav-home.html) perhaps it just indicated something is wrong with that server, perhaps, or is it a sign of a network down?. In general I don't tend to be too cautious (because I have seen this thing going on since two weeks ago to today) but it is irritating that the only updated web page in the www on M3, is unresponsive or very slow. It speaks bad of M3, or of us in some way. Thanks in advance -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcolebur at SCIRES.COM Sat Aug 31 23:41:43 2013 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Sat, 31 Aug 2013 21:41:43 +0000 Subject: [M3devel] need some help with linker error Message-ID: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF0CD60@ATLEX04-SRV.SCIRES.LOCAL> Jay: I am using Python v 3.3.0. --Randy From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Saturday, August 31, 2013 11:59 AM To: Coleburn, Randy; m3devel Subject: EXT:RE: [M3devel] need some help with linker error What version of Python? Maybe too old? upgrade (i.e. your cmd) needs to include, not skip, mklib. Compare it to the others. The fix was in mklib and your cmd varies in this respect. - Jay ________________________________ From: rcolebur at SCIRES.COM To: m3devel at elegosoft.com CC: jay.krell at cornell.edu Subject: RE: [M3devel] need some help with linker error Date: Sat, 31 Aug 2013 14:59:21 +0000 Jay: I tried upgrade.py, without success. Here are the results: C:\cm3\Sandbox\scripts\python>python upgrade.py Traceback (most recent call last): File "upgrade.py", line 4, in import pylib File "C:\cm3\Sandbox\scripts\python\pylib.py", line 900 PackageDB = (PackageDB or map(lambda(a): a.replace("\n", "").replace('\\', '/').replace("\r", ""), open(PKGSDB))) ^ SyntaxError: invalid syntax I'm not familiar with python, so I'm not in a position to debug what is wrong. --Randy From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Friday, August 30, 2013 6:07 PM To: Coleburn, Randy Subject: EXT:RE: [M3devel] need some help with linker error RCC_upgradeCM3.cmd looks incorrect. Please try upgrade.py. - Jay ________________________________ From: rcolebur at SCIRES.COM To: jay.krell at cornell.edu Subject: RE: [M3devel] need some help with linker error Date: Fri, 30 Aug 2013 20:06:13 +0000 No, I ran my batch/CMD scripts, but these are based on what you had described previously as the correct steps. Is there a new dependency or step I need to be aware of? --Randy From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Friday, August 30, 2013 3:46 PM To: Coleburn, Randy; m3devel Subject: EXT:RE: [M3devel] need some help with linker error Did you run upgrade.py? - Jay ________________________________ From: rcolebur at SCIRES.COM To: m3devel at elegosoft.com Date: Fri, 30 Aug 2013 16:12:32 +0000 Subject: Re: [M3devel] need some help with linker error Jay: I appreciate your help. I just updated via CVS to get all your latest changes, but I am still getting the error with non-unique match for _xmm. See below: ... msvcrt.lib m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj m3core.def : error LNK2001: unresolved external symbol _xmm m3core.lib : fatal error LNK1120: 1 unresolved externals Can you point me in the right direction to solve this problem? Thanks, Randy Coleburn From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Tuesday, August 27, 2013 11:28 AM To: Rodney M. Bates; m3devel Subject: EXT:Re: [M3devel] need some help with linker error This is fixed now too. Dragisha had introduced heap corruption in FSWin32.m3 trying to improve Unicode support. - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 14:55:13 +0000 Subject: Re: [M3devel] need some help with linker error Hm. That leaves me with: +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ --- building in NT386 --- ignoring ..\src\m3overrides *** *** runtime error: *** Attempt to reference an illegal memory location. *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 0x14f028 0x76f22d94 0x14f040 0x76f22ce8 0x14f054 0x759bc3d4 0x14f068 0x6302dcc2 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc ator.m3 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin 32.m3 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl ector.m3 ......... ......... ... more frames ... *** execution of [, ] failed *** Not good. - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: Re: [M3devel] need some help with linker error I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I'm getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From rodney_bates at lcwb.coop Sat Aug 3 00:22:45 2013 From: rodney_bates at lcwb.coop (Rodney Bates) Date: Fri, 2 Aug 2013 15:22:45 -0700 Subject: [M3devel] Fwd: Re: Pickles, TextLiterals, and word size Message-ID: <20130802152245.122A9693@resin11.mta.everyone.net> This is more complicated than I thought, but fortunately, more manageable. When a fingerprint derives from the components of its type, it uses the fingerprints of the declared static types of the fields (or elements). A pickled object, accessible through such a field gets the fingerprint of its allocated type. In the case I have, the field is declared as TEXT, while its value is an object of (sub)type TextLiteral.T, the problematic type. So recognizing both fingerprints for TextLiteral.T will work fine, unless there is an old stored pickle with a field/element of type TextLiteral.T Not a likely way to code things, I would expect. -Rodney Bates --- Begin forwarded message: From: "Rodney M. Bates" To: m3devel at elegosoft.com Subject: Re: [M3devel] Pickles, TextLiterals, and word size Date: Wed, 24 Jul 2013 15:59:12 -0500 On 07/24/2013 12:14 PM, Rodney M. Bates wrote: > > > On 07/24/2013 10:34 AM, Hendrik Boom wrote: >> On Wed, Jul 24, 2013 at 09:10:31AM -0500, Rodney M. Bates wrote: >>> There is what I would call a bug in TextLiteral.i3 whose effect is that a >>> TextLiteral.T has a different fingerprint on 32- and 64-bit machines. >>> So you can't pickle a Text literal on one word-sized machine and unpickle >>> it on the other. >>> >>> But fixing this will have the effect of invalidating any existing pickles >>> written on a 64-bit machine before the fix, so they can't be read after >>> the fix, even on a 64-bit machine. They would have to be rewritten after >>> the fix. >> >> Ah! The problems of long-term compatibility! >> >> Is there any way of looking at a a pickle and determining whether it >> comes from a 32- of 64- bit machine? > > Yes, the pickle contains word size, LONGINT/LONGCARD size, floating > point representation, endianness, lazy alignment, maximum alignment, > record alignment, and now, widechar size, all for the system it was > written on. > > >> >> It there a way of special-casing the specific fingerprint that's about >> to be invalidated, so as to convert it properly on input only, while >> generating the new one on output? >> > > Yes, I thought about this. It would not be hard to find out what the > two fingerprints are and test one read from a pickle against these values. > > But the problem is, there is an unbounded set of types that would depend > indirectly on this, and they can't all be accounted for. Using, e.g., > BITSIZE(INTEGER) as a bound in a range is the way this is happening > it the subject case. > > Hmm, maybe I could just do the specific derived fingerprints for a > TextLiteral.T, and that would be good enough. Let the programmer be > responsible for other types. I think it would fix the immediate > problem without undermining anything existing. No, that won't work either. That would only fix the case where the TextLiteral is the top-level, and thus only, "object" in a pickle. Not very likely. When the TextLiteral is a field/element of some containing object, it is the topmost object in the entire pickle whose fingerprint is used to find the type in the reading program. Actually, pickling a TextLiteral might not be very common at all. > > I already have file dumps I can dig the values out of. I'll look > into that. Thanks! > > >>> >>> Is anybody doing the latter? Would having to recreate your pickles be a >>> problem? Apparently, nobody is going cross-word-size, or we'd have heard >>> about it. >>> >>> I would like to fix it properly, but don't want to undermine anybody's >>> working system. >>> >> > > From rodney_bates at lcwb.coop Sat Aug 3 04:26:50 2013 From: rodney_bates at lcwb.coop (Rodney Bates) Date: Fri, 2 Aug 2013 19:26:50 -0700 Subject: [M3devel] Fwd: Re: netobj bug report Message-ID: <20130802192650.122A8024@resin11.mta.everyone.net> Your analysis makes sense to me, though I don't know much about this code. It certainly seems like it would make the immediate symptom go away. However, I wonder if it will do what you want. Formal r has type NetObj.T or a subtype thereof, and r has an enlighteningly named field r. Is r.r the ordinary object that is being networked? And is it the exporting of r that fills in r.r to non-NIL? If this is the case, it seems like getting pickling to complete before exporting would just pickle r with r.r=NIL. Does that do any good? rom: mika at async.caltech.edu To: "Coleburn, Randy" Cc: m3devel at elegosoft.com Subject: Re: [M3devel] netobj bug report Date: Fri, 26 Jul 2013 20:07:17 -0700 Hi Randy (or anyone on m3devel), Have you considered my bug report? Can someone who knows the code better than me analyze the situation and either clear my code or justify the existing code as checked in and tell me what I'm doing wrong? I have had to change the code as I described in my old pm3 sources to get my application working, tired of doing workarounds. I strongly suspect we're dealing with an annoying bug, and it looks present in both Pickle.m3 and Pickle2.m3, all versions (CM3, PM3 at least). Mika "Coleburn, Randy" writes: >Hi Mika: > >I'm deep in the middle of some other stuff, but read your post with interes= >t because I've done a LOT of work with both Pickles and Network Objects. > >On the surface, I'm not sure whether this is a bug or not. I've never enco= >untered this problem before. But, my brain is in left-field right now with= > all else I have going on. > >I know that I always used the Pickle2 (2nd generation of pickles) to get ar= >ound some problems with the first generation. I never used PM3, just CM3 a= >nd the original "SRC-Systems Research Center" versions. > >I know you can also write and register special "pickler" procedures for any= > particular object to get around problems with the default pickling procedu= >res (read/write). I've had to do this on occasion both to resolve problems= > and to increase performance. I can provide examples if you need them. > >--Randy > >Randy C. Coleburn, CISSP-ISSEP, GCED >Corporate Information Security Officer (CISO) >Scientific Research Corporation > >-----Original Message----- >From: mika at async.caltech.edu [mailto:mika at async.caltech.edu]=20 >Sent: Thursday, June 27, 2013 7:01 PM >To: m3devel at elegosoft.com >Subject: EXT:[M3devel] netobj bug report > >Hi m3devel, > >I think I found a bug in the Network Objects code. > >Here is what I was doing: I made an object that I wanted to export using Ne= >twork Objects, but I *also* wanted to Pickle the object locally (for persis= >tence). > >I find that if I create the object and try to pickle it, I get a Pickle err= >or "Can't pickle a surrogate object". =20 > >The source of the error is in StubLib.m3, the Pickle special that is record= >ed for network objects: > >PROCEDURE OutSpecial(self: Pickle.Special; > r: REFANY; > writer: Pickle.Writer) > RAISES {Pickle.Error, Wr.Failure, Thread.Alerted} =3D > BEGIN > TYPECASE writer OF > | SpecWr(wtr) =3D> OutRef(wtr.c, r); > ELSE > TYPECASE r OF > | NetObj.T(x) =3D> > IF NOT ISTYPE(x.r, Transport.Location) THEN > (* This will gratuitously pickle the ExportInfo ref > embedded in x.r. It would be better to exclude this > if and when possible, but it shouldn't hurt for now. *) > Pickle.Special.write(self, r, writer); > ELSE > RAISE Pickle.Error("Can't pickle a surrogate object"); > END; > ELSE RAISE Pickle.Error("Can't Pickle Rd.T or Wr.T"); > END; > END; > END OutSpecial; > >(In CM3, OutSpecial2 has the same bug for Pickle2 pickles. PM3 doesn't hav= >e Pickle2 nor OutSpecial2.) > >The problem is the test > > IF NOT ISTYPE(x.r, Transport.Location) THEN > (* This will gratuitously pickle the ExportInfo ref > embedded in x.r. It would be better to exclude this > if and when possible, but it shouldn't hurt for now. *) > Pickle.Special.write(self, r, writer); > ELSE > RAISE Pickle.Error("Can't pickle a surrogate object"); > END; > >The intent, I think, is that an object that is remote (that is, has x.r of = >type Transport.Location) should not be pickle-able. > >The problem is that x.r is initially NIL, and NIL is a member of Transport.= >Location. > >My workaround is to FIRST export the object before attempting to Pickle it.= > This works fine but it shouldn't be necessary, should it? What if I don'= >t want to export the object, but just pickle it? > >I believe the test should be changed to be > >IF x.r =3D NIL OR NOT ISTYPE(x.r, Transport.Location) THEN... > > Mika > From rodney_bates at lcwb.coop Sat Aug 3 04:36:27 2013 From: rodney_bates at lcwb.coop (Rodney Bates) Date: Fri, 2 Aug 2013 19:36:27 -0700 Subject: [M3devel] What code does un/marshalling for network objects? Message-ID: <20130802193627.122A80ED@resin11.mta.everyone.net> An HTML attachment was scrubbed... URL: From mika at async.caltech.edu Sat Aug 3 07:54:08 2013 From: mika at async.caltech.edu (mika at async.caltech.edu) Date: Fri, 02 Aug 2013 22:54:08 -0700 Subject: [M3devel] Fwd: Re: netobj bug report In-Reply-To: <20130802192650.122A8024@resin11.mta.everyone.net> References: <20130802192650.122A8024@resin11.mta.everyone.net> Message-ID: <20130803055408.8C1BE1A208F@async.async.caltech.edu> I believe "r" is just a field for the Network Objects system to know whether the object is a real object or a surrogate. In that case, pickling it with it NIL does precisely the right thing for a real, local object. I doubt it could be a pointer to the "real" object because the real object is the same as the NetObj.T itself (a subtype thereof). r.r would have to point to r in that case. Which doesn't make much sense. Mika "Rodney Bates" writes: > >Your analysis makes sense to me, though I don't know much about this code. >It certainly seems like it would make the immediate symptom go away. >However, I wonder if it will do what you want. > >Formal r has type NetObj.T or a subtype thereof, and r has an enlighteningly >named field r. Is r.r the ordinary object that is being networked? >And is it the exporting of r that fills in r.r to non-NIL? If this is >the case, it seems like getting pickling to complete before exporting would >just pickle r with r.r=NIL. Does that do any good? > >rom: mika at async.caltech.edu >To: "Coleburn, Randy" >Cc: m3devel at elegosoft.com >Subject: Re: [M3devel] netobj bug report >Date: Fri, 26 Jul 2013 20:07:17 -0700 > >Hi Randy (or anyone on m3devel), > >Have you considered my bug report? Can someone who knows the code better >than me analyze the situation and either clear my code or justify the >existing code as checked in and tell me what I'm doing wrong? > >I have had to change the code as I described in my old pm3 sources to >get my application working, tired of doing workarounds. > >I strongly suspect we're dealing with an annoying bug, and it looks >present in both Pickle.m3 and Pickle2.m3, all versions (CM3, PM3 at least). > > Mika > >"Coleburn, Randy" writes: >>Hi Mika: >> >>I'm deep in the middle of some other stuff, but read your post with interes= >>t because I've done a LOT of work with both Pickles and Network Objects. >> >>On the surface, I'm not sure whether this is a bug or not. I've never enco= >>untered this problem before. But, my brain is in left-field right now with= >> all else I have going on. >> >>I know that I always used the Pickle2 (2nd generation of pickles) to get ar= >>ound some problems with the first generation. I never used PM3, just CM3 a= >>nd the original "SRC-Systems Research Center" versions. >> >>I know you can also write and register special "pickler" procedures for any= >> particular object to get around problems with the default pickling procedu= >>res (read/write). I've had to do this on occasion both to resolve problems= >> and to increase performance. I can provide examples if you need them. >> >>--Randy >> >>Randy C. Coleburn, CISSP-ISSEP, GCED >>Corporate Information Security Officer (CISO) >>Scientific Research Corporation >> >>-----Original Message----- >>From: mika at async.caltech.edu [mailto:mika at async.caltech.edu]=20 >>Sent: Thursday, June 27, 2013 7:01 PM >>To: m3devel at elegosoft.com >>Subject: EXT:[M3devel] netobj bug report >> >>Hi m3devel, >> >>I think I found a bug in the Network Objects code. >> >>Here is what I was doing: I made an object that I wanted to export using Ne= >>twork Objects, but I *also* wanted to Pickle the object locally (for persis= >>tence). >> >>I find that if I create the object and try to pickle it, I get a Pickle err= >>or "Can't pickle a surrogate object". =20 >> >>The source of the error is in StubLib.m3, the Pickle special that is record= >>ed for network objects: >> >>PROCEDURE OutSpecial(self: Pickle.Special; >> r: REFANY; >> writer: Pickle.Writer) >> RAISES {Pickle.Error, Wr.Failure, Thread.Alerted} =3D >> BEGIN >> TYPECASE writer OF >> | SpecWr(wtr) =3D> OutRef(wtr.c, r); >> ELSE >> TYPECASE r OF >> | NetObj.T(x) =3D> >> IF NOT ISTYPE(x.r, Transport.Location) THEN >> (* This will gratuitously pickle the ExportInfo ref >> embedded in x.r. It would be better to exclude this >> if and when possible, but it shouldn't hurt for now. *) >> Pickle.Special.write(self, r, writer); >> ELSE >> RAISE Pickle.Error("Can't pickle a surrogate object"); >> END; >> ELSE RAISE Pickle.Error("Can't Pickle Rd.T or Wr.T"); >> END; >> END; >> END OutSpecial; >> >>(In CM3, OutSpecial2 has the same bug for Pickle2 pickles. PM3 doesn't hav= >>e Pickle2 nor OutSpecial2.) >> >>The problem is the test >> >> IF NOT ISTYPE(x.r, Transport.Location) THEN >> (* This will gratuitously pickle the ExportInfo ref >> embedded in x.r. It would be better to exclude this >> if and when possible, but it shouldn't hurt for now. *) >> Pickle.Special.write(self, r, writer); >> ELSE >> RAISE Pickle.Error("Can't pickle a surrogate object"); >> END; >> >>The intent, I think, is that an object that is remote (that is, has x.r of = >>type Transport.Location) should not be pickle-able. >> >>The problem is that x.r is initially NIL, and NIL is a member of Transport.= >>Location. >> >>My workaround is to FIRST export the object before attempting to Pickle it.= >> This works fine but it shouldn't be necessary, should it? What if I don'= >>t want to export the object, but just pickle it? >> >>I believe the test should be changed to be >> >>IF x.r =3D NIL OR NOT ISTYPE(x.r, Transport.Location) THEN... >> >> Mika >> > From jay.krell at cornell.edu Mon Aug 5 05:12:06 2013 From: jay.krell at cornell.edu (Jay K) Date: Mon, 5 Aug 2013 03:12:06 +0000 Subject: [M3devel] TextLiteral/MaxBytes 32bit/64bit pickling In-Reply-To: <20130802222554.816175DEB89@birch.elegosoft.com> References: <20130802222554.816175DEB89@birch.elegosoft.com> Message-ID: Ideally I could have a TextLiteral on a 64bit machine larger than 2GB or 4GB. I would not be able to unpickle it on a 32bit machine and that would be ok. There a long standing problem though anyway in the frontend where INTEGER is used in place of TInt.T or LONGINT, giving 32bit limits to 64bit targets. I put in a hack actually to change MaxBytes to be a 32bit limit, to fix cross compiling from 32bit to 64bit. Maybe this is something different though. I realize that is quite a TextLiteral but I think, generally, if it fits in target address space, it should work. Heck, we should think about "persistant disk based" data structures that don't even fit in memory. e.g. file systems, movies, etc. - Jay > Date: Sat, 3 Aug 2013 00:25:54 +0000 > To: m3commit at elegosoft.com > From: rodney at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: rodney at birch. 13/08/03 00:25:54 > > Modified files: > cm3/m3-libs/libm3/src/pickle/ver2/: Tag: devel_unicode > Pickle2.m3 > > Log message: > An almost solution to the problem of TextLiteral.T's having MaxBytes > dependent on word size, making pickling of TextLiteral.T fail across > different word sizes. > > Hard code the fingerprint for the 64-bit case and translate it to > the one for 32-bit systems, in pickles. Also vice-versa. > > The best long-term solution also involves making TextLiteral.MaxBytes > word-size-independent. This could invalidate some preexisting pickles, > but only if they contain heap objects with a field or element with > declared static type TextLiteral.T, which seems quite unlikely. If > such fields/methods are declared as TEXT, the actual allocated type of > their referents can be TextLiteral.T and all will work. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From rodney_bates at lcwb.coop Fri Aug 9 03:47:04 2013 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Thu, 08 Aug 2013 20:47:04 -0500 Subject: [M3devel] TextLiteral/MaxBytes 32bit/64bit pickling In-Reply-To: References: <20130802222554.816175DEB89@birch.elegosoft.com> Message-ID: <52044A18.5050606@lcwb.coop> On 08/04/2013 10:12 PM, Jay K wrote: > Ideally I could have a TextLiteral on a 64bit machine larger than 2GB or 4GB. > I would not be able to unpickle it on a 32bit machine and that would be ok. > > > There a long standing problem though anyway in the frontend where INTEGER > is used in place of TInt.T or LONGINT, giving 32bit limits to 64bit targets. I presume this, plus the fact that the compiler lays everything out in _bits_ is why the DIV BITSIZE(Byte)? > > > I put in a hack actually to change MaxBytes to be a 32bit limit, to fix > cross compiling from 32bit to 64bit. Maybe this is something different though. > I have done the same thing in my local directories, but for a different reason. It gives a consistent fingerprint to TextLiteral.T, so it can cross-pickled, so to speak, 32<->64. I also located the two fingerprints for the two sizes and am now mapping between them in Pickles, so that old pickles, generated on either machine, can be read. But this suggests another strategy. In the case of TextLiteral.T, the static size of the array is neither correct nor depended on. So we could just hard-code one of the fingerprints (probably the 32-bit one) in the compiler and always emit it rather than computing it from the type. That would keep pickles happy and allow the actual declared size to be adjusted to suit whatever other criteria mattered. > > I realize that is quite a TextLiteral but I think, generally, if it fits in target address space, it should work. > Heck, we should think about "persistant disk based" data structures that don't even fit in memory. > e.g. file systems, movies, etc. > > > - Jay > > > > Date: Sat, 3 Aug 2013 00:25:54 +0000 > > To: m3commit at elegosoft.com > > From: rodney at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: rodney at birch. 13/08/03 00:25:54 > > > > Modified files: > > cm3/m3-libs/libm3/src/pickle/ver2/: Tag: devel_unicode > > Pickle2.m3 > > > > Log message: > > An almost solution to the problem of TextLiteral.T's having MaxBytes > > dependent on word size, making pickling of TextLiteral.T fail across > > different word sizes. > > > > Hard code the fingerprint for the 64-bit case and translate it to > > the one for 32-bit systems, in pickles. Also vice-versa. > > > > The best long-term solution also involves making TextLiteral.MaxBytes > > word-size-independent. This could invalidate some preexisting pickles, > > but only if they contain heap objects with a field or element with > > declared static type TextLiteral.T, which seems quite unlikely. If > > such fields/methods are declared as TEXT, the actual allocated type of > > their referents can be TextLiteral.T and all will work. > > From rcolebur at SCIRES.COM Sun Aug 18 03:23:24 2013 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Sun, 18 Aug 2013 01:23:24 +0000 Subject: [M3devel] syntax err in SocketWin32.m3 Message-ID: <0BB8FA59C2932741A3A2941A8B9D8BFF5CEF9613@ATLEX04-SRV.SCIRES.LOCAL> Jay: I'm trying to rebuild cm3 on Windows XP. I'm getting a compile error at line 59 in m3-libs\libm3\src\os\WIN32\SocketWin32.m3 That line is as follows: True : BOOL := 1; The type BOOL is not defined. Later this variable is used in the call EVAL setsockopt (t.sock, SOL_SOCKET, SO_REUSEADDR, ADR(True), BYTESIZE(True)); I'm not sure if we could replace with "True : BOOLEAN := TRUE;" or if the setsockopt is expecting a certain encoding. Based on the file history, I think you may have made this change, so thought I would run it past you first before I messed around with it. Thanks, Randy Coleburn -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Aug 19 08:56:13 2013 From: jay.krell at cornell.edu (Jay K) Date: Mon, 19 Aug 2013 06:56:13 +0000 Subject: [M3devel] syntax err in SocketWin32.m3 In-Reply-To: <0BB8FA59C2932741A3A2941A8B9D8BFF5CEF9613@ATLEX04-SRV.SCIRES.LOCAL> References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CEF9613@ATLEX04-SRV.SCIRES.LOCAL> Message-ID: BOOLEAN is wrong. It should be WinDef.BOOL or int or such -- 4 bytes. Not INTEGER, that will be 8 bytes on Win64. - Jay From: rcolebur at SCIRES.COM To: m3devel at elegosoft.com Date: Sun, 18 Aug 2013 01:23:24 +0000 Subject: [M3devel] syntax err in SocketWin32.m3 Jay: I'm trying to rebuild cm3 on Windows XP. I'm getting a compile error at line 59 in m3-libs\libm3\src\os\WIN32\SocketWin32.m3 That line is as follows: True : BOOL := 1; The type BOOL is not defined. Later this variable is used in the call EVAL setsockopt (t.sock, SOL_SOCKET, SO_REUSEADDR, ADR(True), BYTESIZE(True)); I'm not sure if we could replace with "True : BOOLEAN := TRUE;" or if the setsockopt is expecting a certain encoding. Based on the file history, I think you may have made this change, so thought I would run it past you first before I messed around with it. Thanks, Randy Coleburn -------------- next part -------------- An HTML attachment was scrubbed... URL: From dmuysers at hotmail.com Tue Aug 20 19:23:26 2013 From: dmuysers at hotmail.com (Dirk Muysers) Date: Tue, 20 Aug 2013 19:23:26 +0200 Subject: [M3devel] Build Automation Message-ID: Is Gradle a better quake? -------------- next part -------------- An HTML attachment was scrubbed... URL: From dragisha at m3w.org Fri Aug 23 22:03:16 2013 From: dragisha at m3w.org (=?utf-8?Q?Dragi=C5=A1a_Duri=C4=87?=) Date: Fri, 23 Aug 2013 22:03:16 +0200 Subject: [M3devel] Build Automation In-Reply-To: References: Message-ID: Gradle is better maven, better ant, better Ivy, etc? It is from/for Java world. It integrates other Java ecosystem build tools and extends them. It is written in Groovy, and lots of its "virtue" derives from this fact. To be useable for us, it probably first needs to integrate quake. Not an easy task, without clear benefits. -- Dragi?a Duri? dragisha at m3w.org On Aug 20, 2013, at 7:23 PM, Dirk Muysers wrote: > Is Gradle a better quake? -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Aug 25 09:31:57 2013 From: jay.krell at cornell.edu (Jay K) Date: Sun, 25 Aug 2013 07:31:57 +0000 Subject: [M3devel] Build Automation In-Reply-To: References: , Message-ID: For what we use it for, Quake is hard to beat. What are you missing in Quake? It falls down only slightly: - not as much parallelism as it could have - it is an obscure system, like Modula-3 - it is perhaps fairly Modula-3 specific; but it is extensible and we do have C/C++ in their, presumably one could add Java/C# support reasonably easily.. - doesn't offer building multiple programs/modules in one invocation -- directory traversal; we layer thin scripts over it - the name -- I assume it meant quick make it wins: - integrated with the compiler (this can be viewed as bad too) - declarative (or at least appears so, it is actually clever and imperative, but it is a great facsimile) - presumably efficient -- they actually compile it down to a bytecode internally and execute that! - presumably efficient -- underlying native code Modula-3 implementation..if this means anything any longer, so much is written in JavaScript, C#, Java, theoretical efficiencies all over the place and yet most things seem ok - Jay From: dragisha at m3w.org Date: Fri, 23 Aug 2013 22:03:16 +0200 To: dmuysers at hotmail.com CC: m3devel at elegosoft.com Subject: Re: [M3devel] Build Automation Gradle is better maven, better ant, better Ivy, etc. It is from/for Java world. It integrates other Java ecosystem build tools and extends them. It is written in Groovy, and lots of its "virtue" derives from this fact. To be useable for us, it probably first needs to integrate quake. Not an easy task, without clear benefits. --Dragi?a Duri?dragisha at m3w.org On Aug 20, 2013, at 7:23 PM, Dirk Muysers wrote: Is Gradle a better quake? -------------- next part -------------- An HTML attachment was scrubbed... URL: From dmuysers at hotmail.com Sun Aug 25 12:00:09 2013 From: dmuysers at hotmail.com (Dirk Muysers) Date: Sun, 25 Aug 2013 12:00:09 +0200 Subject: [M3devel] Build Automation In-Reply-To: References: , Message-ID: I am not missing anything in quake. I just thought it was worth a look. If I would redo M3 (and I am too old for that), I would write a single byte-code producing compiler. So, no compelling need for quake or any other build tool. Plus a platform-dependent runtime and jitter (using e.g. libjit). Would make the whole thing much simpler. The biggest mistake IMHO was CM's new text model that obliges to code two branches for nearly any text-related job. I would have kept the pm3 text model but encoded in UTF-8. There is nearly no runtime penalty as one accesses text almost always sequentially. Tell me a single case where one needs random access to individual characters. I tried to do that, but TEXT is used in every nock and corner of the libraries. Also, surprisingly, it is significantly more difficult to revert from the cm3 to the pm3 model than CM's passage to the alternate model. You have to touch almost every module in the system. It took me half a day to grep through the libraries with Text, Text8, Text16, TextLiteral etc. And restarting from pm3 sacrifices the indeniable improvements of the cm3 compiler, disregarding its text model. That wide-character blunder was first introduced by Microsoft (does that surprise anybody?) when they thought that Unicode would never go beyond 16 bits. Sun followed the trail with Java and so did CM with M3. S. Ballmer's resignation (thanks the gods) comes to late to reverse the trend. Newer text models (e.g. Go) all acknowledge the mistake and use UTF-8. I am currently working at a Unicode-friendly library that uses UTF-8 text side-by-side with the existing cm3 TEXT. From: Jay K Sent: Sunday, August 25, 2013 9:31 AM To: Dragi?a Duri? ; Dirk Muysers Cc: m3devel Subject: RE: [M3devel] Build Automation For what we use it for, Quake is hard to beat. What are you missing in Quake? It falls down only slightly: - not as much parallelism as it could have - it is an obscure system, like Modula-3 - it is perhaps fairly Modula-3 specific; but it is extensible and we do have C/C++ in their, presumably one could add Java/C# support reasonably easily.. - doesn't offer building multiple programs/modules in one invocation -- directory traversal; we layer thin scripts over it - the name -- I assume it meant quick make it wins: - integrated with the compiler (this can be viewed as bad too) - declarative (or at least appears so, it is actually clever and imperative, but it is a great facsimile) - presumably efficient -- they actually compile it down to a bytecode internally and execute that! - presumably efficient -- underlying native code Modula-3 implementation..if this means anything any longer, so much is written in JavaScript, C#, Java, theoretical efficiencies all over the place and yet most things seem ok - Jay -------------------------------------------------------------------------------- From: dragisha at m3w.org Date: Fri, 23 Aug 2013 22:03:16 +0200 To: dmuysers at hotmail.com CC: m3devel at elegosoft.com Subject: Re: [M3devel] Build Automation Gradle is better maven, better ant, better Ivy, etc. It is from/for Java world. It integrates other Java ecosystem build tools and extends them. It is written in Groovy, and lots of its "virtue" derives from this fact. To be useable for us, it probably first needs to integrate quake. Not an easy task, without clear benefits. -- Dragi?a Duri? dragisha at m3w.org On Aug 20, 2013, at 7:23 PM, Dirk Muysers wrote: Is Gradle a better quake? -------------- next part -------------- An HTML attachment was scrubbed... URL: From rodney_bates at lcwb.coop Sun Aug 25 17:10:07 2013 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Sun, 25 Aug 2013 10:10:07 -0500 Subject: [M3devel] Build Automation In-Reply-To: References: , Message-ID: <521A1E4F.7070908@lcwb.coop> On 08/25/2013 05:00 AM, Dirk Muysers wrote: > I am not missing anything in quake. I just thought it was worth a look. > If I would redo M3 (and I am too old for that), I would write a single > byte-code producing compiler. So, no compelling need for quake > or any other build tool. Plus a platform-dependent runtime and jitter > (using e.g. libjit). Would make the whole thing much simpler. > The biggest mistake IMHO was CM's new text modelthat obliges to > code two branches for nearly any text-related job. I would have kept > the pm3 text model but encoded in UTF-8. There is nearly no runtime > penalty as one accesses text almost always sequentially. Tell me a > single case where one needs random access to individual characters. I have lots of them. > I tried to do that, but TEXT is used in every nock and corner of the > libraries. Also, surprisingly, it is significantly more difficult to revert > from the cm3 to the pm3 model than CM's passage to the alternate > model. You have to touch almost every module in the system. It took > me half a day to grep through the libraries with Text, Text8, Text16, > TextLiteral etc. And restarting from pm3 sacrifices the indeniable > improvements of the cm3 compiler, disregarding its text model. > That wide-character blunder was first introduced by Microsoft (does > that surprise anybody?) when they thought that Unicode would never > go beyond 16 bits. Sun followed the trail with Java and so did CM > with M3. S. Ballmer's resignation (thanks the gods) comes to late to > reverse the trend. Newer text models (e.g. Go) all acknowledge the > mistake and use UTF-8. In the devel_unicode branch, there is now a mostly-working system that provides low-level support of full Unicode. It's lower-level than what (according to my admittedly sketchy impression) you (Dirk) are working on. The simplified description is, all it does is change WIDECHAR to hold all of Unicode. Arrays of WIDECHAR, etc, and TEXT just fall out of this. Specifically, ORD(LAST(WIDECHAR))=16_10FFFF. (But, as an implementation detail, BITSIZE(WIDECHAR)=32). Actually, there's another part. New library code provides streams almost like Rd and Wr that do encoding/decoding in nine (I think) different encodings, many of them variable-length, including UTF-8 and all the other Unicode encodings. When Modula-3 had only CHAR, we had two different abstractions: Text and streams (Rd, Wr). Slightly oversimplified, Text is inherently designed for random access. (Yeah, I know this took a hit with CM3, but it's still feasible.) Streams are inherently sequential. In the branch, these two abstractions get full Unicode support while preserving their original characteristics. I feel _very_ strongly that it is wrong to axe the possiblity of random access in Text. Yes, a lot of usage is sequential, but not all, and Text is a very easy-to-use, purely functional abstraction that often is just so much easier than ARRAY OF (WIDE)CHAR, for many other purposes in addition to random access. I personally probably use Text.GetChar (and Text.Sub) more often in non-sequential patterns than sequential. If you are adventurous, you could probably start trying it out now. I am still working on testing/development on pickle and netobj compatability between programs compiled with different WIDECHAR sizes, plus various loose ends. Also, I have to come up with a definitive procedure for bootstrapping it. > I am currently working at a Unicode-friendly library that uses UTF-8 > text side-by-side with the existing cm3 TEXT. > > *From:* Jay K > *Sent:* Sunday, August 25, 2013 9:31 AM > *To:* Dragi?a Duri? ; Dirk Muysers > *Cc:* m3devel > *Subject:* RE: [M3devel] Build Automation > > For what we use it for, Quake is hard to beat. > > What are you missing in Quake? > > It falls down only slightly: > - not as much parallelism as it could have > - it is an obscure system, like Modula-3 > - it is perhaps fairly Modula-3 specific; but it is extensible and we do have C/C++ in their, presumably one could add Java/C# support reasonably easily.. > - doesn't offer building multiple programs/modules in one invocation -- directory traversal; we layer thin scripts over it > - the name -- I assume it meant quick make > > it wins: > - integrated with the compiler (this can be viewed as bad too) > - declarative (or at least appears so, it is actually clever and imperative, but it is a great facsimile) > - presumably efficient -- they actually compile it down to a bytecode internally and execute that! > - presumably efficient -- underlying native code Modula-3 implementation..if this means anything any longer, so much is written in JavaScript, C#, Java, theoretical efficiencies all over the place and yet most things seem ok > > > - Jay > > > > > ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- > From: dragisha at m3w.org > Date: Fri, 23 Aug 2013 22:03:16 +0200 > To: dmuysers at hotmail.com > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Build Automation > > Gradle is better maven, better ant, better Ivy, etc. It is from/for Java world. > > It integrates other Java ecosystem build tools and extends them. It is written in Groovy, and lots of its "virtue" derives from this fact. > > To be useable for us, it probably first needs to integrate quake. Not an easy task, without clear benefits. > > -- > Dragi?a Duri? > dragisha at m3w.org > > > > On Aug 20, 2013, at 7:23 PM, Dirk Muysers wrote: > > Is Gradle a better quake? > > From rcolebur at SCIRES.COM Mon Aug 26 00:59:19 2013 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Sun, 25 Aug 2013 22:59:19 +0000 Subject: [M3devel] problems rebuilding on Win XP Message-ID: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF046CD@ATLEX04-SRV.SCIRES.LOCAL> I'm having all sorts of problems rebuilding cm3 on WinXP. I have an old WinXP laptop on which I had a working cm3 system circa 2008. I decided to update to the last sources, so I used CVS to update my sandbox from the HEAD branch. Then, I began the rebuild process. Stage 1 of the rebuild went ok, then when I got to stage 2, I ran into a problem with a compile error in "cm3/m3-libs/libm3/src/os/WIN32/SocketWin32.m3" that I repaired with Jay's help. Now going back thru the rebuild again, the compilation failed in stage 1 (even though it had worked previously). Figuring that I'd somehow messed up everything, I saved off my bin, pkg, lib folders and replaced them with an old backup of a working system. Now, I run into all kinds of problems with the system trying to find stuff in "I386_NT" folders instead of "NT386". I tried renaming all the NT386 folders to I386_NT, but that didn't help (seems that internally something still wants the NT386). So, I modify cm3.cfg to force use of NT386, so I can make progress again, but now I'm getting all kinds of compilation errors. Given my predicament, is there some minimalist binary distribution I can download, install, and use to rebuild everything in my sandbox afresh on 32-bit Windows XP ? (BTW, this system uses Visual Studio 2008 for the linker and other Microsoft tools.) Has there been a definite plan to change the naming of "NT386" to "I386_NT" ? Once I get the 32-bit XP working, I'm going to want to build everything on Windows 7 (64-bit), so any thoughts in advance on how to best succeed in that endeavor are also appreciated. Thanks, Randy Coleburn -------------- next part -------------- An HTML attachment was scrubbed... URL: From rodney_bates at lcwb.coop Mon Aug 26 01:59:28 2013 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Sun, 25 Aug 2013 18:59:28 -0500 Subject: [M3devel] 64-bit big endian? Message-ID: <521A9A60.9030005@lcwb.coop> Do we have any 64-bit big endian targets? There is missing code in StubLib that would be needed if we do. From hosking at cs.purdue.edu Mon Aug 26 02:27:53 2013 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 25 Aug 2013 20:27:53 -0400 Subject: [M3devel] 64-bit big endian? In-Reply-To: <521A9A60.9030005@lcwb.coop> References: <521A9A60.9030005@lcwb.coop> Message-ID: <03B7B647-E633-4873-8057-EC6A817616A9@cs.purdue.edu> Any SPARC big-endian 64-bit? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Mobile +1 765 427 5484 On Aug 25, 2013, at 7:59 PM, "Rodney M. Bates" wrote: > Do we have any 64-bit big endian targets? There is missing code in > StubLib that would be needed if we do. > From rcolebur at SCIRES.COM Mon Aug 26 16:35:01 2013 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Mon, 26 Aug 2013 14:35:01 +0000 Subject: [M3devel] 64-bit big endian? Message-ID: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF04FF8@ATLEX04-SRV.SCIRES.LOCAL> I've been thinking about loading cm3 on an old SPARC that I have. I am pretty sure it is 64bit. Not sure of the endian-ness---I'll have to check. Right now, I've got to get cm3 working again on 32-bit XP. --Randy Coleburn -----Original Message----- From: Tony Hosking [mailto:hosking at cs.purdue.edu] Sent: Sunday, August 25, 2013 8:28 PM To: Rodney M. Bates Cc: m3devel Subject: EXT:Re: [M3devel] 64-bit big endian? Any SPARC big-endian 64-bit? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Mobile +1 765 427 5484 On Aug 25, 2013, at 7:59 PM, "Rodney M. Bates" wrote: > Do we have any 64-bit big endian targets? There is missing code in > StubLib that would be needed if we do. > From microcode at zoho.com Mon Aug 26 16:40:47 2013 From: microcode at zoho.com (microcode at zoho.com) Date: Mon, 26 Aug 2013 14:40:47 +0000 Subject: [M3devel] 64-bit big endian? In-Reply-To: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF04FF8@ATLEX04-SRV.SCIRES.LOCAL> References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF04FF8@ATLEX04-SRV.SCIRES.LOCAL> Message-ID: <20130826144047.GB12430@zoho.com> I think what Tony meant is all SPARC is big endian. Which old SPARC do you have? We can probably tell you if it is 64 bit or not. On Mon, Aug 26, 2013 at 02:35:01PM +0000, Coleburn, Randy wrote: > I've been thinking about loading cm3 on an old SPARC that I have. I am pretty sure it is 64bit. Not sure of the endian-ness---I'll have to check. Right now, I've got to get cm3 working again on 32-bit XP. > --Randy Coleburn > > -----Original Message----- > From: Tony Hosking [mailto:hosking at cs.purdue.edu] > Sent: Sunday, August 25, 2013 8:28 PM > To: Rodney M. Bates > Cc: m3devel > Subject: EXT:Re: [M3devel] 64-bit big endian? > > Any SPARC big-endian 64-bit? > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA Mobile +1 765 427 5484 > > > > > > On Aug 25, 2013, at 7:59 PM, "Rodney M. Bates" wrote: > > > Do we have any 64-bit big endian targets? There is missing code in > > StubLib that would be needed if we do. > > > -- _ _ ._ _ _ <_> ___ _ _ ___ ___ ___ _| | ___ | ' ' || |/ | '| '_>/ . \/ | '/ . \/ . |/ ._> |_|_|_||_|\_|_.|_| \___/\_|_.\___/\___|\___. From rodney_bates at lcwb.coop Mon Aug 26 20:22:10 2013 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Mon, 26 Aug 2013 13:22:10 -0500 Subject: [M3devel] 64-bit big endian? In-Reply-To: <521A9A60.9030005@lcwb.coop> References: <521A9A60.9030005@lcwb.coop> Message-ID: <521B9CD2.3090703@lcwb.coop> I accidentally found the answer to this while working on a different problem. The files in cminstall/src/config-no-install/.common, etc. contain both endianness and word size for the targets we support. These are also installed in /usr/local/cm3/bin/config. HPPA64, MIPS64, SPARC64 On 08/25/2013 06:59 PM, Rodney M. Bates wrote: > Do we have any 64-bit big endian targets? There is missing code in > StubLib that would be needed if we do. > > From microcode at zoho.com Mon Aug 26 20:41:05 2013 From: microcode at zoho.com (microcode at zoho.com) Date: Mon, 26 Aug 2013 18:41:05 +0000 Subject: [M3devel] 64-bit big endian? In-Reply-To: <521B9CD2.3090703@lcwb.coop> References: <521A9A60.9030005@lcwb.coop> <521B9CD2.3090703@lcwb.coop> Message-ID: <20130826184105.GA16184@zoho.com> On Mon, Aug 26, 2013 at 01:22:10PM -0500, Rodney M. Bates wrote: > I accidentally found the answer to this while working on a different problem. > The files in cminstall/src/config-no-install/.common, etc. contain both > endianness and word size for the targets we support. These are also installed > in /usr/local/cm3/bin/config. > > HPPA64, MIPS64, SPARC64 MIPS is a bi-endian platform. There are a little-endian MIPS64 boxes also, but I guess from your post M3 wouldn't support them. SPARC64 is also technically bi-endian for data although I don't know if any OS runs little-endian on it. All the "normal" stuff that runs on it is big endian. From rcolebur at SCIRES.COM Tue Aug 27 02:49:00 2013 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Tue, 27 Aug 2013 00:49:00 +0000 Subject: [M3devel] need some help with linker error Message-ID: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL> Jay: I'm getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. The full text of the m3core.lst file is also shown at the end of this message. msvcrt.lib m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj m3core.def : error LNK2001: unresolved external symbol _xmm m3core.lib : fatal error LNK1120: 1 unresolved externals Any ideas on what I should do to resolve this problem? Thanks, Randy Coleburn Microsoft (R) Incremental Linker Version 11.00.51106.1 Copyright (C) Microsoft Corporation. All rights reserved. -nodefaultlib -debug -incremental:no -opt:ref -delayload:ws2_32.dll -delayload:advapi32.dll -delayload:gdi32.dll -delayload:netapi32.dll -delayload:user32.dll -delayload:comctl32.dll -delayload:rpcrt4.dll -delayload:iphlpapid.dll delayimp.lib -def:m3core.def -dll -out:m3core.dll hand.obj dtoa.obj libgcc.obj RTHooks.io RTHooks.mo RT0.io RT0.mo RuntimeError.io RuntimeError.mo Compiler.io Compiler.mo RTAllocator.io RTAllocator.mo RTAllocCnts.io RTAllocStats.io RTAllocStats.mo RTHeap.io RTHeap.mo RTHeapInfo.io RTHeapInfo.mo RTHeapMap.io RTHeapMap.mo RTHeapRep.io RTHeapRep.mo RTHeapStats.io RTHeapStats.mo RTCollector.io RTCollector.mo RTCollectorSRC.io RTWeakRef.io RTIO.io RTIO.mo RTIOc.obj RTLinkerX.io RTLinker.io RTLinker.mo RTLinkerC.obj RTDebug.io RTDebug.mo RTDebugC.obj RTError.io RTError.mo RTException.io RTException.mo RTMapOp.io RTMapOp.mo RTMisc.io RTMisc.mo RTMiscC.obj RTModule.io RTPacking.io RTPacking.mo RTParams.io RTParams.mo RTProcedure.io RTProcedure.mo RTProcess.io RTProcess.mo RTProcessC.obj RTThread.io RTTipe.io RTTipe.mo RTType.io RTType.mo RTTypeFP.io RTTypeFP.mo RTTypeMap.io RTTypeMap.mo RTutils.io RTutils.mo RTHeapDebug.io RTHeapDebug.mo RTArgs.io RTHeapEvent.io RTProcedureSRC.io RTSignal.io RTStack.io RTTypeSRC.io RTOS.io RTMachine.io RTArgs.mo RTOS.mo RTPerfTool.io RTPerfTool.mo RTOSc.obj RTSignal.mo RTMachInfo.io RTMachInfo.mo RTExFrame.mo RTStackC.obj Thread.io ThreadF.io Scheduler.io ThreadDebug.io ThreadDebug.obj MutexRep.io ThreadEvent.io ThreadContext.io ThreadWin32.io ThreadWin32.mo ThreadWin32C.obj WinBaseTypes.io WinDef.io WinDef.mo WinNT.io WinNT.mo WinNTc.obj WinError.io WinBase.io WinCon.io WinGDI.io WinGDI.mo WinIoctl.io WinIoctl.mo WinNetwk.io WinNLS.io WinReg.io WinReg.mo WinSock.io WinSock.mo WinUser.io WinUser.mo WinUserC.obj WinVer.io WinVer.mo NB30.io NB30.mo CDErr.io CommDlg.io TlHelp32.io WinMidi.io WinCommCtrl.io WinTabCon.io WinTabCon.mo WinListView.io WinListView.mo WinImageList.io WinImageList.mo UtimeC.obj UnixC.obj UnixLink.obj Uexec.io Uexec.obj Unetdb.io Unetdb.obj Umman.obj Ugrp.io Ugrp.obj Uin.obj Uugid.obj Uuio.obj Uutmp.obj Usignal.obj Upwd.obj Uprocess.obj Usignal.io Uconstants.obj Uutmp.io Umman.io Uuio.io Upwd.io Uugid.io Uprocess.io Unix.io Unix.mo Utime.io Utypes.io Uerror.io Usched.io Usocket.io Usocket.obj Ustat.io Udir.io UdirC.obj Uin.io Cerrno.io Cstddef.io Cstdint.io Cstdlib.io CstdlibC.obj Ctypes.io M3toC.io M3toC.mo CerrnoC.obj Cstring.io CstringC.obj Cstdio.io CstdioC.obj Csignal.io CsignalC.obj Csetjmp.io BasicCtypes.io FPU.io RealFloat.io LongFloat.io ExtendedFloat.io IEEESpecial.io IEEESpecial.mo Real.mo LongReal.mo Extended.mo DragonInt.io DragonInt.mo DragonT.io DragonT.mo FloatMode.io FloatMode.mo Real.io LongReal.io Extended.io RealFloat.mo LongFloat.mo ExtendedFloat.mo RealRep.io LongRealRep.io Time.io Tick.io Date.io FmtTime.io FmtTime.mo TickPortable.mo Time.mo TimeWin32.io TimeWin32.mo DateWin32.mo CConvert.io CConvert.mo Convert.io Convert.mo String8.io String8.mo String16.io String16.mo Text.io Text.mo TextClass.io TextClass.mo TextLiteral.io TextLiteral.mo Text8.io Text8.mo Text8Short.io Text8Short.mo Text8CString.io Text8CString.mo Text16.io Text16.mo Text16Short.io Text16Short.mo TextSub.io TextSub.mo TextCat.io TextCat.mo TextStats.io TextStats.mo TextConv.io TextConv.mo Fingerprint.io Fingerprint.mo Poly.io Poly.mo PolyBasis.io PolyBasis.mo Main.io WeakRef.io WeakRef.mo WordRep.io Word.io LongRep.io Long.io Word.mo Long.mo Boolean.io Boolean.mo Char.io Char.mo Int32.io Int32.mo Int64.io Int64.mo Integer.io Integer.mo Longint.io Longint.mo Refany.io Refany.mo ASCII.io ASCII.mo WideChar.io WideChar.mo Unicode.io Unicode.mo Address.io Address.mo iphlpapi.lib rpcrt4.lib winspool.lib comctl32.lib ws2_32.lib comdlg32.lib netapi32.lib gdi32.lib user32.lib advapi32.lib kernel32.lib msvcrt.lib m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj m3core.def : error LNK2001: unresolved external symbol _xmm m3core.lib : fatal error LNK1120: 1 unresolved externals -------------- next part -------------- An HTML attachment was scrubbed... URL: From rodney_bates at lcwb.coop Tue Aug 27 03:03:20 2013 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Mon, 26 Aug 2013 20:03:20 -0500 Subject: [M3devel] need some help with linker error In-Reply-To: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL> References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL> Message-ID: <521BFAD8.3040504@lcwb.coop> This is just a wild guess, but there are two dtoa.c files, in m3-libs/m3core/src/Csupport/little-endian/dtoa.c and m3-libs/m3core/src/Csupport/big-endian/dtoa.c No doubt they are alternatives. Is there a chance both are getting linked in? Or one from the modula-3 distribution, and one already in some MS-supplied library? On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > Jay: > > I?m getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > The full text of the m3core.lst file is also shown at the end of this message. > > msvcrt.lib > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > m3core.def : error LNK2001: unresolved external symbol _xmm > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > Any ideas on what I should do to resolve this problem? > > Thanks, > > Randy Coleburn > > From jay.krell at cornell.edu Tue Aug 27 08:43:53 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: [M3devel] need some help with linker error In-Reply-To: <521BFAD8.3040504@lcwb.coop> References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL>, <521BFAD8.3040504@lcwb.coop> Message-ID: > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I?m getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Aug 27 09:35:28 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 07:35:28 +0000 Subject: [M3devel] 64-bit big endian? In-Reply-To: <20130826184105.GA16184@zoho.com> References: <521A9A60.9030005@lcwb.coop>, <521B9CD2.3090703@lcwb.coop>, <20130826184105.GA16184@zoho.com> Message-ID: > There are a little-endian MIPS64 boxes also, OpenBSD/loongson? I was running on that. We are extremely portable. Endianness is of almost no concern. Processor is of almost no concern. We use the gcc backend and pthreads for portability. Or Windows. The gcc requirement will be relaxed to any C or C++ compiler. The system was implemented to be about that portable and I believe I fairly well proved it succeeded. I got it to run on several similar systems that it hadn't run on or hadn't recently run on, and I got close on still others. Give just a bit of time and hardware, I'm IA64/HPUX/Irix/VMS/AIX/Tru64 whatever you can muster, we'll work with it. But most of these systems people don't use anyway. And, it is getting better. We'll need just a C or C++ compiler, and pthreads or Win32. We should be about as portable as any "package" on any widely used Posix or Windows system. Maybe some day we'll even output JavaScript and run in a browser, via emscriptem... (We'll also remove some of trickier mostly Posix code with cooperative suspend...) - Jay > Date: Mon, 26 Aug 2013 18:41:05 +0000 > From: microcode at zoho.com > To: m3devel at elegosoft.com > Subject: Re: [M3devel] 64-bit big endian? > > On Mon, Aug 26, 2013 at 01:22:10PM -0500, Rodney M. Bates wrote: > > I accidentally found the answer to this while working on a different problem. > > The files in cminstall/src/config-no-install/.common, etc. contain both > > endianness and word size for the targets we support. These are also installed > > in /usr/local/cm3/bin/config. > > > > HPPA64, MIPS64, SPARC64 > > MIPS is a bi-endian platform. There are a little-endian MIPS64 boxes also, > but I guess from your post M3 wouldn't support them. > > SPARC64 is also technically bi-endian for data although I don't know if any > OS runs little-endian on it. All the "normal" stuff that runs on it is big > endian. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Aug 27 09:38:16 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 07:38:16 +0000 Subject: [M3devel] 64-bit big endian? In-Reply-To: References: <521A9A60.9030005@lcwb.coop>, <521B9CD2.3090703@lcwb.coop>, , <20130826184105.GA16184@zoho.com>, Message-ID: SPARC64_SOLARIS is here: https://modula3.elegosoft.com/cm3/uploaded-archives/index.html - Jay From: jay.krell at cornell.edu To: microcode at zoho.com; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 07:35:28 +0000 Subject: Re: [M3devel] 64-bit big endian? > There are a little-endian MIPS64 boxes also, OpenBSD/loongson? I was running on that. We are extremely portable. Endianness is of almost no concern. Processor is of almost no concern. We use the gcc backend and pthreads for portability. Or Windows. The gcc requirement will be relaxed to any C or C++ compiler. The system was implemented to be about that portable and I believe I fairly well proved it succeeded. I got it to run on several similar systems that it hadn't run on or hadn't recently run on, and I got close on still others. Give just a bit of time and hardware, I'm IA64/HPUX/Irix/VMS/AIX/Tru64 whatever you can muster, we'll work with it. But most of these systems people don't use anyway. And, it is getting better. We'll need just a C or C++ compiler, and pthreads or Win32. We should be about as portable as any "package" on any widely used Posix or Windows system. Maybe some day we'll even output JavaScript and run in a browser, via emscriptem... (We'll also remove some of trickier mostly Posix code with cooperative suspend...) - Jay > Date: Mon, 26 Aug 2013 18:41:05 +0000 > From: microcode at zoho.com > To: m3devel at elegosoft.com > Subject: Re: [M3devel] 64-bit big endian? > > On Mon, Aug 26, 2013 at 01:22:10PM -0500, Rodney M. Bates wrote: > > I accidentally found the answer to this while working on a different problem. > > The files in cminstall/src/config-no-install/.common, etc. contain both > > endianness and word size for the targets we support. These are also installed > > in /usr/local/cm3/bin/config. > > > > HPPA64, MIPS64, SPARC64 > > MIPS is a bi-endian platform. There are a little-endian MIPS64 boxes also, > but I guess from your post M3 wouldn't support them. > > SPARC64 is also technically bi-endian for data although I don't know if any > OS runs little-endian on it. All the "normal" stuff that runs on it is big > endian. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From microcode at zoho.com Tue Aug 27 09:51:46 2013 From: microcode at zoho.com (microcode at zoho.com) Date: Tue, 27 Aug 2013 07:51:46 +0000 Subject: [M3devel] 64-bit big endian? In-Reply-To: References: <521A9A60.9030005@lcwb.coop> <521B9CD2.3090703@lcwb.coop> <20130826184105.GA16184@zoho.com> Message-ID: <20130827075146.GA18129@zoho.com> On Tue, Aug 27, 2013 at 07:35:28AM +0000, Jay K wrote: > > There are a little-endian MIPS64 boxes also, > > OpenBSD/loongson? I was running on that. Yes, that's what I was thinking of. Are you saying you have CM3 running on it? > We are extremely portable. Endianness is of almost no concern. Processor > is of almost no concern. > We use the gcc backend and pthreads for portability. Or Windows. > The gcc requirement will be relaxed to any C or C++ compiler. That will really be great. A lot of times I want to run something and it has gcc-isms and doesn't build with other compilers. > The system was implemented to be about that portable and I believe I > fairly well proved it succeeded. I got it to run on several similar > systems that it hadn't run on or hadn't recently run on, and I got close > on still others. Give just a bit of time and hardware, I'm > IA64/HPUX/Irix/VMS/AIX/Tru64 whatever you can muster, we'll work with > it. But most of these systems people don't use anyway. I have friends with a lot more hardware than me and they seem to just accept the fact they can only run software X on boxes a and b and not c, d or e. I don't like to get stuck not being able to run something on the few different boxes I have so I tend not to look too hard at stuff that won't run everywhere. I've been so busy with other projects that I haven't had time to look at Modula-3 (not just CM3) but it's definitely on my list since I do appreciate good language design. I was impressed on all the platform support I saw on the homepage and I've been lurking on the mailing list to see what you guys are up to. From jay.krell at cornell.edu Tue Aug 27 10:03:17 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 08:03:17 +0000 Subject: [M3devel] 64-bit big endian? In-Reply-To: <20130827075146.GA18129@zoho.com> References: <521A9A60.9030005@lcwb.coop> <521B9CD2.3090703@lcwb.coop>, <20130826184105.GA16184@zoho.com>, , <20130827075146.GA18129@zoho.com> Message-ID: There likely are no gcc-isms in the code. The C code that is in there has been compiled with Visual C++ (partly), Digital cc, Sun cc, maybe others that I'm forgetting (bundled K&R HP-UX cc? a weirdo SGI cc I found.. VMS cc?). Sun cc definitely. Tru64 cc fairly recently. It is just that someone needs to have already ported the gcc backend to the target. We carry a form of the gcc backend with us. At least for now, and for a very long time (10+ years). I have a C-generating backend, in very good shape, but nobody else uses it yet. It can compile the entire system and has a better debugging experience on systems with no m3gdb support (e.g. MacOSX). > Are you saying you have CM3 running on it? I don't currently. I haven't powered on those machines in over a year now. But I was working on it. The point is though, it is generally pretty easy. OpenBSD is a slight challenge because mainline gcc no longer supports it. But they have ports. You get to merge a little the ports to our fork of mainline. But most of the diffs are not in the backend anyway. Mostly OpenBSD/mips is the same Linux/mips, etc. They generally all share calling conventions and assembler syntax, and that is mostly all the backend cares about. Occasionally a small problem is found. For example we over-use bitfields and that showed up as a problem on MIPS. I was also working on Irix. The system is very portable and has been shown to run with little additional effort on a number of systems. It used to be the biggest part of a port was rewriting /usr/include in Modula-3. It was tedious and error prone. But I fixed that. We now have our own C to bridge that safely once and done. - Jay > Date: Tue, 27 Aug 2013 07:51:46 +0000 > From: microcode at zoho.com > To: m3devel at elegosoft.com > Subject: Re: [M3devel] 64-bit big endian? > > On Tue, Aug 27, 2013 at 07:35:28AM +0000, Jay K wrote: > > > There are a little-endian MIPS64 boxes also, > > > > OpenBSD/loongson? I was running on that. > > Yes, that's what I was thinking of. Are you saying you have CM3 running on > it? > > > We are extremely portable. Endianness is of almost no concern. Processor > > is of almost no concern. > > We use the gcc backend and pthreads for portability. Or Windows. > > The gcc requirement will be relaxed to any C or C++ compiler. > > That will really be great. A lot of times I want to run something and it has > gcc-isms and doesn't build with other compilers. > > > The system was implemented to be about that portable and I believe I > > fairly well proved it succeeded. I got it to run on several similar > > systems that it hadn't run on or hadn't recently run on, and I got close > > on still others. Give just a bit of time and hardware, I'm > > IA64/HPUX/Irix/VMS/AIX/Tru64 whatever you can muster, we'll work with > > it. But most of these systems people don't use anyway. > > I have friends with a lot more hardware than me and they seem to just accept > the fact they can only run software X on boxes a and b and not c, d or e. I > don't like to get stuck not being able to run something on the few different > boxes I have so I tend not to look too hard at stuff that won't run > everywhere. I've been so busy with other projects that I haven't had time to > look at Modula-3 (not just CM3) but it's definitely on my list since I do > appreciate good language design. I was impressed on all the platform support > I saw on the homepage and I've been lurking on the mailing list to see what > you guys are up to. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Aug 27 11:07:25 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: [M3devel] need some help with linker error In-Reply-To: References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL>, , <521BFAD8.3040504@lcwb.coop>, Message-ID: I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I?m getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Aug 27 16:55:13 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 14:55:13 +0000 Subject: [M3devel] need some help with linker error In-Reply-To: References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL>, , , <521BFAD8.3040504@lcwb.coop>, , , Message-ID: Hm. That leaves me with: +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ --- building in NT386 --- ignoring ..\src\m3overrides *** *** runtime error: *** Attempt to reference an illegal memory location. *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 0x14f028 0x76f22d94 0x14f040 0x76f22ce8 0x14f054 0x759bc3d4 0x14f068 0x6302dcc2 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc ator.m3 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin 32.m3 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl ector.m3 ......... ......... ... more frames ... *** execution of [, ] failed *** Not good. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: Re: [M3devel] need some help with linker error I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I?m getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Aug 27 17:28:15 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 15:28:15 +0000 Subject: [M3devel] need some help with linker error In-Reply-To: References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL>, , , , <521BFAD8.3040504@lcwb.coop>, , , , , , Message-ID: This is fixed now too. Dragisha had introduced heap corruption in FSWin32.m3 trying to improve Unicode support. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 14:55:13 +0000 Subject: Re: [M3devel] need some help with linker error Hm. That leaves me with: +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ --- building in NT386 --- ignoring ..\src\m3overrides *** *** runtime error: *** Attempt to reference an illegal memory location. *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 0x14f028 0x76f22d94 0x14f040 0x76f22ce8 0x14f054 0x759bc3d4 0x14f068 0x6302dcc2 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc ator.m3 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin 32.m3 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl ector.m3 ......... ......... ... more frames ... *** execution of [, ] failed *** Not good. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: Re: [M3devel] need some help with linker error I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I?m getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Aug 27 20:18:36 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 18:18:36 +0000 Subject: [M3devel] problems rebuilding on Win XP In-Reply-To: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF046CD@ATLEX04-SRV.SCIRES.LOCAL> References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF046CD@ATLEX04-SRV.SCIRES.LOCAL> Message-ID: > is there some minimalist binary distribution I can download, install, and use I used one of these: http://www.opencm3.net/uploaded-archives/cm3-all-x86-pre5.8.5-VC80.msi http://www.opencm3.net/uploaded-archives/cm3-all-x86-pre5.8.5-VC90.msi but any of these ought to work: http://www.opencm3.net/uploaded-archives/cm3-min-x86-pre5.8.5-*.zip * any of VC20 VC40 VC41 VC42 VC50 VC60 VC70 VC80 VC90 VC80 vs. VC90 shouldn't need to match what you are using, it is just what they were built with. Some of them depend on the "VC redist", which you likely already have. and upgrade.py You'll need the fix in FSWin32.m3. I'll try to test some of these this week, and 1) upload updated archives and 2) try the C backend to target AMD64_NT! That was one of the goals of the C backend -- new targets, w/o gcc backend. "NT386" is probably still supported, but I'd really like to someday get rid of: NT386, SOLsun, SOLgnu, LINUXLIBC6, FreeBSD4. For years we have had: I386_NT, SPARC_SOLARIS, I386_LINUX, I386_FREEBSD. With the C backend, even these names will have less significance, as the backend output is nearly the same across many targets, and hopefully will become more common in time. - Jay From: rcolebur at SCIRES.COM To: m3devel at elegosoft.com Date: Sun, 25 Aug 2013 22:59:19 +0000 Subject: [M3devel] problems rebuilding on Win XP I?m having all sorts of problems rebuilding cm3 on WinXP. I have an old WinXP laptop on which I had a working cm3 system circa 2008. I decided to update to the last sources, so I used CVS to update my sandbox from the HEAD branch. Then, I began the rebuild process. Stage 1 of the rebuild went ok, then when I got to stage 2, I ran into a problem with a compile error in ?cm3/m3-libs/libm3/src/os/WIN32/SocketWin32.m3? that I repaired with Jay?s help. Now going back thru the rebuild again, the compilation failed in stage 1 (even though it had worked previously). Figuring that I?d somehow messed up everything, I saved off my bin, pkg, lib folders and replaced them with an old backup of a working system. Now, I run into all kinds of problems with the system trying to find stuff in ?I386_NT? folders instead of ?NT386?. I tried renaming all the NT386 folders to I386_NT, but that didn?t help (seems that internally something still wants the NT386). So, I modify cm3.cfg to force use of NT386, so I can make progress again, but now I?m getting all kinds of compilation errors. Given my predicament, is there some minimalist binary distribution I can download, install, and use to rebuild everything in my sandbox afresh on 32-bit Windows XP ? (BTW, this system uses Visual Studio 2008 for the linker and other Microsoft tools.) Has there been a definite plan to change the naming of ?NT386? to ?I386_NT? ? Once I get the 32-bit XP working, I?m going to want to build everything on Windows 7 (64-bit), so any thoughts in advance on how to best succeed in that endeavor are also appreciated. Thanks, Randy Coleburn -------------- next part -------------- An HTML attachment was scrubbed... URL: From dragisha at m3w.org Wed Aug 28 00:25:15 2013 From: dragisha at m3w.org (=?utf-8?Q?Dragi=C5=A1a_Duri=C4=87?=) Date: Wed, 28 Aug 2013 00:25:15 +0200 Subject: [M3devel] need some help with linker error In-Reply-To: References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL>, , , , <521BFAD8.3040504@lcwb.coop>, , , , , , Message-ID: <68D3C880-5B6B-45AA-BEB5-2D14E87A2AA8@m3w.org> heh :). More like trying to introduce some support. There was no such thing beforehand. I am glad you fixed my first aid effort. Thanks! -- Dragi?a Duri? dragisha at m3w.org On Aug 27, 2013, at 5:28 PM, Jay K wrote: > This is fixed now too. > Dragisha had introduced heap corruption in FSWin32.m3 trying to improve Unicode support. > > - Jay > > From: jay.krell at cornell.edu > To: rodney_bates at lcwb.coop; m3devel at elegosoft.com > Date: Tue, 27 Aug 2013 14:55:13 +0000 > Subject: Re: [M3devel] need some help with linker error > > Hm. That leaves me with: > > +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ > --- building in NT386 --- > ignoring ..\src\m3overrides > > *** > *** runtime error: > *** Attempt to reference an illegal memory location. > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 > 0x14f028 0x76f22d94 > 0x14f040 0x76f22ce8 > 0x14f054 0x759bc3d4 > 0x14f068 0x6302dcc2 > 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 > 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc > ator.m3 > 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin > 32.m3 > 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 > 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl > ector.m3 > ......... ......... ... more frames ... > *** execution of [, pFunction at 0x0197B630>] failed *** > > Not good. > > - Jay > > > > > From: jay.krell at cornell.edu > To: rodney_bates at lcwb.coop; m3devel at elegosoft.com > Date: Tue, 27 Aug 2013 09:07:25 +0000 > Subject: Re: [M3devel] need some help with linker error > > I updated m3-sys/mklib to ignore these. > Let me know if there are any more problems. > > Thanks, > - Jay > > From: jay.krell at cornell.edu > To: rodney_bates at lcwb.coop; m3devel at elegosoft.com > Date: Tue, 27 Aug 2013 06:43:53 +0000 > Subject: Re: [M3devel] need some help with linker error > > > Is there a chance both are getting linked in? > > No. There is no chance of this. > > > > Or one from the modula-3 distribution, and one already in some MS-supplied > > library? > > > No. There is no chance of this either. > > > I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . > These are floating point constants for code that uses sse2. > You are targeting 32bit, right? > Still, I guess these might occur, with newer compilers. > I'll look into it. > We already have to code exclude the older forms of floating point constants. > > - Jay > > > > Date: Mon, 26 Aug 2013 20:03:20 -0500 > > From: rodney_bates at lcwb.coop > > To: m3devel at elegosoft.com > > Subject: Re: [M3devel] need some help with linker error > > > > This is just a wild guess, but there are two dtoa.c files, in > > > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > > > No doubt they are alternatives. Is there a chance both are getting linked in? > > Or one from the modula-3 distribution, and one already in some MS-supplied > > library? > > > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > > Jay: > > > > > > I?m getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > > > msvcrt.lib > > > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > > > Any ideas on what I should do to resolve this problem? > > > > > > Thanks, > > > > > > Randy Coleburn > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From jay.krell at cornell.edu Wed Aug 28 00:35:49 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 22:35:49 +0000 Subject: [M3devel] need some help with linker error In-Reply-To: <68D3C880-5B6B-45AA-BEB5-2D14E87A2AA8@m3w.org> References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL>, , , , <521BFAD8.3040504@lcwb.coop>, , , , , , , <68D3C880-5B6B-45AA-BEB5-2D14E87A2AA8@m3w.org> Message-ID: There was already some support, of a small subset. :) - Jay Subject: Re: [M3devel] need some help with linker error From: dragisha at m3w.org Date: Wed, 28 Aug 2013 00:25:15 +0200 CC: rodney_bates at lcwb.coop; m3devel at elegosoft.com To: jay.krell at cornell.edu heh :). More like trying to introduce some support. There was no such thing beforehand. I am glad you fixed my first aid effort. Thanks! --Dragi?a Duri?dragisha at m3w.org On Aug 27, 2013, at 5:28 PM, Jay K wrote:This is fixed now too. Dragisha had introduced heap corruption in FSWin32.m3 trying to improve Unicode support. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 14:55:13 +0000 Subject: Re: [M3devel] need some help with linker error Hm. That leaves me with: +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ --- building in NT386 --- ignoring ..\src\m3overrides *** *** runtime error: *** Attempt to reference an illegal memory location. *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 0x14f028 0x76f22d94 0x14f040 0x76f22ce8 0x14f054 0x759bc3d4 0x14f068 0x6302dcc2 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc ator.m3 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin 32.m3 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl ector.m3 ......... ......... ... more frames ... *** execution of [, ] failed *** Not good. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: Re: [M3devel] need some help with linker error I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I'm getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Aug 28 10:02:11 2013 From: jay.krell at cornell.edu (Jay K) Date: Wed, 28 Aug 2013 08:02:11 +0000 Subject: [M3devel] m3_round long double to int64? In-Reply-To: <20130828075816.A00679D620B@birch.elegosoft.com> References: <20130828075816.A00679D620B@birch.elegosoft.com> Message-ID: Anyone want to tackle this? INT64 __stdcall m3_round(long double f); rounds to nearest, breaks ties in the IEEE way (toward even, or such), presumably. Make it correct for 32bit, 64bit, big endian, little endian. Assume IEEE754. You can assume long double is the same as double. You'll likely want to split it into mantissa and exponent. Thanks, - Jay > Date: Wed, 28 Aug 2013 09:58:16 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 13/08/28 09:58:16 > > Modified files: > cm3/m3-sys/m3back/src/: M3C.m3 > > Log message: > win64: temporary workaround: truncate instead of round > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Thu Aug 29 03:58:27 2013 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Thu, 29 Aug 2013 02:58:27 +0100 (BST) Subject: [M3devel] m3_round long double to int64? In-Reply-To: References: <20130828075816.A00679D620B@birch.elegosoft.com> Message-ID: <1377741507.7927.YahooMailNeo@web172805.mail.ir2.yahoo.com> Hi all: No, no, no: http://www.youtube.com/watch?v=o2hj7F7y_jk#t=6m51s to? 9:56 Long double may necessarily map to IEEE format anyway though http://en.wikipedia.org/wiki/Long_double Thanks in advance ________________________________ De: Jay K Para: m3devel Enviado: Mi?rcoles 28 de agosto de 2013 3:02 Asunto: [M3devel] m3_round long double to int64? Anyone?want to tackle this? ? INT64 __stdcall m3_round(long double f); ? rounds to nearest, breaks ties in the?IEEE way (toward even, or such), presumably. ? Make it correct for 32bit, 64bit, big endian, little endian. Assume IEEE754. ? You can assume long double is the same as double. You'll likely want to split it into mantissa and exponent. ? Thanks, ?- Jay ? > Date: Wed, 28 Aug 2013 09:58:16 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 13/08/28 09:58:16 > > Modified files: > cm3/m3-sys/m3back/src/: M3C.m3 > > Log message: > win64: temporary workaround: truncate instead of round > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Aug 30 01:46:53 2013 From: jay.krell at cornell.edu (Jay) Date: Thu, 29 Aug 2013 16:46:53 -0700 Subject: [M3devel] m3_round long double to int64? In-Reply-To: <1377741507.7927.YahooMailNeo@web172805.mail.ir2.yahoo.com> References: <20130828075816.A00679D620B@birch.elegosoft.com> <1377741507.7927.YahooMailNeo@web172805.mail.ir2.yahoo.com> Message-ID: <111F0513-00FF-49C1-9F30-4E82ED9987C7@gmail.com> Sorry, my mistake. Ignore long double. We only care about double. - Jay On Aug 28, 2013, at 6:58 PM, "Daniel Alejandro Benavides D." wrote: > Hi all: > No, no, no: > http://www.youtube.com/watch?v=o2hj7F7y_jk#t=6m51s > to 9:56 > > Long double may necessarily map to IEEE format anyway though > http://en.wikipedia.org/wiki/Long_double > > Thanks in advance > > De: Jay K > Para: m3devel > Enviado: Mi?rcoles 28 de agosto de 2013 3:02 > Asunto: [M3devel] m3_round long double to int64? > > > Anyone want to tackle this? > > INT64 __stdcall m3_round(long double f); > > rounds to nearest, breaks ties in the IEEE way (toward even, or such), presumably. > > Make it correct for 32bit, 64bit, big endian, little endian. > Assume IEEE754. > > You can assume long double is the same as double. > You'll likely want to split it into mantissa and exponent. > > Thanks, > - Jay > > > > Date: Wed, 28 Aug 2013 09:58:16 +0000 > > To: m3commit at elegosoft.com > > From: jkrell at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 13/08/28 09:58:16 > > > > Modified files: > > cm3/m3-sys/m3back/src/: M3C.m3 > > > > Log message: > > win64: temporary workaround: truncate instead of round > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Aug 30 07:56:51 2013 From: jay.krell at cornell.edu (Jay K) Date: Fri, 30 Aug 2013 05:56:51 +0000 Subject: [M3devel] extend TInt to 72 bits In-Reply-To: <2A3E5E3E-5192-4F34-A491-74572E8D270D@cs.purdue.edu> References: <20130319043014.95C479C6006@birch.elegosoft.com> <6EBA93AC-491C-40F1-9150-8E68ECE3D5A9@gmail.com>, <2A3E5E3E-5192-4F34-A491-74572E8D270D@cs.purdue.edu> Message-ID: reminder "we" need to think/look about this, maybe me soon, maybe I had noticed on my machine TWord.i3 CONST LE = TInt.LE, which is a nice intermediate fallout from this..but we need to maybe double check... - Jay > CC: jkrell at elego.de; m3commit at elegosoft.com > From: hosking at cs.purdue.edu > Subject: Re: [M3commit] CVS Update: cm3 > Date: Tue, 19 Mar 2013 13:58:40 -0500 > To: jay.krell at cornell.edu > > Probably ok, but I'm not totally sure. Need to audit all the uses. > > Sent from my iPad > > On Mar 19, 2013, at 10:53 AM, Jay wrote: > > > Wondering later: maybe code depends on the range being limited? > > > > > > - Jay > > > > On Mar 18, 2013, at 10:30 PM, Jay Krell wrote: > > > >> CVSROOT: /usr/cvs > >> Changes by: jkrell at birch. 13/03/19 05:30:14 > >> > >> Modified files: > >> cm3/m3-sys/m3middle/src/: TInt.i3 TWord.i3 > >> > >> Log message: > >> extend TInt to 72 bits, so that TWord isn't really needed, > >> as TInt can represent the full range of 64 bit signed and unsigned values > >> > >> add constant "Two" > >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Aug 30 08:02:41 2013 From: jay.krell at cornell.edu (Jay K) Date: Fri, 30 Aug 2013 06:02:41 +0000 Subject: [M3devel] cm3 -DTARGET=foo Message-ID: I'd like the above to work. Or cm3 -target=foo or -target:foo. The underlying implementation would be "like" -DTARGET=foo. This doesn't work due to the order of evaluation, command line vs. config file vs. -D written to a file. I don't have the change yet. Any objection to the intent? I wonder if it might subtlely reorder things though. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Fri Aug 30 16:29:52 2013 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Fri, 30 Aug 2013 15:29:52 +0100 (BST) Subject: [M3devel] cm3 -DTARGET=foo In-Reply-To: References: Message-ID: <1377872992.23372.YahooMailNeo@web172805.mail.ir2.yahoo.com> Hi all: but adding -DHOST=boot. This would allow cross compilation insitu, ideally, cross compilations will be available from cm3ide in a M3 interpreter (Olivetti) generating JVM-bytecodes. Hard but doable. Thanks in advance ________________________________ De: Jay K Para: m3devel Enviado: Viernes 30 de agosto de 2013 1:02 Asunto: [M3devel] cm3 -DTARGET=foo I'd like the above to work. Or cm3 -target=foo or -target:foo. The underlying implementation would be "like" -DTARGET=foo. This doesn't work due to the order of evaluation, command line vs. config file vs. -D written to a file. I don't have the change yet. Any objection to the intent? I wonder if it might subtlely reorder things though. ?- Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcolebur at SCIRES.COM Fri Aug 30 18:12:32 2013 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Fri, 30 Aug 2013 16:12:32 +0000 Subject: [M3devel] need some help with linker error Message-ID: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF0B6A7@ATLEX04-SRV.SCIRES.LOCAL> Jay: I appreciate your help. I just updated via CVS to get all your latest changes, but I am still getting the error with non-unique match for _xmm. See below: ... msvcrt.lib m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj m3core.def : error LNK2001: unresolved external symbol _xmm m3core.lib : fatal error LNK1120: 1 unresolved externals Can you point me in the right direction to solve this problem? Thanks, Randy Coleburn From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Tuesday, August 27, 2013 11:28 AM To: Rodney M. Bates; m3devel Subject: EXT:Re: [M3devel] need some help with linker error This is fixed now too. Dragisha had introduced heap corruption in FSWin32.m3 trying to improve Unicode support. - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 14:55:13 +0000 Subject: Re: [M3devel] need some help with linker error Hm. That leaves me with: +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ --- building in NT386 --- ignoring ..\src\m3overrides *** *** runtime error: *** Attempt to reference an illegal memory location. *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 0x14f028 0x76f22d94 0x14f040 0x76f22ce8 0x14f054 0x759bc3d4 0x14f068 0x6302dcc2 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc ator.m3 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin 32.m3 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl ector.m3 ......... ......... ... more frames ... *** execution of [, ] failed *** Not good. - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: Re: [M3devel] need some help with linker error I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I'm getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Aug 30 18:17:49 2013 From: jay.krell at cornell.edu (Jay) Date: Fri, 30 Aug 2013 09:17:49 -0700 Subject: [M3devel] cm3 -DTARGET=foo In-Reply-To: <1377872992.23372.YahooMailNeo@web172805.mail.ir2.yahoo.com> References: <1377872992.23372.YahooMailNeo@web172805.mail.ir2.yahoo.com> Message-ID: This makes little/no sense. We already have -boot, which is wierd, works, useful. Host is always trivially known. - Jay On Aug 30, 2013, at 7:29 AM, "Daniel Alejandro Benavides D." wrote: > Hi all: > but adding -DHOST=boot. > > This would allow cross compilation insitu, ideally, cross compilations will be available from > cm3ide in a M3 interpreter (Olivetti) generating JVM-bytecodes. > > Hard but doable. > > Thanks in advance > > De: Jay K > Para: m3devel > Enviado: Viernes 30 de agosto de 2013 1:02 > Asunto: [M3devel] cm3 -DTARGET=foo > > I'd like the above to work. > > Or cm3 -target=foo or -target:foo. > The underlying implementation would be "like" -DTARGET=foo. > > This doesn't work due to the order of evaluation, command line vs. config file vs. -D written to a file. > > I don't have the change yet. > > Any objection to the intent? > > I wonder if it might subtlely reorder things though. > > > - Jay > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Fri Aug 30 19:05:32 2013 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Fri, 30 Aug 2013 18:05:32 +0100 (BST) Subject: [M3devel] cm3 -DTARGET=foo In-Reply-To: References: <1377872992.23372.YahooMailNeo@web172805.mail.ir2.yahoo.com> Message-ID: <1377882332.86588.YahooMailNeo@web172803.mail.ir2.yahoo.com> Hi all: no, the HOST is trivially fixed, but it's not known until runtime in a web browser, why not use clients of CM3-IDE as hosts. Obviously you need a distributed compiler and building system. An example of bootstrapping compilers in interpreters: http://researcher.watson.ibm.com/researcher/files/us-bacon/Bacon90Portable.pdf Thanks in advance ________________________________ De: Jay Para: Daniel Alejandro Benavides D. CC: Jay K ; m3devel Enviado: Viernes 30 de agosto de 2013 11:17 Asunto: Re: [M3devel] cm3 -DTARGET=foo This makes little/no sense. We already have -boot, which is wierd, works, useful. Host is always trivially known. ?- Jay On Aug 30, 2013, at 7:29 AM, "Daniel Alejandro Benavides D." wrote: Hi all: >but adding -DHOST=boot. > >This would allow cross compilation insitu, ideally, cross compilations will be available from > >cm3ide in a M3 interpreter (Olivetti) generating JVM-bytecodes. > > >Hard but doable. > > >Thanks in advance > > > > >________________________________ > De: Jay K >Para: m3devel >Enviado: Viernes 30 de agosto de 2013 1:02 >Asunto: [M3devel] cm3 -DTARGET=foo > > > >I'd like the above to work. > >Or cm3 -target=foo or -target:foo. >The underlying implementation would be "like" -DTARGET=foo. > >This doesn't work due to the order of evaluation, command line vs. config file vs. -D written to a file. > >I don't have the change yet. > >Any objection to the intent? > >I wonder if it might subtlely reorder things though. > > >?- Jay > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Aug 30 21:46:06 2013 From: jay.krell at cornell.edu (Jay K) Date: Fri, 30 Aug 2013 19:46:06 +0000 Subject: [M3devel] need some help with linker error In-Reply-To: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF0B6A7@ATLEX04-SRV.SCIRES.LOCAL> References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF0B6A7@ATLEX04-SRV.SCIRES.LOCAL> Message-ID: Did you run upgrade.py? - Jay From: rcolebur at SCIRES.COM To: m3devel at elegosoft.com Date: Fri, 30 Aug 2013 16:12:32 +0000 Subject: Re: [M3devel] need some help with linker error Jay: I appreciate your help. I just updated via CVS to get all your latest changes, but I am still getting the error with non-unique match for _xmm. See below: ? msvcrt.lib m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj m3core.def : error LNK2001: unresolved external symbol _xmm m3core.lib : fatal error LNK1120: 1 unresolved externals Can you point me in the right direction to solve this problem? Thanks, Randy Coleburn From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Tuesday, August 27, 2013 11:28 AM To: Rodney M. Bates; m3devel Subject: EXT:Re: [M3devel] need some help with linker error This is fixed now too. Dragisha had introduced heap corruption in FSWin32.m3 trying to improve Unicode support. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 14:55:13 +0000 Subject: Re: [M3devel] need some help with linker error Hm. That leaves me with: +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ --- building in NT386 --- ignoring ..\src\m3overrides *** *** runtime error: *** Attempt to reference an illegal memory location. *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 0x14f028 0x76f22d94 0x14f040 0x76f22ce8 0x14f054 0x759bc3d4 0x14f068 0x6302dcc2 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc ator.m3 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin 32.m3 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl ector.m3 ......... ......... ... more frames ... *** execution of [, ] failed *** Not good. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: Re: [M3devel] need some help with linker error I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I?m getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Aug 31 08:17:08 2013 From: jay.krell at cornell.edu (Jay K) Date: Sat, 31 Aug 2013 06:17:08 +0000 Subject: [M3devel] how to write constants? Message-ID: What is the right way to do this for 64bit systems? other : INT32 = 16_FFFFFFFF; "../src/win32/WinUser.i3", line 1321: warning: value not assignable (range fault) WS_POPUP : INT32 = 16_80000000; "../src/win32/WinVer.i3", line 37: warning: value not assignable (range fault) VS_FFI_SIGNATURE : INT32 = 16_FEEF04BD; I'm guessing.. other : INT32 := -1; WS_POPUP = FIRST(INT32) VS_FFI_SIGNATURE : INT32 = -17890115; (* 16_FEEF04BD *) ? - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcolebur at SCIRES.COM Sat Aug 31 16:59:21 2013 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Sat, 31 Aug 2013 14:59:21 +0000 Subject: [M3devel] need some help with linker error Message-ID: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF0C98C@ATLEX04-SRV.SCIRES.LOCAL> Jay: I tried upgrade.py, without success. Here are the results: C:\cm3\Sandbox\scripts\python>python upgrade.py Traceback (most recent call last): File "upgrade.py", line 4, in import pylib File "C:\cm3\Sandbox\scripts\python\pylib.py", line 900 PackageDB = (PackageDB or map(lambda(a): a.replace("\n", "").replace('\\', '/').replace("\r", ""), open(PKGSDB))) ^ SyntaxError: invalid syntax I'm not familiar with python, so I'm not in a position to debug what is wrong. --Randy From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Friday, August 30, 2013 6:07 PM To: Coleburn, Randy Subject: EXT:RE: [M3devel] need some help with linker error RCC_upgradeCM3.cmd looks incorrect. Please try upgrade.py. - Jay ________________________________ From: rcolebur at SCIRES.COM To: jay.krell at cornell.edu Subject: RE: [M3devel] need some help with linker error Date: Fri, 30 Aug 2013 20:06:13 +0000 No, I ran my batch/CMD scripts, but these are based on what you had described previously as the correct steps. Is there a new dependency or step I need to be aware of? --Randy From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Friday, August 30, 2013 3:46 PM To: Coleburn, Randy; m3devel Subject: EXT:RE: [M3devel] need some help with linker error Did you run upgrade.py? - Jay ________________________________ From: rcolebur at SCIRES.COM To: m3devel at elegosoft.com Date: Fri, 30 Aug 2013 16:12:32 +0000 Subject: Re: [M3devel] need some help with linker error Jay: I appreciate your help. I just updated via CVS to get all your latest changes, but I am still getting the error with non-unique match for _xmm. See below: ... msvcrt.lib m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj m3core.def : error LNK2001: unresolved external symbol _xmm m3core.lib : fatal error LNK1120: 1 unresolved externals Can you point me in the right direction to solve this problem? Thanks, Randy Coleburn From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Tuesday, August 27, 2013 11:28 AM To: Rodney M. Bates; m3devel Subject: EXT:Re: [M3devel] need some help with linker error This is fixed now too. Dragisha had introduced heap corruption in FSWin32.m3 trying to improve Unicode support. - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 14:55:13 +0000 Subject: Re: [M3devel] need some help with linker error Hm. That leaves me with: +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ --- building in NT386 --- ignoring ..\src\m3overrides *** *** runtime error: *** Attempt to reference an illegal memory location. *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 0x14f028 0x76f22d94 0x14f040 0x76f22ce8 0x14f054 0x759bc3d4 0x14f068 0x6302dcc2 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc ator.m3 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin 32.m3 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl ector.m3 ......... ......... ... more frames ... *** execution of [, ] failed *** Not good. - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: Re: [M3devel] need some help with linker error I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I'm getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Aug 31 17:58:53 2013 From: jay.krell at cornell.edu (Jay K) Date: Sat, 31 Aug 2013 15:58:53 +0000 Subject: [M3devel] need some help with linker error In-Reply-To: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF0C98C@ATLEX04-SRV.SCIRES.LOCAL> References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF0C98C@ATLEX04-SRV.SCIRES.LOCAL> Message-ID: What version of Python? Maybe too old? upgrade (i.e. your cmd) needs to include, not skip, mklib. Compare it to the others. The fix was in mklib and your cmd varies in this respect. - Jay From: rcolebur at SCIRES.COM To: m3devel at elegosoft.com CC: jay.krell at cornell.edu Subject: RE: [M3devel] need some help with linker error Date: Sat, 31 Aug 2013 14:59:21 +0000 Jay: I tried upgrade.py, without success. Here are the results: C:\cm3\Sandbox\scripts\python>python upgrade.py Traceback (most recent call last): File "upgrade.py", line 4, in import pylib File "C:\cm3\Sandbox\scripts\python\pylib.py", line 900 PackageDB = (PackageDB or map(lambda(a): a.replace("\n", "").replace('\\', '/').replace("\r", ""), open(PKGSDB))) ^ SyntaxError: invalid syntax I?m not familiar with python, so I?m not in a position to debug what is wrong. --Randy From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Friday, August 30, 2013 6:07 PM To: Coleburn, Randy Subject: EXT:RE: [M3devel] need some help with linker error RCC_upgradeCM3.cmd looks incorrect. Please try upgrade.py. - Jay From: rcolebur at SCIRES.COM To: jay.krell at cornell.edu Subject: RE: [M3devel] need some help with linker error Date: Fri, 30 Aug 2013 20:06:13 +0000 No, I ran my batch/CMD scripts, but these are based on what you had described previously as the correct steps. Is there a new dependency or step I need to be aware of? --Randy From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Friday, August 30, 2013 3:46 PM To: Coleburn, Randy; m3devel Subject: EXT:RE: [M3devel] need some help with linker error Did you run upgrade.py? - Jay From: rcolebur at SCIRES.COM To: m3devel at elegosoft.com Date: Fri, 30 Aug 2013 16:12:32 +0000 Subject: Re: [M3devel] need some help with linker error Jay: I appreciate your help. I just updated via CVS to get all your latest changes, but I am still getting the error with non-unique match for _xmm. See below: ? msvcrt.lib m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj m3core.def : error LNK2001: unresolved external symbol _xmm m3core.lib : fatal error LNK1120: 1 unresolved externals Can you point me in the right direction to solve this problem? Thanks, Randy Coleburn From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Tuesday, August 27, 2013 11:28 AM To: Rodney M. Bates; m3devel Subject: EXT:Re: [M3devel] need some help with linker error This is fixed now too. Dragisha had introduced heap corruption in FSWin32.m3 trying to improve Unicode support. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 14:55:13 +0000 Subject: Re: [M3devel] need some help with linker error Hm. That leaves me with: +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ --- building in NT386 --- ignoring ..\src\m3overrides *** *** runtime error: *** Attempt to reference an illegal memory location. *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 0x14f028 0x76f22d94 0x14f040 0x76f22ce8 0x14f054 0x759bc3d4 0x14f068 0x6302dcc2 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc ator.m3 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin 32.m3 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl ector.m3 ......... ......... ... more frames ... *** execution of [, ] failed *** Not good. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: Re: [M3devel] need some help with linker error I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I?m getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Aug 31 18:55:11 2013 From: jay.krell at cornell.edu (Jay K) Date: Sat, 31 Aug 2013 16:55:11 +0000 Subject: [M3devel] how to write constants and deal with full range unsigned types?? In-Reply-To: References: Message-ID: This is a recurring problem esp. for Win64. AMD64_NT gets this far: ProcessWin32.m3: PROCEDURE GetFileHandle(hd: DWORD; ds: FileWin32.DirectionSet): File.T = VAR h := WinBase.GetStdHandle(hd); END GetFileHandle; The hd values are small negative numbers. DWORD is unsigned 32bit. This area doesn't seem to work well, doesn't interoperate with C well. (and then the stack goes unaligned raising an exception) - Jay From: jay.krell at cornell.edu To: m3devel at elegosoft.com Date: Sat, 31 Aug 2013 06:17:08 +0000 Subject: [M3devel] how to write constants? What is the right way to do this for 64bit systems? other : INT32 = 16_FFFFFFFF; "../src/win32/WinUser.i3", line 1321: warning: value not assignable (range fault) WS_POPUP : INT32 = 16_80000000; "../src/win32/WinVer.i3", line 37: warning: value not assignable (range fault) VS_FFI_SIGNATURE : INT32 = 16_FEEF04BD; I'm guessing.. other : INT32 := -1; WS_POPUP = FIRST(INT32) VS_FFI_SIGNATURE : INT32 = -17890115; (* 16_FEEF04BD *) ? - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Sat Aug 31 22:39:20 2013 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sat, 31 Aug 2013 21:39:20 +0100 (BST) Subject: [M3devel] Missing web pages or server elegosoft.com busy Message-ID: <1377981560.4878.YahooMailNeo@web172806.mail.ir2.yahoo.com> Hi all: I've been paying attention to: http://opencm3.net/ It seems to me maybe it is unresponsive, specially the "main frame", or the web page from an error I saw from mail.elegosoft.com, aroung 8:00 pm GMT and, 1 hour ago approx. Menu frames were working (top.html and nav-home.html) perhaps it just indicated something is wrong with that server, perhaps, or is it a sign of a network down?. In general I don't tend to be too cautious (because I have seen this thing going on since two weeks ago to today) but it is irritating that the only updated web page in the www on M3, is unresponsive or very slow. It speaks bad of M3, or of us in some way. Thanks in advance -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcolebur at SCIRES.COM Sat Aug 31 23:41:43 2013 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Sat, 31 Aug 2013 21:41:43 +0000 Subject: [M3devel] need some help with linker error Message-ID: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF0CD60@ATLEX04-SRV.SCIRES.LOCAL> Jay: I am using Python v 3.3.0. --Randy From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Saturday, August 31, 2013 11:59 AM To: Coleburn, Randy; m3devel Subject: EXT:RE: [M3devel] need some help with linker error What version of Python? Maybe too old? upgrade (i.e. your cmd) needs to include, not skip, mklib. Compare it to the others. The fix was in mklib and your cmd varies in this respect. - Jay ________________________________ From: rcolebur at SCIRES.COM To: m3devel at elegosoft.com CC: jay.krell at cornell.edu Subject: RE: [M3devel] need some help with linker error Date: Sat, 31 Aug 2013 14:59:21 +0000 Jay: I tried upgrade.py, without success. Here are the results: C:\cm3\Sandbox\scripts\python>python upgrade.py Traceback (most recent call last): File "upgrade.py", line 4, in import pylib File "C:\cm3\Sandbox\scripts\python\pylib.py", line 900 PackageDB = (PackageDB or map(lambda(a): a.replace("\n", "").replace('\\', '/').replace("\r", ""), open(PKGSDB))) ^ SyntaxError: invalid syntax I'm not familiar with python, so I'm not in a position to debug what is wrong. --Randy From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Friday, August 30, 2013 6:07 PM To: Coleburn, Randy Subject: EXT:RE: [M3devel] need some help with linker error RCC_upgradeCM3.cmd looks incorrect. Please try upgrade.py. - Jay ________________________________ From: rcolebur at SCIRES.COM To: jay.krell at cornell.edu Subject: RE: [M3devel] need some help with linker error Date: Fri, 30 Aug 2013 20:06:13 +0000 No, I ran my batch/CMD scripts, but these are based on what you had described previously as the correct steps. Is there a new dependency or step I need to be aware of? --Randy From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Friday, August 30, 2013 3:46 PM To: Coleburn, Randy; m3devel Subject: EXT:RE: [M3devel] need some help with linker error Did you run upgrade.py? - Jay ________________________________ From: rcolebur at SCIRES.COM To: m3devel at elegosoft.com Date: Fri, 30 Aug 2013 16:12:32 +0000 Subject: Re: [M3devel] need some help with linker error Jay: I appreciate your help. I just updated via CVS to get all your latest changes, but I am still getting the error with non-unique match for _xmm. See below: ... msvcrt.lib m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj m3core.def : error LNK2001: unresolved external symbol _xmm m3core.lib : fatal error LNK1120: 1 unresolved externals Can you point me in the right direction to solve this problem? Thanks, Randy Coleburn From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Tuesday, August 27, 2013 11:28 AM To: Rodney M. Bates; m3devel Subject: EXT:Re: [M3devel] need some help with linker error This is fixed now too. Dragisha had introduced heap corruption in FSWin32.m3 trying to improve Unicode support. - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 14:55:13 +0000 Subject: Re: [M3devel] need some help with linker error Hm. That leaves me with: +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ --- building in NT386 --- ignoring ..\src\m3overrides *** *** runtime error: *** Attempt to reference an illegal memory location. *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 0x14f028 0x76f22d94 0x14f040 0x76f22ce8 0x14f054 0x759bc3d4 0x14f068 0x6302dcc2 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc ator.m3 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin 32.m3 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl ector.m3 ......... ......... ... more frames ... *** execution of [, ] failed *** Not good. - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: Re: [M3devel] need some help with linker error I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I'm getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From rodney_bates at lcwb.coop Sat Aug 3 00:22:45 2013 From: rodney_bates at lcwb.coop (Rodney Bates) Date: Fri, 2 Aug 2013 15:22:45 -0700 Subject: [M3devel] Fwd: Re: Pickles, TextLiterals, and word size Message-ID: <20130802152245.122A9693@resin11.mta.everyone.net> This is more complicated than I thought, but fortunately, more manageable. When a fingerprint derives from the components of its type, it uses the fingerprints of the declared static types of the fields (or elements). A pickled object, accessible through such a field gets the fingerprint of its allocated type. In the case I have, the field is declared as TEXT, while its value is an object of (sub)type TextLiteral.T, the problematic type. So recognizing both fingerprints for TextLiteral.T will work fine, unless there is an old stored pickle with a field/element of type TextLiteral.T Not a likely way to code things, I would expect. -Rodney Bates --- Begin forwarded message: From: "Rodney M. Bates" To: m3devel at elegosoft.com Subject: Re: [M3devel] Pickles, TextLiterals, and word size Date: Wed, 24 Jul 2013 15:59:12 -0500 On 07/24/2013 12:14 PM, Rodney M. Bates wrote: > > > On 07/24/2013 10:34 AM, Hendrik Boom wrote: >> On Wed, Jul 24, 2013 at 09:10:31AM -0500, Rodney M. Bates wrote: >>> There is what I would call a bug in TextLiteral.i3 whose effect is that a >>> TextLiteral.T has a different fingerprint on 32- and 64-bit machines. >>> So you can't pickle a Text literal on one word-sized machine and unpickle >>> it on the other. >>> >>> But fixing this will have the effect of invalidating any existing pickles >>> written on a 64-bit machine before the fix, so they can't be read after >>> the fix, even on a 64-bit machine. They would have to be rewritten after >>> the fix. >> >> Ah! The problems of long-term compatibility! >> >> Is there any way of looking at a a pickle and determining whether it >> comes from a 32- of 64- bit machine? > > Yes, the pickle contains word size, LONGINT/LONGCARD size, floating > point representation, endianness, lazy alignment, maximum alignment, > record alignment, and now, widechar size, all for the system it was > written on. > > >> >> It there a way of special-casing the specific fingerprint that's about >> to be invalidated, so as to convert it properly on input only, while >> generating the new one on output? >> > > Yes, I thought about this. It would not be hard to find out what the > two fingerprints are and test one read from a pickle against these values. > > But the problem is, there is an unbounded set of types that would depend > indirectly on this, and they can't all be accounted for. Using, e.g., > BITSIZE(INTEGER) as a bound in a range is the way this is happening > it the subject case. > > Hmm, maybe I could just do the specific derived fingerprints for a > TextLiteral.T, and that would be good enough. Let the programmer be > responsible for other types. I think it would fix the immediate > problem without undermining anything existing. No, that won't work either. That would only fix the case where the TextLiteral is the top-level, and thus only, "object" in a pickle. Not very likely. When the TextLiteral is a field/element of some containing object, it is the topmost object in the entire pickle whose fingerprint is used to find the type in the reading program. Actually, pickling a TextLiteral might not be very common at all. > > I already have file dumps I can dig the values out of. I'll look > into that. Thanks! > > >>> >>> Is anybody doing the latter? Would having to recreate your pickles be a >>> problem? Apparently, nobody is going cross-word-size, or we'd have heard >>> about it. >>> >>> I would like to fix it properly, but don't want to undermine anybody's >>> working system. >>> >> > > From rodney_bates at lcwb.coop Sat Aug 3 04:26:50 2013 From: rodney_bates at lcwb.coop (Rodney Bates) Date: Fri, 2 Aug 2013 19:26:50 -0700 Subject: [M3devel] Fwd: Re: netobj bug report Message-ID: <20130802192650.122A8024@resin11.mta.everyone.net> Your analysis makes sense to me, though I don't know much about this code. It certainly seems like it would make the immediate symptom go away. However, I wonder if it will do what you want. Formal r has type NetObj.T or a subtype thereof, and r has an enlighteningly named field r. Is r.r the ordinary object that is being networked? And is it the exporting of r that fills in r.r to non-NIL? If this is the case, it seems like getting pickling to complete before exporting would just pickle r with r.r=NIL. Does that do any good? rom: mika at async.caltech.edu To: "Coleburn, Randy" Cc: m3devel at elegosoft.com Subject: Re: [M3devel] netobj bug report Date: Fri, 26 Jul 2013 20:07:17 -0700 Hi Randy (or anyone on m3devel), Have you considered my bug report? Can someone who knows the code better than me analyze the situation and either clear my code or justify the existing code as checked in and tell me what I'm doing wrong? I have had to change the code as I described in my old pm3 sources to get my application working, tired of doing workarounds. I strongly suspect we're dealing with an annoying bug, and it looks present in both Pickle.m3 and Pickle2.m3, all versions (CM3, PM3 at least). Mika "Coleburn, Randy" writes: >Hi Mika: > >I'm deep in the middle of some other stuff, but read your post with interes= >t because I've done a LOT of work with both Pickles and Network Objects. > >On the surface, I'm not sure whether this is a bug or not. I've never enco= >untered this problem before. But, my brain is in left-field right now with= > all else I have going on. > >I know that I always used the Pickle2 (2nd generation of pickles) to get ar= >ound some problems with the first generation. I never used PM3, just CM3 a= >nd the original "SRC-Systems Research Center" versions. > >I know you can also write and register special "pickler" procedures for any= > particular object to get around problems with the default pickling procedu= >res (read/write). I've had to do this on occasion both to resolve problems= > and to increase performance. I can provide examples if you need them. > >--Randy > >Randy C. Coleburn, CISSP-ISSEP, GCED >Corporate Information Security Officer (CISO) >Scientific Research Corporation > >-----Original Message----- >From: mika at async.caltech.edu [mailto:mika at async.caltech.edu]=20 >Sent: Thursday, June 27, 2013 7:01 PM >To: m3devel at elegosoft.com >Subject: EXT:[M3devel] netobj bug report > >Hi m3devel, > >I think I found a bug in the Network Objects code. > >Here is what I was doing: I made an object that I wanted to export using Ne= >twork Objects, but I *also* wanted to Pickle the object locally (for persis= >tence). > >I find that if I create the object and try to pickle it, I get a Pickle err= >or "Can't pickle a surrogate object". =20 > >The source of the error is in StubLib.m3, the Pickle special that is record= >ed for network objects: > >PROCEDURE OutSpecial(self: Pickle.Special; > r: REFANY; > writer: Pickle.Writer) > RAISES {Pickle.Error, Wr.Failure, Thread.Alerted} =3D > BEGIN > TYPECASE writer OF > | SpecWr(wtr) =3D> OutRef(wtr.c, r); > ELSE > TYPECASE r OF > | NetObj.T(x) =3D> > IF NOT ISTYPE(x.r, Transport.Location) THEN > (* This will gratuitously pickle the ExportInfo ref > embedded in x.r. It would be better to exclude this > if and when possible, but it shouldn't hurt for now. *) > Pickle.Special.write(self, r, writer); > ELSE > RAISE Pickle.Error("Can't pickle a surrogate object"); > END; > ELSE RAISE Pickle.Error("Can't Pickle Rd.T or Wr.T"); > END; > END; > END OutSpecial; > >(In CM3, OutSpecial2 has the same bug for Pickle2 pickles. PM3 doesn't hav= >e Pickle2 nor OutSpecial2.) > >The problem is the test > > IF NOT ISTYPE(x.r, Transport.Location) THEN > (* This will gratuitously pickle the ExportInfo ref > embedded in x.r. It would be better to exclude this > if and when possible, but it shouldn't hurt for now. *) > Pickle.Special.write(self, r, writer); > ELSE > RAISE Pickle.Error("Can't pickle a surrogate object"); > END; > >The intent, I think, is that an object that is remote (that is, has x.r of = >type Transport.Location) should not be pickle-able. > >The problem is that x.r is initially NIL, and NIL is a member of Transport.= >Location. > >My workaround is to FIRST export the object before attempting to Pickle it.= > This works fine but it shouldn't be necessary, should it? What if I don'= >t want to export the object, but just pickle it? > >I believe the test should be changed to be > >IF x.r =3D NIL OR NOT ISTYPE(x.r, Transport.Location) THEN... > > Mika > From rodney_bates at lcwb.coop Sat Aug 3 04:36:27 2013 From: rodney_bates at lcwb.coop (Rodney Bates) Date: Fri, 2 Aug 2013 19:36:27 -0700 Subject: [M3devel] What code does un/marshalling for network objects? Message-ID: <20130802193627.122A80ED@resin11.mta.everyone.net> An HTML attachment was scrubbed... URL: From mika at async.caltech.edu Sat Aug 3 07:54:08 2013 From: mika at async.caltech.edu (mika at async.caltech.edu) Date: Fri, 02 Aug 2013 22:54:08 -0700 Subject: [M3devel] Fwd: Re: netobj bug report In-Reply-To: <20130802192650.122A8024@resin11.mta.everyone.net> References: <20130802192650.122A8024@resin11.mta.everyone.net> Message-ID: <20130803055408.8C1BE1A208F@async.async.caltech.edu> I believe "r" is just a field for the Network Objects system to know whether the object is a real object or a surrogate. In that case, pickling it with it NIL does precisely the right thing for a real, local object. I doubt it could be a pointer to the "real" object because the real object is the same as the NetObj.T itself (a subtype thereof). r.r would have to point to r in that case. Which doesn't make much sense. Mika "Rodney Bates" writes: > >Your analysis makes sense to me, though I don't know much about this code. >It certainly seems like it would make the immediate symptom go away. >However, I wonder if it will do what you want. > >Formal r has type NetObj.T or a subtype thereof, and r has an enlighteningly >named field r. Is r.r the ordinary object that is being networked? >And is it the exporting of r that fills in r.r to non-NIL? If this is >the case, it seems like getting pickling to complete before exporting would >just pickle r with r.r=NIL. Does that do any good? > >rom: mika at async.caltech.edu >To: "Coleburn, Randy" >Cc: m3devel at elegosoft.com >Subject: Re: [M3devel] netobj bug report >Date: Fri, 26 Jul 2013 20:07:17 -0700 > >Hi Randy (or anyone on m3devel), > >Have you considered my bug report? Can someone who knows the code better >than me analyze the situation and either clear my code or justify the >existing code as checked in and tell me what I'm doing wrong? > >I have had to change the code as I described in my old pm3 sources to >get my application working, tired of doing workarounds. > >I strongly suspect we're dealing with an annoying bug, and it looks >present in both Pickle.m3 and Pickle2.m3, all versions (CM3, PM3 at least). > > Mika > >"Coleburn, Randy" writes: >>Hi Mika: >> >>I'm deep in the middle of some other stuff, but read your post with interes= >>t because I've done a LOT of work with both Pickles and Network Objects. >> >>On the surface, I'm not sure whether this is a bug or not. I've never enco= >>untered this problem before. But, my brain is in left-field right now with= >> all else I have going on. >> >>I know that I always used the Pickle2 (2nd generation of pickles) to get ar= >>ound some problems with the first generation. I never used PM3, just CM3 a= >>nd the original "SRC-Systems Research Center" versions. >> >>I know you can also write and register special "pickler" procedures for any= >> particular object to get around problems with the default pickling procedu= >>res (read/write). I've had to do this on occasion both to resolve problems= >> and to increase performance. I can provide examples if you need them. >> >>--Randy >> >>Randy C. Coleburn, CISSP-ISSEP, GCED >>Corporate Information Security Officer (CISO) >>Scientific Research Corporation >> >>-----Original Message----- >>From: mika at async.caltech.edu [mailto:mika at async.caltech.edu]=20 >>Sent: Thursday, June 27, 2013 7:01 PM >>To: m3devel at elegosoft.com >>Subject: EXT:[M3devel] netobj bug report >> >>Hi m3devel, >> >>I think I found a bug in the Network Objects code. >> >>Here is what I was doing: I made an object that I wanted to export using Ne= >>twork Objects, but I *also* wanted to Pickle the object locally (for persis= >>tence). >> >>I find that if I create the object and try to pickle it, I get a Pickle err= >>or "Can't pickle a surrogate object". =20 >> >>The source of the error is in StubLib.m3, the Pickle special that is record= >>ed for network objects: >> >>PROCEDURE OutSpecial(self: Pickle.Special; >> r: REFANY; >> writer: Pickle.Writer) >> RAISES {Pickle.Error, Wr.Failure, Thread.Alerted} =3D >> BEGIN >> TYPECASE writer OF >> | SpecWr(wtr) =3D> OutRef(wtr.c, r); >> ELSE >> TYPECASE r OF >> | NetObj.T(x) =3D> >> IF NOT ISTYPE(x.r, Transport.Location) THEN >> (* This will gratuitously pickle the ExportInfo ref >> embedded in x.r. It would be better to exclude this >> if and when possible, but it shouldn't hurt for now. *) >> Pickle.Special.write(self, r, writer); >> ELSE >> RAISE Pickle.Error("Can't pickle a surrogate object"); >> END; >> ELSE RAISE Pickle.Error("Can't Pickle Rd.T or Wr.T"); >> END; >> END; >> END OutSpecial; >> >>(In CM3, OutSpecial2 has the same bug for Pickle2 pickles. PM3 doesn't hav= >>e Pickle2 nor OutSpecial2.) >> >>The problem is the test >> >> IF NOT ISTYPE(x.r, Transport.Location) THEN >> (* This will gratuitously pickle the ExportInfo ref >> embedded in x.r. It would be better to exclude this >> if and when possible, but it shouldn't hurt for now. *) >> Pickle.Special.write(self, r, writer); >> ELSE >> RAISE Pickle.Error("Can't pickle a surrogate object"); >> END; >> >>The intent, I think, is that an object that is remote (that is, has x.r of = >>type Transport.Location) should not be pickle-able. >> >>The problem is that x.r is initially NIL, and NIL is a member of Transport.= >>Location. >> >>My workaround is to FIRST export the object before attempting to Pickle it.= >> This works fine but it shouldn't be necessary, should it? What if I don'= >>t want to export the object, but just pickle it? >> >>I believe the test should be changed to be >> >>IF x.r =3D NIL OR NOT ISTYPE(x.r, Transport.Location) THEN... >> >> Mika >> > From jay.krell at cornell.edu Mon Aug 5 05:12:06 2013 From: jay.krell at cornell.edu (Jay K) Date: Mon, 5 Aug 2013 03:12:06 +0000 Subject: [M3devel] TextLiteral/MaxBytes 32bit/64bit pickling In-Reply-To: <20130802222554.816175DEB89@birch.elegosoft.com> References: <20130802222554.816175DEB89@birch.elegosoft.com> Message-ID: Ideally I could have a TextLiteral on a 64bit machine larger than 2GB or 4GB. I would not be able to unpickle it on a 32bit machine and that would be ok. There a long standing problem though anyway in the frontend where INTEGER is used in place of TInt.T or LONGINT, giving 32bit limits to 64bit targets. I put in a hack actually to change MaxBytes to be a 32bit limit, to fix cross compiling from 32bit to 64bit. Maybe this is something different though. I realize that is quite a TextLiteral but I think, generally, if it fits in target address space, it should work. Heck, we should think about "persistant disk based" data structures that don't even fit in memory. e.g. file systems, movies, etc. - Jay > Date: Sat, 3 Aug 2013 00:25:54 +0000 > To: m3commit at elegosoft.com > From: rodney at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: rodney at birch. 13/08/03 00:25:54 > > Modified files: > cm3/m3-libs/libm3/src/pickle/ver2/: Tag: devel_unicode > Pickle2.m3 > > Log message: > An almost solution to the problem of TextLiteral.T's having MaxBytes > dependent on word size, making pickling of TextLiteral.T fail across > different word sizes. > > Hard code the fingerprint for the 64-bit case and translate it to > the one for 32-bit systems, in pickles. Also vice-versa. > > The best long-term solution also involves making TextLiteral.MaxBytes > word-size-independent. This could invalidate some preexisting pickles, > but only if they contain heap objects with a field or element with > declared static type TextLiteral.T, which seems quite unlikely. If > such fields/methods are declared as TEXT, the actual allocated type of > their referents can be TextLiteral.T and all will work. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From rodney_bates at lcwb.coop Fri Aug 9 03:47:04 2013 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Thu, 08 Aug 2013 20:47:04 -0500 Subject: [M3devel] TextLiteral/MaxBytes 32bit/64bit pickling In-Reply-To: References: <20130802222554.816175DEB89@birch.elegosoft.com> Message-ID: <52044A18.5050606@lcwb.coop> On 08/04/2013 10:12 PM, Jay K wrote: > Ideally I could have a TextLiteral on a 64bit machine larger than 2GB or 4GB. > I would not be able to unpickle it on a 32bit machine and that would be ok. > > > There a long standing problem though anyway in the frontend where INTEGER > is used in place of TInt.T or LONGINT, giving 32bit limits to 64bit targets. I presume this, plus the fact that the compiler lays everything out in _bits_ is why the DIV BITSIZE(Byte)? > > > I put in a hack actually to change MaxBytes to be a 32bit limit, to fix > cross compiling from 32bit to 64bit. Maybe this is something different though. > I have done the same thing in my local directories, but for a different reason. It gives a consistent fingerprint to TextLiteral.T, so it can cross-pickled, so to speak, 32<->64. I also located the two fingerprints for the two sizes and am now mapping between them in Pickles, so that old pickles, generated on either machine, can be read. But this suggests another strategy. In the case of TextLiteral.T, the static size of the array is neither correct nor depended on. So we could just hard-code one of the fingerprints (probably the 32-bit one) in the compiler and always emit it rather than computing it from the type. That would keep pickles happy and allow the actual declared size to be adjusted to suit whatever other criteria mattered. > > I realize that is quite a TextLiteral but I think, generally, if it fits in target address space, it should work. > Heck, we should think about "persistant disk based" data structures that don't even fit in memory. > e.g. file systems, movies, etc. > > > - Jay > > > > Date: Sat, 3 Aug 2013 00:25:54 +0000 > > To: m3commit at elegosoft.com > > From: rodney at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: rodney at birch. 13/08/03 00:25:54 > > > > Modified files: > > cm3/m3-libs/libm3/src/pickle/ver2/: Tag: devel_unicode > > Pickle2.m3 > > > > Log message: > > An almost solution to the problem of TextLiteral.T's having MaxBytes > > dependent on word size, making pickling of TextLiteral.T fail across > > different word sizes. > > > > Hard code the fingerprint for the 64-bit case and translate it to > > the one for 32-bit systems, in pickles. Also vice-versa. > > > > The best long-term solution also involves making TextLiteral.MaxBytes > > word-size-independent. This could invalidate some preexisting pickles, > > but only if they contain heap objects with a field or element with > > declared static type TextLiteral.T, which seems quite unlikely. If > > such fields/methods are declared as TEXT, the actual allocated type of > > their referents can be TextLiteral.T and all will work. > > From rcolebur at SCIRES.COM Sun Aug 18 03:23:24 2013 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Sun, 18 Aug 2013 01:23:24 +0000 Subject: [M3devel] syntax err in SocketWin32.m3 Message-ID: <0BB8FA59C2932741A3A2941A8B9D8BFF5CEF9613@ATLEX04-SRV.SCIRES.LOCAL> Jay: I'm trying to rebuild cm3 on Windows XP. I'm getting a compile error at line 59 in m3-libs\libm3\src\os\WIN32\SocketWin32.m3 That line is as follows: True : BOOL := 1; The type BOOL is not defined. Later this variable is used in the call EVAL setsockopt (t.sock, SOL_SOCKET, SO_REUSEADDR, ADR(True), BYTESIZE(True)); I'm not sure if we could replace with "True : BOOLEAN := TRUE;" or if the setsockopt is expecting a certain encoding. Based on the file history, I think you may have made this change, so thought I would run it past you first before I messed around with it. Thanks, Randy Coleburn -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Aug 19 08:56:13 2013 From: jay.krell at cornell.edu (Jay K) Date: Mon, 19 Aug 2013 06:56:13 +0000 Subject: [M3devel] syntax err in SocketWin32.m3 In-Reply-To: <0BB8FA59C2932741A3A2941A8B9D8BFF5CEF9613@ATLEX04-SRV.SCIRES.LOCAL> References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CEF9613@ATLEX04-SRV.SCIRES.LOCAL> Message-ID: BOOLEAN is wrong. It should be WinDef.BOOL or int or such -- 4 bytes. Not INTEGER, that will be 8 bytes on Win64. - Jay From: rcolebur at SCIRES.COM To: m3devel at elegosoft.com Date: Sun, 18 Aug 2013 01:23:24 +0000 Subject: [M3devel] syntax err in SocketWin32.m3 Jay: I'm trying to rebuild cm3 on Windows XP. I'm getting a compile error at line 59 in m3-libs\libm3\src\os\WIN32\SocketWin32.m3 That line is as follows: True : BOOL := 1; The type BOOL is not defined. Later this variable is used in the call EVAL setsockopt (t.sock, SOL_SOCKET, SO_REUSEADDR, ADR(True), BYTESIZE(True)); I'm not sure if we could replace with "True : BOOLEAN := TRUE;" or if the setsockopt is expecting a certain encoding. Based on the file history, I think you may have made this change, so thought I would run it past you first before I messed around with it. Thanks, Randy Coleburn -------------- next part -------------- An HTML attachment was scrubbed... URL: From dmuysers at hotmail.com Tue Aug 20 19:23:26 2013 From: dmuysers at hotmail.com (Dirk Muysers) Date: Tue, 20 Aug 2013 19:23:26 +0200 Subject: [M3devel] Build Automation Message-ID: Is Gradle a better quake? -------------- next part -------------- An HTML attachment was scrubbed... URL: From dragisha at m3w.org Fri Aug 23 22:03:16 2013 From: dragisha at m3w.org (=?utf-8?Q?Dragi=C5=A1a_Duri=C4=87?=) Date: Fri, 23 Aug 2013 22:03:16 +0200 Subject: [M3devel] Build Automation In-Reply-To: References: Message-ID: Gradle is better maven, better ant, better Ivy, etc? It is from/for Java world. It integrates other Java ecosystem build tools and extends them. It is written in Groovy, and lots of its "virtue" derives from this fact. To be useable for us, it probably first needs to integrate quake. Not an easy task, without clear benefits. -- Dragi?a Duri? dragisha at m3w.org On Aug 20, 2013, at 7:23 PM, Dirk Muysers wrote: > Is Gradle a better quake? -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Aug 25 09:31:57 2013 From: jay.krell at cornell.edu (Jay K) Date: Sun, 25 Aug 2013 07:31:57 +0000 Subject: [M3devel] Build Automation In-Reply-To: References: , Message-ID: For what we use it for, Quake is hard to beat. What are you missing in Quake? It falls down only slightly: - not as much parallelism as it could have - it is an obscure system, like Modula-3 - it is perhaps fairly Modula-3 specific; but it is extensible and we do have C/C++ in their, presumably one could add Java/C# support reasonably easily.. - doesn't offer building multiple programs/modules in one invocation -- directory traversal; we layer thin scripts over it - the name -- I assume it meant quick make it wins: - integrated with the compiler (this can be viewed as bad too) - declarative (or at least appears so, it is actually clever and imperative, but it is a great facsimile) - presumably efficient -- they actually compile it down to a bytecode internally and execute that! - presumably efficient -- underlying native code Modula-3 implementation..if this means anything any longer, so much is written in JavaScript, C#, Java, theoretical efficiencies all over the place and yet most things seem ok - Jay From: dragisha at m3w.org Date: Fri, 23 Aug 2013 22:03:16 +0200 To: dmuysers at hotmail.com CC: m3devel at elegosoft.com Subject: Re: [M3devel] Build Automation Gradle is better maven, better ant, better Ivy, etc. It is from/for Java world. It integrates other Java ecosystem build tools and extends them. It is written in Groovy, and lots of its "virtue" derives from this fact. To be useable for us, it probably first needs to integrate quake. Not an easy task, without clear benefits. --Dragi?a Duri?dragisha at m3w.org On Aug 20, 2013, at 7:23 PM, Dirk Muysers wrote: Is Gradle a better quake? -------------- next part -------------- An HTML attachment was scrubbed... URL: From dmuysers at hotmail.com Sun Aug 25 12:00:09 2013 From: dmuysers at hotmail.com (Dirk Muysers) Date: Sun, 25 Aug 2013 12:00:09 +0200 Subject: [M3devel] Build Automation In-Reply-To: References: , Message-ID: I am not missing anything in quake. I just thought it was worth a look. If I would redo M3 (and I am too old for that), I would write a single byte-code producing compiler. So, no compelling need for quake or any other build tool. Plus a platform-dependent runtime and jitter (using e.g. libjit). Would make the whole thing much simpler. The biggest mistake IMHO was CM's new text model that obliges to code two branches for nearly any text-related job. I would have kept the pm3 text model but encoded in UTF-8. There is nearly no runtime penalty as one accesses text almost always sequentially. Tell me a single case where one needs random access to individual characters. I tried to do that, but TEXT is used in every nock and corner of the libraries. Also, surprisingly, it is significantly more difficult to revert from the cm3 to the pm3 model than CM's passage to the alternate model. You have to touch almost every module in the system. It took me half a day to grep through the libraries with Text, Text8, Text16, TextLiteral etc. And restarting from pm3 sacrifices the indeniable improvements of the cm3 compiler, disregarding its text model. That wide-character blunder was first introduced by Microsoft (does that surprise anybody?) when they thought that Unicode would never go beyond 16 bits. Sun followed the trail with Java and so did CM with M3. S. Ballmer's resignation (thanks the gods) comes to late to reverse the trend. Newer text models (e.g. Go) all acknowledge the mistake and use UTF-8. I am currently working at a Unicode-friendly library that uses UTF-8 text side-by-side with the existing cm3 TEXT. From: Jay K Sent: Sunday, August 25, 2013 9:31 AM To: Dragi?a Duri? ; Dirk Muysers Cc: m3devel Subject: RE: [M3devel] Build Automation For what we use it for, Quake is hard to beat. What are you missing in Quake? It falls down only slightly: - not as much parallelism as it could have - it is an obscure system, like Modula-3 - it is perhaps fairly Modula-3 specific; but it is extensible and we do have C/C++ in their, presumably one could add Java/C# support reasonably easily.. - doesn't offer building multiple programs/modules in one invocation -- directory traversal; we layer thin scripts over it - the name -- I assume it meant quick make it wins: - integrated with the compiler (this can be viewed as bad too) - declarative (or at least appears so, it is actually clever and imperative, but it is a great facsimile) - presumably efficient -- they actually compile it down to a bytecode internally and execute that! - presumably efficient -- underlying native code Modula-3 implementation..if this means anything any longer, so much is written in JavaScript, C#, Java, theoretical efficiencies all over the place and yet most things seem ok - Jay -------------------------------------------------------------------------------- From: dragisha at m3w.org Date: Fri, 23 Aug 2013 22:03:16 +0200 To: dmuysers at hotmail.com CC: m3devel at elegosoft.com Subject: Re: [M3devel] Build Automation Gradle is better maven, better ant, better Ivy, etc. It is from/for Java world. It integrates other Java ecosystem build tools and extends them. It is written in Groovy, and lots of its "virtue" derives from this fact. To be useable for us, it probably first needs to integrate quake. Not an easy task, without clear benefits. -- Dragi?a Duri? dragisha at m3w.org On Aug 20, 2013, at 7:23 PM, Dirk Muysers wrote: Is Gradle a better quake? -------------- next part -------------- An HTML attachment was scrubbed... URL: From rodney_bates at lcwb.coop Sun Aug 25 17:10:07 2013 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Sun, 25 Aug 2013 10:10:07 -0500 Subject: [M3devel] Build Automation In-Reply-To: References: , Message-ID: <521A1E4F.7070908@lcwb.coop> On 08/25/2013 05:00 AM, Dirk Muysers wrote: > I am not missing anything in quake. I just thought it was worth a look. > If I would redo M3 (and I am too old for that), I would write a single > byte-code producing compiler. So, no compelling need for quake > or any other build tool. Plus a platform-dependent runtime and jitter > (using e.g. libjit). Would make the whole thing much simpler. > The biggest mistake IMHO was CM's new text modelthat obliges to > code two branches for nearly any text-related job. I would have kept > the pm3 text model but encoded in UTF-8. There is nearly no runtime > penalty as one accesses text almost always sequentially. Tell me a > single case where one needs random access to individual characters. I have lots of them. > I tried to do that, but TEXT is used in every nock and corner of the > libraries. Also, surprisingly, it is significantly more difficult to revert > from the cm3 to the pm3 model than CM's passage to the alternate > model. You have to touch almost every module in the system. It took > me half a day to grep through the libraries with Text, Text8, Text16, > TextLiteral etc. And restarting from pm3 sacrifices the indeniable > improvements of the cm3 compiler, disregarding its text model. > That wide-character blunder was first introduced by Microsoft (does > that surprise anybody?) when they thought that Unicode would never > go beyond 16 bits. Sun followed the trail with Java and so did CM > with M3. S. Ballmer's resignation (thanks the gods) comes to late to > reverse the trend. Newer text models (e.g. Go) all acknowledge the > mistake and use UTF-8. In the devel_unicode branch, there is now a mostly-working system that provides low-level support of full Unicode. It's lower-level than what (according to my admittedly sketchy impression) you (Dirk) are working on. The simplified description is, all it does is change WIDECHAR to hold all of Unicode. Arrays of WIDECHAR, etc, and TEXT just fall out of this. Specifically, ORD(LAST(WIDECHAR))=16_10FFFF. (But, as an implementation detail, BITSIZE(WIDECHAR)=32). Actually, there's another part. New library code provides streams almost like Rd and Wr that do encoding/decoding in nine (I think) different encodings, many of them variable-length, including UTF-8 and all the other Unicode encodings. When Modula-3 had only CHAR, we had two different abstractions: Text and streams (Rd, Wr). Slightly oversimplified, Text is inherently designed for random access. (Yeah, I know this took a hit with CM3, but it's still feasible.) Streams are inherently sequential. In the branch, these two abstractions get full Unicode support while preserving their original characteristics. I feel _very_ strongly that it is wrong to axe the possiblity of random access in Text. Yes, a lot of usage is sequential, but not all, and Text is a very easy-to-use, purely functional abstraction that often is just so much easier than ARRAY OF (WIDE)CHAR, for many other purposes in addition to random access. I personally probably use Text.GetChar (and Text.Sub) more often in non-sequential patterns than sequential. If you are adventurous, you could probably start trying it out now. I am still working on testing/development on pickle and netobj compatability between programs compiled with different WIDECHAR sizes, plus various loose ends. Also, I have to come up with a definitive procedure for bootstrapping it. > I am currently working at a Unicode-friendly library that uses UTF-8 > text side-by-side with the existing cm3 TEXT. > > *From:* Jay K > *Sent:* Sunday, August 25, 2013 9:31 AM > *To:* Dragi?a Duri? ; Dirk Muysers > *Cc:* m3devel > *Subject:* RE: [M3devel] Build Automation > > For what we use it for, Quake is hard to beat. > > What are you missing in Quake? > > It falls down only slightly: > - not as much parallelism as it could have > - it is an obscure system, like Modula-3 > - it is perhaps fairly Modula-3 specific; but it is extensible and we do have C/C++ in their, presumably one could add Java/C# support reasonably easily.. > - doesn't offer building multiple programs/modules in one invocation -- directory traversal; we layer thin scripts over it > - the name -- I assume it meant quick make > > it wins: > - integrated with the compiler (this can be viewed as bad too) > - declarative (or at least appears so, it is actually clever and imperative, but it is a great facsimile) > - presumably efficient -- they actually compile it down to a bytecode internally and execute that! > - presumably efficient -- underlying native code Modula-3 implementation..if this means anything any longer, so much is written in JavaScript, C#, Java, theoretical efficiencies all over the place and yet most things seem ok > > > - Jay > > > > > ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- > From: dragisha at m3w.org > Date: Fri, 23 Aug 2013 22:03:16 +0200 > To: dmuysers at hotmail.com > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Build Automation > > Gradle is better maven, better ant, better Ivy, etc. It is from/for Java world. > > It integrates other Java ecosystem build tools and extends them. It is written in Groovy, and lots of its "virtue" derives from this fact. > > To be useable for us, it probably first needs to integrate quake. Not an easy task, without clear benefits. > > -- > Dragi?a Duri? > dragisha at m3w.org > > > > On Aug 20, 2013, at 7:23 PM, Dirk Muysers wrote: > > Is Gradle a better quake? > > From rcolebur at SCIRES.COM Mon Aug 26 00:59:19 2013 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Sun, 25 Aug 2013 22:59:19 +0000 Subject: [M3devel] problems rebuilding on Win XP Message-ID: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF046CD@ATLEX04-SRV.SCIRES.LOCAL> I'm having all sorts of problems rebuilding cm3 on WinXP. I have an old WinXP laptop on which I had a working cm3 system circa 2008. I decided to update to the last sources, so I used CVS to update my sandbox from the HEAD branch. Then, I began the rebuild process. Stage 1 of the rebuild went ok, then when I got to stage 2, I ran into a problem with a compile error in "cm3/m3-libs/libm3/src/os/WIN32/SocketWin32.m3" that I repaired with Jay's help. Now going back thru the rebuild again, the compilation failed in stage 1 (even though it had worked previously). Figuring that I'd somehow messed up everything, I saved off my bin, pkg, lib folders and replaced them with an old backup of a working system. Now, I run into all kinds of problems with the system trying to find stuff in "I386_NT" folders instead of "NT386". I tried renaming all the NT386 folders to I386_NT, but that didn't help (seems that internally something still wants the NT386). So, I modify cm3.cfg to force use of NT386, so I can make progress again, but now I'm getting all kinds of compilation errors. Given my predicament, is there some minimalist binary distribution I can download, install, and use to rebuild everything in my sandbox afresh on 32-bit Windows XP ? (BTW, this system uses Visual Studio 2008 for the linker and other Microsoft tools.) Has there been a definite plan to change the naming of "NT386" to "I386_NT" ? Once I get the 32-bit XP working, I'm going to want to build everything on Windows 7 (64-bit), so any thoughts in advance on how to best succeed in that endeavor are also appreciated. Thanks, Randy Coleburn -------------- next part -------------- An HTML attachment was scrubbed... URL: From rodney_bates at lcwb.coop Mon Aug 26 01:59:28 2013 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Sun, 25 Aug 2013 18:59:28 -0500 Subject: [M3devel] 64-bit big endian? Message-ID: <521A9A60.9030005@lcwb.coop> Do we have any 64-bit big endian targets? There is missing code in StubLib that would be needed if we do. From hosking at cs.purdue.edu Mon Aug 26 02:27:53 2013 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 25 Aug 2013 20:27:53 -0400 Subject: [M3devel] 64-bit big endian? In-Reply-To: <521A9A60.9030005@lcwb.coop> References: <521A9A60.9030005@lcwb.coop> Message-ID: <03B7B647-E633-4873-8057-EC6A817616A9@cs.purdue.edu> Any SPARC big-endian 64-bit? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Mobile +1 765 427 5484 On Aug 25, 2013, at 7:59 PM, "Rodney M. Bates" wrote: > Do we have any 64-bit big endian targets? There is missing code in > StubLib that would be needed if we do. > From rcolebur at SCIRES.COM Mon Aug 26 16:35:01 2013 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Mon, 26 Aug 2013 14:35:01 +0000 Subject: [M3devel] 64-bit big endian? Message-ID: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF04FF8@ATLEX04-SRV.SCIRES.LOCAL> I've been thinking about loading cm3 on an old SPARC that I have. I am pretty sure it is 64bit. Not sure of the endian-ness---I'll have to check. Right now, I've got to get cm3 working again on 32-bit XP. --Randy Coleburn -----Original Message----- From: Tony Hosking [mailto:hosking at cs.purdue.edu] Sent: Sunday, August 25, 2013 8:28 PM To: Rodney M. Bates Cc: m3devel Subject: EXT:Re: [M3devel] 64-bit big endian? Any SPARC big-endian 64-bit? Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Mobile +1 765 427 5484 On Aug 25, 2013, at 7:59 PM, "Rodney M. Bates" wrote: > Do we have any 64-bit big endian targets? There is missing code in > StubLib that would be needed if we do. > From microcode at zoho.com Mon Aug 26 16:40:47 2013 From: microcode at zoho.com (microcode at zoho.com) Date: Mon, 26 Aug 2013 14:40:47 +0000 Subject: [M3devel] 64-bit big endian? In-Reply-To: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF04FF8@ATLEX04-SRV.SCIRES.LOCAL> References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF04FF8@ATLEX04-SRV.SCIRES.LOCAL> Message-ID: <20130826144047.GB12430@zoho.com> I think what Tony meant is all SPARC is big endian. Which old SPARC do you have? We can probably tell you if it is 64 bit or not. On Mon, Aug 26, 2013 at 02:35:01PM +0000, Coleburn, Randy wrote: > I've been thinking about loading cm3 on an old SPARC that I have. I am pretty sure it is 64bit. Not sure of the endian-ness---I'll have to check. Right now, I've got to get cm3 working again on 32-bit XP. > --Randy Coleburn > > -----Original Message----- > From: Tony Hosking [mailto:hosking at cs.purdue.edu] > Sent: Sunday, August 25, 2013 8:28 PM > To: Rodney M. Bates > Cc: m3devel > Subject: EXT:Re: [M3devel] 64-bit big endian? > > Any SPARC big-endian 64-bit? > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA Mobile +1 765 427 5484 > > > > > > On Aug 25, 2013, at 7:59 PM, "Rodney M. Bates" wrote: > > > Do we have any 64-bit big endian targets? There is missing code in > > StubLib that would be needed if we do. > > > -- _ _ ._ _ _ <_> ___ _ _ ___ ___ ___ _| | ___ | ' ' || |/ | '| '_>/ . \/ | '/ . \/ . |/ ._> |_|_|_||_|\_|_.|_| \___/\_|_.\___/\___|\___. From rodney_bates at lcwb.coop Mon Aug 26 20:22:10 2013 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Mon, 26 Aug 2013 13:22:10 -0500 Subject: [M3devel] 64-bit big endian? In-Reply-To: <521A9A60.9030005@lcwb.coop> References: <521A9A60.9030005@lcwb.coop> Message-ID: <521B9CD2.3090703@lcwb.coop> I accidentally found the answer to this while working on a different problem. The files in cminstall/src/config-no-install/.common, etc. contain both endianness and word size for the targets we support. These are also installed in /usr/local/cm3/bin/config. HPPA64, MIPS64, SPARC64 On 08/25/2013 06:59 PM, Rodney M. Bates wrote: > Do we have any 64-bit big endian targets? There is missing code in > StubLib that would be needed if we do. > > From microcode at zoho.com Mon Aug 26 20:41:05 2013 From: microcode at zoho.com (microcode at zoho.com) Date: Mon, 26 Aug 2013 18:41:05 +0000 Subject: [M3devel] 64-bit big endian? In-Reply-To: <521B9CD2.3090703@lcwb.coop> References: <521A9A60.9030005@lcwb.coop> <521B9CD2.3090703@lcwb.coop> Message-ID: <20130826184105.GA16184@zoho.com> On Mon, Aug 26, 2013 at 01:22:10PM -0500, Rodney M. Bates wrote: > I accidentally found the answer to this while working on a different problem. > The files in cminstall/src/config-no-install/.common, etc. contain both > endianness and word size for the targets we support. These are also installed > in /usr/local/cm3/bin/config. > > HPPA64, MIPS64, SPARC64 MIPS is a bi-endian platform. There are a little-endian MIPS64 boxes also, but I guess from your post M3 wouldn't support them. SPARC64 is also technically bi-endian for data although I don't know if any OS runs little-endian on it. All the "normal" stuff that runs on it is big endian. From rcolebur at SCIRES.COM Tue Aug 27 02:49:00 2013 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Tue, 27 Aug 2013 00:49:00 +0000 Subject: [M3devel] need some help with linker error Message-ID: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL> Jay: I'm getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. The full text of the m3core.lst file is also shown at the end of this message. msvcrt.lib m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj m3core.def : error LNK2001: unresolved external symbol _xmm m3core.lib : fatal error LNK1120: 1 unresolved externals Any ideas on what I should do to resolve this problem? Thanks, Randy Coleburn Microsoft (R) Incremental Linker Version 11.00.51106.1 Copyright (C) Microsoft Corporation. All rights reserved. -nodefaultlib -debug -incremental:no -opt:ref -delayload:ws2_32.dll -delayload:advapi32.dll -delayload:gdi32.dll -delayload:netapi32.dll -delayload:user32.dll -delayload:comctl32.dll -delayload:rpcrt4.dll -delayload:iphlpapid.dll delayimp.lib -def:m3core.def -dll -out:m3core.dll hand.obj dtoa.obj libgcc.obj RTHooks.io RTHooks.mo RT0.io RT0.mo RuntimeError.io RuntimeError.mo Compiler.io Compiler.mo RTAllocator.io RTAllocator.mo RTAllocCnts.io RTAllocStats.io RTAllocStats.mo RTHeap.io RTHeap.mo RTHeapInfo.io RTHeapInfo.mo RTHeapMap.io RTHeapMap.mo RTHeapRep.io RTHeapRep.mo RTHeapStats.io RTHeapStats.mo RTCollector.io RTCollector.mo RTCollectorSRC.io RTWeakRef.io RTIO.io RTIO.mo RTIOc.obj RTLinkerX.io RTLinker.io RTLinker.mo RTLinkerC.obj RTDebug.io RTDebug.mo RTDebugC.obj RTError.io RTError.mo RTException.io RTException.mo RTMapOp.io RTMapOp.mo RTMisc.io RTMisc.mo RTMiscC.obj RTModule.io RTPacking.io RTPacking.mo RTParams.io RTParams.mo RTProcedure.io RTProcedure.mo RTProcess.io RTProcess.mo RTProcessC.obj RTThread.io RTTipe.io RTTipe.mo RTType.io RTType.mo RTTypeFP.io RTTypeFP.mo RTTypeMap.io RTTypeMap.mo RTutils.io RTutils.mo RTHeapDebug.io RTHeapDebug.mo RTArgs.io RTHeapEvent.io RTProcedureSRC.io RTSignal.io RTStack.io RTTypeSRC.io RTOS.io RTMachine.io RTArgs.mo RTOS.mo RTPerfTool.io RTPerfTool.mo RTOSc.obj RTSignal.mo RTMachInfo.io RTMachInfo.mo RTExFrame.mo RTStackC.obj Thread.io ThreadF.io Scheduler.io ThreadDebug.io ThreadDebug.obj MutexRep.io ThreadEvent.io ThreadContext.io ThreadWin32.io ThreadWin32.mo ThreadWin32C.obj WinBaseTypes.io WinDef.io WinDef.mo WinNT.io WinNT.mo WinNTc.obj WinError.io WinBase.io WinCon.io WinGDI.io WinGDI.mo WinIoctl.io WinIoctl.mo WinNetwk.io WinNLS.io WinReg.io WinReg.mo WinSock.io WinSock.mo WinUser.io WinUser.mo WinUserC.obj WinVer.io WinVer.mo NB30.io NB30.mo CDErr.io CommDlg.io TlHelp32.io WinMidi.io WinCommCtrl.io WinTabCon.io WinTabCon.mo WinListView.io WinListView.mo WinImageList.io WinImageList.mo UtimeC.obj UnixC.obj UnixLink.obj Uexec.io Uexec.obj Unetdb.io Unetdb.obj Umman.obj Ugrp.io Ugrp.obj Uin.obj Uugid.obj Uuio.obj Uutmp.obj Usignal.obj Upwd.obj Uprocess.obj Usignal.io Uconstants.obj Uutmp.io Umman.io Uuio.io Upwd.io Uugid.io Uprocess.io Unix.io Unix.mo Utime.io Utypes.io Uerror.io Usched.io Usocket.io Usocket.obj Ustat.io Udir.io UdirC.obj Uin.io Cerrno.io Cstddef.io Cstdint.io Cstdlib.io CstdlibC.obj Ctypes.io M3toC.io M3toC.mo CerrnoC.obj Cstring.io CstringC.obj Cstdio.io CstdioC.obj Csignal.io CsignalC.obj Csetjmp.io BasicCtypes.io FPU.io RealFloat.io LongFloat.io ExtendedFloat.io IEEESpecial.io IEEESpecial.mo Real.mo LongReal.mo Extended.mo DragonInt.io DragonInt.mo DragonT.io DragonT.mo FloatMode.io FloatMode.mo Real.io LongReal.io Extended.io RealFloat.mo LongFloat.mo ExtendedFloat.mo RealRep.io LongRealRep.io Time.io Tick.io Date.io FmtTime.io FmtTime.mo TickPortable.mo Time.mo TimeWin32.io TimeWin32.mo DateWin32.mo CConvert.io CConvert.mo Convert.io Convert.mo String8.io String8.mo String16.io String16.mo Text.io Text.mo TextClass.io TextClass.mo TextLiteral.io TextLiteral.mo Text8.io Text8.mo Text8Short.io Text8Short.mo Text8CString.io Text8CString.mo Text16.io Text16.mo Text16Short.io Text16Short.mo TextSub.io TextSub.mo TextCat.io TextCat.mo TextStats.io TextStats.mo TextConv.io TextConv.mo Fingerprint.io Fingerprint.mo Poly.io Poly.mo PolyBasis.io PolyBasis.mo Main.io WeakRef.io WeakRef.mo WordRep.io Word.io LongRep.io Long.io Word.mo Long.mo Boolean.io Boolean.mo Char.io Char.mo Int32.io Int32.mo Int64.io Int64.mo Integer.io Integer.mo Longint.io Longint.mo Refany.io Refany.mo ASCII.io ASCII.mo WideChar.io WideChar.mo Unicode.io Unicode.mo Address.io Address.mo iphlpapi.lib rpcrt4.lib winspool.lib comctl32.lib ws2_32.lib comdlg32.lib netapi32.lib gdi32.lib user32.lib advapi32.lib kernel32.lib msvcrt.lib m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj m3core.def : error LNK2001: unresolved external symbol _xmm m3core.lib : fatal error LNK1120: 1 unresolved externals -------------- next part -------------- An HTML attachment was scrubbed... URL: From rodney_bates at lcwb.coop Tue Aug 27 03:03:20 2013 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Mon, 26 Aug 2013 20:03:20 -0500 Subject: [M3devel] need some help with linker error In-Reply-To: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL> References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL> Message-ID: <521BFAD8.3040504@lcwb.coop> This is just a wild guess, but there are two dtoa.c files, in m3-libs/m3core/src/Csupport/little-endian/dtoa.c and m3-libs/m3core/src/Csupport/big-endian/dtoa.c No doubt they are alternatives. Is there a chance both are getting linked in? Or one from the modula-3 distribution, and one already in some MS-supplied library? On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > Jay: > > I?m getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > The full text of the m3core.lst file is also shown at the end of this message. > > msvcrt.lib > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > m3core.def : error LNK2001: unresolved external symbol _xmm > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > Any ideas on what I should do to resolve this problem? > > Thanks, > > Randy Coleburn > > From jay.krell at cornell.edu Tue Aug 27 08:43:53 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: [M3devel] need some help with linker error In-Reply-To: <521BFAD8.3040504@lcwb.coop> References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL>, <521BFAD8.3040504@lcwb.coop> Message-ID: > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I?m getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Aug 27 09:35:28 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 07:35:28 +0000 Subject: [M3devel] 64-bit big endian? In-Reply-To: <20130826184105.GA16184@zoho.com> References: <521A9A60.9030005@lcwb.coop>, <521B9CD2.3090703@lcwb.coop>, <20130826184105.GA16184@zoho.com> Message-ID: > There are a little-endian MIPS64 boxes also, OpenBSD/loongson? I was running on that. We are extremely portable. Endianness is of almost no concern. Processor is of almost no concern. We use the gcc backend and pthreads for portability. Or Windows. The gcc requirement will be relaxed to any C or C++ compiler. The system was implemented to be about that portable and I believe I fairly well proved it succeeded. I got it to run on several similar systems that it hadn't run on or hadn't recently run on, and I got close on still others. Give just a bit of time and hardware, I'm IA64/HPUX/Irix/VMS/AIX/Tru64 whatever you can muster, we'll work with it. But most of these systems people don't use anyway. And, it is getting better. We'll need just a C or C++ compiler, and pthreads or Win32. We should be about as portable as any "package" on any widely used Posix or Windows system. Maybe some day we'll even output JavaScript and run in a browser, via emscriptem... (We'll also remove some of trickier mostly Posix code with cooperative suspend...) - Jay > Date: Mon, 26 Aug 2013 18:41:05 +0000 > From: microcode at zoho.com > To: m3devel at elegosoft.com > Subject: Re: [M3devel] 64-bit big endian? > > On Mon, Aug 26, 2013 at 01:22:10PM -0500, Rodney M. Bates wrote: > > I accidentally found the answer to this while working on a different problem. > > The files in cminstall/src/config-no-install/.common, etc. contain both > > endianness and word size for the targets we support. These are also installed > > in /usr/local/cm3/bin/config. > > > > HPPA64, MIPS64, SPARC64 > > MIPS is a bi-endian platform. There are a little-endian MIPS64 boxes also, > but I guess from your post M3 wouldn't support them. > > SPARC64 is also technically bi-endian for data although I don't know if any > OS runs little-endian on it. All the "normal" stuff that runs on it is big > endian. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Aug 27 09:38:16 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 07:38:16 +0000 Subject: [M3devel] 64-bit big endian? In-Reply-To: References: <521A9A60.9030005@lcwb.coop>, <521B9CD2.3090703@lcwb.coop>, , <20130826184105.GA16184@zoho.com>, Message-ID: SPARC64_SOLARIS is here: https://modula3.elegosoft.com/cm3/uploaded-archives/index.html - Jay From: jay.krell at cornell.edu To: microcode at zoho.com; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 07:35:28 +0000 Subject: Re: [M3devel] 64-bit big endian? > There are a little-endian MIPS64 boxes also, OpenBSD/loongson? I was running on that. We are extremely portable. Endianness is of almost no concern. Processor is of almost no concern. We use the gcc backend and pthreads for portability. Or Windows. The gcc requirement will be relaxed to any C or C++ compiler. The system was implemented to be about that portable and I believe I fairly well proved it succeeded. I got it to run on several similar systems that it hadn't run on or hadn't recently run on, and I got close on still others. Give just a bit of time and hardware, I'm IA64/HPUX/Irix/VMS/AIX/Tru64 whatever you can muster, we'll work with it. But most of these systems people don't use anyway. And, it is getting better. We'll need just a C or C++ compiler, and pthreads or Win32. We should be about as portable as any "package" on any widely used Posix or Windows system. Maybe some day we'll even output JavaScript and run in a browser, via emscriptem... (We'll also remove some of trickier mostly Posix code with cooperative suspend...) - Jay > Date: Mon, 26 Aug 2013 18:41:05 +0000 > From: microcode at zoho.com > To: m3devel at elegosoft.com > Subject: Re: [M3devel] 64-bit big endian? > > On Mon, Aug 26, 2013 at 01:22:10PM -0500, Rodney M. Bates wrote: > > I accidentally found the answer to this while working on a different problem. > > The files in cminstall/src/config-no-install/.common, etc. contain both > > endianness and word size for the targets we support. These are also installed > > in /usr/local/cm3/bin/config. > > > > HPPA64, MIPS64, SPARC64 > > MIPS is a bi-endian platform. There are a little-endian MIPS64 boxes also, > but I guess from your post M3 wouldn't support them. > > SPARC64 is also technically bi-endian for data although I don't know if any > OS runs little-endian on it. All the "normal" stuff that runs on it is big > endian. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From microcode at zoho.com Tue Aug 27 09:51:46 2013 From: microcode at zoho.com (microcode at zoho.com) Date: Tue, 27 Aug 2013 07:51:46 +0000 Subject: [M3devel] 64-bit big endian? In-Reply-To: References: <521A9A60.9030005@lcwb.coop> <521B9CD2.3090703@lcwb.coop> <20130826184105.GA16184@zoho.com> Message-ID: <20130827075146.GA18129@zoho.com> On Tue, Aug 27, 2013 at 07:35:28AM +0000, Jay K wrote: > > There are a little-endian MIPS64 boxes also, > > OpenBSD/loongson? I was running on that. Yes, that's what I was thinking of. Are you saying you have CM3 running on it? > We are extremely portable. Endianness is of almost no concern. Processor > is of almost no concern. > We use the gcc backend and pthreads for portability. Or Windows. > The gcc requirement will be relaxed to any C or C++ compiler. That will really be great. A lot of times I want to run something and it has gcc-isms and doesn't build with other compilers. > The system was implemented to be about that portable and I believe I > fairly well proved it succeeded. I got it to run on several similar > systems that it hadn't run on or hadn't recently run on, and I got close > on still others. Give just a bit of time and hardware, I'm > IA64/HPUX/Irix/VMS/AIX/Tru64 whatever you can muster, we'll work with > it. But most of these systems people don't use anyway. I have friends with a lot more hardware than me and they seem to just accept the fact they can only run software X on boxes a and b and not c, d or e. I don't like to get stuck not being able to run something on the few different boxes I have so I tend not to look too hard at stuff that won't run everywhere. I've been so busy with other projects that I haven't had time to look at Modula-3 (not just CM3) but it's definitely on my list since I do appreciate good language design. I was impressed on all the platform support I saw on the homepage and I've been lurking on the mailing list to see what you guys are up to. From jay.krell at cornell.edu Tue Aug 27 10:03:17 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 08:03:17 +0000 Subject: [M3devel] 64-bit big endian? In-Reply-To: <20130827075146.GA18129@zoho.com> References: <521A9A60.9030005@lcwb.coop> <521B9CD2.3090703@lcwb.coop>, <20130826184105.GA16184@zoho.com>, , <20130827075146.GA18129@zoho.com> Message-ID: There likely are no gcc-isms in the code. The C code that is in there has been compiled with Visual C++ (partly), Digital cc, Sun cc, maybe others that I'm forgetting (bundled K&R HP-UX cc? a weirdo SGI cc I found.. VMS cc?). Sun cc definitely. Tru64 cc fairly recently. It is just that someone needs to have already ported the gcc backend to the target. We carry a form of the gcc backend with us. At least for now, and for a very long time (10+ years). I have a C-generating backend, in very good shape, but nobody else uses it yet. It can compile the entire system and has a better debugging experience on systems with no m3gdb support (e.g. MacOSX). > Are you saying you have CM3 running on it? I don't currently. I haven't powered on those machines in over a year now. But I was working on it. The point is though, it is generally pretty easy. OpenBSD is a slight challenge because mainline gcc no longer supports it. But they have ports. You get to merge a little the ports to our fork of mainline. But most of the diffs are not in the backend anyway. Mostly OpenBSD/mips is the same Linux/mips, etc. They generally all share calling conventions and assembler syntax, and that is mostly all the backend cares about. Occasionally a small problem is found. For example we over-use bitfields and that showed up as a problem on MIPS. I was also working on Irix. The system is very portable and has been shown to run with little additional effort on a number of systems. It used to be the biggest part of a port was rewriting /usr/include in Modula-3. It was tedious and error prone. But I fixed that. We now have our own C to bridge that safely once and done. - Jay > Date: Tue, 27 Aug 2013 07:51:46 +0000 > From: microcode at zoho.com > To: m3devel at elegosoft.com > Subject: Re: [M3devel] 64-bit big endian? > > On Tue, Aug 27, 2013 at 07:35:28AM +0000, Jay K wrote: > > > There are a little-endian MIPS64 boxes also, > > > > OpenBSD/loongson? I was running on that. > > Yes, that's what I was thinking of. Are you saying you have CM3 running on > it? > > > We are extremely portable. Endianness is of almost no concern. Processor > > is of almost no concern. > > We use the gcc backend and pthreads for portability. Or Windows. > > The gcc requirement will be relaxed to any C or C++ compiler. > > That will really be great. A lot of times I want to run something and it has > gcc-isms and doesn't build with other compilers. > > > The system was implemented to be about that portable and I believe I > > fairly well proved it succeeded. I got it to run on several similar > > systems that it hadn't run on or hadn't recently run on, and I got close > > on still others. Give just a bit of time and hardware, I'm > > IA64/HPUX/Irix/VMS/AIX/Tru64 whatever you can muster, we'll work with > > it. But most of these systems people don't use anyway. > > I have friends with a lot more hardware than me and they seem to just accept > the fact they can only run software X on boxes a and b and not c, d or e. I > don't like to get stuck not being able to run something on the few different > boxes I have so I tend not to look too hard at stuff that won't run > everywhere. I've been so busy with other projects that I haven't had time to > look at Modula-3 (not just CM3) but it's definitely on my list since I do > appreciate good language design. I was impressed on all the platform support > I saw on the homepage and I've been lurking on the mailing list to see what > you guys are up to. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Aug 27 11:07:25 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: [M3devel] need some help with linker error In-Reply-To: References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL>, , <521BFAD8.3040504@lcwb.coop>, Message-ID: I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I?m getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Aug 27 16:55:13 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 14:55:13 +0000 Subject: [M3devel] need some help with linker error In-Reply-To: References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL>, , , <521BFAD8.3040504@lcwb.coop>, , , Message-ID: Hm. That leaves me with: +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ --- building in NT386 --- ignoring ..\src\m3overrides *** *** runtime error: *** Attempt to reference an illegal memory location. *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 0x14f028 0x76f22d94 0x14f040 0x76f22ce8 0x14f054 0x759bc3d4 0x14f068 0x6302dcc2 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc ator.m3 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin 32.m3 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl ector.m3 ......... ......... ... more frames ... *** execution of [, ] failed *** Not good. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: Re: [M3devel] need some help with linker error I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I?m getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Aug 27 17:28:15 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 15:28:15 +0000 Subject: [M3devel] need some help with linker error In-Reply-To: References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL>, , , , <521BFAD8.3040504@lcwb.coop>, , , , , , Message-ID: This is fixed now too. Dragisha had introduced heap corruption in FSWin32.m3 trying to improve Unicode support. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 14:55:13 +0000 Subject: Re: [M3devel] need some help with linker error Hm. That leaves me with: +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ --- building in NT386 --- ignoring ..\src\m3overrides *** *** runtime error: *** Attempt to reference an illegal memory location. *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 0x14f028 0x76f22d94 0x14f040 0x76f22ce8 0x14f054 0x759bc3d4 0x14f068 0x6302dcc2 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc ator.m3 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin 32.m3 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl ector.m3 ......... ......... ... more frames ... *** execution of [, ] failed *** Not good. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: Re: [M3devel] need some help with linker error I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I?m getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Aug 27 20:18:36 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 18:18:36 +0000 Subject: [M3devel] problems rebuilding on Win XP In-Reply-To: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF046CD@ATLEX04-SRV.SCIRES.LOCAL> References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF046CD@ATLEX04-SRV.SCIRES.LOCAL> Message-ID: > is there some minimalist binary distribution I can download, install, and use I used one of these: http://www.opencm3.net/uploaded-archives/cm3-all-x86-pre5.8.5-VC80.msi http://www.opencm3.net/uploaded-archives/cm3-all-x86-pre5.8.5-VC90.msi but any of these ought to work: http://www.opencm3.net/uploaded-archives/cm3-min-x86-pre5.8.5-*.zip * any of VC20 VC40 VC41 VC42 VC50 VC60 VC70 VC80 VC90 VC80 vs. VC90 shouldn't need to match what you are using, it is just what they were built with. Some of them depend on the "VC redist", which you likely already have. and upgrade.py You'll need the fix in FSWin32.m3. I'll try to test some of these this week, and 1) upload updated archives and 2) try the C backend to target AMD64_NT! That was one of the goals of the C backend -- new targets, w/o gcc backend. "NT386" is probably still supported, but I'd really like to someday get rid of: NT386, SOLsun, SOLgnu, LINUXLIBC6, FreeBSD4. For years we have had: I386_NT, SPARC_SOLARIS, I386_LINUX, I386_FREEBSD. With the C backend, even these names will have less significance, as the backend output is nearly the same across many targets, and hopefully will become more common in time. - Jay From: rcolebur at SCIRES.COM To: m3devel at elegosoft.com Date: Sun, 25 Aug 2013 22:59:19 +0000 Subject: [M3devel] problems rebuilding on Win XP I?m having all sorts of problems rebuilding cm3 on WinXP. I have an old WinXP laptop on which I had a working cm3 system circa 2008. I decided to update to the last sources, so I used CVS to update my sandbox from the HEAD branch. Then, I began the rebuild process. Stage 1 of the rebuild went ok, then when I got to stage 2, I ran into a problem with a compile error in ?cm3/m3-libs/libm3/src/os/WIN32/SocketWin32.m3? that I repaired with Jay?s help. Now going back thru the rebuild again, the compilation failed in stage 1 (even though it had worked previously). Figuring that I?d somehow messed up everything, I saved off my bin, pkg, lib folders and replaced them with an old backup of a working system. Now, I run into all kinds of problems with the system trying to find stuff in ?I386_NT? folders instead of ?NT386?. I tried renaming all the NT386 folders to I386_NT, but that didn?t help (seems that internally something still wants the NT386). So, I modify cm3.cfg to force use of NT386, so I can make progress again, but now I?m getting all kinds of compilation errors. Given my predicament, is there some minimalist binary distribution I can download, install, and use to rebuild everything in my sandbox afresh on 32-bit Windows XP ? (BTW, this system uses Visual Studio 2008 for the linker and other Microsoft tools.) Has there been a definite plan to change the naming of ?NT386? to ?I386_NT? ? Once I get the 32-bit XP working, I?m going to want to build everything on Windows 7 (64-bit), so any thoughts in advance on how to best succeed in that endeavor are also appreciated. Thanks, Randy Coleburn -------------- next part -------------- An HTML attachment was scrubbed... URL: From dragisha at m3w.org Wed Aug 28 00:25:15 2013 From: dragisha at m3w.org (=?utf-8?Q?Dragi=C5=A1a_Duri=C4=87?=) Date: Wed, 28 Aug 2013 00:25:15 +0200 Subject: [M3devel] need some help with linker error In-Reply-To: References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL>, , , , <521BFAD8.3040504@lcwb.coop>, , , , , , Message-ID: <68D3C880-5B6B-45AA-BEB5-2D14E87A2AA8@m3w.org> heh :). More like trying to introduce some support. There was no such thing beforehand. I am glad you fixed my first aid effort. Thanks! -- Dragi?a Duri? dragisha at m3w.org On Aug 27, 2013, at 5:28 PM, Jay K wrote: > This is fixed now too. > Dragisha had introduced heap corruption in FSWin32.m3 trying to improve Unicode support. > > - Jay > > From: jay.krell at cornell.edu > To: rodney_bates at lcwb.coop; m3devel at elegosoft.com > Date: Tue, 27 Aug 2013 14:55:13 +0000 > Subject: Re: [M3devel] need some help with linker error > > Hm. That leaves me with: > > +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ > --- building in NT386 --- > ignoring ..\src\m3overrides > > *** > *** runtime error: > *** Attempt to reference an illegal memory location. > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 > 0x14f028 0x76f22d94 > 0x14f040 0x76f22ce8 > 0x14f054 0x759bc3d4 > 0x14f068 0x6302dcc2 > 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 > 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc > ator.m3 > 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin > 32.m3 > 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 > 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl > ector.m3 > ......... ......... ... more frames ... > *** execution of [, pFunction at 0x0197B630>] failed *** > > Not good. > > - Jay > > > > > From: jay.krell at cornell.edu > To: rodney_bates at lcwb.coop; m3devel at elegosoft.com > Date: Tue, 27 Aug 2013 09:07:25 +0000 > Subject: Re: [M3devel] need some help with linker error > > I updated m3-sys/mklib to ignore these. > Let me know if there are any more problems. > > Thanks, > - Jay > > From: jay.krell at cornell.edu > To: rodney_bates at lcwb.coop; m3devel at elegosoft.com > Date: Tue, 27 Aug 2013 06:43:53 +0000 > Subject: Re: [M3devel] need some help with linker error > > > Is there a chance both are getting linked in? > > No. There is no chance of this. > > > > Or one from the modula-3 distribution, and one already in some MS-supplied > > library? > > > No. There is no chance of this either. > > > I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . > These are floating point constants for code that uses sse2. > You are targeting 32bit, right? > Still, I guess these might occur, with newer compilers. > I'll look into it. > We already have to code exclude the older forms of floating point constants. > > - Jay > > > > Date: Mon, 26 Aug 2013 20:03:20 -0500 > > From: rodney_bates at lcwb.coop > > To: m3devel at elegosoft.com > > Subject: Re: [M3devel] need some help with linker error > > > > This is just a wild guess, but there are two dtoa.c files, in > > > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > > > No doubt they are alternatives. Is there a chance both are getting linked in? > > Or one from the modula-3 distribution, and one already in some MS-supplied > > library? > > > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > > Jay: > > > > > > I?m getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > > > msvcrt.lib > > > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > > > Any ideas on what I should do to resolve this problem? > > > > > > Thanks, > > > > > > Randy Coleburn > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 495 bytes Desc: Message signed with OpenPGP using GPGMail URL: From jay.krell at cornell.edu Wed Aug 28 00:35:49 2013 From: jay.krell at cornell.edu (Jay K) Date: Tue, 27 Aug 2013 22:35:49 +0000 Subject: [M3devel] need some help with linker error In-Reply-To: <68D3C880-5B6B-45AA-BEB5-2D14E87A2AA8@m3w.org> References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF05CB7@ATLEX04-SRV.SCIRES.LOCAL>, , , , <521BFAD8.3040504@lcwb.coop>, , , , , , , <68D3C880-5B6B-45AA-BEB5-2D14E87A2AA8@m3w.org> Message-ID: There was already some support, of a small subset. :) - Jay Subject: Re: [M3devel] need some help with linker error From: dragisha at m3w.org Date: Wed, 28 Aug 2013 00:25:15 +0200 CC: rodney_bates at lcwb.coop; m3devel at elegosoft.com To: jay.krell at cornell.edu heh :). More like trying to introduce some support. There was no such thing beforehand. I am glad you fixed my first aid effort. Thanks! --Dragi?a Duri?dragisha at m3w.org On Aug 27, 2013, at 5:28 PM, Jay K wrote:This is fixed now too. Dragisha had introduced heap corruption in FSWin32.m3 trying to improve Unicode support. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 14:55:13 +0000 Subject: Re: [M3devel] need some help with linker error Hm. That leaves me with: +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ --- building in NT386 --- ignoring ..\src\m3overrides *** *** runtime error: *** Attempt to reference an illegal memory location. *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 0x14f028 0x76f22d94 0x14f040 0x76f22ce8 0x14f054 0x759bc3d4 0x14f068 0x6302dcc2 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc ator.m3 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin 32.m3 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl ector.m3 ......... ......... ... more frames ... *** execution of [, ] failed *** Not good. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: Re: [M3devel] need some help with linker error I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I'm getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Aug 28 10:02:11 2013 From: jay.krell at cornell.edu (Jay K) Date: Wed, 28 Aug 2013 08:02:11 +0000 Subject: [M3devel] m3_round long double to int64? In-Reply-To: <20130828075816.A00679D620B@birch.elegosoft.com> References: <20130828075816.A00679D620B@birch.elegosoft.com> Message-ID: Anyone want to tackle this? INT64 __stdcall m3_round(long double f); rounds to nearest, breaks ties in the IEEE way (toward even, or such), presumably. Make it correct for 32bit, 64bit, big endian, little endian. Assume IEEE754. You can assume long double is the same as double. You'll likely want to split it into mantissa and exponent. Thanks, - Jay > Date: Wed, 28 Aug 2013 09:58:16 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 13/08/28 09:58:16 > > Modified files: > cm3/m3-sys/m3back/src/: M3C.m3 > > Log message: > win64: temporary workaround: truncate instead of round > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Thu Aug 29 03:58:27 2013 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Thu, 29 Aug 2013 02:58:27 +0100 (BST) Subject: [M3devel] m3_round long double to int64? In-Reply-To: References: <20130828075816.A00679D620B@birch.elegosoft.com> Message-ID: <1377741507.7927.YahooMailNeo@web172805.mail.ir2.yahoo.com> Hi all: No, no, no: http://www.youtube.com/watch?v=o2hj7F7y_jk#t=6m51s to? 9:56 Long double may necessarily map to IEEE format anyway though http://en.wikipedia.org/wiki/Long_double Thanks in advance ________________________________ De: Jay K Para: m3devel Enviado: Mi?rcoles 28 de agosto de 2013 3:02 Asunto: [M3devel] m3_round long double to int64? Anyone?want to tackle this? ? INT64 __stdcall m3_round(long double f); ? rounds to nearest, breaks ties in the?IEEE way (toward even, or such), presumably. ? Make it correct for 32bit, 64bit, big endian, little endian. Assume IEEE754. ? You can assume long double is the same as double. You'll likely want to split it into mantissa and exponent. ? Thanks, ?- Jay ? > Date: Wed, 28 Aug 2013 09:58:16 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 13/08/28 09:58:16 > > Modified files: > cm3/m3-sys/m3back/src/: M3C.m3 > > Log message: > win64: temporary workaround: truncate instead of round > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Aug 30 01:46:53 2013 From: jay.krell at cornell.edu (Jay) Date: Thu, 29 Aug 2013 16:46:53 -0700 Subject: [M3devel] m3_round long double to int64? In-Reply-To: <1377741507.7927.YahooMailNeo@web172805.mail.ir2.yahoo.com> References: <20130828075816.A00679D620B@birch.elegosoft.com> <1377741507.7927.YahooMailNeo@web172805.mail.ir2.yahoo.com> Message-ID: <111F0513-00FF-49C1-9F30-4E82ED9987C7@gmail.com> Sorry, my mistake. Ignore long double. We only care about double. - Jay On Aug 28, 2013, at 6:58 PM, "Daniel Alejandro Benavides D." wrote: > Hi all: > No, no, no: > http://www.youtube.com/watch?v=o2hj7F7y_jk#t=6m51s > to 9:56 > > Long double may necessarily map to IEEE format anyway though > http://en.wikipedia.org/wiki/Long_double > > Thanks in advance > > De: Jay K > Para: m3devel > Enviado: Mi?rcoles 28 de agosto de 2013 3:02 > Asunto: [M3devel] m3_round long double to int64? > > > Anyone want to tackle this? > > INT64 __stdcall m3_round(long double f); > > rounds to nearest, breaks ties in the IEEE way (toward even, or such), presumably. > > Make it correct for 32bit, 64bit, big endian, little endian. > Assume IEEE754. > > You can assume long double is the same as double. > You'll likely want to split it into mantissa and exponent. > > Thanks, > - Jay > > > > Date: Wed, 28 Aug 2013 09:58:16 +0000 > > To: m3commit at elegosoft.com > > From: jkrell at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 13/08/28 09:58:16 > > > > Modified files: > > cm3/m3-sys/m3back/src/: M3C.m3 > > > > Log message: > > win64: temporary workaround: truncate instead of round > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Aug 30 07:56:51 2013 From: jay.krell at cornell.edu (Jay K) Date: Fri, 30 Aug 2013 05:56:51 +0000 Subject: [M3devel] extend TInt to 72 bits In-Reply-To: <2A3E5E3E-5192-4F34-A491-74572E8D270D@cs.purdue.edu> References: <20130319043014.95C479C6006@birch.elegosoft.com> <6EBA93AC-491C-40F1-9150-8E68ECE3D5A9@gmail.com>, <2A3E5E3E-5192-4F34-A491-74572E8D270D@cs.purdue.edu> Message-ID: reminder "we" need to think/look about this, maybe me soon, maybe I had noticed on my machine TWord.i3 CONST LE = TInt.LE, which is a nice intermediate fallout from this..but we need to maybe double check... - Jay > CC: jkrell at elego.de; m3commit at elegosoft.com > From: hosking at cs.purdue.edu > Subject: Re: [M3commit] CVS Update: cm3 > Date: Tue, 19 Mar 2013 13:58:40 -0500 > To: jay.krell at cornell.edu > > Probably ok, but I'm not totally sure. Need to audit all the uses. > > Sent from my iPad > > On Mar 19, 2013, at 10:53 AM, Jay wrote: > > > Wondering later: maybe code depends on the range being limited? > > > > > > - Jay > > > > On Mar 18, 2013, at 10:30 PM, Jay Krell wrote: > > > >> CVSROOT: /usr/cvs > >> Changes by: jkrell at birch. 13/03/19 05:30:14 > >> > >> Modified files: > >> cm3/m3-sys/m3middle/src/: TInt.i3 TWord.i3 > >> > >> Log message: > >> extend TInt to 72 bits, so that TWord isn't really needed, > >> as TInt can represent the full range of 64 bit signed and unsigned values > >> > >> add constant "Two" > >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Aug 30 08:02:41 2013 From: jay.krell at cornell.edu (Jay K) Date: Fri, 30 Aug 2013 06:02:41 +0000 Subject: [M3devel] cm3 -DTARGET=foo Message-ID: I'd like the above to work. Or cm3 -target=foo or -target:foo. The underlying implementation would be "like" -DTARGET=foo. This doesn't work due to the order of evaluation, command line vs. config file vs. -D written to a file. I don't have the change yet. Any objection to the intent? I wonder if it might subtlely reorder things though. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Fri Aug 30 16:29:52 2013 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Fri, 30 Aug 2013 15:29:52 +0100 (BST) Subject: [M3devel] cm3 -DTARGET=foo In-Reply-To: References: Message-ID: <1377872992.23372.YahooMailNeo@web172805.mail.ir2.yahoo.com> Hi all: but adding -DHOST=boot. This would allow cross compilation insitu, ideally, cross compilations will be available from cm3ide in a M3 interpreter (Olivetti) generating JVM-bytecodes. Hard but doable. Thanks in advance ________________________________ De: Jay K Para: m3devel Enviado: Viernes 30 de agosto de 2013 1:02 Asunto: [M3devel] cm3 -DTARGET=foo I'd like the above to work. Or cm3 -target=foo or -target:foo. The underlying implementation would be "like" -DTARGET=foo. This doesn't work due to the order of evaluation, command line vs. config file vs. -D written to a file. I don't have the change yet. Any objection to the intent? I wonder if it might subtlely reorder things though. ?- Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcolebur at SCIRES.COM Fri Aug 30 18:12:32 2013 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Fri, 30 Aug 2013 16:12:32 +0000 Subject: [M3devel] need some help with linker error Message-ID: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF0B6A7@ATLEX04-SRV.SCIRES.LOCAL> Jay: I appreciate your help. I just updated via CVS to get all your latest changes, but I am still getting the error with non-unique match for _xmm. See below: ... msvcrt.lib m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj m3core.def : error LNK2001: unresolved external symbol _xmm m3core.lib : fatal error LNK1120: 1 unresolved externals Can you point me in the right direction to solve this problem? Thanks, Randy Coleburn From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Tuesday, August 27, 2013 11:28 AM To: Rodney M. Bates; m3devel Subject: EXT:Re: [M3devel] need some help with linker error This is fixed now too. Dragisha had introduced heap corruption in FSWin32.m3 trying to improve Unicode support. - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 14:55:13 +0000 Subject: Re: [M3devel] need some help with linker error Hm. That leaves me with: +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ --- building in NT386 --- ignoring ..\src\m3overrides *** *** runtime error: *** Attempt to reference an illegal memory location. *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 0x14f028 0x76f22d94 0x14f040 0x76f22ce8 0x14f054 0x759bc3d4 0x14f068 0x6302dcc2 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc ator.m3 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin 32.m3 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl ector.m3 ......... ......... ... more frames ... *** execution of [, ] failed *** Not good. - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: Re: [M3devel] need some help with linker error I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I'm getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Aug 30 18:17:49 2013 From: jay.krell at cornell.edu (Jay) Date: Fri, 30 Aug 2013 09:17:49 -0700 Subject: [M3devel] cm3 -DTARGET=foo In-Reply-To: <1377872992.23372.YahooMailNeo@web172805.mail.ir2.yahoo.com> References: <1377872992.23372.YahooMailNeo@web172805.mail.ir2.yahoo.com> Message-ID: This makes little/no sense. We already have -boot, which is wierd, works, useful. Host is always trivially known. - Jay On Aug 30, 2013, at 7:29 AM, "Daniel Alejandro Benavides D." wrote: > Hi all: > but adding -DHOST=boot. > > This would allow cross compilation insitu, ideally, cross compilations will be available from > cm3ide in a M3 interpreter (Olivetti) generating JVM-bytecodes. > > Hard but doable. > > Thanks in advance > > De: Jay K > Para: m3devel > Enviado: Viernes 30 de agosto de 2013 1:02 > Asunto: [M3devel] cm3 -DTARGET=foo > > I'd like the above to work. > > Or cm3 -target=foo or -target:foo. > The underlying implementation would be "like" -DTARGET=foo. > > This doesn't work due to the order of evaluation, command line vs. config file vs. -D written to a file. > > I don't have the change yet. > > Any objection to the intent? > > I wonder if it might subtlely reorder things though. > > > - Jay > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Fri Aug 30 19:05:32 2013 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Fri, 30 Aug 2013 18:05:32 +0100 (BST) Subject: [M3devel] cm3 -DTARGET=foo In-Reply-To: References: <1377872992.23372.YahooMailNeo@web172805.mail.ir2.yahoo.com> Message-ID: <1377882332.86588.YahooMailNeo@web172803.mail.ir2.yahoo.com> Hi all: no, the HOST is trivially fixed, but it's not known until runtime in a web browser, why not use clients of CM3-IDE as hosts. Obviously you need a distributed compiler and building system. An example of bootstrapping compilers in interpreters: http://researcher.watson.ibm.com/researcher/files/us-bacon/Bacon90Portable.pdf Thanks in advance ________________________________ De: Jay Para: Daniel Alejandro Benavides D. CC: Jay K ; m3devel Enviado: Viernes 30 de agosto de 2013 11:17 Asunto: Re: [M3devel] cm3 -DTARGET=foo This makes little/no sense. We already have -boot, which is wierd, works, useful. Host is always trivially known. ?- Jay On Aug 30, 2013, at 7:29 AM, "Daniel Alejandro Benavides D." wrote: Hi all: >but adding -DHOST=boot. > >This would allow cross compilation insitu, ideally, cross compilations will be available from > >cm3ide in a M3 interpreter (Olivetti) generating JVM-bytecodes. > > >Hard but doable. > > >Thanks in advance > > > > >________________________________ > De: Jay K >Para: m3devel >Enviado: Viernes 30 de agosto de 2013 1:02 >Asunto: [M3devel] cm3 -DTARGET=foo > > > >I'd like the above to work. > >Or cm3 -target=foo or -target:foo. >The underlying implementation would be "like" -DTARGET=foo. > >This doesn't work due to the order of evaluation, command line vs. config file vs. -D written to a file. > >I don't have the change yet. > >Any objection to the intent? > >I wonder if it might subtlely reorder things though. > > >?- Jay > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Aug 30 21:46:06 2013 From: jay.krell at cornell.edu (Jay K) Date: Fri, 30 Aug 2013 19:46:06 +0000 Subject: [M3devel] need some help with linker error In-Reply-To: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF0B6A7@ATLEX04-SRV.SCIRES.LOCAL> References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF0B6A7@ATLEX04-SRV.SCIRES.LOCAL> Message-ID: Did you run upgrade.py? - Jay From: rcolebur at SCIRES.COM To: m3devel at elegosoft.com Date: Fri, 30 Aug 2013 16:12:32 +0000 Subject: Re: [M3devel] need some help with linker error Jay: I appreciate your help. I just updated via CVS to get all your latest changes, but I am still getting the error with non-unique match for _xmm. See below: ? msvcrt.lib m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj m3core.def : error LNK2001: unresolved external symbol _xmm m3core.lib : fatal error LNK1120: 1 unresolved externals Can you point me in the right direction to solve this problem? Thanks, Randy Coleburn From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Tuesday, August 27, 2013 11:28 AM To: Rodney M. Bates; m3devel Subject: EXT:Re: [M3devel] need some help with linker error This is fixed now too. Dragisha had introduced heap corruption in FSWin32.m3 trying to improve Unicode support. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 14:55:13 +0000 Subject: Re: [M3devel] need some help with linker error Hm. That leaves me with: +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ --- building in NT386 --- ignoring ..\src\m3overrides *** *** runtime error: *** Attempt to reference an illegal memory location. *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 0x14f028 0x76f22d94 0x14f040 0x76f22ce8 0x14f054 0x759bc3d4 0x14f068 0x6302dcc2 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc ator.m3 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin 32.m3 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl ector.m3 ......... ......... ... more frames ... *** execution of [, ] failed *** Not good. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: Re: [M3devel] need some help with linker error I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I?m getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Aug 31 08:17:08 2013 From: jay.krell at cornell.edu (Jay K) Date: Sat, 31 Aug 2013 06:17:08 +0000 Subject: [M3devel] how to write constants? Message-ID: What is the right way to do this for 64bit systems? other : INT32 = 16_FFFFFFFF; "../src/win32/WinUser.i3", line 1321: warning: value not assignable (range fault) WS_POPUP : INT32 = 16_80000000; "../src/win32/WinVer.i3", line 37: warning: value not assignable (range fault) VS_FFI_SIGNATURE : INT32 = 16_FEEF04BD; I'm guessing.. other : INT32 := -1; WS_POPUP = FIRST(INT32) VS_FFI_SIGNATURE : INT32 = -17890115; (* 16_FEEF04BD *) ? - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcolebur at SCIRES.COM Sat Aug 31 16:59:21 2013 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Sat, 31 Aug 2013 14:59:21 +0000 Subject: [M3devel] need some help with linker error Message-ID: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF0C98C@ATLEX04-SRV.SCIRES.LOCAL> Jay: I tried upgrade.py, without success. Here are the results: C:\cm3\Sandbox\scripts\python>python upgrade.py Traceback (most recent call last): File "upgrade.py", line 4, in import pylib File "C:\cm3\Sandbox\scripts\python\pylib.py", line 900 PackageDB = (PackageDB or map(lambda(a): a.replace("\n", "").replace('\\', '/').replace("\r", ""), open(PKGSDB))) ^ SyntaxError: invalid syntax I'm not familiar with python, so I'm not in a position to debug what is wrong. --Randy From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Friday, August 30, 2013 6:07 PM To: Coleburn, Randy Subject: EXT:RE: [M3devel] need some help with linker error RCC_upgradeCM3.cmd looks incorrect. Please try upgrade.py. - Jay ________________________________ From: rcolebur at SCIRES.COM To: jay.krell at cornell.edu Subject: RE: [M3devel] need some help with linker error Date: Fri, 30 Aug 2013 20:06:13 +0000 No, I ran my batch/CMD scripts, but these are based on what you had described previously as the correct steps. Is there a new dependency or step I need to be aware of? --Randy From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Friday, August 30, 2013 3:46 PM To: Coleburn, Randy; m3devel Subject: EXT:RE: [M3devel] need some help with linker error Did you run upgrade.py? - Jay ________________________________ From: rcolebur at SCIRES.COM To: m3devel at elegosoft.com Date: Fri, 30 Aug 2013 16:12:32 +0000 Subject: Re: [M3devel] need some help with linker error Jay: I appreciate your help. I just updated via CVS to get all your latest changes, but I am still getting the error with non-unique match for _xmm. See below: ... msvcrt.lib m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj m3core.def : error LNK2001: unresolved external symbol _xmm m3core.lib : fatal error LNK1120: 1 unresolved externals Can you point me in the right direction to solve this problem? Thanks, Randy Coleburn From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Tuesday, August 27, 2013 11:28 AM To: Rodney M. Bates; m3devel Subject: EXT:Re: [M3devel] need some help with linker error This is fixed now too. Dragisha had introduced heap corruption in FSWin32.m3 trying to improve Unicode support. - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 14:55:13 +0000 Subject: Re: [M3devel] need some help with linker error Hm. That leaves me with: +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ --- building in NT386 --- ignoring ..\src\m3overrides *** *** runtime error: *** Attempt to reference an illegal memory location. *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 0x14f028 0x76f22d94 0x14f040 0x76f22ce8 0x14f054 0x759bc3d4 0x14f068 0x6302dcc2 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc ator.m3 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin 32.m3 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl ector.m3 ......... ......... ... more frames ... *** execution of [, ] failed *** Not good. - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: Re: [M3devel] need some help with linker error I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I'm getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Aug 31 17:58:53 2013 From: jay.krell at cornell.edu (Jay K) Date: Sat, 31 Aug 2013 15:58:53 +0000 Subject: [M3devel] need some help with linker error In-Reply-To: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF0C98C@ATLEX04-SRV.SCIRES.LOCAL> References: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF0C98C@ATLEX04-SRV.SCIRES.LOCAL> Message-ID: What version of Python? Maybe too old? upgrade (i.e. your cmd) needs to include, not skip, mklib. Compare it to the others. The fix was in mklib and your cmd varies in this respect. - Jay From: rcolebur at SCIRES.COM To: m3devel at elegosoft.com CC: jay.krell at cornell.edu Subject: RE: [M3devel] need some help with linker error Date: Sat, 31 Aug 2013 14:59:21 +0000 Jay: I tried upgrade.py, without success. Here are the results: C:\cm3\Sandbox\scripts\python>python upgrade.py Traceback (most recent call last): File "upgrade.py", line 4, in import pylib File "C:\cm3\Sandbox\scripts\python\pylib.py", line 900 PackageDB = (PackageDB or map(lambda(a): a.replace("\n", "").replace('\\', '/').replace("\r", ""), open(PKGSDB))) ^ SyntaxError: invalid syntax I?m not familiar with python, so I?m not in a position to debug what is wrong. --Randy From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Friday, August 30, 2013 6:07 PM To: Coleburn, Randy Subject: EXT:RE: [M3devel] need some help with linker error RCC_upgradeCM3.cmd looks incorrect. Please try upgrade.py. - Jay From: rcolebur at SCIRES.COM To: jay.krell at cornell.edu Subject: RE: [M3devel] need some help with linker error Date: Fri, 30 Aug 2013 20:06:13 +0000 No, I ran my batch/CMD scripts, but these are based on what you had described previously as the correct steps. Is there a new dependency or step I need to be aware of? --Randy From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Friday, August 30, 2013 3:46 PM To: Coleburn, Randy; m3devel Subject: EXT:RE: [M3devel] need some help with linker error Did you run upgrade.py? - Jay From: rcolebur at SCIRES.COM To: m3devel at elegosoft.com Date: Fri, 30 Aug 2013 16:12:32 +0000 Subject: Re: [M3devel] need some help with linker error Jay: I appreciate your help. I just updated via CVS to get all your latest changes, but I am still getting the error with non-unique match for _xmm. See below: ? msvcrt.lib m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj m3core.def : error LNK2001: unresolved external symbol _xmm m3core.lib : fatal error LNK1120: 1 unresolved externals Can you point me in the right direction to solve this problem? Thanks, Randy Coleburn From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Tuesday, August 27, 2013 11:28 AM To: Rodney M. Bates; m3devel Subject: EXT:Re: [M3devel] need some help with linker error This is fixed now too. Dragisha had introduced heap corruption in FSWin32.m3 trying to improve Unicode support. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 14:55:13 +0000 Subject: Re: [M3devel] need some help with linker error Hm. That leaves me with: +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ --- building in NT386 --- ignoring ..\src\m3overrides *** *** runtime error: *** Attempt to reference an illegal memory location. *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 0x14f028 0x76f22d94 0x14f040 0x76f22ce8 0x14f054 0x759bc3d4 0x14f068 0x6302dcc2 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc ator.m3 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin 32.m3 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl ector.m3 ......... ......... ... more frames ... *** execution of [, ] failed *** Not good. - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: Re: [M3devel] need some help with linker error I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I?m getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Aug 31 18:55:11 2013 From: jay.krell at cornell.edu (Jay K) Date: Sat, 31 Aug 2013 16:55:11 +0000 Subject: [M3devel] how to write constants and deal with full range unsigned types?? In-Reply-To: References: Message-ID: This is a recurring problem esp. for Win64. AMD64_NT gets this far: ProcessWin32.m3: PROCEDURE GetFileHandle(hd: DWORD; ds: FileWin32.DirectionSet): File.T = VAR h := WinBase.GetStdHandle(hd); END GetFileHandle; The hd values are small negative numbers. DWORD is unsigned 32bit. This area doesn't seem to work well, doesn't interoperate with C well. (and then the stack goes unaligned raising an exception) - Jay From: jay.krell at cornell.edu To: m3devel at elegosoft.com Date: Sat, 31 Aug 2013 06:17:08 +0000 Subject: [M3devel] how to write constants? What is the right way to do this for 64bit systems? other : INT32 = 16_FFFFFFFF; "../src/win32/WinUser.i3", line 1321: warning: value not assignable (range fault) WS_POPUP : INT32 = 16_80000000; "../src/win32/WinVer.i3", line 37: warning: value not assignable (range fault) VS_FFI_SIGNATURE : INT32 = 16_FEEF04BD; I'm guessing.. other : INT32 := -1; WS_POPUP = FIRST(INT32) VS_FFI_SIGNATURE : INT32 = -17890115; (* 16_FEEF04BD *) ? - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Sat Aug 31 22:39:20 2013 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sat, 31 Aug 2013 21:39:20 +0100 (BST) Subject: [M3devel] Missing web pages or server elegosoft.com busy Message-ID: <1377981560.4878.YahooMailNeo@web172806.mail.ir2.yahoo.com> Hi all: I've been paying attention to: http://opencm3.net/ It seems to me maybe it is unresponsive, specially the "main frame", or the web page from an error I saw from mail.elegosoft.com, aroung 8:00 pm GMT and, 1 hour ago approx. Menu frames were working (top.html and nav-home.html) perhaps it just indicated something is wrong with that server, perhaps, or is it a sign of a network down?. In general I don't tend to be too cautious (because I have seen this thing going on since two weeks ago to today) but it is irritating that the only updated web page in the www on M3, is unresponsive or very slow. It speaks bad of M3, or of us in some way. Thanks in advance -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcolebur at SCIRES.COM Sat Aug 31 23:41:43 2013 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Sat, 31 Aug 2013 21:41:43 +0000 Subject: [M3devel] need some help with linker error Message-ID: <0BB8FA59C2932741A3A2941A8B9D8BFF5CF0CD60@ATLEX04-SRV.SCIRES.LOCAL> Jay: I am using Python v 3.3.0. --Randy From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Saturday, August 31, 2013 11:59 AM To: Coleburn, Randy; m3devel Subject: EXT:RE: [M3devel] need some help with linker error What version of Python? Maybe too old? upgrade (i.e. your cmd) needs to include, not skip, mklib. Compare it to the others. The fix was in mklib and your cmd varies in this respect. - Jay ________________________________ From: rcolebur at SCIRES.COM To: m3devel at elegosoft.com CC: jay.krell at cornell.edu Subject: RE: [M3devel] need some help with linker error Date: Sat, 31 Aug 2013 14:59:21 +0000 Jay: I tried upgrade.py, without success. Here are the results: C:\cm3\Sandbox\scripts\python>python upgrade.py Traceback (most recent call last): File "upgrade.py", line 4, in import pylib File "C:\cm3\Sandbox\scripts\python\pylib.py", line 900 PackageDB = (PackageDB or map(lambda(a): a.replace("\n", "").replace('\\', '/').replace("\r", ""), open(PKGSDB))) ^ SyntaxError: invalid syntax I'm not familiar with python, so I'm not in a position to debug what is wrong. --Randy From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Friday, August 30, 2013 6:07 PM To: Coleburn, Randy Subject: EXT:RE: [M3devel] need some help with linker error RCC_upgradeCM3.cmd looks incorrect. Please try upgrade.py. - Jay ________________________________ From: rcolebur at SCIRES.COM To: jay.krell at cornell.edu Subject: RE: [M3devel] need some help with linker error Date: Fri, 30 Aug 2013 20:06:13 +0000 No, I ran my batch/CMD scripts, but these are based on what you had described previously as the correct steps. Is there a new dependency or step I need to be aware of? --Randy From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Friday, August 30, 2013 3:46 PM To: Coleburn, Randy; m3devel Subject: EXT:RE: [M3devel] need some help with linker error Did you run upgrade.py? - Jay ________________________________ From: rcolebur at SCIRES.COM To: m3devel at elegosoft.com Date: Fri, 30 Aug 2013 16:12:32 +0000 Subject: Re: [M3devel] need some help with linker error Jay: I appreciate your help. I just updated via CVS to get all your latest changes, but I am still getting the error with non-unique match for _xmm. See below: ... msvcrt.lib m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj m3core.def : error LNK2001: unresolved external symbol _xmm m3core.lib : fatal error LNK1120: 1 unresolved externals Can you point me in the right direction to solve this problem? Thanks, Randy Coleburn From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Tuesday, August 27, 2013 11:28 AM To: Rodney M. Bates; m3devel Subject: EXT:Re: [M3devel] need some help with linker error This is fixed now too. Dragisha had introduced heap corruption in FSWin32.m3 trying to improve Unicode support. - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 14:55:13 +0000 Subject: Re: [M3devel] need some help with linker error Hm. That leaves me with: +++ C:\cm3\bin\cm3.exe -build -DROOT=C:/dev2/cm3.2 +++ --- building in NT386 --- ignoring ..\src\m3overrides *** *** runtime error: *** Attempt to reference an illegal memory location. *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x14efe0 0x11bdadb SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3 0x14f028 0x76f22d94 0x14f040 0x76f22ce8 0x14f054 0x759bc3d4 0x14f068 0x6302dcc2 0x14f074 0x11bbe02 Cstdlib_I3 + 0x1a2 in ..\src\C\Common\Cstdlib.i3 0x14f088 0x11a7925 DisposeUntracedRef + 0x2c in ..\src\runtime\common\RTAlloc ator.m3 0x14f09c 0x11a1687 DelCriticalSection + 0x2d in ..\src\thread\WIN32\ThreadWin 32.m3 0x14f0b8 0x11a161a CleanMutex + 0x89 in ..\src\thread\WIN32\ThreadWin32.m3 0x14f0ec 0x1196371 PostHandleWeakRefs + 0x2ae in ..\src\runtime\common\RTColl ector.m3 ......... ......... ... more frames ... *** execution of [, ] failed *** Not good. - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 09:07:25 +0000 Subject: Re: [M3devel] need some help with linker error I updated m3-sys/mklib to ignore these. Let me know if there are any more problems. Thanks, - Jay ________________________________ From: jay.krell at cornell.edu To: rodney_bates at lcwb.coop; m3devel at elegosoft.com Date: Tue, 27 Aug 2013 06:43:53 +0000 Subject: Re: [M3devel] need some help with linker error > Is there a chance both are getting linked in? No. There is no chance of this. > Or one from the modula-3 distribution, and one already in some MS-supplied > library? No. There is no chance of this either. I forget how we generate the .def file but we need to exclude names "like" this -- that start _xmm at . These are floating point constants for code that uses sse2. You are targeting 32bit, right? Still, I guess these might occur, with newer compilers. I'll look into it. We already have to code exclude the older forms of floating point constants. - Jay > Date: Mon, 26 Aug 2013 20:03:20 -0500 > From: rodney_bates at lcwb.coop > To: m3devel at elegosoft.com > Subject: Re: [M3devel] need some help with linker error > > This is just a wild guess, but there are two dtoa.c files, in > > m3-libs/m3core/src/Csupport/little-endian/dtoa.c and > m3-libs/m3core/src/Csupport/big-endian/dtoa.c > > No doubt they are alternatives. Is there a chance both are getting linked in? > Or one from the modula-3 distribution, and one already in some MS-supplied > library? > > On 08/26/2013 07:49 PM, Coleburn, Randy wrote: > > Jay: > > > > I'm getting errors trying to rebuild m3core.lib on Win7-64bit. Specifically, see below the error I get from the Microsoft Linker. > > > > The full text of the m3core.lst file is also shown at the end of this message. > > > > msvcrt.lib > > > > m3core.def : warning LNK4022: cannot find unique match for symbol '_xmm' > > > > m3core.def : warning LNK4002: __xmm at 41f00000000000000000000000000000 defined in dtoa.obj > > > > m3core.def : warning LNK4002: __xmm at 80000000000000008000000000000000 defined in dtoa.obj > > > > m3core.def : error LNK2001: unresolved external symbol _xmm > > > > m3core.lib : fatal error LNK1120: 1 unresolved externals > > > > Any ideas on what I should do to resolve this problem? > > > > Thanks, > > > > Randy Coleburn > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: