From jay.krell at cornell.edu Sat Jan 1 04:06:34 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 1 Jan 2011 03:06:34 +0000 Subject: [M3devel] emac In-Reply-To: <20101231222650.GB2428@topoi.pooq.com> References: <20101231222650.GB2428@topoi.pooq.com> Message-ID: Olaf already has provided a PowerPC Mac running I think MacOSX 10.3. Which provides most of any value for any PowerPC Mac. What is "missing" -- hypothetically in some more grandiose but possibly wasteful world -- might include: running older versions of MacOS X (10.0, 10.1, 10.2) running newer versions of MacOS X (10.4, 10.5) personally I haven't noticed much change since 10.2, except for dropping the 68K support circa 10.5, adding x86 circa 10.4, dropping PowerPC circa 10.6. running MacOS 7/8/9/Classic -- ie: pre-MacOS X, either in the "Classic emulator", or "directly", as well as the 68K emulator therein. (For anyone interested in a 68K port though, NetBSD, OpenBSD, Linux are probably drastically easier (OpenBSD dropped support recently, Debian dropped support long ago, NetBSD still supports). I'd be willing to give the Posix systems a shot, given ssh access.) My ongoing hardware clearance has not gotten to any laptops but at some point I'll probably offer up some free/cheap PowerPC Mac laptops, if anyone here wants to spend the time/space/energy on them. Ultimately..broken record..if we output fairly portable C++, the cross product work and testing can dramatically go away. YOu know -- let's say I have "hello, world", I don't bother porting it or testing it on any systems but the one I have. Most software is much closer to that than we are currently. I'd like to get close to that. - Jay ---------------------------------------- > Date: Fri, 31 Dec 2010 17:26:50 -0500 > From: hendrik at topoi.pooq.com > To: m3devel at elegosoft.com > Subject: [M3devel] emac > > I may be acquiring an emac, which is a small (but heavy -- 50 pounds) > power-PC-based Apple Mac, if I've been informed correctly, running a > somewhat obsolete OS. If I end up with it, would there be anything I > can usefully test on it that's not being adequately tested already? > > -- hendrik > From jay.krell at cornell.edu Sat Jan 1 04:17:12 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 1 Jan 2011 03:17:12 +0000 Subject: [M3devel] emac In-Reply-To: References: <20101231222650.GB2428@topoi.pooq.com>, Message-ID: oh: ps, run Linux on it? Please? Replacing my PowerPC/Linux Hudson node? That would be good. It is easy enough. I've been using Debian across various architectures: x86, amd64, hppa, alpha, ia64, powerpc. (though Alpha support is going away; might be good to try Gentoo again...) Support for NetBSD/powerpc and OpenBSD/powerpc should be easy enough. I had at least one of those working. But there is no Java for these, so no Hudson. Anyone that wants, one person, I can ship out a PowerPC Mac laptop to take over Linux/powerpc for Hudson. (Ditto for MacOSX if Olaf doesn't want to keep his going.) - Jay ---------------------------------------- > From: jay.krell at cornell.edu > To: hendrik at topoi.pooq.com; m3devel at elegosoft.com > Date: Sat, 1 Jan 2011 03:06:34 +0000 > Subject: Re: [M3devel] emac > > > Olaf already has provided a PowerPC Mac running I think MacOSX 10.3. > Which provides most of any value for any PowerPC Mac. > > > > > What is "missing" -- hypothetically in some more grandiose but possibly wasteful world -- might include: > running older versions of MacOS X (10.0, 10.1, 10.2) > running newer versions of MacOS X (10.4, 10.5) > personally I haven't noticed much change since 10.2, except for dropping the 68K support circa 10.5, adding x86 circa 10.4, dropping PowerPC circa 10.6. > running MacOS 7/8/9/Classic -- ie: pre-MacOS X, either in the "Classic emulator", or "directly", as well as the 68K emulator therein. > (For anyone interested in a 68K port though, NetBSD, OpenBSD, Linux are probably drastically easier (OpenBSD dropped support recently, Debian dropped support long ago, NetBSD still supports). I'd be willing to give the Posix systems a shot, given ssh access.) > > > > My ongoing hardware clearance has not gotten to any laptops but at some point I'll probably offer up some free/cheap PowerPC Mac laptops, if anyone here wants to spend the time/space/energy on them. > > > > Ultimately..broken record..if we output fairly portable C++, the cross product work and testing can dramatically go away. YOu know -- let's say I have "hello, world", I don't bother porting it or testing it on any systems but the one I have. Most software is much closer to that than we are currently. I'd like to get close to that. > > > - Jay > > > ---------------------------------------- > > Date: Fri, 31 Dec 2010 17:26:50 -0500 > > From: hendrik at topoi.pooq.com > > To: m3devel at elegosoft.com > > Subject: [M3devel] emac > > > > I may be acquiring an emac, which is a small (but heavy -- 50 pounds) > > power-PC-based Apple Mac, if I've been informed correctly, running a > > somewhat obsolete OS. If I end up with it, would there be anything I > > can usefully test on it that's not being adequately tested already? > > > > -- hendrik > > From jay.krell at cornell.edu Sun Jan 2 09:29:05 2011 From: jay.krell at cornell.edu (Jay K) Date: Sun, 2 Jan 2011 08:29:05 +0000 Subject: [M3devel] how to use gcc exception/unwind support? Message-ID: Tony et. al. do you have much idea already in mind of what using gcc exception and/or unwind support would look like? In particular, do you think we could/should/would use TRY_CATCH_EXPR, TRY_FINALLY_EXPR? I'm not sure (see below). Do you understand the difference between WITH_CLEANUP_EXPR and TRY_FINALLY_EXPR? I don't. Maybe WITH_CLEANUP_EXPR captures a common case is very similar? Regarding TRY_CATCH_EXPR, TRY_FINALLY_EXPR, they sound very promising. But does CATCH_EXPR provide the right construct for deciding to catch or not, and passing the exception properly to the handler? Or should we use RTExStack nearly or completely unchanged, but: 1) have it call libgcc/libunwind, via interface RTStack. 2) in the backend mimic TRY_CATCH_EXPR, TRY_FINALLY_EXPR's affects/pessimisations on the control flow graph and such? Related question is how to model throwing an exception in the backend. This I had looked at even less (e.g. trying to understand how g++ uses this stuff) but is clearly important. g++ clearly sometimes calls __cxa_throw, not clear if it always does. Not clear it does anything else in terms of informing the backend. It looks like not. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Jan 3 00:19:36 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 2 Jan 2011 18:19:36 -0500 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: References: Message-ID: My take was that we would use the unwind support with RTExStack along with recording the flow constraints for the IR. They were never that tricky. On Jan 2, 2011, at 3:29 AM, Jay K wrote: > Tony et. al. do you have much idea already in mind of what using gcc exception and/or unwind support would look like? > > > In particular, do you think we could/should/would use > TRY_CATCH_EXPR, TRY_FINALLY_EXPR? I'm not sure (see below). > > > Do you understand the difference between WITH_CLEANUP_EXPR and TRY_FINALLY_EXPR? > I don't. Maybe WITH_CLEANUP_EXPR captures a common case is very similar? > > > Regarding TRY_CATCH_EXPR, TRY_FINALLY_EXPR, they sound very promising. > But does CATCH_EXPR provide the right construct for deciding to catch or not, > and passing the exception properly to the handler? > > > Or should we use RTExStack nearly or completely unchanged, but: > 1) have it call libgcc/libunwind, via interface RTStack. > 2) in the backend mimic TRY_CATCH_EXPR, TRY_FINALLY_EXPR's affects/pessimisations > on the control flow graph and such? > > > Related question is how to model throwing an exception in the backend. > This I had looked at even less (e.g. trying to understand how g++ uses this stuff) but is clearly important. > g++ clearly sometimes calls __cxa_throw, not clear if it always does. > Not clear it does anything else in terms of informing the backend. It looks like not. > > > - Jay > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Jan 3 02:57:42 2011 From: jay.krell at cornell.edu (Jay K) Date: Mon, 3 Jan 2011 01:57:42 +0000 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: References: , Message-ID: I understand partly and agree as far as I understand. For example..I think it is important, interesting, and subtle that C++ throw resolves to a function call generated by the C++ front end, with the implication that the backend has a certain ignorance as to how it works, with the additional implication that we can (continue to) call our own function to throw/raise an exception. Where I get confused however is esp. resolving "TRY_CATCH", that the backend is given a list of handlers. What is a "handler"? And then..there is also a list of types..but ah, I think I start to see. I think the list of types are meaningless in tree/gimple, only a C++ thing, and the handlers are probably merely pieces of code to connect control flow edges too? I have another idea though...I was thinking...if this is true, if it is just about flow graph... I think there might be two useful intermediate steps toward implementing this. The first implementation would not change the compiler at all, just write the new RTException.m3, and only work with no optimizations. Get this to work. The second implementation would sprinkle volatile on all locals in functions that have "try". Or heck, just as an *experiment* put volatile everywhere like it was before, enable -O3, see that that seems to work. Neither of those two versions would likely be commited, except maybe requiring non-default compiler switches. And then tell the backend about the control flow via the eh stuff in tree.def, and enable optimizations. Make some sense? The first step is at least a good necessary/easy experiment I think. Not so easy, but necessary anyway. Furthermore..give me a bit more time to consider all this, instead of going back to 4.3? Granted, SPARC32_SOLARIS might not ever get this. You know -- what is the availability of the gcc unwinder on Solaris? Surely it is there if you use gcc. But if you use cc? Then to wonder, how does Sun CC work? But I think if we had this working on Darwin, and then Linux, and then FreeBSD, and then OpenBSD and NetBSD, maybe Cygwin, it wouldn't be so awful for Solaris, et. al. to still use setjmp. NT386 could easily remain with setjmp a while too. - Jay From: hosking at cs.purdue.edu Date: Sun, 2 Jan 2011 18:19:36 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com Subject: Re: [M3devel] how to use gcc exception/unwind support? My take was that we would use the unwind support with RTExStack along with recording the flow constraints for the IR. They were never that tricky. On Jan 2, 2011, at 3:29 AM, Jay K wrote:Tony et. al. do you have much idea already in mind of what using gcc exception and/or unwind support would look like? In particular, do you think we could/should/would use TRY_CATCH_EXPR, TRY_FINALLY_EXPR? I'm not sure (see below). Do you understand the difference between WITH_CLEANUP_EXPR and TRY_FINALLY_EXPR? I don't. Maybe WITH_CLEANUP_EXPR captures a common case is very similar? Regarding TRY_CATCH_EXPR, TRY_FINALLY_EXPR, they sound very promising. But does CATCH_EXPR provide the right construct for deciding to catch or not, and passing the exception properly to the handler? Or should we use RTExStack nearly or completely unchanged, but: 1) have it call libgcc/libunwind, via interface RTStack. 2) in the backend mimic TRY_CATCH_EXPR, TRY_FINALLY_EXPR's affects/pessimisations on the control flow graph and such? Related question is how to model throwing an exception in the backend. This I had looked at even less (e.g. trying to understand how g++ uses this stuff) but is clearly important. g++ clearly sometimes calls __cxa_throw, not clear if it always does. Not clear it does anything else in terms of informing the backend. It looks like not. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Jan 3 22:33:53 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 3 Jan 2011 16:33:53 -0500 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: References: , Message-ID: I don't understand why we can't continue to use the same approach we had with gcc 4.3, except utilizing the gcc unwind mechanisms. On Jan 2, 2011, at 8:57 PM, Jay K wrote: > I understand partly and agree as far as I understand. > > > For example..I think it is important, interesting, and subtle that C++ throw resolves to a function call generated > by the C++ front end, with the implication that the backend has a certain ignorance as to how it works, > with the additional implication that we can (continue to) call our own function to throw/raise an exception. > > > Where I get confused however is esp. resolving "TRY_CATCH", that the backend is given > a list of handlers. What is a "handler"? > > > And then..there is also a list of types..but ah, I think I start to see. > I think the list of types are meaningless in tree/gimple, only a C++ thing, > and the handlers are probably merely pieces of code to connect control flow edges too? > > > I have another idea though...I was thinking...if this is true, if it is just about flow graph... > I think there might be two useful intermediate steps toward implementing this. > > > The first implementation would not change the compiler at all, just write the new RTException.m3, and > only work with no optimizations. Get this to work. > > > The second implementation would sprinkle volatile on all locals in functions > that have "try". Or heck, just as an *experiment* put volatile everywhere like > it was before, enable -O3, see that that seems to work. > > > Neither of those two versions would likely be commited, except maybe requiring non-default compiler switches. > > > And then tell the backend about the control flow via the eh stuff in tree.def, and enable optimizations. > > > Make some sense? > > > The first step is at least a good necessary/easy experiment I think. > Not so easy, but necessary anyway. > > > Furthermore..give me a bit more time to consider all this, instead of going > back to 4.3? > > > Granted, SPARC32_SOLARIS might not ever get this. > You know -- what is the availability of the gcc unwinder on Solaris? But we do use gcc as the M3 backend on Sparc, so not a problem. > Surely it is there if you use gcc. But if you use cc? > > > Then to wonder, how does Sun CC work? > > > But I think if we had this working on Darwin, and then Linux, and then FreeBSD, > and then OpenBSD and NetBSD, maybe Cygwin, it wouldn't be so awful for Solaris, et. al. to still use setjmp. > NT386 could easily remain with setjmp a while too. > > > - Jay > > > > From: hosking at cs.purdue.edu > Date: Sun, 2 Jan 2011 18:19:36 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] how to use gcc exception/unwind support? > > My take was that we would use the unwind support with RTExStack along with recording the flow constraints for the IR. They were never that tricky. > > On Jan 2, 2011, at 3:29 AM, Jay K wrote: > > Tony et. al. do you have much idea already in mind of what using gcc exception and/or unwind support would look like? > > > In particular, do you think we could/should/would use > TRY_CATCH_EXPR, TRY_FINALLY_EXPR? I'm not sure (see below). > > > Do you understand the difference between WITH_CLEANUP_EXPR and TRY_FINALLY_EXPR? > I don't. Maybe WITH_CLEANUP_EXPR captures a common case is very similar? > > > Regarding TRY_CATCH_EXPR, TRY_FINALLY_EXPR, they sound very promising. > But does CATCH_EXPR provide the right construct for deciding to catch or not, > and passing the exception properly to the handler? > > > Or should we use RTExStack nearly or completely unchanged, but: > 1) have it call libgcc/libunwind, via interface RTStack. > 2) in the backend mimic TRY_CATCH_EXPR, TRY_FINALLY_EXPR's affects/pessimisations > on the control flow graph and such? > > > Related question is how to model throwing an exception in the backend. > This I had looked at even less (e.g. trying to understand how g++ uses this stuff) but is clearly important. > g++ clearly sometimes calls __cxa_throw, not clear if it always does. > Not clear it does anything else in terms of informing the backend. It looks like not. > > > - Jay > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Tue Jan 4 00:57:05 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Mon, 3 Jan 2011 23:57:05 +0000 (GMT) Subject: [M3devel] elegosoft.com working? Message-ID: <9724.73584.qm@web29715.mail.ird.yahoo.com> Hi all: I'm may be wrong but it seems elegosoft.com web service takes longer than usual to retrieve data, though the server respponds ICMP requests quickly: test at fbd-desktop:~/Documentos/books/MedicineCompunetics$ ping elegosoft.com PING elegosoft.com (88.198.39.217) 56(84) bytes of data. 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=1 ttl=60 time=207 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=2 ttl=60 time=207 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=3 ttl=60 time=209 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=4 ttl=60 time=209 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=5 ttl=60 time=206 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=6 ttl=60 time=209 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=7 ttl=60 time=206 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=8 ttl=60 time=206 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=9 ttl=60 time=209 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=10 ttl=60 time=208 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=11 ttl=60 time=210 ms --- elegosoft.com ping statistics --- 11 packets transmitted, 11 received, 0% packet loss, time 10003ms rtt min/avg/max/mdev = 206.190/208.306/210.390/1.533 ms like if it was full load or is not running at all from here. Can you check for us please? the ports seem to be open, maybe that services are just too much loaded? Interesting ports on birch.elego.de (88.198.39.217): Not shown: 1703 filtered ports PORT STATE SERVICE 20/tcp closed ftp-data 21/tcp open ftp 22/tcp open ssh 25/tcp open smtp 53/tcp open domain 80/tcp open http 443/tcp open https 2401/tcp open cvspserver 5999/tcp open ncd-conf 8080/tcp open http-proxy 9103/tcp closed jetdirect Read data files from: /usr/share/nmap Nmap done: 1 IP address (1 host up) scanned in 34.914 seconds Raw packets sent: 3423 (150.592KB) | Rcvd: 17 (810B) Thanks in advance From jay.krell at cornell.edu Tue Jan 4 12:09:16 2011 From: jay.krell at cornell.edu (Jay K) Date: Tue, 4 Jan 2011 11:09:16 +0000 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: References: , , , , Message-ID: Tony, Are you suggesting we don't use __Unwind_RaiseException and don't provide a "personality routine" but just use, like, unw_step? e.g. http://www.nongnu.org/libunwind/man/libunwind%283%29.html vs. http://www.codesourcery.com/public/cxx-abi/abi-eh.html#base-context Problem is...unw_step appears not in the base API in libgcc. It appears we really should use __Unwind_RaiseException and a personality routine. As well, experience with gcc 4.5 + Solaris/sparc, suggests there are problems, but we'll see. Problems I think solved by using the gcc tree codes to inform of it where try/finally (lock) and try/catch are. Again, our sparc32 stack walker doesn't even work with unoptimized gcc 4.5 code, which I do find surprising. > You know -- what is the availability of the gcc unwinder on Solaris? > But we do use gcc as the M3 backend on Sparc, so not a problem. The gcc unwinder is usually in libgcc/libgcc_s, which the gcc driver arranges to link in. It might be elsewhere on Darwin, but still, it is there at a low level and the gcc driver gives it to you. We don't use the gcc driver. Solaris does ship with gcc these days, so maybe just to look at what it does.. - Jay From: hosking at cs.purdue.edu Date: Mon, 3 Jan 2011 16:33:53 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com Subject: Re: [M3devel] how to use gcc exception/unwind support? I don't understand why we can't continue to use the same approach we had with gcc 4.3, except utilizing the gcc unwind mechanisms. On Jan 2, 2011, at 8:57 PM, Jay K wrote:I understand partly and agree as far as I understand. For example..I think it is important, interesting, and subtle that C++ throw resolves to a function call generated by the C++ front end, with the implication that the backend has a certain ignorance as to how it works, with the additional implication that we can (continue to) call our own function to throw/raise an exception. Where I get confused however is esp. resolving "TRY_CATCH", that the backend is given a list of handlers. What is a "handler"? And then..there is also a list of types..but ah, I think I start to see. I think the list of types are meaningless in tree/gimple, only a C++ thing, and the handlers are probably merely pieces of code to connect control flow edges too? I have another idea though...I was thinking...if this is true, if it is just about flow graph... I think there might be two useful intermediate steps toward implementing this. The first implementation would not change the compiler at all, just write the new RTException.m3, and only work with no optimizations. Get this to work. The second implementation would sprinkle volatile on all locals in functions that have "try". Or heck, just as an *experiment* put volatile everywhere like it was before, enable -O3, see that that seems to work. Neither of those two versions would likely be commited, except maybe requiring non-default compiler switches. And then tell the backend about the control flow via the eh stuff in tree.def, and enable optimizations. Make some sense? The first step is at least a good necessary/easy experiment I think. Not so easy, but necessary anyway. Furthermore..give me a bit more time to consider all this, instead of going back to 4.3? Granted, SPARC32_SOLARIS might not ever get this. You know -- what is the availability of the gcc unwinder on Solaris? But we do use gcc as the M3 backend on Sparc, so not a problem. Surely it is there if you use gcc. But if you use cc? Then to wonder, how does Sun CC work? But I think if we had this working on Darwin, and then Linux, and then FreeBSD, and then OpenBSD and NetBSD, maybe Cygwin, it wouldn't be so awful for Solaris, et. al. to still use setjmp. NT386 could easily remain with setjmp a while too. - Jay From: hosking at cs.purdue.edu Date: Sun, 2 Jan 2011 18:19:36 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com Subject: Re: [M3devel] how to use gcc exception/unwind support? My take was that we would use the unwind support with RTExStack along with recording the flow constraints for the IR. They were never that tricky. On Jan 2, 2011, at 3:29 AM, Jay K wrote:Tony et. al. do you have much idea already in mind of what using gcc exception and/or unwind support would look like? In particular, do you think we could/should/would use TRY_CATCH_EXPR, TRY_FINALLY_EXPR? I'm not sure (see below). Do you understand the difference between WITH_CLEANUP_EXPR and TRY_FINALLY_EXPR? I don't. Maybe WITH_CLEANUP_EXPR captures a common case is very similar? Regarding TRY_CATCH_EXPR, TRY_FINALLY_EXPR, they sound very promising. But does CATCH_EXPR provide the right construct for deciding to catch or not, and passing the exception properly to the handler? Or should we use RTExStack nearly or completely unchanged, but: 1) have it call libgcc/libunwind, via interface RTStack. 2) in the backend mimic TRY_CATCH_EXPR, TRY_FINALLY_EXPR's affects/pessimisations on the control flow graph and such? Related question is how to model throwing an exception in the backend. This I had looked at even less (e.g. trying to understand how g++ uses this stuff) but is clearly important. g++ clearly sometimes calls __cxa_throw, not clear if it always does. Not clear it does anything else in terms of informing the backend. It looks like not. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Tue Jan 4 15:05:52 2011 From: wagner at elegosoft.com (Olaf Wagner) Date: Tue, 04 Jan 2011 15:05:52 +0100 Subject: [M3devel] elegosoft.com working? In-Reply-To: <9724.73584.qm@web29715.mail.ird.yahoo.com> References: <9724.73584.qm@web29715.mail.ird.yahoo.com> Message-ID: <20110104150552.0v50fkju0wowggw0@mail.elegosoft.com> Quoting "Daniel Alejandro Benavides D." : > Hi all: > I'm may be wrong but it seems elegosoft.com web service takes longer > than usual to retrieve data, though the server respponds ICMP > requests quickly: [...] > 11 packets transmitted, 11 received, 0% packet loss, time 10003ms > rtt min/avg/max/mdev = 206.190/208.306/210.390/1.533 ms > > like if it was full load or is not running at all from here. Can you > check for us please? the ports seem to be open, maybe that services > are just too much loaded? There are still load issues due to concurrent CVS checkouts and backup processes on birch now and then with which the I/O system cannot cope, though they have been much reduced. In these cases all you can do is wait some time, as repeating the requests will only make matters worse. A final solution (the complete migration of web services to a new machine) is still pending. Olaf -- Olaf Wagner -- elego Software Solutions GmbH Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 From dabenavidesd at yahoo.es Tue Jan 4 19:55:01 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Tue, 4 Jan 2011 18:55:01 +0000 (GMT) Subject: [M3devel] elegosoft.com working? In-Reply-To: <20110104150552.0v50fkju0wowggw0@mail.elegosoft.com> Message-ID: <776710.92190.qm@web29712.mail.ird.yahoo.com> Hi all: thanks for the info, some time after it went on again working, but still if there is some escalation issue because of the compiler checks specially with the computation time, like ESC and so, perhaps like in night builds, what would be the machine needs for that process and the results to allow? Based on some experience like in compilers we would have access to the checks in more or less time if so I guess we would need optimization anyway at source level and execution level. Meanwhile more checks will likely to be introduced, so it would a balance of both needs. Thanks in advance --- El mar, 4/1/11, Olaf Wagner escribi?: > De: Olaf Wagner > Asunto: Re: [M3devel] elegosoft.com working? > Para: "Daniel Alejandro Benavides D." > CC: m3devel at elegosoft.com > Fecha: martes, 4 de enero, 2011 09:05 > Quoting "Daniel Alejandro Benavides > D." : > > > Hi all: > > I'm may be wrong but it seems elegosoft.com web > service takes longer than usual to retrieve data, > though the server respponds ICMP requests quickly: > [...] > > 11 packets transmitted, 11 received, 0% packet loss, > time 10003ms > > rtt min/avg/max/mdev = 206.190/208.306/210.390/1.533 > ms > > > > like if it was full load or is not running at all from > here. Can you check for us please? the ports seem to > be open, maybe that services are just too much > loaded? > > There are still load issues due to concurrent CVS checkouts > and > backup processes on birch now and then with which the I/O > system cannot > cope, though they have been much reduced. > > In these cases all you can do is wait some time, as > repeating the > requests will only make matters worse. A final solution > (the complete > migration of web services to a new machine) is still > pending. > > Olaf > --Olaf Wagner -- elego Software Solutions GmbH > > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 > Berlin, Germany > phone: +49 30 23 45 86 96 mobile: +49 177 2345 > 869 fax: +49 30 23 45 86 95 > http://www.elegosoft.com | > Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | > USt-IdNr: DE163214194 > > From hosking at cs.purdue.edu Wed Jan 5 03:50:59 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 4 Jan 2011 21:50:59 -0500 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: References: , , , , Message-ID: <7574D14D-BA09-44DE-98CE-6127CAEE7E8B@cs.purdue.edu> Yes, indeed. We don't need all the overhead of the C++ exception handling mechanism. On Jan 4, 2011, at 6:09 AM, Jay K wrote: > Tony, > > Are you suggesting we don't use __Unwind_RaiseException > and don't provide a "personality routine" > but just use, like, unw_step? > > > e.g. http://www.nongnu.org/libunwind/man/libunwind%283%29.html > vs. http://www.codesourcery.com/public/cxx-abi/abi-eh.html#base-context > > > Problem is...unw_step appears not in the base API in libgcc. > It appears we really should use __Unwind_RaiseException > and a personality routine. > > > As well, experience with gcc 4.5 + Solaris/sparc, suggests > there are problems, but we'll see. Problems I think solved > by using the gcc tree codes to inform of it where try/finally (lock) > and try/catch are. Again, our sparc32 stack walker doesn't > even work with unoptimized gcc 4.5 code, which I do find surprising. We need to make sure that "Set_label" IR instructions that are barriers influence the gcc labels accordingly. > > You know -- what is the availability of the gcc unwinder on Solaris? > > But we do use gcc as the M3 backend on Sparc, so not a problem. > > The gcc unwinder is usually in libgcc/libgcc_s, which the gcc driver > arranges to link in. > It might be elsewhere on Darwin, but still, it is there > at a low level and the gcc driver gives it to you. > We don't use the gcc driver. > Solaris does ship with gcc these days, so maybe just to look at what it does.. We could simply link using gcc. > > > - Jay > > > > > > > > From: hosking at cs.purdue.edu > Date: Mon, 3 Jan 2011 16:33:53 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] how to use gcc exception/unwind support? > > I don't understand why we can't continue to use the same approach we had with gcc 4.3, except utilizing the gcc unwind mechanisms. > > On Jan 2, 2011, at 8:57 PM, Jay K wrote: > > I understand partly and agree as far as I understand. > > > For example..I think it is important, interesting, and subtle that C++ throw resolves to a function call generated > by the C++ front end, with the implication that the backend has a certain ignorance as to how it works, > with the additional implication that we can (continue to) call our own function to throw/raise an exception. > > > Where I get confused however is esp. resolving "TRY_CATCH", that the backend is given > a list of handlers. What is a "handler"? > > > And then..there is also a list of types..but ah, I think I start to see. > I think the list of types are meaningless in tree/gimple, only a C++ thing, > and the handlers are probably merely pieces of code to connect control flow edges too? > > > I have another idea though...I was thinking...if this is true, if it is just about flow graph... > I think there might be two useful intermediate steps toward implementing this. > > > The first implementation would not change the compiler at all, just write the new RTException.m3, and > only work with no optimizations. Get this to work. > > > The second implementation would sprinkle volatile on all locals in functions > that have "try". Or heck, just as an *experiment* put volatile everywhere like > it was before, enable -O3, see that that seems to work. > > > Neither of those two versions would likely be commited, except maybe requiring non-default compiler switches. > > > And then tell the backend about the control flow via the eh stuff in tree.def, and enable optimizations. > > > Make some sense? > > > The first step is at least a good necessary/easy experiment I think. > Not so easy, but necessary anyway. > > > Furthermore..give me a bit more time to consider all this, instead of going > back to 4.3? > > > Granted, SPARC32_SOLARIS might not ever get this. > You know -- what is the availability of the gcc unwinder on Solaris? > > But we do use gcc as the M3 backend on Sparc, so not a problem. > > Surely it is there if you use gcc. But if you use cc? > > > Then to wonder, how does Sun CC work? > > > But I think if we had this working on Darwin, and then Linux, and then FreeBSD, > and then OpenBSD and NetBSD, maybe Cygwin, it wouldn't be so awful for Solaris, et. al. to still use setjmp. > NT386 could easily remain with setjmp a while too. > > > - Jay > > > > From: hosking at cs.purdue.edu > Date: Sun, 2 Jan 2011 18:19:36 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] how to use gcc exception/unwind support? > > My take was that we would use the unwind support with RTExStack along with recording the flow constraints for the IR. They were never that tricky. > > On Jan 2, 2011, at 3:29 AM, Jay K wrote: > > Tony et. al. do you have much idea already in mind of what using gcc exception and/or unwind support would look like? > > > In particular, do you think we could/should/would use > TRY_CATCH_EXPR, TRY_FINALLY_EXPR? I'm not sure (see below). > > > Do you understand the difference between WITH_CLEANUP_EXPR and TRY_FINALLY_EXPR? > I don't. Maybe WITH_CLEANUP_EXPR captures a common case is very similar? > > > Regarding TRY_CATCH_EXPR, TRY_FINALLY_EXPR, they sound very promising. > But does CATCH_EXPR provide the right construct for deciding to catch or not, > and passing the exception properly to the handler? > > > Or should we use RTExStack nearly or completely unchanged, but: > 1) have it call libgcc/libunwind, via interface RTStack. > 2) in the backend mimic TRY_CATCH_EXPR, TRY_FINALLY_EXPR's affects/pessimisations > on the control flow graph and such? > > > Related question is how to model throwing an exception in the backend. > This I had looked at even less (e.g. trying to understand how g++ uses this stuff) but is clearly important. > g++ clearly sometimes calls __cxa_throw, not clear if it always does. > Not clear it does anything else in terms of informing the backend. It looks like not. > > > - Jay > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Jan 5 04:45:34 2011 From: jay.krell at cornell.edu (Jay K) Date: Wed, 5 Jan 2011 03:45:34 +0000 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: <7574D14D-BA09-44DE-98CE-6127CAEE7E8B@cs.purdue.edu> References: , , , , , , , , , <7574D14D-BA09-44DE-98CE-6127CAEE7E8B@cs.purdue.edu> Message-ID: > Yes, indeed. We don't need all the overhead of the C++ exception handling mechanism. It is so much? Well, it maybe is more to understand. But the unw_step code isn't clearly exposed, only higher level stuff is. > sparc stack walker > We need to make sure that "Set_label" IR instructions that are barriers influence the gcc labels accordingly. Even w/o optimization? I did never figure out som of the gcc 4.5 analogs to the gcc 4.3 code, regarding barrier labels. > You know -- what is the availability of the gcc unwinder on Solaris? > But we do use gcc as the M3 backend on Sparc, so not a problem. > We don't use the gcc driver. > Solaris does ship with gcc these days, so maybe just to look at what it does.. > We could simply link using gcc. Maybe. I think some of the opencsw machines actually move or remove gcc, but maybe a bit of testing and autoconf-like probing and we can always find it.. or maybe it comes with static libgcc.a, and maybe therefore we can/should build static libgcc.a with cm3cg. Anyway, I'll be quite pleased if if I can get Darwin/Linux/*BSD working, Solaris can wait quite a while.. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Wed Jan 5 10:04:38 2011 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 05 Jan 2011 10:04:38 +0100 Subject: [M3devel] elegosoft.com working? In-Reply-To: <776710.92190.qm@web29712.mail.ird.yahoo.com> References: <776710.92190.qm@web29712.mail.ird.yahoo.com> Message-ID: <20110105100438.6lsghju1c8k000k0@mail.elegosoft.com> Quoting "Daniel Alejandro Benavides D." : > Hi all: > thanks for the info, some time after it went on again working, but > still if there is some escalation issue because of the compiler > checks specially with the computation time, like ESC and so, perhaps > like in night builds, what would be the machine needs for that > process and the results to allow? > Based on some experience like in compilers we would have access to > the checks in more or less time if so I guess we would need > optimization anyway at source level and execution level. Meanwhile > more checks will likely to be introduced, so it would a balance of > both needs. > Thanks in advance I'm not sure if I understand correctly what you're aiming at, but I guess you worry that we need to introduce more checks/tests like ESC. Apart from my estimation that we won't get access to the ESC M3 sources, CPU time would not be a bottleneck, as (a) the bottleneck on birch is the I/O system and (b) we could easily delegate such a task to another server via Hudson. Anyway, once the web service has been moved to another machine there shouldn't be any more problems with our use of birch. Olaf -- Olaf Wagner -- elego Software Solutions GmbH Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 From dabenavidesd at yahoo.es Wed Jan 5 17:28:11 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 5 Jan 2011 16:28:11 +0000 (GMT) Subject: [M3devel] elegosoft.com working? In-Reply-To: <20110105100438.6lsghju1c8k000k0@mail.elegosoft.com> Message-ID: <348665.25192.qm@web29710.mail.ird.yahoo.com> Hi all: yes, I think we should get access to building with cm3 at least, not sure if the sources according to the latest news on that. In the other hand whether we get this I hope sooner or later, I think it would be a m3quake directive like "esc()" to activate it from inside the building task process, so it can be integrated on the same building machine or another will need to have access to the same CM3 build and source repository and check it on the way, the only thing here, is that ESC need to build M3 sources with m3tk and if so, it will that aprox. by the same time cm3 compiler building software ends that ESC will feed itself with cm3 M3Build .M3IMPTAB import table not generated file now times for external compilers. I'm not sure anyway if that's the order of ESC input anyway, or will need first the .M3IMPPTAB back again perhaps will need to upgrade down or make a better independent procedure to expose this for it, see Revision 1.24: http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/cm3/src/M3Build.m3?annotate=1.24 if that's the case we would need to wait anyway for cm3 builds or call it from the IMPORTS to get it. Please if one can check that if it's need it and I will likely to see that too. I also think this would be a nice way of making a dependence analyzer (if so perhaps I think is better doing it with m3tk, what do you think? Besides its worth for Obliq and others too like cm3ide, etc) program for our and other clients too information IMHO. Thanks in advance P.D: according to Dr Greg Nelson the compiler is usually 10x times faster than the ESC process (not sure for the ESC/Java or the ESC/Moddula3), but this is mostly because of the Simplify theorem prover checking see: http://www.uwtv.org/programs/displayevent.aspx?rID=2761 Also for simplify see: http://portal.acm.org/citation.cfm?id=1066100.1066102&preflayout=flat whican can be downlaoded report from here: http://www.hpl.hp.com/techreports/2003/HPL-2003-148.html and benchmarks from here: http://goedel.cs.uiowa.edu/smtlib/benchmarks/pending/simplify_benchmarks.tar.gz --- El mi?, 5/1/11, Olaf Wagner escribi?: > De: Olaf Wagner > Asunto: Re: [M3devel] elegosoft.com working? > Para: "Daniel Alejandro Benavides D." > CC: m3devel at elegosoft.com > Fecha: mi?rcoles, 5 de enero, 2011 04:04 > Quoting "Daniel Alejandro Benavides > D." : > > > Hi all: > > thanks for the info, some time after it went on again > working, but still if there is some escalation issue > because of the compiler checks specially with the > computation time, like ESC and so, perhaps like in > night builds, what would be the machine needs for that > process and the results to allow? > > Based on some experience like in compilers we would > have access to the checks in more or less time if so I > guess we would need optimization anyway at source > level and execution level. Meanwhile more checks will > likely to be introduced, so it would a balance of both > needs. > > Thanks in advance > > I'm not sure if I understand correctly what you're aiming > at, but > I guess you worry that we need to introduce more > checks/tests like > ESC. Apart from my estimation that we won't get access to > the ESC M3 > sources, CPU time would not be a bottleneck, as (a) the > bottleneck on > birch is the I/O system and (b) we could easily delegate > such a task > to another server via Hudson. Anyway, once the web service > has been > moved to another machine there shouldn't be any more > problems with > our use of birch. > > Olaf > --Olaf Wagner -- elego Software Solutions GmbH > > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 > Berlin, Germany > phone: +49 30 23 45 86 96 mobile: +49 177 2345 > 869 fax: +49 30 23 45 86 95 > http://www.elegosoft.com | > Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | > USt-IdNr: DE163214194 > > From jay.krell at cornell.edu Wed Jan 5 18:35:35 2011 From: jay.krell at cornell.edu (Jay K) Date: Wed, 5 Jan 2011 17:35:35 +0000 Subject: [M3devel] missing error check or maybe just stdout/err out of order? Message-ID: http://hudson.modula3.com:8080/job/cm3-current-build-SOLsun-opencsw-current9s/166/console Has a small bunch of output after the error. But I think it might just be out of order, not actually continuing on? Throw in "2>&1"? Anyway, I fixed the error itself. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Wed Jan 5 19:01:49 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 5 Jan 2011 18:01:49 +0000 (GMT) Subject: [M3devel] elegosoft.com working? In-Reply-To: <348665.25192.qm@web29710.mail.ird.yahoo.com> Message-ID: <28801.31834.qm@web29717.mail.ird.yahoo.com> Hi all: I recall now that the current rend is run this theorem provers distributedly, rather than standalone, so we might given that we have already this in our hands the Simplify theorem prover, for a network instance, not sure if the I/O will be affected in that case, perhaps the most important thing is to verify full integrity of transfers. See about that issue: http://nexus.realtimepublishers.com/ttgmft.php (is a work in progress so if interested keep and eye on it, you can register if you want) Given that simplify is not written object oriented, perhaps that must be thought to be like that. The thing is given it takes more than double times the time of the compile build process we might (the Greg nelson comment at 53:00 on the linked video) is it is a kind of slow process or of high length but ok to be run on nights. Perhaps given that the compiler building could take 2x a compiler build and the theorem proving 5x times that, which is we can run it each 5 runs in terms of the of two builds, i.e m3tk included. The thing is, if the source has not changed that is would be the case in some runs it could be in terms of less runs, so we can check in at least each 5 building tasks runs (of all platforms, i.e 5 parallel building tasks), I guess this tasks are programmed in some way, I don't recall where are the policies of this written, if someone can tell that for me or point me that, thanks in advance --- El mi?, 5/1/11, Daniel Alejandro Benavides D. escribi?: > De: Daniel Alejandro Benavides D. > Asunto: Re: [M3devel] elegosoft.com working? > Para: "Olaf Wagner" > CC: m3devel at elegosoft.com > Fecha: mi?rcoles, 5 de enero, 2011 11:28 > Hi all: > yes, I think we should get access to building with cm3 at > least, not sure if the sources according to the latest news > on that. > In the other hand whether we get this I hope sooner or > later, I think it would be a m3quake directive like "esc()" > to activate it from inside the building task process, so it > can be integrated on the same building machine or another > will need to have access to the same CM3 build and source > repository and check it on the way, the only thing here, is > that ESC need to build M3 sources with m3tk and if so, it > will that aprox. by the same time cm3 compiler building > software ends that ESC will feed itself with cm3 M3Build > .M3IMPTAB import table not generated file now times for > external compilers. I'm not sure anyway if that's the order > of ESC input anyway, or will need first the .M3IMPPTAB back > again perhaps will need to upgrade down or make a better > independent procedure to expose this for it, see Revision > 1.24: > http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/cm3/src/M3Build.m3?annotate=1.24 > if that's the case we would need to wait anyway for cm3 > builds or call it from the IMPORTS to get it. Please if one > can check that if it's need it and I will likely to see that > too. I also think this would be a nice way of making a > dependence analyzer (if so perhaps I think is better doing > it with m3tk, what do you think? Besides its worth for Obliq > and others too like cm3ide, etc) program for our and > other clients too information IMHO. > Thanks in advance > > P.D: according to Dr Greg Nelson the compiler is usually > 10x times faster than the ESC process (not sure for the > ESC/Java or the ESC/Moddula3), but this is mostly because of > the Simplify theorem prover checking see: > http://www.uwtv.org/programs/displayevent.aspx?rID=2761 > Also for simplify see: > http://portal.acm.org/citation.cfm?id=1066100.1066102&preflayout=flat > whican can be downlaoded report from here: > http://www.hpl.hp.com/techreports/2003/HPL-2003-148.html > and benchmarks from here: > http://goedel.cs.uiowa.edu/smtlib/benchmarks/pending/simplify_benchmarks.tar.gz > > > --- El mi?, 5/1/11, Olaf Wagner > escribi?: > > > De: Olaf Wagner > > Asunto: Re: [M3devel] elegosoft.com working? > > Para: "Daniel Alejandro Benavides D." > > CC: m3devel at elegosoft.com > > Fecha: mi?rcoles, 5 de enero, 2011 04:04 > > Quoting "Daniel Alejandro Benavides > > D." : > > > > > Hi all: > > > thanks for the info, some time after it went on > again > > working, but still if there is some escalation > issue > > because of the compiler checks specially with > the > > computation time, like ESC and so, perhaps like > in > > night builds, what would be the machine needs for that > > > process and the results to allow? > > > Based on some experience like in compilers we > would > > have access to the checks in more or less time > if so I > > guess we would need optimization anyway at > source > > level and execution level. Meanwhile more checks > will > > likely to be introduced, so it would a balance > of both > > needs. > > > Thanks in advance > > > > I'm not sure if I understand correctly what you're > aiming > > at, but > > I guess you worry that we need to introduce more > > checks/tests like > > ESC. Apart from my estimation that we won't get access > to > > the ESC M3 > > sources, CPU time would not be a bottleneck, as (a) > the > > bottleneck on > > birch is the I/O system and (b) we could easily > delegate > > such a task > > to another server via Hudson. Anyway, once the web > service > > has been > > moved to another machine there shouldn't be any more > > problems with > > our use of birch. > > > > Olaf > > --Olaf Wagner -- elego Software Solutions GmbH > > > > Gustav-Meyer-Allee 25 / Geb?ude 12, > 13355 > > Berlin, Germany > > phone: +49 30 23 45 86 96 mobile: +49 177 2345 > > 869 fax: +49 30 23 45 86 95 > > http://www.elegosoft.com | > > Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > > Handelregister: Amtsgericht Charlottenburg HRB 77719 > | > > USt-IdNr: DE163214194 > > > > > > > > From dabenavidesd at yahoo.es Wed Jan 5 19:16:48 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 5 Jan 2011 18:16:48 +0000 (GMT) Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <20110105173201.5A1742474003@birch.elegosoft.com> Message-ID: <345382.27809.qm@web29704.mail.ird.yahoo.com> Hi all: Are this failures linked to a trac ticket with an appropriate tag, would be a quality of service improvement to link to it automatically? I think if the failures of compiler, system compiler, compiler back end, linker, system linker or checker and/or theorem prover, we should produce automatically a ticket assigned for the "guilty" or some else if so, so one can be warned more directly and solve it accordingly, what do you think? I assume some simple changes are or can be back up if so there is a clear compile time error cause and solution. But for everything else is good? I mean might be the ideal with wiki service open we can improve documentation and process on it. Thanks in advance --- El mi?, 5/1/11, Jay Krell escribi?: > De: Jay Krell > Asunto: [M3commit] CVS Update: cm3 > Para: m3commit at elegosoft.com > Fecha: mi?rcoles, 5 de enero, 2011 13:32 > CVSROOT: /usr/cvs > Changes by: > jkrell at birch. 11/01/05 18:32:01 > > Modified files: > cm3/m3-libs/m3core/src/thread/PTHREAD/: > ThreadPThreadC.c > > Log message: > Don't use __thread on Solaris. > It failed to link. > See: > http://hudson.modula3.com:8080/job/cm3-current-build-SOLsun-opencsw-current9s/166/console > > From dabenavidesd at yahoo.es Wed Jan 5 20:02:41 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 5 Jan 2011 19:02:41 +0000 (GMT) Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <345382.27809.qm@web29704.mail.ird.yahoo.com> Message-ID: <666417.80484.qm@web29705.mail.ird.yahoo.com> HI all: all of this Amen that all of developers are carefully following the ESC error correction actions we wouldn't worry about the runtime errors. I don't think it would take so much time that to cover the current repository (we would need also some repository and building and checking time and check in statistics to see the development growing, I now this see: http://libresoft.dat.escet.urjc.es/cvsanal/pm3-cvs/index.php?menu=Index and: https://projects.libresoft.es/wiki/cvsanaly or others you may want to use). Thanks in advance --- El mi?, 5/1/11, Daniel Alejandro Benavides D. escribi?: > De: Daniel Alejandro Benavides D. > Asunto: Re: [M3devel] [M3commit] CVS Update: cm3 > Para: m3devel at elegosoft.com > Fecha: mi?rcoles, 5 de enero, 2011 13:16 > Hi all: > Are this failures linked to a trac ticket with an > appropriate tag, would be a quality of service improvement > to link to it automatically? I think if the failures of > compiler, system compiler, compiler back end, linker, system > linker or checker and/or theorem prover, we should produce > automatically a ticket assigned for the "guilty" or some > else if so, so one can be warned more directly and solve it > accordingly, what do you think? > I assume some simple changes are or can be back up if so > there is a clear compile time error cause and solution. But > for everything else is good? I mean might be the ideal with > wiki service open we can improve documentation and process > on it. > Thanks in advance > > --- El mi?, 5/1/11, Jay Krell > escribi?: > > > De: Jay Krell > > Asunto: [M3commit] CVS Update: cm3 > > Para: m3commit at elegosoft.com > > Fecha: mi?rcoles, 5 de enero, 2011 13:32 > > CVSROOT: /usr/cvs > > Changes by: > > jkrell at birch. 11/01/05 18:32:01 > > > > Modified files: > > > cm3/m3-libs/m3core/src/thread/PTHREAD/: > > ThreadPThreadC.c > > > > Log message: > > Don't use __thread on > Solaris. > > It failed to link. > > See: > > http://hudson.modula3.com:8080/job/cm3-current-build-SOLsun-opencsw-current9s/166/console > > > > > > > > From jay.krell at cornell.edu Thu Jan 6 02:21:00 2011 From: jay.krell at cornell.edu (Jay K) Date: Thu, 6 Jan 2011 01:21:00 +0000 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: <20110106002615.77E782474003@birch.elegosoft.com> References: <20110106002615.77E782474003@birch.elegosoft.com> Message-ID: fyi: jbook2:p250 jay$ rm -rf I386_DARWIN/ jbook2:p250 jay$ cm3 -keep --- building in I386_DARWIN --- new source -> compiling Main.m3 "../Main.m3", line 1: 1 code generation error 1 error encountered compilation failed => not building program "pgm" Fatal Error: package build failed jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment (4) comment comment:module global constants (6) comment comment:module global data (27) comment comment:F1 (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] (43) comment comment:F2 (73) comment comment:Main_M3 (74) comment comment:module main body Main_M3 (83) comment comment:global constant type descriptor (85) comment comment:global data type descriptor (87) comment comment:module global constants (90) comment comment:procedure names (94) comment comment:procedure table (101) comment comment:file name (103) comment comment:type map for _t0174bdf4 (106) comment comment:type description for _t0174bdf4 (110) comment comment:module global data (120) comment comment:typecell for _t0174bdf4 (141) comment comment:load map (4) comment comment:module global constants (6) comment comment:module global data (27) comment comment:F1 (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] (43) comment comment:F2 (73) comment comment:Main_M3 (74) comment comment:module main body Main_M3 (83) comment comment:global constant type descriptor (85) comment comment:global data type descriptor (87) comment comment:module global constants (90) comment comment:procedure names (94) comment comment:procedure table (101) comment comment:file name (103) comment comment:type map for _t0174bdf4 (106) comment comment:type description for _t0174bdf4 (110) comment comment:module global data (120) comment comment:typecell for _t0174bdf4 (141) comment comment:load map - Jay > Date: Thu, 6 Jan 2011 01:26:15 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 11/01/06 01:26:15 > > Modified files: > cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > > Log message: > slightly simpler, same error > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 6 08:21:10 2011 From: jay.krell at cornell.edu (Jay K) Date: Thu, 6 Jan 2011 07:21:10 +0000 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: References: ,,, , , ,,, , , , , , , <7574D14D-BA09-44DE-98CE-6127CAEE7E8B@cs.purdue.edu>, Message-ID: >> Yes, indeed. We don't need all the overhead of the C++ exception handling mechanism. > It is so much? Well, it maybe is more to understand. There is also a very good chance that raising a Modula-3 exception will run C++ destructors for intervening threads, which is desirable, if we do this "right". Likewise, C++ exceptions running Modula-3 unlock/finally blocks. Interop can be good. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Thu Jan 6 12:56:16 2011 From: wagner at elegosoft.com (Olaf Wagner) Date: Thu, 06 Jan 2011 12:56:16 +0100 Subject: [M3devel] elegosoft.com working? In-Reply-To: <28801.31834.qm@web29717.mail.ird.yahoo.com> References: <28801.31834.qm@web29717.mail.ird.yahoo.com> Message-ID: <20110106125616.yufiz9edm8ssccks@mail.elegosoft.com> Let's worry about ESC integration when we get access to it. Anyway, I wouldn't run such checks in every build, but perform it on a certain machine e.g. once a day. Olaf Quoting "Daniel Alejandro Benavides D." : > Hi all: > I recall now that the current rend is run this theorem provers > distributedly, rather than standalone, so we might given that we > have already this in our hands the Simplify theorem prover, for a > network instance, not sure if the I/O will be affected in that case, > perhaps the most important thing is to verify full integrity of > transfers. See about that issue: > http://nexus.realtimepublishers.com/ttgmft.php > (is a work in progress so if interested keep and eye on it, you can > register if you want) > Given that simplify is not written object oriented, perhaps that > must be thought to be like that. The thing is given it takes more > than double times the time of the compile build process we might > (the Greg nelson comment at 53:00 on the linked video) is it is a > kind of slow process or of high length but ok to be run on nights. > Perhaps given that the compiler building could take 2x a compiler > build and the theorem proving 5x times that, which is we can run it > each 5 runs in terms of the of two builds, i.e m3tk included. The > thing is, if the source has not changed that is would be the case in > some runs it could be in terms of less runs, so we can check in at > least each 5 building tasks runs (of all platforms, i.e 5 parallel > building tasks), I guess this tasks are programmed in some way, I > don't recall where are the policies of this written, if someone can > tell that for me or point me that, thanks in advance > > > --- El mi?, 5/1/11, Daniel Alejandro Benavides D. > escribi?: > >> De: Daniel Alejandro Benavides D. >> Asunto: Re: [M3devel] elegosoft.com working? >> Para: "Olaf Wagner" >> CC: m3devel at elegosoft.com >> Fecha: mi?rcoles, 5 de enero, 2011 11:28 >> Hi all: >> yes, I think we should get access to building with cm3 at >> least, not sure if the sources according to the latest news >> on that. >> In the other hand whether we get this I hope sooner or >> later, I think it would be a m3quake directive like "esc()" >> to activate it from inside the building task process, so it >> can be integrated on the same building machine or another >> will need to have access to the same CM3 build and source >> repository and check it on the way, the only thing here, is >> that ESC need to build M3 sources with m3tk and if so, it >> will that aprox. by the same time cm3 compiler building >> software ends that ESC will feed itself with cm3 M3Build >> .M3IMPTAB import table not generated file now times for >> external compilers. I'm not sure anyway if that's the order >> of ESC input anyway, or will need first the .M3IMPPTAB back >> again perhaps will need to upgrade down or make a better >> independent procedure to expose this for it, see Revision >> 1.24: >> http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/cm3/src/M3Build.m3?annotate=1.24 >> if that's the case we would need to wait anyway for cm3 >> builds or call it from the IMPORTS to get it. Please if one >> can check that if it's need it and I will likely to see that >> too. I also think this would be a nice way of making a >> dependence analyzer (if so perhaps I think is better doing >> it with m3tk, what do you think? Besides its worth for Obliq >> and others too like cm3ide, etc) program for our and >> other clients too information IMHO. >> Thanks in advance >> >> P.D: according to Dr Greg Nelson the compiler is usually >> 10x times faster than the ESC process (not sure for the >> ESC/Java or the ESC/Moddula3), but this is mostly because of >> the Simplify theorem prover checking see: >> http://www.uwtv.org/programs/displayevent.aspx?rID=2761 >> Also for simplify see: >> http://portal.acm.org/citation.cfm?id=1066100.1066102&preflayout=flat >> whican can be downlaoded report from here: >> http://www.hpl.hp.com/techreports/2003/HPL-2003-148.html >> and benchmarks from here: >> http://goedel.cs.uiowa.edu/smtlib/benchmarks/pending/simplify_benchmarks.tar.gz >> >> >> --- El mi?, 5/1/11, Olaf Wagner >> escribi?: >> >> > De: Olaf Wagner >> > Asunto: Re: [M3devel] elegosoft.com working? >> > Para: "Daniel Alejandro Benavides D." >> > CC: m3devel at elegosoft.com >> > Fecha: mi?rcoles, 5 de enero, 2011 04:04 >> > Quoting "Daniel Alejandro Benavides >> > D." : >> > >> > > Hi all: >> > > thanks for the info, some time after it went on >> again >> > working, but still if there is some escalation >> issue >> > because of the compiler checks specially with >> the >> > computation time, like ESC and so, perhaps like >> in >> > night builds, what would be the machine needs for that >> >> > process and the results to allow? >> > > Based on some experience like in compilers we >> would >> > have access to the checks in more or less time >> if so I >> > guess we would need optimization anyway at >> source >> > level and execution level. Meanwhile more checks >> will >> > likely to be introduced, so it would a balance >> of both >> > needs. >> > > Thanks in advance >> > >> > I'm not sure if I understand correctly what you're >> aiming >> > at, but >> > I guess you worry that we need to introduce more >> > checks/tests like >> > ESC. Apart from my estimation that we won't get access >> to >> > the ESC M3 >> > sources, CPU time would not be a bottleneck, as (a) >> the >> > bottleneck on >> > birch is the I/O system and (b) we could easily >> delegate >> > such a task >> > to another server via Hudson. Anyway, once the web >> service >> > has been >> > moved to another machine there shouldn't be any more >> > problems with >> > our use of birch. >> > >> > Olaf >> > --Olaf Wagner -- elego Software Solutions GmbH >> > >> > Gustav-Meyer-Allee 25 / Geb?ude 12, >> 13355 >> > Berlin, Germany >> > phone: +49 30 23 45 86 96 mobile: +49 177 2345 >> > 869 fax: +49 30 23 45 86 95 >> > http://www.elegosoft.com | >> > Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin >> > Handelregister: Amtsgericht Charlottenburg HRB 77719 >> | >> > USt-IdNr: DE163214194 >> > >> > >> >> >> >> > > > > -- Olaf Wagner -- elego Software Solutions GmbH Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 From dabenavidesd at yahoo.es Thu Jan 6 14:28:18 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Thu, 6 Jan 2011 13:28:18 +0000 (GMT) Subject: [M3devel] elegosoft.com working? In-Reply-To: <20110106125616.yufiz9edm8ssccks@mail.elegosoft.com> Message-ID: <588751.8201.qm@web29712.mail.ird.yahoo.com> Hi all: yes, but maybe when if we got around an optimizing compiler we would need the verification condition generator to use the theorem prover, so the same deal again, and if so we would need also build machines dedicated also to that, I mean what is the point of having them to keeping idle while something in contrast would highly optimized it instead. I bet even the compiler is also to have optimization by it self, I guess everything would need to and so the optimization framework would need to run the theorem prover to work in each build. Even the Simplify, so we must keep and eye on it too meanwhile. Thanks in advance --- El jue, 6/1/11, Olaf Wagner escribi?: > De: Olaf Wagner > Asunto: Re: [M3devel] elegosoft.com working? > Para: "Daniel Alejandro Benavides D." > CC: m3devel at elegosoft.com > Fecha: jueves, 6 de enero, 2011 06:56 > Let's worry about ESC integration > when we get access to it. > Anyway, I wouldn't run such checks in every build, but > perform it > on a certain machine e.g. once a day. > > Olaf > > Quoting "Daniel Alejandro Benavides D." : > > > Hi all: > > I recall now that the current rend is run this theorem > provers distributedly, rather than standalone, so we > might given that we have already this in our hands the > Simplify theorem prover, for a network instance, not > sure if the I/O will be affected in that case, perhaps > the most important thing is to verify full integrity > of transfers. See about that issue: > > http://nexus.realtimepublishers.com/ttgmft.php > > (is a work in progress so if interested keep and eye > on it, you can register if you want) > > Given that simplify is not written object oriented, > perhaps that must be thought to be like that. The > thing is given it takes more than double times the > time of the compile build process we might (the Greg > nelson comment at 53:00 on the linked video) is it is > a kind of slow process or of high length but ok to be > run on nights. Perhaps given that the compiler > building could take 2x a compiler build and the > theorem proving 5x times that, which is we can run it > each 5 runs in terms of the of two builds, i.e m3tk > included. The thing is, if the source has not changed > that is would be the case in some runs it could be in > terms of less runs, so we can check in at least each 5 > building tasks runs (of all platforms, i.e 5 parallel > building tasks), I guess this tasks are programmed in some > way, I don't recall where are the policies of this > written, if someone can tell that for me or point me > that, thanks in advance > > > > > > --- El mi?, 5/1/11, Daniel Alejandro Benavides > D. > escribi?: > > > >> De: Daniel Alejandro Benavides D. > >> Asunto: Re: [M3devel] elegosoft.com working? > >> Para: "Olaf Wagner" > >> CC: m3devel at elegosoft.com > >> Fecha: mi?rcoles, 5 de enero, 2011 11:28 > >> Hi all: > >> yes, I think we should get access to building with > cm3 at > >> least, not sure if the sources according to the > latest news > >> on that. > >> In the other hand whether we get this I hope > sooner or > >> later, I think it would be a m3quake directive > like "esc()" > >> to activate it from inside the building task > process, so it > >> can be integrated on the same building machine or > another > >> will need to have access to the same CM3 build and > source > >> repository and check it on the way, the only thing > here, is > >> that ESC need to build M3 sources with m3tk and if > so, it > >> will that aprox. by the same time cm3 compiler > building > >> software ends that ESC will feed itself with cm3 > M3Build > >> .M3IMPTAB import table not generated file now > times for > >> external compilers. I'm not sure anyway if that's > the order > >> of ESC input anyway, or will need first the > .M3IMPPTAB back > >> again perhaps will need to upgrade down or make a > better > >> independent procedure to expose this for it, see > Revision > >> 1.24: > >> http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/cm3/src/M3Build.m3?annotate=1.24 > >> if that's the case we would need to wait anyway > for cm3 > >> builds or call it from the IMPORTS to get it. > Please if one > >> can check that if it's need it and I will likely > to see that > >> too. I also think this would be a nice way of > making a > >> dependence analyzer (if so perhaps I think is > better doing > >> it with m3tk, what do you think? Besides its worth > for Obliq > >> and others too like cm3ide, etc) program for > our and > >> other clients too information IMHO. > >> Thanks in advance > >> > >> P.D: according to Dr Greg Nelson the compiler is > usually > >> 10x times faster than the ESC process (not sure > for the > >> ESC/Java or the ESC/Moddula3), but this is mostly > because of > >> the Simplify theorem prover checking see: > >> http://www.uwtv.org/programs/displayevent.aspx?rID=2761 > >> Also for simplify see: > >> http://portal.acm.org/citation.cfm?id=1066100.1066102&preflayout=flat > >> whican can be downlaoded report from here: > >> http://www.hpl.hp.com/techreports/2003/HPL-2003-148.html > >> and benchmarks from here: > >> http://goedel.cs.uiowa.edu/smtlib/benchmarks/pending/simplify_benchmarks.tar.gz > >> > >> > >> --- El mi?, 5/1/11, Olaf Wagner > >> escribi?: > >> > >> > De: Olaf Wagner > >> > Asunto: Re: [M3devel] elegosoft.com working? > >> > Para: "Daniel Alejandro Benavides D." > >> > CC: m3devel at elegosoft.com > >> > Fecha: mi?rcoles, 5 de enero, 2011 04:04 > >> > Quoting "Daniel Alejandro Benavides > >> > D." : > >> > > >> > > Hi all: > >> > > thanks for the info, some time after it > went on > >> again > >> > working, but still if there is some > escalation > >> issue > >> > because of the compiler checks > specially with > >> the > >> > computation time, like ESC and so, > perhaps like > >> in > >> > night builds, what would be the machine needs > for that > >> > >> > process and the results to allow? > >> > > Based on some experience like in > compilers we > >> would > >> > have access to the checks in more or > less time > >> if so I > >> > guess we would need optimization anyway > at > >> source > >> > level and execution level. Meanwhile > more checks > >> will > >> > likely to be introduced, so it would a > balance > >> of both > >> > needs. > >> > > Thanks in advance > >> > > >> > I'm not sure if I understand correctly what > you're > >> aiming > >> > at, but > >> > I guess you worry that we need to introduce > more > >> > checks/tests like > >> > ESC. Apart from my estimation that we won't > get access > >> to > >> > the ESC M3 > >> > sources, CPU time would not be a bottleneck, > as (a) > >> the > >> > bottleneck on > >> > birch is the I/O system and (b) we could > easily > >> delegate > >> > such a task > >> > to another server via Hudson. Anyway, once > the web > >> service > >> > has been > >> > moved to another machine there shouldn't be > any more > >> > problems with > >> > our use of birch. > >> > > >> > Olaf > >> > --Olaf Wagner -- elego Software Solutions > GmbH > >> > > >> > Gustav-Meyer-Allee 25 / Geb?ude > 12, > >> 13355 > >> > Berlin, Germany > >> > phone: +49 30 23 45 86 96 mobile: +49 > 177 2345 > >> > 869 fax: +49 30 23 45 86 95 > >> > http://www.elegosoft.com | > >> > Gesch?ftsf?hrer: Olaf Wagner | Sitz: > Berlin > >> > Handelregister: Amtsgericht Charlottenburg > HRB 77719 > >> | > >> > USt-IdNr: DE163214194 > >> > > >> > > >> > >> > >> > >> > > > > > > > > > > > > --Olaf Wagner -- elego Software Solutions GmbH > > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 > Berlin, Germany > phone: +49 30 23 45 86 96 mobile: +49 177 2345 > 869 fax: +49 30 23 45 86 95 > http://www.elegosoft.com | > Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | > USt-IdNr: DE163214194 > > From hosking at cs.purdue.edu Thu Jan 6 15:27:03 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 6 Jan 2011 09:27:03 -0500 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: References: , , , , , , , , , , , , , , <7574D14D-BA09-44DE-98CE-6127CAEE7E8B@cs.purdue.edu>, Message-ID: <5F258385-C84D-4103-9EBF-8B2C475D1BE0@cs.purdue.edu> I am just leery of getting too much more entangled with the gcc runtime. It makes our compiler even more non-portable. On Jan 6, 2011, at 2:21 AM, Jay K wrote: > >> Yes, indeed. We don't need all the overhead of the C++ exception handling mechanism. > > > > It is so much? Well, it maybe is more to understand. > > > There is also a very good chance that raising a Modula-3 exception > will run C++ destructors for intervening threads, which is desirable, > if we do this "right". > Likewise, C++ exceptions running Modula-3 unlock/finally blocks. > Interop can be good. > > > - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 6 16:56:49 2011 From: jay.krell at cornell.edu (Jay K) Date: Thu, 6 Jan 2011 15:56:49 +0000 Subject: [M3devel] elegosoft.com working? In-Reply-To: <588751.8201.qm@web29712.mail.ird.yahoo.com> References: <20110106125616.yufiz9edm8ssccks@mail.elegosoft.com>, <588751.8201.qm@web29712.mail.ird.yahoo.com> Message-ID: The gcc compiler is already optimizing. The integrated backend always optimizes a bit and produces half decent code. Fairly local optimizations though, very very very simple analysis. I'd like the machines to be powered off when idle, not find more ways to keep them busy. As well, most of the analysis is "portable" -- only needs to be one for one target, not all, so unless it is really large and easily distributed, just one machine. If we really are interested static analysis, a C or C++ or heck C# or Java generating backend plus throwing their static analyzers around is the way to go. There is far more energy thrown at other languages, and actually significant results, despite the starting point. Some tools might analyze binaries. valgrind? Modula-3 and ESC were ahead of their time at some point, but the world has largely caught up and in many ways surpassed. For example, Modula-3 was perhaps perhaps better than DCOM and CORBA, but these days, connected remoting has been deemed non-scalable and disconnected remoting is largely used, esp. via http. - Jay > Date: Thu, 6 Jan 2011 13:28:18 +0000 > From: dabenavidesd at yahoo.es > To: wagner at elegosoft.com > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] elegosoft.com working? > > Hi all: > yes, but maybe when if we got around an optimizing compiler we would need the verification condition generator to use the theorem prover, so the same deal again, and if so we would need also build machines dedicated also to that, I mean what is the point of having them to keeping idle while something in contrast would highly optimized it instead. I bet even the compiler is also to have optimization by it self, I guess everything would need to and so the optimization framework would need to run the theorem prover to work in each build. Even the Simplify, so we must keep and eye on it too meanwhile. > > Thanks in advance > > --- El jue, 6/1/11, Olaf Wagner escribi?: > > > De: Olaf Wagner > > Asunto: Re: [M3devel] elegosoft.com working? > > Para: "Daniel Alejandro Benavides D." > > CC: m3devel at elegosoft.com > > Fecha: jueves, 6 de enero, 2011 06:56 > > Let's worry about ESC integration > > when we get access to it. > > Anyway, I wouldn't run such checks in every build, but > > perform it > > on a certain machine e.g. once a day. > > > > Olaf > > > > Quoting "Daniel Alejandro Benavides D." : > > > > > Hi all: > > > I recall now that the current rend is run this theorem > > provers distributedly, rather than standalone, so we > > might given that we have already this in our hands the > > Simplify theorem prover, for a network instance, not > > sure if the I/O will be affected in that case, perhaps > > the most important thing is to verify full integrity > > of transfers. See about that issue: > > > http://nexus.realtimepublishers.com/ttgmft.php > > > (is a work in progress so if interested keep and eye > > on it, you can register if you want) > > > Given that simplify is not written object oriented, > > perhaps that must be thought to be like that. The > > thing is given it takes more than double times the > > time of the compile build process we might (the Greg > > nelson comment at 53:00 on the linked video) is it is > > a kind of slow process or of high length but ok to be > > run on nights. Perhaps given that the compiler > > building could take 2x a compiler build and the > > theorem proving 5x times that, which is we can run it > > each 5 runs in terms of the of two builds, i.e m3tk > > included. The thing is, if the source has not changed > > that is would be the case in some runs it could be in > > terms of less runs, so we can check in at least each 5 > > building tasks runs (of all platforms, i.e 5 parallel > > building tasks), I guess this tasks are programmed in some > > way, I don't recall where are the policies of this > > written, if someone can tell that for me or point me > > that, thanks in advance > > > > > > > > > --- El mi?, 5/1/11, Daniel Alejandro Benavides > > D. > > escribi?: > > > > > >> De: Daniel Alejandro Benavides D. > > >> Asunto: Re: [M3devel] elegosoft.com working? > > >> Para: "Olaf Wagner" > > >> CC: m3devel at elegosoft.com > > >> Fecha: mi?rcoles, 5 de enero, 2011 11:28 > > >> Hi all: > > >> yes, I think we should get access to building with > > cm3 at > > >> least, not sure if the sources according to the > > latest news > > >> on that. > > >> In the other hand whether we get this I hope > > sooner or > > >> later, I think it would be a m3quake directive > > like "esc()" > > >> to activate it from inside the building task > > process, so it > > >> can be integrated on the same building machine or > > another > > >> will need to have access to the same CM3 build and > > source > > >> repository and check it on the way, the only thing > > here, is > > >> that ESC need to build M3 sources with m3tk and if > > so, it > > >> will that aprox. by the same time cm3 compiler > > building > > >> software ends that ESC will feed itself with cm3 > > M3Build > > >> .M3IMPTAB import table not generated file now > > times for > > >> external compilers. I'm not sure anyway if that's > > the order > > >> of ESC input anyway, or will need first the > > .M3IMPPTAB back > > >> again perhaps will need to upgrade down or make a > > better > > >> independent procedure to expose this for it, see > > Revision > > >> 1.24: > > >> http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/cm3/src/M3Build.m3?annotate=1.24 > > >> if that's the case we would need to wait anyway > > for cm3 > > >> builds or call it from the IMPORTS to get it. > > Please if one > > >> can check that if it's need it and I will likely > > to see that > > >> too. I also think this would be a nice way of > > making a > > >> dependence analyzer (if so perhaps I think is > > better doing > > >> it with m3tk, what do you think? Besides its worth > > for Obliq > > >> and others too like cm3ide, etc) program for > > our and > > >> other clients too information IMHO. > > >> Thanks in advance > > >> > > >> P.D: according to Dr Greg Nelson the compiler is > > usually > > >> 10x times faster than the ESC process (not sure > > for the > > >> ESC/Java or the ESC/Moddula3), but this is mostly > > because of > > >> the Simplify theorem prover checking see: > > >> http://www.uwtv.org/programs/displayevent.aspx?rID=2761 > > >> Also for simplify see: > > >> http://portal.acm.org/citation.cfm?id=1066100.1066102&preflayout=flat > > >> whican can be downlaoded report from here: > > >> http://www.hpl.hp.com/techreports/2003/HPL-2003-148.html > > >> and benchmarks from here: > > >> http://goedel.cs.uiowa.edu/smtlib/benchmarks/pending/simplify_benchmarks.tar.gz > > >> > > >> > > >> --- El mi?, 5/1/11, Olaf Wagner > > >> escribi?: > > >> > > >> > De: Olaf Wagner > > >> > Asunto: Re: [M3devel] elegosoft.com working? > > >> > Para: "Daniel Alejandro Benavides D." > > >> > CC: m3devel at elegosoft.com > > >> > Fecha: mi?rcoles, 5 de enero, 2011 04:04 > > >> > Quoting "Daniel Alejandro Benavides > > >> > D." : > > >> > > > >> > > Hi all: > > >> > > thanks for the info, some time after it > > went on > > >> again > > >> > working, but still if there is some > > escalation > > >> issue > > >> > because of the compiler checks > > specially with > > >> the > > >> > computation time, like ESC and so, > > perhaps like > > >> in > > >> > night builds, what would be the machine needs > > for that > > >> > > >> > process and the results to allow? > > >> > > Based on some experience like in > > compilers we > > >> would > > >> > have access to the checks in more or > > less time > > >> if so I > > >> > guess we would need optimization anyway > > at > > >> source > > >> > level and execution level. Meanwhile > > more checks > > >> will > > >> > likely to be introduced, so it would a > > balance > > >> of both > > >> > needs. > > >> > > Thanks in advance > > >> > > > >> > I'm not sure if I understand correctly what > > you're > > >> aiming > > >> > at, but > > >> > I guess you worry that we need to introduce > > more > > >> > checks/tests like > > >> > ESC. Apart from my estimation that we won't > > get access > > >> to > > >> > the ESC M3 > > >> > sources, CPU time would not be a bottleneck, > > as (a) > > >> the > > >> > bottleneck on > > >> > birch is the I/O system and (b) we could > > easily > > >> delegate > > >> > such a task > > >> > to another server via Hudson. Anyway, once > > the web > > >> service > > >> > has been > > >> > moved to another machine there shouldn't be > > any more > > >> > problems with > > >> > our use of birch. > > >> > > > >> > Olaf > > >> > --Olaf Wagner -- elego Software Solutions > > GmbH > > >> > > > >> > Gustav-Meyer-Allee 25 / Geb?ude > > 12, > > >> 13355 > > >> > Berlin, Germany > > >> > phone: +49 30 23 45 86 96 mobile: +49 > > 177 2345 > > >> > 869 fax: +49 30 23 45 86 95 > > >> > http://www.elegosoft.com | > > >> > Gesch?ftsf?hrer: Olaf Wagner | Sitz: > > Berlin > > >> > Handelregister: Amtsgericht Charlottenburg > > HRB 77719 > > >> | > > >> > USt-IdNr: DE163214194 > > >> > > > >> > > > >> > > >> > > >> > > >> > > > > > > > > > > > > > > > > > > > > --Olaf Wagner -- elego Software Solutions GmbH > > > > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 > > Berlin, Germany > > phone: +49 30 23 45 86 96 mobile: +49 177 2345 > > 869 fax: +49 30 23 45 86 95 > > http://www.elegosoft.com | > > Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > > Handelregister: Amtsgericht Charlottenburg HRB 77719 | > > USt-IdNr: DE163214194 > > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 6 16:57:55 2011 From: jay.krell at cornell.edu (Jay K) Date: Thu, 6 Jan 2011 15:57:55 +0000 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: <5F258385-C84D-4103-9EBF-8B2C475D1BE0@cs.purdue.edu> References: , , , ,,, , ,,, , ,,, ,,, , , <7574D14D-BA09-44DE-98CE-6127CAEE7E8B@cs.purdue.edu>, , , , <5F258385-C84D-4103-9EBF-8B2C475D1BE0@cs.purdue.edu> Message-ID: I think _Unwind_RaiseException is the way to go. It is the Linux runtime, the Darwin runtime, the *BSD runtime. There still remains the setjmp option for portability. libunwind is sort of an option, carrying it around, but I think probably not preferred. - Jay From: hosking at cs.purdue.edu Date: Thu, 6 Jan 2011 09:27:03 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com Subject: Re: [M3devel] how to use gcc exception/unwind support? I am just leery of getting too much more entangled with the gcc runtime.It makes our compiler even more non-portable. On Jan 6, 2011, at 2:21 AM, Jay K wrote: >> Yes, indeed. We don't need all the overhead of the C++ exception handling mechanism. > It is so much? Well, it maybe is more to understand. There is also a very good chance that raising a Modula-3 exception will run C++ destructors for intervening threads, which is desirable, if we do this "right". Likewise, C++ exceptions running Modula-3 unlock/finally blocks. Interop can be good. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Jan 6 19:51:18 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 6 Jan 2011 13:51:18 -0500 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: References: , , , , , , , , , , , , , , , , , , , <7574D14D-BA09-44DE-98CE-6127CAEE7E8B@cs.purdue.edu>, , , , <5F258385-C84D-4103-9EBF-8B2C475D1BE0@cs.purdue.edu> Message-ID: I'd like something that allows us to use the existing RTExStack exception tables and does not depend on the compiler back-end to emit exception tables, except for assurances that code will not move around labels that define exception scopes. The advantage of this is that we can retain portability to different back-ends, so long as the runtime supports the necessary RTStack routines. On Jan 6, 2011, at 10:57 AM, Jay K wrote: > I think _Unwind_RaiseException is the way to go. > It is the Linux runtime, the Darwin runtime, the *BSD runtime. > There still remains the setjmp option for portability. > libunwind is sort of an option, carrying it around, but I think probably not preferred. > > - Jay > > From: hosking at cs.purdue.edu > Date: Thu, 6 Jan 2011 09:27:03 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] how to use gcc exception/unwind support? > > I am just leery of getting too much more entangled with the gcc runtime. > It makes our compiler even more non-portable. > > On Jan 6, 2011, at 2:21 AM, Jay K wrote: > > >> Yes, indeed. We don't need all the overhead of the C++ exception handling mechanism. > > > > It is so much? Well, it maybe is more to understand. > > > There is also a very good chance that raising a Modula-3 exception > will run C++ destructors for intervening threads, which is desirable, > if we do this "right". > Likewise, C++ exceptions running Modula-3 unlock/finally blocks. > Interop can be good. > > > - Jay > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Thu Jan 6 23:04:43 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Thu, 6 Jan 2011 22:04:43 +0000 (GMT) Subject: [M3devel] elegosoft.com working? In-Reply-To: Message-ID: <801408.24402.qm@web29713.mail.ird.yahoo.com> Hi all: yes, I think the current is to run the testing distributed, rather than standalone, this is because of memory and essentially because it aims to be like that distributed rather than standalone runs in those cases we have that scenario, perhaps the one most feasible if so, because inside the prover there is a logic programming language, so the idea of writing solvers in Java, etc, is not bad, anyway there is a interpreter in it, but we have a good tool already, a good language and seeing it more now it seems to be object oriented at some of it (I have now a compiler error <*NOWARN*> used to avoid somehow before when compiling the prover library), I read they were a compact team of developers but same comments I have read about Modula-3 not being so much object oriented restrictive language, and they have a reason language is not just object oriented I think, if we needed it to run distributed, we would likely to do it with and automatic parallelization, with a Compiler Static Analyzer to produce a concurrent server, see: http://www.usenix.org/publications/library/proceedings/sedms4/sims.html then I guess we could think how to distribute that, which guarantees the semantics of the system won't be touched, then if we just write in terms of another checker, like an ESC/Obliq, the semantics will be not touched and be happy about type checks because it has type inference or reconstruction so that guarantees that the type checking would be not needed and it will just have in terms of checks the simplify process as normal but also of a more object oriented fashion which is what the others are aiming to optimization, specially in C# and Java solvers. Perhaps that's the way to go, I guess the basics we could mimic and the internal structure put in Core Libraries of Modula-3 we would have safe distributed checking inside the Language itself and the better approach with this would be to solve first a test of the system performance: there was an experiment of the constraint solver procedure inside the Juno-2, done by Greg Nelson, during development of the project, they needed to make sure they would have scalable constraint resolution in large programs to be able to be doable in those, so did an experiment with it in the project Juno development, it however didn't prove too much but because of its continuous development but did make realize the system http://modula3.elegosoft.com/cm3/doc/help/gen_html/juno-machine/src/JunoByteCode.i3.html was performing some how, due changes because they need to proof the real performance for the sessions interactivity they need to render in the screen while doing the Juno modifications, they would needed the binaries size so made information useless. It is suggested that a log with a symbol table would allow the logs to be useful even if modifications happened, by storing the binaries if necessary. In ESC/Obliq and Simplify, Obliq hypothetic development case just an amount of effort to check the prover scalability will be needed given the uneeded binary information, although further improvement would allow a JIT for core parts I guess. see: see: ftp://gatekeeper.pa.dec.com/pub/DEC/SRC/research-reports/SRC-153.pdf (I realize late the relation between juno-machine and the Obliq interpreter) Other approaches than those I guess would like to see the within the tool in compile time manner, that's why I think in a more fashionable yet correct form of doing ESC looking for that opportunity would in that safe manners help us. Thanks in advance --- El jue, 6/1/11, Jay K escribi?: De: Jay K Asunto: RE: [M3devel] elegosoft.com working? Para: dabenavidesd at yahoo.es, "Olaf" CC: "m3devel" Fecha: jueves, 6 de enero, 2011 10:56 The gcc compiler is already optimizing. The integrated backend always optimizes a bit and produces half decent code. Fairly local optimizations though, very very very simple analysis. I'd like the machines to be powered off when idle, not find more ways to keep them busy. As well, most of the analysis is "portable" -- only needs to be one for one target, not all, so unless it is really large and easily distributed, just one machine. If we really are interested static analysis, a C or C++ or heck C# or Java generating backend plus throwing their static analyzers around is the way to go. ? There is far more energy thrown at other languages, and actually significant results, despite the starting point. ? Some tools might analyze binaries. valgrind? Modula-3 and ESC were ahead of their time at some point, but the world has largely caught up and in many ways surpassed. For example, Modula-3 was perhaps perhaps better than DCOM and CORBA, but these days, connected remoting has been deemed non-scalable and disconnected remoting is largely used, esp. via http. ?- Jay > Date: Thu, 6 Jan 2011 13:28:18 +0000 > From: dabenavidesd at yahoo.es > To: wagner at elegosoft.com > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] elegosoft.com working? > > Hi all: > yes, but maybe when if we got around an optimizing compiler we would need the verification condition generator to use the theorem prover, so the same deal again, and if so we would need also build machines dedicated also to that, I mean what is the point of having them to keeping idle while something in contrast would highly optimized it instead. I bet even the compiler is also to have optimization by it self, I guess everything would need to and so the optimization framework would need to run the theorem prover to work in each build. Even the Simplify, so we must keep and eye on it too meanwhile. > > Thanks in advance > > --- El jue, 6/1/11, Olaf Wagner escribi?: > > > De: Olaf Wagner > > Asunto: Re: [M3devel] elegosoft.com working? > > Para: "Daniel Alejandro Benavides D." > > CC: m3devel at elegosoft.com > > Fecha: jueves, 6 de enero, 2011 06:56 > > Let's worry about ESC integration > > when we get access to it. > > Anyway, I wouldn't run such checks in every build, but > > perform it > > on a certain machine e.g. once a day. > > > > Olaf > > > > Quoting "Daniel Alejandro Benavides D." : > > > > > Hi all: > > > I recall now that the current rend is run this theorem > > provers distributedly, rather than standalone, so we > > might given that we have already this in our hands the > > Simplify theorem prover, for a network instance, not > > sure if the I/O will be affected in that case, perhaps > > the most important thing is to verify full integrity > > of transfers. See about that issue: > > > http://nexus.realtimepublishers.com/ttgmft.php > > > (is a work in progress so if interested keep and eye > > on it, you can register if you want) > > > Given that simplify is not written object oriented, > > perhaps that must be thought to be like that. The > > thing is given it takes more than double times the > > time of the compile build process we might (the Greg > > nelson comment at 53:00 on the linked video) is it is > > a kind of slow process or of high length but ok to be > > run on nights. Perhaps given that the compiler > > building could take 2x a compiler build and the > > theorem proving 5x times that, which is we can run it > > each 5 runs in terms of the of two builds, i.e m3tk > > included. The thing is, if the source has not changed > > that is would be the case in some runs it could be in > > terms of less runs, so we can check in at least each 5 > > building tasks runs (of all platforms, i.e 5 parallel > > building tasks), I guess this tasks are programmed in some > > way, I don't recall where are the policies of this > > written, if someone can tell that for me or point me > > that, thanks in advance > > > > > > > > > --- El mi?, 5/1/11, Daniel Alejandro Benavides > > D. > > escribi?: > > > > > >> De: Daniel Alejandro Benavides D. > > >> Asunto: Re: [M3devel] elegosoft.com working? > > >> Para: "Olaf Wagner" > > >> CC: m3devel at elegosoft.com > > >> Fecha: mi?rcoles, 5 de enero, 2011 11:28 > > >> Hi all: > > >> yes, I think we should get access to building with > > cm3 at > > >> least, not sure if the sources according to the > > latest news > > >> on that. > > >> In the other hand whether we get this I hope > > sooner or > > >> later, I think it would be a m3quake directive > > like "esc()" > > >> to activate it from inside the building task > > process, so it > > >> can be integrated on the same building machine or > > another > > >> will need to have access to the same CM3 build and > > source > > >> repository and check it on the way, the only thing > > here, is > > >> that ESC need to build M3 sources with m3tk and if > > so, it > > >> will that aprox. by the same time cm3 compiler > > building > > >> software ends that ESC will feed itself with cm3 > > M3Build > > >> .M3IMPTAB import table not generated file now > > times for > > >> external compilers. I'm not sure anyway if that's > > the order > > >> of ESC input anyway, or will need first the > > .M3IMPPTAB back > > >> again perhaps will need to upgrade down or make a > > better > > >> independent procedure to expose this for it, see > > Revision > > >> 1.24: > > >> http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/cm3/src/M3Build.m3?annotate=1.24 > > >> if that's the case we would need to wait anyway > > for cm3 > > >> builds or call it from the IMPORTS to get it. > > Please if one > > >> can check that if it's need it and I will likely > > to see that > > >> too. I also think this would be a nice way of > > making a > > >> dependence analyzer (if so perhaps I think is > > better doing > > >> it with m3tk, what do you think? Besides its worth > > for Obliq > > >> and others too like cm3ide, etc) program for > > our and > > >> other clients too information IMHO. > > >> Thanks in advance > > >> > > >> P.D: according to Dr Greg Nelson the compiler is > > usually > > >> 10x times faster than the ESC process (not sure > > for the > > >> ESC/Java or the ESC/Moddula3), but this is mostly > > because of > > >> the Simplify theorem prover checking see: > > >> http://www.uwtv.org/programs/displayevent.aspx?rID=2761 > > >> Also for simplify see: > > >> http://portal.acm.org/citation.cfm?id=1066100.1066102&preflayout=flat > > >> whican can be downlaoded report from here: > > >> http://www.hpl.hp.com/techreports/2003/HPL-2003-148.html > > >> and benchmarks from here: > > >> http://goedel.cs.uiowa.edu/smtlib/benchmarks/pending/simplify_benchmarks.tar.gz > > >> > > >> > > >> --- El mi?, 5/1/11, Olaf Wagner > > >> escribi?: > > >> > > >> > De: Olaf Wagner > > >> > Asunto: Re: [M3devel] elegosoft.com working? > > >> > Para: "Daniel Alejandro Benavides D." > > >> > CC: m3devel at elegosoft.com > > >> > Fecha: mi?rcoles, 5 de enero, 2011 04:04 > > >> > Quoting "Daniel Alejandro Benavides > > >> > D." : > > >> > > > >> > > Hi all: > > >> > > thanks for the info, some time after it > > went on > > >> again > > >> > working, but still if there is some > > escalation > > >> issue > > >> > because of the compiler checks > > specially with > > >> the > > >> > computation time, like ESC and so, > > perhaps like > > >> in > > >> > night builds, what would be the machine needs > > for that > > >> > > >> > process and the results to allow? > > >> > > Based on some experience like in > > compilers we > > >> would > > >> > have access to the checks in more or > > less time > > >> if so I > > >> > guess we would need optimization anyway > > at > > >> source > > >> > level and execution level. Meanwhile > > more checks > > >> will > > >> > likely to be introduced, so it would a > > balance > > >> of both > > >> > needs. > > >> > > Thanks in advance > > >> > > > >> > I'm not sure if I understand correctly what > > you're > > >> aiming > > >> > at, but > > >> > I guess you worry that we need to introduce > > more > > >> > checks/tests like > > >> > ESC. Apart from my estimation that we won't > > get access > > >> to > > >> > the ESC M3 > > >> > sources, CPU time would not be a bottleneck, > > as (a) > > >> the > > >> > bottleneck on > > >> > birch is the I/O system and (b) we could > > easily > > >> delegate > > >> > such a task > > >> > to another server via Hudson. Anyway, once > > the web > > >> service > > >> > has been > > >> > moved to another machine there shouldn't be > > any more > > >> > problems with > > >> > our use of birch. > > >> > > > >> > Olaf > > >> > --Olaf Wagner -- elego Software Solutions > > GmbH > > >> > > > >> > Gustav-Meyer-Allee 25 / Geb?ude > > 12, > > >> 13355 > > >> > Berlin, Germany > > >> > phone: +49 30 23 45 86 96 mobile: +49 > > 177 2345 > > >> > 869 fax: +49 30 23 45 86 95 > > >> > http://www.elegosoft.com | > > >> > Gesch?ftsf?hrer: Olaf Wagner | Sitz: > > Berlin > > >> > Handelregister: Amtsgericht Charlottenburg > > HRB 77719 > > >> | > > >> > USt-IdNr: DE163214194 > > >> > > > >> > > > >> > > >> > > >> > > >> > > > > > > > > > > > > > > > > > > > > --Olaf Wagner -- elego Software Solutions GmbH > > > > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 > > Berlin, Germany > > phone: +49 30 23 45 86 96 mobile: +49 177 2345 > > 869 fax: +49 30 23 45 86 95 > > http://www.elegosoft.com | > > Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > > Handelregister: Amtsgericht Charlottenburg HRB 77719 | > > USt-IdNr: DE163214194 > > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.anderson at elego.de Fri Jan 7 11:43:32 2011 From: michael.anderson at elego.de (Michael Anderson) Date: Fri, 07 Jan 2011 11:43:32 +0100 Subject: [M3devel] [elego Server Maintenance] Friday 07.01.2011 20:30 CEST Message-ID: <4D26EE54.7030402@elego.de> Hello, On Friday, Januar 7 at 8:30 PM CEST, we will perform scheduled maintenance on our servers. Brief interruptions of service may occur. Expected duration: 120 Min. We apologize for any inconvenience. - the elego Admins am Freitag, den 07.01, werden ab 20.30 Uhr CEST planm??ige Wartungsma?nahmen an unseren Servern durchgef?hrt. Es kann zur kurzzeitigen Unterbrechung mancher Dienste kommen. Voraussichtliche Dauer der Wartung: 120 Min. Wir bitten um Verst?ndnis. - die elego Admins -- Michael Anderson IT Services & Support elego Software Solutions GmbH Gustav-Meyer-Allee 25 Building 12.3 (BIG) room 227 13355 Berlin, Germany phone +49 30 23 45 86 96 michael.anderson at elegosoft.com fax +49 30 23 45 86 95 http://www.elegosoft.com Geschaeftsfuehrer: Olaf Wagner, Sitz Berlin Amtsgericht Berlin-Charlottenburg, HRB 77719, USt-IdNr: DE163214194 From mika at async.caltech.edu Fri Jan 7 16:14:11 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Fri, 07 Jan 2011 07:14:11 -0800 Subject: [M3devel] deadlock... in ThreadPThread.m3? Message-ID: <20110107151412.026651A205B@async.async.caltech.edu> Hi m3devel (especially Tony), I'm having a problem with a Modula-3 program that seems to deadlock with one of my 60+ threads stuck in Process.Create. Is it possible there is a bug in ThreadPThread.m3? (Would be really nice to have a deadlock detector here, you know... rather than have the program go catatonic when there's a deadlock. Deadlock is stable so the detector could run very infrequently---i.e., be very inefficient---and still be extremely useful....) I don't think there is anything I ought to be able to do from "user code" that would cause Process.Create to be part of a deadlock cycle. Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) possibly exhibit itself as a failure of Process.Create to complete?? Below are backtraces of the threads stuck in some sort of locking activity, platform is I386_DARWIN at head as of a couple of weeks ago. (I deleted the threads that are up to other things than locking.) Mika Thread 68 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 #5 0x97137217 in _cthread_fork_prepare () #6 0x97137155 in fork () #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC ommon.m3:75 #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #13 0x9713885d in _pthread_start () #14 0x971386e2 in thread_start () Thread 65 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #33 0x9713885d in _pthread_start () #34 0x971386e2 in thread_start () Thread 64 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #28 0x9713885d in _pthread_start () #29 0x971386e2 in thread_start () Thread 60 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 59 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #19 0x9713885d in _pthread_start () #20 0x971386e2 in thread_start () Thread 52 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #14 0x9713885d in _pthread_start () #15 0x971386e2 in thread_start () Thread 51 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #14 0x9713885d in _pthread_start () #15 0x971386e2 in thread_start () Thread 27 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 2 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #13 0x9713885d in _pthread_start () #14 0x971386e2 in thread_start () From hosking at cs.purdue.edu Fri Jan 7 16:23:58 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 7 Jan 2011 10:23:58 -0500 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: <20110107151412.026651A205B@async.async.caltech.edu> References: <20110107151412.026651A205B@async.async.caltech.edu> Message-ID: <81AE882C-6A4F-4460-90D3-CA570D294E5E@cs.purdue.edu> Is this release or CVS head? On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: > Hi m3devel (especially Tony), > > I'm having a problem with a Modula-3 program that seems to deadlock > with one of my 60+ threads stuck in Process.Create. Is it possible > there is a bug in ThreadPThread.m3? (Would be really nice to have a > deadlock detector here, you know... rather than have the program go > catatonic when there's a deadlock. Deadlock is stable so the detector > could run very infrequently---i.e., be very inefficient---and still be > extremely useful....) > > I don't think there is anything I ought to be able to do from "user > code" that would cause Process.Create to be part of a deadlock cycle. > Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) > possibly exhibit itself as a failure of Process.Create to complete?? > > Below are backtraces of the threads stuck in some sort of locking > activity, platform is I386_DARWIN at head as of a couple of weeks ago. > (I deleted the threads that are up to other things than locking.) > > Mika > > Thread 68 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 > #5 0x97137217 in _cthread_fork_prepare () > #6 0x97137155 in fork () > #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC > ommon.m3:75 > #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > Thread 65 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 > #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 > #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 > #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 > #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 > #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 > #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 > #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 > #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 > #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 > #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 > #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 > #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 > #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 > #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 > #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #33 0x9713885d in _pthread_start () > #34 0x971386e2 in thread_start () > > Thread 64 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 > #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 > #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 > #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 > #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 > #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 > #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 > #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 > #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 > #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 > #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 > #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #28 0x9713885d in _pthread_start () > #29 0x971386e2 in thread_start () > > Thread 60 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 > #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 > #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 > #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 59 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 > #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 > #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 > #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 > #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 > #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 > #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 > #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 > #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #19 0x9713885d in _pthread_start () > #20 0x971386e2 in thread_start () > > Thread 52 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 > #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 > #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 > #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #14 0x9713885d in _pthread_start () > #15 0x971386e2 in thread_start () > > Thread 51 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 > #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 > #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 > #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 > #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #14 0x9713885d in _pthread_start () > #15 0x971386e2 in thread_start () > > Thread 27 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 2 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 > #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 > #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 > #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 > #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > From hosking at cs.purdue.edu Fri Jan 7 16:42:38 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 7 Jan 2011 10:42:38 -0500 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: <20110107151412.026651A205B@async.async.caltech.edu> References: <20110107151412.026651A205B@async.async.caltech.edu> Message-ID: <10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu> This has something to do with the fork handlers Jay introduced, which run when a process is forked. They invoke LockHeap in the parent before the fork, and UnlockHeap in the parent after the fork. It appears that your threads are stuck waiting on LockHeap. Also, we have two threads in your trace trying to acquire initMu. Jay, I think we have a deadlock caused by AtForkPrepare. Ideas? On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: > Hi m3devel (especially Tony), > > I'm having a problem with a Modula-3 program that seems to deadlock > with one of my 60+ threads stuck in Process.Create. Is it possible > there is a bug in ThreadPThread.m3? (Would be really nice to have a > deadlock detector here, you know... rather than have the program go > catatonic when there's a deadlock. Deadlock is stable so the detector > could run very infrequently---i.e., be very inefficient---and still be > extremely useful....) > > I don't think there is anything I ought to be able to do from "user > code" that would cause Process.Create to be part of a deadlock cycle. > Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) > possibly exhibit itself as a failure of Process.Create to complete?? > > Below are backtraces of the threads stuck in some sort of locking > activity, platform is I386_DARWIN at head as of a couple of weeks ago. > (I deleted the threads that are up to other things than locking.) > > Mika > > Thread 68 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 > #5 0x97137217 in _cthread_fork_prepare () > #6 0x97137155 in fork () > #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC > ommon.m3:75 > #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > Thread 65 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 > #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 > #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 > #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 > #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 > #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 > #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 > #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 > #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 > #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 > #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 > #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 > #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 > #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 > #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 > #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #33 0x9713885d in _pthread_start () > #34 0x971386e2 in thread_start () > > Thread 64 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 > #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 > #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 > #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 > #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 > #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 > #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 > #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 > #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 > #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 > #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 > #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #28 0x9713885d in _pthread_start () > #29 0x971386e2 in thread_start () > > Thread 60 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 > #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 > #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 > #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 59 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 > #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 > #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 > #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 > #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 > #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 > #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 > #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 > #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #19 0x9713885d in _pthread_start () > #20 0x971386e2 in thread_start () > > Thread 52 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 > #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 > #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 > #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #14 0x9713885d in _pthread_start () > #15 0x971386e2 in thread_start () > > Thread 51 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 > #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 > #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 > #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 > #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #14 0x9713885d in _pthread_start () > #15 0x971386e2 in thread_start () > > Thread 27 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 2 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 > #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 > #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 > #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 > #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > From jay.krell at cornell.edu Fri Jan 7 21:31:00 2011 From: jay.krell at cornell.edu (Jay K) Date: Fri, 7 Jan 2011 20:31:00 +0000 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: <10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu> References: <20110107151412.026651A205B@async.async.caltech.edu>, <10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu> Message-ID: We need a lock order. I guessed. Maybe poorly. I/we should study the code and these stacks more and determine its validity. Here is the code, *slightly* altered just now for debuggability. VAR ? locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; PROCEDURE AtForkPrepare() = ? VAR me := GetActivation(); ????? act: Activation; ????? cond: Condition; ? BEGIN ??? Acquire(joinMu); ??? LockHeap(); ??? FOR i := FIRST(locks) TO LAST(locks) DO ????? PThreadLockMutex(locks[i], ThisLine(), i); ??? END; ??? (* Walk activations and lock all threads, conditions. ???? * NOTE: We have initMu, activeMu, so slots ???? * won't change, conditions and mutexes ???? * won't be initialized on-demand. ???? *) ??? act := me; ??? REPEAT ????? PThreadLockMutex(act.mutex, ThisLine(), -1); ????? (*PThreadLockMutex(act.waitingOn, ThisLine());*) ????? cond := slots[act.slot].join; ????? IF cond # NIL THEN PThreadLockMutex(cond.mutex, ThisLine(), -2) END; ????? act := act.next; ??? UNTIL act = me; ? END AtForkPrepare; Mika, if this easy to reproduce, please try again from head. The problem is not fixed, but there's a little more information that will appear. ?- Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Fri, 7 Jan 2011 10:42:38 -0500 > To: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > This has something to do with the fork handlers Jay introduced, which run when a process is forked. They invoke LockHeap in the parent before the fork, and UnlockHeap in the parent after the fork. It appears that your threads are stuck waiting on LockHeap. Also, we have two threads in your trace trying to acquire initMu. Jay, I think we have a deadlock caused by AtForkPrepare. Ideas? > > On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: > > > Hi m3devel (especially Tony), > > > > I'm having a problem with a Modula-3 program that seems to deadlock > > with one of my 60+ threads stuck in Process.Create. Is it possible > > there is a bug in ThreadPThread.m3? (Would be really nice to have a > > deadlock detector here, you know... rather than have the program go > > catatonic when there's a deadlock. Deadlock is stable so the detector > > could run very infrequently---i.e., be very inefficient---and still be > > extremely useful....) > > > > I don't think there is anything I ought to be able to do from "user > > code" that would cause Process.Create to be part of a deadlock cycle. > > Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) > > possibly exhibit itself as a failure of Process.Create to complete?? > > > > Below are backtraces of the threads stuck in some sort of locking > > activity, platform is I386_DARWIN at head as of a couple of weeks ago. > > (I deleted the threads that are up to other things than locking.) > > > > Mika > > > > Thread 68 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > > #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 > > #5 0x97137217 in _cthread_fork_prepare () > > #6 0x97137155 in fork () > > #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC > > ommon.m3:75 > > #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > > #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > > #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 > > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #13 0x9713885d in _pthread_start () > > #14 0x971386e2 in thread_start () > > > > Thread 65 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 > > #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 > > #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 > > #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > > #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 > > #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 > > #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 > > #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 > > #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 > > #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 > > #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 > > #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 > > #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 > > #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 > > #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 > > #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > > #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > > #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > > #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 > > #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #33 0x9713885d in _pthread_start () > > #34 0x971386e2 in thread_start () > > > > Thread 64 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 > > #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 > > #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 > > #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > > #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 > > #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 > > #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 > > #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 > > #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 > > #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 > > #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 > > #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > > #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > > #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > > #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 > > #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #28 0x9713885d in _pthread_start () > > #29 0x971386e2 in thread_start () > > > > Thread 60 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > > #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > > #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 > > #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 > > #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 > > #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > > #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 > > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #12 0x9713885d in _pthread_start () > > #13 0x971386e2 in thread_start () > > > > Thread 59 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > > #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 > > #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 > > #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 > > #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 > > #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 > > #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 > > #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 > > #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > > #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > > #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > > #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 > > #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #19 0x9713885d in _pthread_start () > > #20 0x971386e2 in thread_start () > > > > Thread 52 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > > #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 > > #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 > > #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 > > #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > > #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > > #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > > #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 > > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #14 0x9713885d in _pthread_start () > > #15 0x971386e2 in thread_start () > > > > Thread 51 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > > #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 > > #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 > > #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > > #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > > #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 > > #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 > > #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 > > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #14 0x9713885d in _pthread_start () > > #15 0x971386e2 in thread_start () > > > > Thread 27 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > > #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > > #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > > #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 > > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #9 0x9713885d in _pthread_start () > > #10 0x971386e2 in thread_start () > > > > Thread 2 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 > > #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 > > #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 > > #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 > > #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 > > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #13 0x9713885d in _pthread_start () > > #14 0x971386e2 in thread_start () > > > > > From jay.krell at cornell.edu Sat Jan 8 00:51:16 2011 From: jay.krell at cornell.edu (Jay K) Date: Fri, 7 Jan 2011 23:51:16 +0000 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: References: <20110107151412.026651A205B@async.async.caltech.edu>, <10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu>, Message-ID: Btw, I didn't entirely guess, but it looks like my analysis was incomplete. Mostly the locks aren't taken together. But not entirely.. I think I see the problem or almost. > > Thread 64 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 has initMu and is trying to LockHeap We can release initMu before calling RegisterFinalCleanup here, right? And then AtForkPrepare locks the heap before initMu. ? locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; PROCEDURE AtForkPrepare() = ? VAR me := GetActivation(); ????? act: Activation; ????? cond: Condition; ? BEGIN ??? Acquire(joinMu); ??? LockHeap(); ??? FOR i := FIRST(locks) TO LAST(locks) DO ????? PThreadLockMutex(locks[i], ThisLine(), i); ??? END; ?- Jay ---------------------------------------- > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu; mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: RE: [M3devel] deadlock... in ThreadPThread.m3? > Date: Fri, 7 Jan 2011 20:31:00 +0000 > > > We need a lock order. I guessed. Maybe poorly. I/we should study the code and these stacks more and determine its validity. > > > Here is the code, *slightly* altered just now for debuggability. > > > VAR > locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; > > > > PROCEDURE AtForkPrepare() = > VAR me := GetActivation(); > act: Activation; > cond: Condition; > BEGIN > Acquire(joinMu); > LockHeap(); > FOR i := FIRST(locks) TO LAST(locks) DO > PThreadLockMutex(locks[i], ThisLine(), i); > END; > (* Walk activations and lock all threads, conditions. > * NOTE: We have initMu, activeMu, so slots > * won't change, conditions and mutexes > * won't be initialized on-demand. > *) > act := me; > REPEAT > PThreadLockMutex(act.mutex, ThisLine(), -1); > (*PThreadLockMutex(act.waitingOn, ThisLine());*) > cond := slots[act.slot].join; > IF cond # NIL THEN PThreadLockMutex(cond.mutex, ThisLine(), -2) END; > act := act.next; > UNTIL act = me; > END AtForkPrepare; > > > > Mika, if this easy to reproduce, please try again from head. > The problem is not fixed, but there's a little more information that will appear. > > > - Jay > > > > ---------------------------------------- > > From: hosking at cs.purdue.edu > > Date: Fri, 7 Jan 2011 10:42:38 -0500 > > To: mika at async.caltech.edu > > CC: m3devel at elegosoft.com > > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > > > This has something to do with the fork handlers Jay introduced, which run when a process is forked. They invoke LockHeap in the parent before the fork, and UnlockHeap in the parent after the fork. It appears that your threads are stuck waiting on LockHeap. Also, we have two threads in your trace trying to acquire initMu. Jay, I think we have a deadlock caused by AtForkPrepare. Ideas? > > > > On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: > > > > > Hi m3devel (especially Tony), > > > > > > I'm having a problem with a Modula-3 program that seems to deadlock > > > with one of my 60+ threads stuck in Process.Create. Is it possible > > > there is a bug in ThreadPThread.m3? (Would be really nice to have a > > > deadlock detector here, you know... rather than have the program go > > > catatonic when there's a deadlock. Deadlock is stable so the detector > > > could run very infrequently---i.e., be very inefficient---and still be > > > extremely useful....) > > > > > > I don't think there is anything I ought to be able to do from "user > > > code" that would cause Process.Create to be part of a deadlock cycle. > > > Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) > > > possibly exhibit itself as a failure of Process.Create to complete?? > > > > > > Below are backtraces of the threads stuck in some sort of locking > > > activity, platform is I386_DARWIN at head as of a couple of weeks ago. > > > (I deleted the threads that are up to other things than locking.) > > > > > > Mika > > > > > > Thread 68 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > > > #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 > > > #5 0x97137217 in _cthread_fork_prepare () > > > #6 0x97137155 in fork () > > > #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC > > > ommon.m3:75 > > > #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > > > #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > > > #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 > > > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #13 0x9713885d in _pthread_start () > > > #14 0x971386e2 in thread_start () > > > > > > Thread 65 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > > #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 > > > #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > > #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 > > > #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 > > > #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > > > #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 > > > #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 > > > #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 > > > #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 > > > #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 > > > #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 > > > #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 > > > #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 > > > #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 > > > #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 > > > #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 > > > #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > > > #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > > > #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > > > #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 > > > #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #33 0x9713885d in _pthread_start () > > > #34 0x971386e2 in thread_start () > > > > > > Thread 64 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > > > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > > > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 > > > #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > > #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 > > > #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 > > > #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > > > #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 > > > #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 > > > #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > > #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 > > > #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > > #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 > > > #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > > #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 > > > #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 > > > #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 > > > #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > > > #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > > > #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > > > #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 > > > #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #28 0x9713885d in _pthread_start () > > > #29 0x971386e2 in thread_start () > > > > > > Thread 60 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > > > #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > > > #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 > > > #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 > > > #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 > > > #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > > > #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 > > > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #12 0x9713885d in _pthread_start () > > > #13 0x971386e2 in thread_start () > > > > > > Thread 59 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > > #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > > > #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 > > > #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 > > > #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 > > > #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 > > > #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 > > > #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 > > > #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 > > > #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > > > #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > > > #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > > > #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 > > > #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #19 0x9713885d in _pthread_start () > > > #20 0x971386e2 in thread_start () > > > > > > Thread 52 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > > > #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 > > > #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 > > > #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 > > > #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > > > #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > > > #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > > > #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 > > > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #14 0x9713885d in _pthread_start () > > > #15 0x971386e2 in thread_start () > > > > > > Thread 51 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > > > #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 > > > #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 > > > #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > > > #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > > > #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 > > > #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 > > > #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 > > > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #14 0x9713885d in _pthread_start () > > > #15 0x971386e2 in thread_start () > > > > > > Thread 27 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > > > #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > > > #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > > > #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 > > > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #9 0x9713885d in _pthread_start () > > > #10 0x971386e2 in thread_start () > > > > > > Thread 2 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > > #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 > > > #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > > #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 > > > #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 > > > #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 > > > #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 > > > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #13 0x9713885d in _pthread_start () > > > #14 0x971386e2 in thread_start () > > > > > > > > > From jay.krell at cornell.edu Sat Jan 8 01:24:53 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 00:24:53 +0000 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: References: <20110107151412.026651A205B@async.async.caltech.edu>, , <10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu>, , , Message-ID: ? Index: PTHREAD/ThreadPThread.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3,v retrieving revision 1.244 diff -u -w -r1.244 ThreadPThread.m3 --- PTHREAD/ThreadPThread.m3??? 7 Jan 2011 20:28:59 -0000??? 1.244 +++ PTHREAD/ThreadPThread.m3??? 8 Jan 2011 00:24:26 -0000 @@ -97,8 +97,10 @@ ????????????????????? Clean: PROCEDURE(root: REFANY)) = ?? VAR mutex := pthread_mutex_new(); ?? BEGIN +??? LockHeap(); ???? TRY ?????? WITH r = pthread_mutex_lock(initMu) DO <*ASSERT r=0*> END; +????? TRY ?????? (* Did someone else win? *) ?????? IF m # NIL THEN RETURN END; ?????? (* We won, but we might have failed to allocate! *) @@ -109,6 +111,9 @@ ???? FINALLY ?????? WITH r = pthread_mutex_unlock(initMu) DO <*ASSERT r=0*> END; ?????? pthread_mutex_delete(mutex); +????? END +??? FINALLY +????? UnlockHeap(); ???? END; ?? END InitMutex; ? I'll try this. ?- Jay ---------------------------------------- > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu; mika at async.caltech.edu > Date: Fri, 7 Jan 2011 23:51:16 +0000 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > > Btw, I didn't entirely guess, but it looks like my analysis was incomplete. > Mostly the locks aren't taken together. But not entirely.. > > > I think I see the problem or almost. > > > > > Thread 64 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > > > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > > > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > has initMu and is trying to LockHeap > > > We can release initMu before calling RegisterFinalCleanup here, right? > > > And then AtForkPrepare locks the heap before initMu. > > > locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; > > > PROCEDURE AtForkPrepare() = > VAR me := GetActivation(); > act: Activation; > cond: Condition; > BEGIN > Acquire(joinMu); > LockHeap(); > FOR i := FIRST(locks) TO LAST(locks) DO > PThreadLockMutex(locks[i], ThisLine(), i); > END; > > > - Jay > > > > > > > > > > > ---------------------------------------- > > From: jay.krell at cornell.edu > > To: hosking at cs.purdue.edu; mika at async.caltech.edu > > CC: m3devel at elegosoft.com > > Subject: RE: [M3devel] deadlock... in ThreadPThread.m3? > > Date: Fri, 7 Jan 2011 20:31:00 +0000 > > > > > > We need a lock order. I guessed. Maybe poorly. I/we should study the code and these stacks more and determine its validity. > > > > > > Here is the code, *slightly* altered just now for debuggability. > > > > > > VAR > > locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; > > > > > > > > PROCEDURE AtForkPrepare() = > > VAR me := GetActivation(); > > act: Activation; > > cond: Condition; > > BEGIN > > Acquire(joinMu); > > LockHeap(); > > FOR i := FIRST(locks) TO LAST(locks) DO > > PThreadLockMutex(locks[i], ThisLine(), i); > > END; > > (* Walk activations and lock all threads, conditions. > > * NOTE: We have initMu, activeMu, so slots > > * won't change, conditions and mutexes > > * won't be initialized on-demand. > > *) > > act := me; > > REPEAT > > PThreadLockMutex(act.mutex, ThisLine(), -1); > > (*PThreadLockMutex(act.waitingOn, ThisLine());*) > > cond := slots[act.slot].join; > > IF cond # NIL THEN PThreadLockMutex(cond.mutex, ThisLine(), -2) END; > > act := act.next; > > UNTIL act = me; > > END AtForkPrepare; > > > > > > > > Mika, if this easy to reproduce, please try again from head. > > The problem is not fixed, but there's a little more information that will appear. > > > > > > - Jay > > > > > > > > ---------------------------------------- > > > From: hosking at cs.purdue.edu > > > Date: Fri, 7 Jan 2011 10:42:38 -0500 > > > To: mika at async.caltech.edu > > > CC: m3devel at elegosoft.com > > > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > > > > > This has something to do with the fork handlers Jay introduced, which run when a process is forked. They invoke LockHeap in the parent before the fork, and UnlockHeap in the parent after the fork. It appears that your threads are stuck waiting on LockHeap. Also, we have two threads in your trace trying to acquire initMu. Jay, I think we have a deadlock caused by AtForkPrepare. Ideas? > > > > > > On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: > > > > > > > Hi m3devel (especially Tony), > > > > > > > > I'm having a problem with a Modula-3 program that seems to deadlock > > > > with one of my 60+ threads stuck in Process.Create. Is it possible > > > > there is a bug in ThreadPThread.m3? (Would be really nice to have a > > > > deadlock detector here, you know... rather than have the program go > > > > catatonic when there's a deadlock. Deadlock is stable so the detector > > > > could run very infrequently---i.e., be very inefficient---and still be > > > > extremely useful....) > > > > > > > > I don't think there is anything I ought to be able to do from "user > > > > code" that would cause Process.Create to be part of a deadlock cycle. > > > > Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) > > > > possibly exhibit itself as a failure of Process.Create to complete?? > > > > > > > > Below are backtraces of the threads stuck in some sort of locking > > > > activity, platform is I386_DARWIN at head as of a couple of weeks ago. > > > > (I deleted the threads that are up to other things than locking.) > > > > > > > > Mika > > > > > > > > Thread 68 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > > > > #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 > > > > #5 0x97137217 in _cthread_fork_prepare () > > > > #6 0x97137155 in fork () > > > > #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC > > > > ommon.m3:75 > > > > #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > > > > #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > > > > #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 > > > > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #13 0x9713885d in _pthread_start () > > > > #14 0x971386e2 in thread_start () > > > > > > > > Thread 65 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > > > #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > > #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 > > > > #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > > > #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 > > > > #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 > > > > #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > > > > #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 > > > > #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 > > > > #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > > #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 > > > > #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 > > > > #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > > #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 > > > > #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > > #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 > > > > #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > > #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 > > > > #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > > #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 > > > > #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > > #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 > > > > #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 > > > > #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 > > > > #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > > > > #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > > > > #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > > > > #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 > > > > #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #33 0x9713885d in _pthread_start () > > > > #34 0x971386e2 in thread_start () > > > > > > > > Thread 64 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > > > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > > > > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > > > > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > > #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 > > > > #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > > > #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 > > > > #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 > > > > #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > > > > #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 > > > > #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 > > > > #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > > > #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 > > > > #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > > > #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 > > > > #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > > > #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 > > > > #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 > > > > #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 > > > > #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > > > > #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > > > > #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > > > > #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 > > > > #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #28 0x9713885d in _pthread_start () > > > > #29 0x971386e2 in thread_start () > > > > > > > > Thread 60 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > > > > #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > > > > #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 > > > > #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 > > > > #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 > > > > #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > > > > #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 > > > > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #12 0x9713885d in _pthread_start () > > > > #13 0x971386e2 in thread_start () > > > > > > > > Thread 59 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > > > #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > > #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > > > > #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 > > > > #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 > > > > #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 > > > > #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 > > > > #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 > > > > #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 > > > > #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 > > > > #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > > > > #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > > > > #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > > > > #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 > > > > #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #19 0x9713885d in _pthread_start () > > > > #20 0x971386e2 in thread_start () > > > > > > > > Thread 52 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > > > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > > > > #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 > > > > #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 > > > > #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 > > > > #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > > > > #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > > > > #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > > > > #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 > > > > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #14 0x9713885d in _pthread_start () > > > > #15 0x971386e2 in thread_start () > > > > > > > > Thread 51 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > > > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > > > > #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 > > > > #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 > > > > #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > > > > #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > > > > #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 > > > > #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 > > > > #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 > > > > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #14 0x9713885d in _pthread_start () > > > > #15 0x971386e2 in thread_start () > > > > > > > > Thread 27 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > > > > #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > > > > #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > > > > #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 > > > > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #9 0x9713885d in _pthread_start () > > > > #10 0x971386e2 in thread_start () > > > > > > > > Thread 2 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > > > #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > > #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 > > > > #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > > > #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 > > > > #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 > > > > #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 > > > > #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 > > > > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #13 0x9713885d in _pthread_start () > > > > #14 0x971386e2 in thread_start () > > > > > > > > > > > > > > From hosking at cs.purdue.edu Sat Jan 8 02:31:36 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 7 Jan 2011 20:31:36 -0500 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: References: <20110107151412.026651A205B@async.async.caltech.edu>, , <10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu>, , , Message-ID: <0A37C595-C896-4B66-9EDF-61BB30645321@cs.purdue.edu> No, we don't want that since it can cause other problems. Better is not to be holding LockHeap when you acquire initMu in AtForkPrepare. Also, do we really need to hold LockHeap across the fork? I don't see the need for it. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 7, 2011, at 7:24 PM, Jay K wrote: > > ? > > Index: PTHREAD/ThreadPThread.m3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3,v > retrieving revision 1.244 > diff -u -w -r1.244 ThreadPThread.m3 > --- PTHREAD/ThreadPThread.m3 7 Jan 2011 20:28:59 -0000 1.244 > +++ PTHREAD/ThreadPThread.m3 8 Jan 2011 00:24:26 -0000 > @@ -97,8 +97,10 @@ > Clean: PROCEDURE(root: REFANY)) = > VAR mutex := pthread_mutex_new(); > BEGIN > + LockHeap(); > TRY > WITH r = pthread_mutex_lock(initMu) DO <*ASSERT r=0*> END; > + TRY > (* Did someone else win? *) > IF m # NIL THEN RETURN END; > (* We won, but we might have failed to allocate! *) > @@ -109,6 +111,9 @@ > FINALLY > WITH r = pthread_mutex_unlock(initMu) DO <*ASSERT r=0*> END; > pthread_mutex_delete(mutex); > + END > + FINALLY > + UnlockHeap(); > END; > END InitMutex; > > > > I'll try this. > > > - Jay > > > ---------------------------------------- >> From: jay.krell at cornell.edu >> To: hosking at cs.purdue.edu; mika at async.caltech.edu >> Date: Fri, 7 Jan 2011 23:51:16 +0000 >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? >> >> >> Btw, I didn't entirely guess, but it looks like my analysis was incomplete. >> Mostly the locks aren't taken together. But not entirely.. >> >> >> I think I see the problem or almost. >> >> >>>> Thread 64 (process 32362): >>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>> #1 0x97110c46 in pthread_mutex_lock () >>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 >>>> #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 >>>> #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 >>>> #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >> >> >> has initMu and is trying to LockHeap >> >> >> We can release initMu before calling RegisterFinalCleanup here, right? >> >> >> And then AtForkPrepare locks the heap before initMu. >> >> >> locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; >> >> >> PROCEDURE AtForkPrepare() = >> VAR me := GetActivation(); >> act: Activation; >> cond: Condition; >> BEGIN >> Acquire(joinMu); >> LockHeap(); >> FOR i := FIRST(locks) TO LAST(locks) DO >> PThreadLockMutex(locks[i], ThisLine(), i); >> END; >> >> >> - Jay >> >> >> >> >> >> >> >> >> >> >> ---------------------------------------- >>> From: jay.krell at cornell.edu >>> To: hosking at cs.purdue.edu; mika at async.caltech.edu >>> CC: m3devel at elegosoft.com >>> Subject: RE: [M3devel] deadlock... in ThreadPThread.m3? >>> Date: Fri, 7 Jan 2011 20:31:00 +0000 >>> >>> >>> We need a lock order. I guessed. Maybe poorly. I/we should study the code and these stacks more and determine its validity. >>> >>> >>> Here is the code, *slightly* altered just now for debuggability. >>> >>> >>> VAR >>> locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; >>> >>> >>> >>> PROCEDURE AtForkPrepare() = >>> VAR me := GetActivation(); >>> act: Activation; >>> cond: Condition; >>> BEGIN >>> Acquire(joinMu); >>> LockHeap(); >>> FOR i := FIRST(locks) TO LAST(locks) DO >>> PThreadLockMutex(locks[i], ThisLine(), i); >>> END; >>> (* Walk activations and lock all threads, conditions. >>> * NOTE: We have initMu, activeMu, so slots >>> * won't change, conditions and mutexes >>> * won't be initialized on-demand. >>> *) >>> act := me; >>> REPEAT >>> PThreadLockMutex(act.mutex, ThisLine(), -1); >>> (*PThreadLockMutex(act.waitingOn, ThisLine());*) >>> cond := slots[act.slot].join; >>> IF cond # NIL THEN PThreadLockMutex(cond.mutex, ThisLine(), -2) END; >>> act := act.next; >>> UNTIL act = me; >>> END AtForkPrepare; >>> >>> >>> >>> Mika, if this easy to reproduce, please try again from head. >>> The problem is not fixed, but there's a little more information that will appear. >>> >>> >>> - Jay >>> >>> >>> >>> ---------------------------------------- >>>> From: hosking at cs.purdue.edu >>>> Date: Fri, 7 Jan 2011 10:42:38 -0500 >>>> To: mika at async.caltech.edu >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? >>>> >>>> This has something to do with the fork handlers Jay introduced, which run when a process is forked. They invoke LockHeap in the parent before the fork, and UnlockHeap in the parent after the fork. It appears that your threads are stuck waiting on LockHeap. Also, we have two threads in your trace trying to acquire initMu. Jay, I think we have a deadlock caused by AtForkPrepare. Ideas? >>>> >>>> On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: >>>> >>>>> Hi m3devel (especially Tony), >>>>> >>>>> I'm having a problem with a Modula-3 program that seems to deadlock >>>>> with one of my 60+ threads stuck in Process.Create. Is it possible >>>>> there is a bug in ThreadPThread.m3? (Would be really nice to have a >>>>> deadlock detector here, you know... rather than have the program go >>>>> catatonic when there's a deadlock. Deadlock is stable so the detector >>>>> could run very infrequently---i.e., be very inefficient---and still be >>>>> extremely useful....) >>>>> >>>>> I don't think there is anything I ought to be able to do from "user >>>>> code" that would cause Process.Create to be part of a deadlock cycle. >>>>> Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) >>>>> possibly exhibit itself as a failure of Process.Create to complete?? >>>>> >>>>> Below are backtraces of the threads stuck in some sort of locking >>>>> activity, platform is I386_DARWIN at head as of a couple of weeks ago. >>>>> (I deleted the threads that are up to other things than locking.) >>>>> >>>>> Mika >>>>> >>>>> Thread 68 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 >>>>> #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 >>>>> #5 0x97137217 in _cthread_fork_prepare () >>>>> #6 0x97137155 in fork () >>>>> #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC >>>>> ommon.m3:75 >>>>> #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 >>>>> #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 >>>>> #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 >>>>> #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #13 0x9713885d in _pthread_start () >>>>> #14 0x971386e2 in thread_start () >>>>> >>>>> Thread 65 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >>>>> #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >>>>> #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 >>>>> #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 >>>>> #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 >>>>> #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 >>>>> #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 >>>>> #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 >>>>> #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 >>>>> #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>>>> #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 >>>>> #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 >>>>> #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>>>> #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 >>>>> #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>>>> #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 >>>>> #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>>>> #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 >>>>> #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>>>> #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 >>>>> #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>>>> #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 >>>>> #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 >>>>> #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 >>>>> #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 >>>>> #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 >>>>> #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 >>>>> #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 >>>>> #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #33 0x9713885d in _pthread_start () >>>>> #34 0x971386e2 in thread_start () >>>>> >>>>> Thread 64 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 >>>>> #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 >>>>> #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 >>>>> #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >>>>> #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 >>>>> #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 >>>>> #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 >>>>> #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 >>>>> #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 >>>>> #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 >>>>> #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 >>>>> #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 >>>>> #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 >>>>> #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 >>>>> #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 >>>>> #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 >>>>> #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 >>>>> #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 >>>>> #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 >>>>> #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 >>>>> #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 >>>>> #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 >>>>> #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 >>>>> #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #28 0x9713885d in _pthread_start () >>>>> #29 0x971386e2 in thread_start () >>>>> >>>>> Thread 60 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 >>>>> #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 >>>>> #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 >>>>> #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 >>>>> #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 >>>>> #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 >>>>> #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 >>>>> #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #12 0x9713885d in _pthread_start () >>>>> #13 0x971386e2 in thread_start () >>>>> >>>>> Thread 59 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >>>>> #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >>>>> #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 >>>>> #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 >>>>> #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 >>>>> #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 >>>>> #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 >>>>> #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 >>>>> #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 >>>>> #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 >>>>> #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 >>>>> #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 >>>>> #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 >>>>> #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 >>>>> #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #19 0x9713885d in _pthread_start () >>>>> #20 0x971386e2 in thread_start () >>>>> >>>>> Thread 52 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 >>>>> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 >>>>> #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 >>>>> #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 >>>>> #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 >>>>> #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 >>>>> #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 >>>>> #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 >>>>> #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 >>>>> #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #14 0x9713885d in _pthread_start () >>>>> #15 0x971386e2 in thread_start () >>>>> >>>>> Thread 51 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 >>>>> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 >>>>> #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 >>>>> #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 >>>>> #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 >>>>> #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 >>>>> #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 >>>>> #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 >>>>> #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 >>>>> #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #14 0x9713885d in _pthread_start () >>>>> #15 0x971386e2 in thread_start () >>>>> >>>>> Thread 27 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 >>>>> #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 >>>>> #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 >>>>> #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 >>>>> #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #9 0x9713885d in _pthread_start () >>>>> #10 0x971386e2 in thread_start () >>>>> >>>>> Thread 2 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >>>>> #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >>>>> #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 >>>>> #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 >>>>> #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 >>>>> #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 >>>>> #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 >>>>> #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 >>>>> #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #13 0x9713885d in _pthread_start () >>>>> #14 0x971386e2 in thread_start () >>>>> >>>>> >>>> >>> >> > From jay.krell at cornell.edu Sat Jan 8 03:08:26 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 02:08:26 +0000 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: <0A37C595-C896-4B66-9EDF-61BB30645321@cs.purdue.edu> References: <20110107151412.026651A205B@async.async.caltech.edu>, ,,<10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu>, , , , , , , <0A37C595-C896-4B66-9EDF-61BB30645321@cs.purdue.edu> Message-ID: The basic requirement, I know it sounds wierd at first, but is to hold *all* mutexes across the fork. Consider a multi-threaded program, that calls fork, possibly on multiple threads. If some threads are doing "random" work and some are calling fork, then the state of the mutexes will be arbitrary in the child process and the child process will inevitably hand/deadlock upon attempted to use them. The model in mind is that there is not any central "control". Arbitrary code, in aribtrary threads, can be calling fork at arbitrary times. And it makes a fair amount of sense, I think. Any "component" (library, module, etc.) that uses any mutexes should register a fork prepare and takes all of its mutexes. What problems would it cause to take the heap lock around the mutex init? upgrade and build-all works, which does excerise this path some. ? Granted, the compiler isn't aggressively multithreaded, but does have the GC thread. I guess we can release initMu before registering the cleanup?? ?- Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Fri, 7 Jan 2011 20:31:36 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > No, we don't want that since it can cause other problems. Better is not to be holding LockHeap when you acquire initMu in AtForkPrepare. > Also, do we really need to hold LockHeap across the fork? I don't see the need for it. > > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 | Mobile +1 765 427 5484 > > > > > On Jan 7, 2011, at 7:24 PM, Jay K wrote: > > > > > ? > > > > Index: PTHREAD/ThreadPThread.m3 > > =================================================================== > > RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3,v > > retrieving revision 1.244 > > diff -u -w -r1.244 ThreadPThread.m3 > > --- PTHREAD/ThreadPThread.m3 7 Jan 2011 20:28:59 -0000 1.244 > > +++ PTHREAD/ThreadPThread.m3 8 Jan 2011 00:24:26 -0000 > > @@ -97,8 +97,10 @@ > > Clean: PROCEDURE(root: REFANY)) = > > VAR mutex := pthread_mutex_new(); > > BEGIN > > + LockHeap(); > > TRY > > WITH r = pthread_mutex_lock(initMu) DO <*ASSERT r=0*> END; > > + TRY > > (* Did someone else win? *) > > IF m # NIL THEN RETURN END; > > (* We won, but we might have failed to allocate! *) > > @@ -109,6 +111,9 @@ > > FINALLY > > WITH r = pthread_mutex_unlock(initMu) DO <*ASSERT r=0*> END; > > pthread_mutex_delete(mutex); > > + END > > + FINALLY > > + UnlockHeap(); > > END; > > END InitMutex; > > > > > > > > I'll try this. > > > > > > - Jay > > > > > > ---------------------------------------- > >> From: jay.krell at cornell.edu > >> To: hosking at cs.purdue.edu; mika at async.caltech.edu > >> Date: Fri, 7 Jan 2011 23:51:16 +0000 > >> CC: m3devel at elegosoft.com > >> Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > >> > >> > >> Btw, I didn't entirely guess, but it looks like my analysis was incomplete. > >> Mostly the locks aren't taken together. But not entirely.. > >> > >> > >> I think I see the problem or almost. > >> > >> > >>>> Thread 64 (process 32362): > >>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>> #1 0x97110c46 in pthread_mutex_lock () > >>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > >>>> #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > >>>> #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > >>>> #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > >> > >> > >> has initMu and is trying to LockHeap > >> > >> > >> We can release initMu before calling RegisterFinalCleanup here, right? > >> > >> > >> And then AtForkPrepare locks the heap before initMu. > >> > >> > >> locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; > >> > >> > >> PROCEDURE AtForkPrepare() = > >> VAR me := GetActivation(); > >> act: Activation; > >> cond: Condition; > >> BEGIN > >> Acquire(joinMu); > >> LockHeap(); > >> FOR i := FIRST(locks) TO LAST(locks) DO > >> PThreadLockMutex(locks[i], ThisLine(), i); > >> END; > >> > >> > >> - Jay > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> ---------------------------------------- > >>> From: jay.krell at cornell.edu > >>> To: hosking at cs.purdue.edu; mika at async.caltech.edu > >>> CC: m3devel at elegosoft.com > >>> Subject: RE: [M3devel] deadlock... in ThreadPThread.m3? > >>> Date: Fri, 7 Jan 2011 20:31:00 +0000 > >>> > >>> > >>> We need a lock order. I guessed. Maybe poorly. I/we should study the code and these stacks more and determine its validity. > >>> > >>> > >>> Here is the code, *slightly* altered just now for debuggability. > >>> > >>> > >>> VAR > >>> locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; > >>> > >>> > >>> > >>> PROCEDURE AtForkPrepare() = > >>> VAR me := GetActivation(); > >>> act: Activation; > >>> cond: Condition; > >>> BEGIN > >>> Acquire(joinMu); > >>> LockHeap(); > >>> FOR i := FIRST(locks) TO LAST(locks) DO > >>> PThreadLockMutex(locks[i], ThisLine(), i); > >>> END; > >>> (* Walk activations and lock all threads, conditions. > >>> * NOTE: We have initMu, activeMu, so slots > >>> * won't change, conditions and mutexes > >>> * won't be initialized on-demand. > >>> *) > >>> act := me; > >>> REPEAT > >>> PThreadLockMutex(act.mutex, ThisLine(), -1); > >>> (*PThreadLockMutex(act.waitingOn, ThisLine());*) > >>> cond := slots[act.slot].join; > >>> IF cond # NIL THEN PThreadLockMutex(cond.mutex, ThisLine(), -2) END; > >>> act := act.next; > >>> UNTIL act = me; > >>> END AtForkPrepare; > >>> > >>> > >>> > >>> Mika, if this easy to reproduce, please try again from head. > >>> The problem is not fixed, but there's a little more information that will appear. > >>> > >>> > >>> - Jay > >>> > >>> > >>> > >>> ---------------------------------------- > >>>> From: hosking at cs.purdue.edu > >>>> Date: Fri, 7 Jan 2011 10:42:38 -0500 > >>>> To: mika at async.caltech.edu > >>>> CC: m3devel at elegosoft.com > >>>> Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > >>>> > >>>> This has something to do with the fork handlers Jay introduced, which run when a process is forked. They invoke LockHeap in the parent before the fork, and UnlockHeap in the parent after the fork. It appears that your threads are stuck waiting on LockHeap. Also, we have two threads in your trace trying to acquire initMu. Jay, I think we have a deadlock caused by AtForkPrepare. Ideas? > >>>> > >>>> On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: > >>>> > >>>>> Hi m3devel (especially Tony), > >>>>> > >>>>> I'm having a problem with a Modula-3 program that seems to deadlock > >>>>> with one of my 60+ threads stuck in Process.Create. Is it possible > >>>>> there is a bug in ThreadPThread.m3? (Would be really nice to have a > >>>>> deadlock detector here, you know... rather than have the program go > >>>>> catatonic when there's a deadlock. Deadlock is stable so the detector > >>>>> could run very infrequently---i.e., be very inefficient---and still be > >>>>> extremely useful....) > >>>>> > >>>>> I don't think there is anything I ought to be able to do from "user > >>>>> code" that would cause Process.Create to be part of a deadlock cycle. > >>>>> Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) > >>>>> possibly exhibit itself as a failure of Process.Create to complete?? > >>>>> > >>>>> Below are backtraces of the threads stuck in some sort of locking > >>>>> activity, platform is I386_DARWIN at head as of a couple of weeks ago. > >>>>> (I deleted the threads that are up to other things than locking.) > >>>>> > >>>>> Mika > >>>>> > >>>>> Thread 68 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > >>>>> #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 > >>>>> #5 0x97137217 in _cthread_fork_prepare () > >>>>> #6 0x97137155 in fork () > >>>>> #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC > >>>>> ommon.m3:75 > >>>>> #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > >>>>> #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > >>>>> #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 > >>>>> #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #13 0x9713885d in _pthread_start () > >>>>> #14 0x971386e2 in thread_start () > >>>>> > >>>>> Thread 65 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >>>>> #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > >>>>> #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 > >>>>> #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > >>>>> #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 > >>>>> #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 > >>>>> #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > >>>>> #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 > >>>>> #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 > >>>>> #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > >>>>> #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 > >>>>> #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 > >>>>> #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > >>>>> #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 > >>>>> #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > >>>>> #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 > >>>>> #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > >>>>> #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 > >>>>> #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > >>>>> #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 > >>>>> #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > >>>>> #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 > >>>>> #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 > >>>>> #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 > >>>>> #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > >>>>> #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > >>>>> #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > >>>>> #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 > >>>>> #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #33 0x9713885d in _pthread_start () > >>>>> #34 0x971386e2 in thread_start () > >>>>> > >>>>> Thread 64 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > >>>>> #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > >>>>> #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > >>>>> #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > >>>>> #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 > >>>>> #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > >>>>> #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 > >>>>> #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 > >>>>> #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > >>>>> #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 > >>>>> #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 > >>>>> #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > >>>>> #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 > >>>>> #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > >>>>> #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 > >>>>> #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > >>>>> #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 > >>>>> #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 > >>>>> #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 > >>>>> #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > >>>>> #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > >>>>> #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > >>>>> #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 > >>>>> #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #28 0x9713885d in _pthread_start () > >>>>> #29 0x971386e2 in thread_start () > >>>>> > >>>>> Thread 60 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > >>>>> #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > >>>>> #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 > >>>>> #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 > >>>>> #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 > >>>>> #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > >>>>> #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 > >>>>> #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #12 0x9713885d in _pthread_start () > >>>>> #13 0x971386e2 in thread_start () > >>>>> > >>>>> Thread 59 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >>>>> #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > >>>>> #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > >>>>> #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 > >>>>> #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 > >>>>> #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 > >>>>> #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 > >>>>> #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 > >>>>> #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 > >>>>> #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 > >>>>> #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > >>>>> #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > >>>>> #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > >>>>> #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 > >>>>> #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #19 0x9713885d in _pthread_start () > >>>>> #20 0x971386e2 in thread_start () > >>>>> > >>>>> Thread 52 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > >>>>> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > >>>>> #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 > >>>>> #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 > >>>>> #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 > >>>>> #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > >>>>> #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > >>>>> #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > >>>>> #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 > >>>>> #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #14 0x9713885d in _pthread_start () > >>>>> #15 0x971386e2 in thread_start () > >>>>> > >>>>> Thread 51 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > >>>>> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > >>>>> #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 > >>>>> #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 > >>>>> #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > >>>>> #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > >>>>> #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 > >>>>> #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 > >>>>> #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 > >>>>> #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #14 0x9713885d in _pthread_start () > >>>>> #15 0x971386e2 in thread_start () > >>>>> > >>>>> Thread 27 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > >>>>> #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > >>>>> #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > >>>>> #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 > >>>>> #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #9 0x9713885d in _pthread_start () > >>>>> #10 0x971386e2 in thread_start () > >>>>> > >>>>> Thread 2 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >>>>> #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > >>>>> #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 > >>>>> #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > >>>>> #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 > >>>>> #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 > >>>>> #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 > >>>>> #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 > >>>>> #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #13 0x9713885d in _pthread_start () > >>>>> #14 0x971386e2 in thread_start () > >>>>> > >>>>> > >>>> > >>> > >> > > > From jay.krell at cornell.edu Sat Jan 8 06:17:23 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 05:17:23 +0000 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: References: <20110106002615.77E782474003@birch.elegosoft.com>, Message-ID: fyi, small repro: MODULE Main; VAR x: [0L..0L]; PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; BEGIN ? F2(x); END Main. (32)???????????? start_call_direct procedure:0x4 level:0 (33)?????????????? load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 (34)?????????????? comment comment:********* M3CG_Check ERROR *********** bad stack:? expected [ Int64??? ] got [ Int32??? ] (35)?????????????? pop_param type:int_64 ?- Jay ________________________________ > From: jay.krell at cornell.edu > To: m3devel at elegosoft.com; mika at async.caltech.edu > Subject: RE: codegen error (from Mika, new test p250) > Date: Thu, 6 Jan 2011 01:21:00 +0000 > > fyi: > > jbook2:p250 jay$ rm -rf I386_DARWIN/ > jbook2:p250 jay$ cm3 -keep > --- building in I386_DARWIN --- > > new source -> compiling Main.m3 > "../Main.m3", line 1: 1 code generation error > 1 error encountered > compilation failed => not building program "pgm" > Fatal Error: package build failed > jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment > (4) comment comment:module global constants > (6) comment comment:module global data > (27) comment comment:F1 > (34) comment comment:********* M3CG_Check ERROR > *********** bad stack: expected [ Int64 ] got [ Int32 ] > (43) comment comment:F2 > (73) comment comment:Main_M3 > (74) comment comment:module main body Main_M3 > (83) comment comment:global constant type descriptor > (85) comment comment:global data type descriptor > (87) comment comment:module global constants > (90) comment comment:procedure names > (94) comment comment:procedure table > (101) comment comment:file name > (103) comment comment:type map for _t0174bdf4 > (106) comment comment:type description for _t0174bdf4 > (110) comment comment:module global data > (120) comment comment:typecell for _t0174bdf4 > (141) comment comment:load map > (4) comment comment:module global constants > (6) comment comment:module global data > (27) comment comment:F1 > (34) comment comment:********* M3CG_Check ERROR > *********** bad stack: expected [ Int64 ] got [ Int32 ] > (43) comment comment:F2 > (73) comment comment:Main_M3 > (74) comment comment:module main body Main_M3 > (83) comment comment:global constant type descriptor > (85) comment comment:global data type descriptor > (87) comment comment:module global constants > (90) comment comment:procedure names > (94) comment comment:procedure table > (101) comment comment:file name > (103) comment comment:type map for _t0174bdf4 > (106) comment comment:type description for _t0174bdf4 > (110) comment comment:module global data > (120) comment comment:typecell for _t0174bdf4 > (141) comment comment:load map > > > - Jay > > > > Date: Thu, 6 Jan 2011 01:26:15 +0000 > > To: m3commit at elegosoft.com > > From: jkrell at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 11/01/06 01:26:15 > > > > Modified files: > > cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > > > > Log message: > > slightly simpler, same error > > From jay.krell at cornell.edu Sat Jan 8 06:28:43 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 05:28:43 +0000 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: References: <20101227101653.307241A205B@async.async.caltech.edu>, , <20101227185453.97CE51A205B@async.async.caltech.edu>, Message-ID: Please try this Mika. It fixes the problem for me. retrieving revision 1.5 diff -u -r1.5 I386.common --- I386.common??? 6 Oct 2010 12:03:27 -0000??? 1.5 +++ I386.common??? 8 Jan 2011 05:21:48 -0000 @@ -1,4 +1,4 @@ ?readonly TARGET_ARCH = "I386" ?readonly TARGET_ENDIAN = "LITTLE"?? % { "BIG" OR "LITTLE" } ?readonly WORD_SIZE??? = "32BITS"??? % { "32BITS" or "64BITS" } -m3back_flags = "-march=i586" +m3back_flags = "-march=i686" Probably it should be investigated further. Though the workaround isn't so bad. ?- Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Mon, 27 Dec 2010 14:36:14 -0500 > To: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] another Snow Leopard compiler crash > > OK. Jay? > > On Dec 27, 2010, at 1:54 PM, Mika Nystrom wrote: > > > No I had to upgrade the backend to get it to work at all, it's at head > > too (as of 4-5 days ago). > > > > Tony Hosking writes: > >> Which version of the backend are you using? Release? There has been so = > >> much churn in the trunk lately that I have lost track of things. > >> > >> > >> > >> Antony Hosking | Associate Professor | Computer Science | Purdue = > From jay.krell at cornell.edu Sat Jan 8 09:19:06 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 08:19:06 +0000 Subject: [M3devel] FW: LONGINT subrange problems In-Reply-To: <20110108081522.7A4C12474003@birch.elegosoft.com> References: <20110108081522.7A4C12474003@birch.elegosoft.com> Message-ID: This is all based on Mika's work. MODULE Main; PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; PROCEDURE F2() = <*UNUSED*>VAR x: [0L..0L]; BEGIN END F2; PROCEDURE F3() = VAR x: [0L..0L]; BEGIN ? F1(x); END F3; BEGIN ? F1(0L); ? F2(); ? F3(); END Main. (20)?????????? declare_procedure name:Main__F1 n_params:1 lev:0 exported:false procedure:0x0 procedure:0x4 (22)???????????? declare_procedure name:Main__F2 n_params:0 lev:0 exported:false procedure:0x0 procedure:0x5 (24)?????????????? declare_procedure name:Main__F3 n_params:0 lev:0 exported:false procedure:0x0 procedure:0x6 (33)???????????????? begin_procedure procedure:0x5 (34)?????????????????? set_source_line 6 (35)?????????????????? load_integer type:int_64 0 (36)?????????????????? comment comment:********* M3CG_Check ERROR *********** bad stack:? expected [ Int32??? ] got [ Int64??? ] (37)?????????????????? store var:0x5 offset:0 src_t:int_32 dst_t:word_8 (38)?????????????????? set_source_line 8 (39)?????????????????? exit_proc type:void (40)???????????????? end_procedure procedure:0x5 (41)???????????????? comment comment:F3 (42)???????????????? set_source_line 0xA(10) (43)???????????????? begin_procedure procedure:0x6 (44)?????????????????? set_source_line 0xB(11) (45)?????????????????? load_integer type:int_64 0 (46)?????????????????? comment comment:********* M3CG_Check ERROR *********** bad stack:? expected [ Int32??? ] got [ Int64??? ] (47)?????????????????? store var:0x6 offset:0 src_t:int_32 dst_t:word_8 (48)?????????????????? set_source_line 0xD(13) (49)?????????????????? start_call_direct procedure:0x4 level:0 (50)???????????????????? load var:0x6 offset:0 src_t:word_8 dst_t:int_32 (51)???????????????????? comment comment:********* M3CG_Check ERROR *********** bad stack:? expected [ Int64??? ] got [ Int32??? ] (52)???????????????????? pop_param type:int_64 (53)?????????????????? call_direct procedure:0x4 (54)?????????????????? set_source_line 0xE(14) (55)?????????????????? exit_proc type:void (56)???????????????? end_procedure procedure:0x6 (57)???????????????? comment comment:Main_M3 (58)???????????????? comment comment:module main body Main_M3 (59)???????????????? set_source_line 0x10(16) ---------------------------------------- > Date: Sat, 8 Jan 2011 09:15:22 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 11/01/08 09:15:21 > > Modified files: > cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > > Log message: > more LONGINT subrange problems, this now has 3 internal codegen errors, > due to stack type and expected type mismatches > From mika at async.caltech.edu Sat Jan 8 13:14:41 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Sat, 08 Jan 2011 04:14:41 -0800 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: References: <20101227101653.307241A205B@async.async.caltech.edu>, , <20101227185453.97CE51A205B@async.async.caltech.edu>, Message-ID: <20110108121441.A58031A205B@async.async.caltech.edu> Jay K writes: > >Please try this Mika. It fixes the problem for me. Hi Jay, So I upgraded to the CVS head and now I get a segfaulting compiler: [hal:cm3/m3-libs/m3core] mika% gdb $CM3 GNU gdb 6.3.50-20050815 (Apple version gdb-1510) (Wed Sep 22 02:45:02 UTC 2010) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries ...... done (gdb) run Starting program: /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3 Reading symbols for shared libraries .+++++.......... done Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_PROTECTION_FAILURE at address: 0x0000038b 0x9713354b in _longjmp () (gdb) where #0 0x9713354b in _longjmp () #1 0x00285d2b in RTExFrame__InvokeHandler (f=0xbffff34c, a=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:175 #2 0x00285be4 in RTException__ResumeRaise (a=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:145 #3 0x00285a1b in RTException__Raise (act=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:91 #4 0x00269d44 in RTHooks__Raise (ex=0x35a720, arg=0x181cddc, module=0x398080, line=50) at ../src/runtime/common/RTHooks.m3:79 #5 0x0023adbc in OSErrorPosix__Raise0 (errno=2) at ../src/os/POSIX/OSErrorPosix.m3:50 #6 0x0023cffc in FSPosix__Fail (p=0x181cdc0, f=0xf049f0) at ../src/os/POSIX/FSPosix.m3:359 #7 0x0023cdd4 in FS__Status (pn=0x181cdc0, _result=0xbffff3c8) at ../src/os/POSIX/FSPosix.m3:328 #8 0x00217d24 in M3File__IsReadable (path=0x181cdc0) at ../src/M3File.m3:123 #9 0x000a057f in MxConfig__TryConfig (a=0x3255e0, b=0x3255f0, c=0x0) at ../src/MxConfig.m3:122 #10 0x0009ff67 in MxConfig__FindConfig () at ../src/MxConfig.m3:51 #11 0x0009fcd8 in MxConfig__FindFile () at ../src/MxConfig.m3:19 #12 0x0002c446 in Main__DoIt () at ../src/Main.m3:32 #13 0x0002d1e9 in Main_M3 (mode=1) at ../src/Main.m3:214 #14 0x0027a781 in RTLinker__RunMainBody (m=0x3705a0) at ../src/runtime/common/RTLinker.m3:406 #15 0x00279bb6 in RTLinker__AddUnitI (m=0x3705a0) at ../src/runtime/common/RTLinker.m3:113 #16 0x00279c3a in RTLinker__AddUnit (b=0x2d1d0) at ../src/runtime/common/RTLinker.m3:122 #17 0x00002cfc in main (argc=1, argv=0xbffff674, envp=0xbffff67c) at _m3main.c:16 (gdb) I followed upgrade instructions from Tony (including upgrading the back-end)---I have edited the instructions a bit to track changes in CM3. I'm starting from head three weeks old.. Mika Return-Path: hosking at cs.purdue.edu Delivery-Date: Sun Jun 24 07:38:38 2007 In-Reply-To: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> References: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> Sounds like we really need some work done in this area. I very rarely use the build scripts, since I bootstrap manually from old compilers to new compilers rather than use the scripts. I suggest the following approach, which I hope you will try, and then report back on. Install the bootstrap compiler as you did originally: > rm -rf /usr/local/cm3/* > > cd ~/cm3-cvs > mkdir boot > cd boot > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz > ./cminstall Now you will have some kind of cm3 installed, presumably in /usr/ local/cm3/bin/cm3. Make sure you have a fresh CVS checkout in directory cm3 (let's assume this is in your home directory ~/cm3). Also, make sure you have an up-to-date version of the CM3 backend compiler cm3cg installed by executing the following: STEP 0: export CM3=/usr/local/cm3/bin/cm3 cd ~/cm3/m3-sys/m3cc $CM3 $CM3 -ship You can skip this last step if you know your backend compiler is up to date. Now, let's build the new compiler from scratch (this is the sequence I use regularly to test changes to the run-time system whenever I make them): can replace compilation step with rm -rf && $CM3 && $CM3 -ship STEP 1: (do these LATER if bootstrapping from old compiler!) cd ~/cm3/m3-libs/m3core $CM3 $CM3 -ship cd ~/cm3/m3-libs/libm3 $CM3 $CM3 -ship Now build the compiler: cd ~/cm3/m3-libs/sysutils ; $CM3 etc. cd ~/cm3/m3-sys/m3middle; $CM3 etc. repeat for: m3-sys/m3objfile m3-sys/m3back m3-sys/m3linker m3-sys/m3front m3-sys/m3quake m3-sys/cm3 [ here we may need -DROOT= ] At this point you should have a bootstrapped version of cm3 installed in the directory /usr/local/cm3/pkg/cm3/TARGET/cm3 (where TARGET is the CM3 target platform you are building on -- e.g., LINUXLIBC6, PPC_DARWIN, ...). Note that this did not overwrite your original installed compiler in /usr/local/cm3/bin/cm3. We are now going to test the new compiler, which was built using the old compiler, by bootstrapping it one more time. ******* THIS IS WHERE I HAVE A SEGFAULTING COMPILER ******* (If m3core and libm3 were skipped earlier, do them now, and RE-DO all of the above packages before proceeding.) >From here on out, please replace TARGET with your target platform as appropriate. STEP 2: export CM3=/usr/local/cm3/pkg/cm3/TARGET/cm3 cd ~/cm3/scripts ./do-cm3-std.sh realclean REPEAT STEP 1 to rebuild the libraries and the compiler using the STEP 1 bootstrap compiler. Now you have a STEP 2 bootstrap compiler installed in /usr/local/cm3/ pkg/cm3/TARGET/cm3. Let's assume the new compiler now works properly since it successfully bootstrapped itself, but to be sure we can now use it to rebuild the world: cd ~/cm3/scripts ./do-cm3-std.sh realclean ./do-cm3-std.sh buildship Assuming this succeeded then we can be pretty sure /usr/local/cm3/pkg/ cm3/TARGET/cm3 is good, so we can make it our default compiler by replacing the original /usr/local/cm3/bin/cm3: cp $CM3 /usr/local/cm3/bin/cm3 On Jun 23, 2007, at 2:38 PM, Mika Nystrom wrote: > Ok, I'm sorry if I seem a bit dimwitted in the morning like this, > but how exactly does one get started? I wish there were a file called > "GETTING_STARTED" or something like that in scripts... > > My Mac is very slow so I switched to my FreeBSD/i386 system (which has > PM3 happily installed on it) and tried to install CM3 from scratch. > Here are the exact commands I typed. > > > rm -rf /usr/local/cm3/* > > cd ~/cm3-cvs > mkdir boot > cd boot > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz > ./cminstall > > # now I seem to have some kind of cm3 installed, /usr/local/cm3/bin/ > cm3 > > cd cm3 # location of my CM3 checkout > cvs update -d . > > cd scripts > ./boot-cm3-with-m3.sh realclean > ./do-cm3-std.sh realclean > > ./upgrade.sh # fails here, libm3 not compiled > ./boot-cm3-with-m3.sh build # builds cm3, but fails on > cminstall, patternmatching not built > > ./do-cm3-std.sh build # OK > ./do-cm3-std.sh buildship # OK > > ./boot-cm3-with-m3.sh realclean # start over > ./boot-cm3-with-m3.sh build # OK > ./boot-cm3-with-m3.sh buildship # OK > > ./do-cm3-std.sh realclean # OK > ./do-cm3-std.sh build # dies miserably... maybe the > compiler can't handle the new libraries? > > ./install-cm3-compiler.sh upgrade # OK, new cm3 binary installed > > After all that, "game over." I have a cm3 that segfaults. > > Text.i3: In function 'Text_I3': > Text.i3:81: internal compiler error: Segmentation fault > Please submit a full bug report, > with preprocessed source if appropriate. > See for instructions. > compilation failed => not building library "libm3core.a" > Fatal Error: package build failed > *** execution of failed *** > > I can't seem to get either m3gdb or gdb to say anything reasonable > either. ktrace shows nothing out of the ordinary. > > ----- > > Meanwhile, my Mac got through "do-cm3-std.sh realclean" and > "do-cm3-std.sh buildship" but my compiles are still dying on the > same assertion tickled by ktok. On that machine I have INSTALLROOT > set to ~/cm3, but hopefully that has nothing to do with it... > > ----- > > Does do-cm3-std.sh realclean clean EVERYTHING? If so my Mac should > really have a fresh setup. The FreeBSD, I am not sure, maybe the > old binary version just doesn't work right? Of course I could try > bootstrapping with PM3 as well... but really, there's an "approved" > process to get from a blank system, no? > > Mika > > > > > Tony Hosking writes: >> That sounds like you forgot to execute "do-cm3-std.sh realclean" >> before initiating the build. These sorts of errors sometimes arise >> if there are old build directories lying around. >> >> On Jun 23, 2007, at 3:34 AM, Mika Nystrom wrote: >> >>> Hello everyone, >>> >>> I am in the process of trying to consolidate build systems for a >>> few software packages I am maintaining. Currently, I am using an >>> old PM3 on FreeBSD4, an ancient PM3 (from Klagenfurt?) for Windows >>> (NT386GNU), and trying to get the latest CM3 from cvs up and >>> compiling >>> things on PPC_DARWIN. Ideally, I'd like to standardize everything >>> on the new PM3---mainly so that I can use pickles (and Network >>> Objects) across all three systems. I'd also like to add Linux to >>> the mix. >>> >>> It's natural for me to start with CM3 on Darwin, as there's no >>> alternative. But I am getting some assertions failing. Everything >>> in the CM3 distribution compiles fine, and I believe I have compiled >>> the libraries a few times (that is, including with themselves), and >>> updated the compiler, too (using boot-cm3-with-m3.sh). I just cvs >>> updated tonight. >>> >>> Here's what I'm running into: >>> >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/CHP.t -o >>> CHPTok.i3 >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/runtime/common/RTCollector.m3", line 2314 >>> *** >>> >>> Abort >>> >>> Also: >>> >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/PRS.t -o >>> PRSTok.i3 >>> Illegal instruction >>> >>> As you can see, these things are coming from the caltech_parser. I >> am using >>> our local version, but I don't think it is very different from what >>> is in the >>> CM3 tree. >>> >>> Examining the first error (the failed assertion) more closely, I see >>> the following: >>> >>> (gdb) list >>> 108 wr := FileWr.Open(Pathname.ReplaceExt(tp.out, "m3")); >>> 109 EXCEPT OSError.E => >>> 110 Debug.Error("Cannot open tok implementation output >>> file: " & >>> 111 Pathname.ReplaceExt(tp.out, "m3")); >>> 112 END; >>> 113 Wr.PutText(wr, subs.apply(Bundle.Get(Form, >>> "tokform.m3"))); >>> 114 Wr.Close(wr); >>> 115 END Main. >>> (gdb) where >>> #0 0x9004308c in kill () >>> #1 0x9009fb3c in abort () >>> #2 0x00096f50 in RTOS__Crash () at RTOS.m3:20 >>> #3 0x0005bd40 in RTProcess__Crash (M3_Bd56fi_msg=0x0) at >>> RTProcess.m3:65 >>> #4 0x0008e4e0 in RTError__EndError (M3_AicXUJ_crash=1 '\001') at >>> RTError.m3:115 >>> #5 0x0008e08c in RTError__MsgS (M3_AJWxb1_file=0xc63d8, >>> M3_AcxOUs_line=2314, M3_Bd56fi_msgA=0xca3d0, >>> M3_Bd56fi_msgB=0xcbe90, M3_Bd56fi_msgC=0xca3d0) at RTError.m3:40 >>> #6 0x0008eb88 in RTException__Crash (M3_Cblw37_a=0xbfffee00, >>> M3_AicXUJ_raises=0 '\0', M3_AJWxb1_rte=0xcb538) at RTException.m3:79 >>> #7 0x0008e74c in RTException__DefaultBackstop >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at >>> RTException.m3:39 >>> #8 0x0008e614 in RTException__InvokeBackstop >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at >>> RTException.m3:25 >>> #9 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at >>> RTExFrame.m3:29 >>> #10 0x0008e840 in RTException__DefaultBackstop >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at >>> RTException.m3:47 >>> #11 0x0008e614 in RTException__InvokeBackstop >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at >>> RTException.m3:25 >>> #12 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at >>> RTExFrame.m3:29 >>> #13 0x00079740 in RTHooks__ReportFault (M3_AJWxb1_module=0xb3eb8, >>> M3_AcxOUs_info=74048) at RTHooks.m3:110 >>> #14 0x0006ff4c in _m3_fault (M3_AcxOUs_arg=74048) >>> #15 0x0006bcf4 in RTHooks__CheckStoreTraced >>> (M3_Af40ku_ref=0xb2415c) at RTCollector.m3:2314 >>> #16 0x000700e4 in ThreadPThread__InnerLockMutex >>> (M3_AYIbX3_m=0xb2415c, M3_BXP32l_self=0xb24014) at >>> ThreadPThread.m3:126 >>> #17 0x000704d8 in ThreadPThread__LockMutex (M3_AYIbX3_m=0xb2415c) >>> at ThreadPThread.m3:153 >>> #18 0x00019b24 in Wr__PutText (M3_BxxOH1_wr=0xb2415c, >>> M3_Bd56fi_t=0xb44d5c) at Wr.m3:93 >>> #19 0x00003f74 in Main_M3 (M3_AcxOUs_mode=1) at Main.m3:113 >>> #20 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at >>> RTLinker.m3:399 >>> #21 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at >>> RTLinker.m3:113 >>> #22 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at >>> RTLinker.m3:122 >>> #23 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38) >>> at _m3main.mc:4 >>> (gdb) >>> >>> The second error: >>> >>> Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/ >>> operand. >>> 0x00b111ac in ?? () >>> (gdb) where >>> #0 0x00b111ac in ?? () >>> #1 0x0001214c in TextSubs__Apply (M3_CN69dV_self=0xb26450, >>> M3_Bd56fi_src=0xb21cec) at TextSubs.m3:63 >>> #2 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at >>> RTLinker.m3:399 >>> #3 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at >>> RTLinker.m3:113 >>> #4 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at >>> RTLinker.m3:122 >>> #5 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38) >>> at _m3main.mc:4 >>> (gdb) list >>> 58 BEGIN >>> 59 WHILE pos < textLen DO >>> 60 c := Text.GetChar(src, pos); >>> 61 IF c IN self.starts THEN >>> 62 (* S("analysing: " & Text.Sub(src, pos), >>> DebugLevel); *) >>> 63 iter := self.tbl.iterateOrdered(); >>> 64 ind := pos; >>> 65 original := ""; >>> 66 REPEAT >>> 67 INC(ind); >>> (gdb) >>> >>> Any ideas what to look at? >>> >>> I don't know if this is relevant: >>> >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% uname -a >>> Darwin lapdog.local 7.9.0 Darwin Kernel Version 7.9.0: Wed Mar 30 >>> 20:11:17 PST 2005; root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC Power >>> Macintosh powerpc >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% gcc -v >>> Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs >>> Thread model: posix >>> gcc version 3.3 20030304 (Apple Computer, Inc. build 1666) >>> >>> Mika >>> >>> P.S. Am I correct in assuming that I can get CM3 to build on >>> Windows? >>> I could switch to CM3 on Unix any time, of course, but I've never >>> had luck with it on Windows, which is why I am using the ancient >>> Klagenfurt PM3, which comes on 40-odd "floppies" and a .EXE that >>> unpacks them into C: (and installation instructions only in German). >>> If CM3 doesn't work on Windows, I am essentially wasting my time, >>> as the current project I am working on absolutely requires that the >>> software run on Windows 2003 Server (yes, it sucks, but what can >>> you do?) The very old PM3 at least kind of hobbles along on this >>> platform---actually, better than that; it does Trestle natively >>> under Windows (no X required), at least on SOME Windows machines. >>> >>> P.P.S. Sorry for all the postscripts, but is it true that the >>> build system has been changed so that building with overrides >>> (cm3 -x) >>> requires having the compiler sources available? It didn't use to >>> be that way, but I can't get Network Objects to work with overrides >>> now unless I have the sources available... It's a bit of a pain >>> because it means that every user has to have the compiler sources, >>> or else ship everything, or was that not the intention? From jay.krell at cornell.edu Sat Jan 8 14:37:39 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 13:37:39 +0000 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: <20110108121441.A58031A205B@async.async.caltech.edu> References: <20101227101653.307241A205B@async.async.caltech.edu>, , , , <20101227185453.97CE51A205B@async.async.caltech.edu>, , , , <20110108121441.A58031A205B@async.async.caltech.edu> Message-ID: I upgrade across incompatibilities frequently & Hudson does now too. The existing scripts work very well and you would be foolish to not use them. Just use upgrade.py. It is very easy. Or upgrade.py nocleangcc. And then do-cm3-all.py skipgcc realclean && do-cm3-all.py buildship.py. - Jay/phone > To: jay.krell at cornell.edu > Date: Sat, 8 Jan 2011 04:14:41 -0800 > From: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] another Snow Leopard compiler crash > > Jay K writes: > > > >Please try this Mika. It fixes the problem for me. > > Hi Jay, > > So I upgraded to the CVS head and now I get a segfaulting compiler: > > [hal:cm3/m3-libs/m3core] mika% gdb $CM3 > GNU gdb 6.3.50-20050815 (Apple version gdb-1510) (Wed Sep 22 02:45:02 UTC 2010) > Copyright 2004 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and you are > welcome to change it and/or distribute copies of it under certain conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for details. > This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries ...... done > > (gdb) run > Starting program: /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3 > Reading symbols for shared libraries .+++++.......... done > > Program received signal EXC_BAD_ACCESS, Could not access memory. > Reason: KERN_PROTECTION_FAILURE at address: 0x0000038b > 0x9713354b in _longjmp () > (gdb) where > #0 0x9713354b in _longjmp () > #1 0x00285d2b in RTExFrame__InvokeHandler (f=0xbffff34c, a=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:175 > #2 0x00285be4 in RTException__ResumeRaise (a=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:145 > #3 0x00285a1b in RTException__Raise (act=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:91 > #4 0x00269d44 in RTHooks__Raise (ex=0x35a720, arg=0x181cddc, module=0x398080, line=50) at ../src/runtime/common/RTHooks.m3:79 > #5 0x0023adbc in OSErrorPosix__Raise0 (errno=2) at ../src/os/POSIX/OSErrorPosix.m3:50 > #6 0x0023cffc in FSPosix__Fail (p=0x181cdc0, f=0xf049f0) at ../src/os/POSIX/FSPosix.m3:359 > #7 0x0023cdd4 in FS__Status (pn=0x181cdc0, _result=0xbffff3c8) at ../src/os/POSIX/FSPosix.m3:328 > #8 0x00217d24 in M3File__IsReadable (path=0x181cdc0) at ../src/M3File.m3:123 > #9 0x000a057f in MxConfig__TryConfig (a=0x3255e0, b=0x3255f0, c=0x0) at ../src/MxConfig.m3:122 > #10 0x0009ff67 in MxConfig__FindConfig () at ../src/MxConfig.m3:51 > #11 0x0009fcd8 in MxConfig__FindFile () at ../src/MxConfig.m3:19 > #12 0x0002c446 in Main__DoIt () at ../src/Main.m3:32 > #13 0x0002d1e9 in Main_M3 (mode=1) at ../src/Main.m3:214 > #14 0x0027a781 in RTLinker__RunMainBody (m=0x3705a0) at ../src/runtime/common/RTLinker.m3:406 > #15 0x00279bb6 in RTLinker__AddUnitI (m=0x3705a0) at ../src/runtime/common/RTLinker.m3:113 > #16 0x00279c3a in RTLinker__AddUnit (b=0x2d1d0) at ../src/runtime/common/RTLinker.m3:122 > #17 0x00002cfc in main (argc=1, argv=0xbffff674, envp=0xbffff67c) at _m3main.c:16 > (gdb) > > I followed upgrade instructions from Tony (including upgrading the > back-end)---I have edited the instructions a bit to track changes in > CM3. I'm starting from head three weeks old.. > > Mika > > > Return-Path: hosking at cs.purdue.edu > Delivery-Date: Sun Jun 24 07:38:38 2007 > In-Reply-To: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> > References: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> > > Sounds like we really need some work done in this area. I very > rarely use the build scripts, since I bootstrap manually from old > compilers to new compilers rather than use the scripts. I suggest > the following approach, which I hope you will try, and then report > back on. > > Install the bootstrap compiler as you did originally: > > > rm -rf /usr/local/cm3/* > > > > cd ~/cm3-cvs > > mkdir boot > > cd boot > > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz > > ./cminstall > > > Now you will have some kind of cm3 installed, presumably in /usr/ > local/cm3/bin/cm3. > > Make sure you have a fresh CVS checkout in directory cm3 (let's > assume this is in your home directory ~/cm3). Also, make sure you > have an up-to-date version of the CM3 backend compiler cm3cg > installed by executing the following: > > STEP 0: > > export CM3=/usr/local/cm3/bin/cm3 > cd ~/cm3/m3-sys/m3cc > $CM3 > $CM3 -ship > > You can skip this last step if you know your backend compiler is up > to date. > > Now, let's build the new compiler from scratch (this is the sequence > I use regularly to test changes to the run-time system whenever I > make them): > > can replace compilation step with > > rm -rf && $CM3 && $CM3 -ship > > > STEP 1: > > (do these LATER if bootstrapping from old compiler!) > cd ~/cm3/m3-libs/m3core > $CM3 > $CM3 -ship > cd ~/cm3/m3-libs/libm3 > $CM3 > $CM3 -ship > > Now build the compiler: > > cd ~/cm3/m3-libs/sysutils ; $CM3 etc. > > cd ~/cm3/m3-sys/m3middle; $CM3 etc. > > repeat for: > > m3-sys/m3objfile > > m3-sys/m3back > > m3-sys/m3linker > > m3-sys/m3front > > m3-sys/m3quake > > m3-sys/cm3 > > [ here we may need -DROOT= ] > > > At this point you should have a bootstrapped version of cm3 installed > in the directory /usr/local/cm3/pkg/cm3/TARGET/cm3 (where TARGET is > the CM3 target platform you are building on -- e.g., LINUXLIBC6, > PPC_DARWIN, ...). Note that this did not overwrite your original > installed compiler in /usr/local/cm3/bin/cm3. We > are now going to test the new compiler, which was built using the old > compiler, by bootstrapping it one more time. > > > ******* THIS IS WHERE I HAVE A SEGFAULTING COMPILER ******* > > (If m3core and libm3 were skipped earlier, do them now, and RE-DO all > of the above packages before proceeding.) > > From here on out, please replace TARGET with your target platform as > appropriate. > > STEP 2: > > export CM3=/usr/local/cm3/pkg/cm3/TARGET/cm3 > cd ~/cm3/scripts > > ./do-cm3-std.sh realclean > REPEAT STEP 1 to rebuild the libraries and the compiler using the > STEP 1 bootstrap compiler. > > Now you have a STEP 2 bootstrap compiler installed in /usr/local/cm3/ > pkg/cm3/TARGET/cm3. Let's assume the new compiler now works properly > since it successfully bootstrapped itself, but to be sure we can now > use it to rebuild the world: > > cd ~/cm3/scripts > ./do-cm3-std.sh realclean > ./do-cm3-std.sh buildship > > Assuming this succeeded then we can be pretty sure /usr/local/cm3/pkg/ > cm3/TARGET/cm3 is good, so we can make it our default compiler by > replacing the original /usr/local/cm3/bin/cm3: > > cp $CM3 /usr/local/cm3/bin/cm3 > > On Jun 23, 2007, at 2:38 PM, Mika Nystrom wrote: > > > Ok, I'm sorry if I seem a bit dimwitted in the morning like this, > > but how exactly does one get started? I wish there were a file called > > "GETTING_STARTED" or something like that in scripts... > > > > My Mac is very slow so I switched to my FreeBSD/i386 system (which has > > PM3 happily installed on it) and tried to install CM3 from scratch. > > Here are the exact commands I typed. > > > > > > rm -rf /usr/local/cm3/* > > > > cd ~/cm3-cvs > > mkdir boot > > cd boot > > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz > > ./cminstall > > > > # now I seem to have some kind of cm3 installed, /usr/local/cm3/bin/ > > cm3 > > > > cd cm3 # location of my CM3 checkout > > cvs update -d . > > > > cd scripts > > ./boot-cm3-with-m3.sh realclean > > ./do-cm3-std.sh realclean > > > > ./upgrade.sh # fails here, libm3 not compiled > > ./boot-cm3-with-m3.sh build # builds cm3, but fails on > > cminstall, patternmatching not built > > > > ./do-cm3-std.sh build # OK > > ./do-cm3-std.sh buildship # OK > > > > ./boot-cm3-with-m3.sh realclean # start over > > ./boot-cm3-with-m3.sh build # OK > > ./boot-cm3-with-m3.sh buildship # OK > > > > ./do-cm3-std.sh realclean # OK > > ./do-cm3-std.sh build # dies miserably... maybe the > > compiler can't handle the new libraries? > > > > ./install-cm3-compiler.sh upgrade # OK, new cm3 binary installed > > > > After all that, "game over." I have a cm3 that segfaults. > > > > Text.i3: In function 'Text_I3': > > Text.i3:81: internal compiler error: Segmentation fault > > Please submit a full bug report, > > with preprocessed source if appropriate. > > See for instructions. > > compilation failed => not building library "libm3core.a" > > Fatal Error: package build failed > > *** execution of failed *** > > > > I can't seem to get either m3gdb or gdb to say anything reasonable > > either. ktrace shows nothing out of the ordinary. > > > > ----- > > > > Meanwhile, my Mac got through "do-cm3-std.sh realclean" and > > "do-cm3-std.sh buildship" but my compiles are still dying on the > > same assertion tickled by ktok. On that machine I have INSTALLROOT > > set to ~/cm3, but hopefully that has nothing to do with it... > > > > ----- > > > > Does do-cm3-std.sh realclean clean EVERYTHING? If so my Mac should > > really have a fresh setup. The FreeBSD, I am not sure, maybe the > > old binary version just doesn't work right? Of course I could try > > bootstrapping with PM3 as well... but really, there's an "approved" > > process to get from a blank system, no? > > > > Mika > > > > > > > > > > Tony Hosking writes: > >> That sounds like you forgot to execute "do-cm3-std.sh realclean" > >> before initiating the build. These sorts of errors sometimes arise > >> if there are old build directories lying around. > >> > >> On Jun 23, 2007, at 3:34 AM, Mika Nystrom wrote: > >> > >>> Hello everyone, > >>> > >>> I am in the process of trying to consolidate build systems for a > >>> few software packages I am maintaining. Currently, I am using an > >>> old PM3 on FreeBSD4, an ancient PM3 (from Klagenfurt?) for Windows > >>> (NT386GNU), and trying to get the latest CM3 from cvs up and > >>> compiling > >>> things on PPC_DARWIN. Ideally, I'd like to standardize everything > >>> on the new PM3---mainly so that I can use pickles (and Network > >>> Objects) across all three systems. I'd also like to add Linux to > >>> the mix. > >>> > >>> It's natural for me to start with CM3 on Darwin, as there's no > >>> alternative. But I am getting some assertions failing. Everything > >>> in the CM3 distribution compiles fine, and I believe I have compiled > >>> the libraries a few times (that is, including with themselves), and > >>> updated the compiler, too (using boot-cm3-with-m3.sh). I just cvs > >>> updated tonight. > >>> > >>> Here's what I'm running into: > >>> > >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/CHP.t -o > >>> CHPTok.i3 > >>> > >>> *** > >>> *** runtime error: > >>> *** <*ASSERT*> failed. > >>> *** file "../src/runtime/common/RTCollector.m3", line 2314 > >>> *** > >>> > >>> Abort > >>> > >>> Also: > >>> > >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/PRS.t -o > >>> PRSTok.i3 > >>> Illegal instruction > >>> > >>> As you can see, these things are coming from the caltech_parser. I > >> am using > >>> our local version, but I don't think it is very different from what > >>> is in the > >>> CM3 tree. > >>> > >>> Examining the first error (the failed assertion) more closely, I see > >>> the following: > >>> > >>> (gdb) list > >>> 108 wr := FileWr.Open(Pathname.ReplaceExt(tp.out, "m3")); > >>> 109 EXCEPT OSError.E => > >>> 110 Debug.Error("Cannot open tok implementation output > >>> file: " & > >>> 111 Pathname.ReplaceExt(tp.out, "m3")); > >>> 112 END; > >>> 113 Wr.PutText(wr, subs.apply(Bundle.Get(Form, > >>> "tokform.m3"))); > >>> 114 Wr.Close(wr); > >>> 115 END Main. > >>> (gdb) where > >>> #0 0x9004308c in kill () > >>> #1 0x9009fb3c in abort () > >>> #2 0x00096f50 in RTOS__Crash () at RTOS.m3:20 > >>> #3 0x0005bd40 in RTProcess__Crash (M3_Bd56fi_msg=0x0) at > >>> RTProcess.m3:65 > >>> #4 0x0008e4e0 in RTError__EndError (M3_AicXUJ_crash=1 '\001') at > >>> RTError.m3:115 > >>> #5 0x0008e08c in RTError__MsgS (M3_AJWxb1_file=0xc63d8, > >>> M3_AcxOUs_line=2314, M3_Bd56fi_msgA=0xca3d0, > >>> M3_Bd56fi_msgB=0xcbe90, M3_Bd56fi_msgC=0xca3d0) at RTError.m3:40 > >>> #6 0x0008eb88 in RTException__Crash (M3_Cblw37_a=0xbfffee00, > >>> M3_AicXUJ_raises=0 '\0', M3_AJWxb1_rte=0xcb538) at RTException.m3:79 > >>> #7 0x0008e74c in RTException__DefaultBackstop > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at > >>> RTException.m3:39 > >>> #8 0x0008e614 in RTException__InvokeBackstop > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at > >>> RTException.m3:25 > >>> #9 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at > >>> RTExFrame.m3:29 > >>> #10 0x0008e840 in RTException__DefaultBackstop > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at > >>> RTException.m3:47 > >>> #11 0x0008e614 in RTException__InvokeBackstop > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at > >>> RTException.m3:25 > >>> #12 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at > >>> RTExFrame.m3:29 > >>> #13 0x00079740 in RTHooks__ReportFault (M3_AJWxb1_module=0xb3eb8, > >>> M3_AcxOUs_info=74048) at RTHooks.m3:110 > >>> #14 0x0006ff4c in _m3_fault (M3_AcxOUs_arg=74048) > >>> #15 0x0006bcf4 in RTHooks__CheckStoreTraced > >>> (M3_Af40ku_ref=0xb2415c) at RTCollector.m3:2314 > >>> #16 0x000700e4 in ThreadPThread__InnerLockMutex > >>> (M3_AYIbX3_m=0xb2415c, M3_BXP32l_self=0xb24014) at > >>> ThreadPThread.m3:126 > >>> #17 0x000704d8 in ThreadPThread__LockMutex (M3_AYIbX3_m=0xb2415c) > >>> at ThreadPThread.m3:153 > >>> #18 0x00019b24 in Wr__PutText (M3_BxxOH1_wr=0xb2415c, > >>> M3_Bd56fi_t=0xb44d5c) at Wr.m3:93 > >>> #19 0x00003f74 in Main_M3 (M3_AcxOUs_mode=1) at Main.m3:113 > >>> #20 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at > >>> RTLinker.m3:399 > >>> #21 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at > >>> RTLinker.m3:113 > >>> #22 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at > >>> RTLinker.m3:122 > >>> #23 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38) > >>> at _m3main.mc:4 > >>> (gdb) > >>> > >>> The second error: > >>> > >>> Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/ > >>> operand. > >>> 0x00b111ac in ?? () > >>> (gdb) where > >>> #0 0x00b111ac in ?? () > >>> #1 0x0001214c in TextSubs__Apply (M3_CN69dV_self=0xb26450, > >>> M3_Bd56fi_src=0xb21cec) at TextSubs.m3:63 > >>> #2 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at > >>> RTLinker.m3:399 > >>> #3 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at > >>> RTLinker.m3:113 > >>> #4 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at > >>> RTLinker.m3:122 > >>> #5 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38) > >>> at _m3main.mc:4 > >>> (gdb) list > >>> 58 BEGIN > >>> 59 WHILE pos < textLen DO > >>> 60 c := Text.GetChar(src, pos); > >>> 61 IF c IN self.starts THEN > >>> 62 (* S("analysing: " & Text.Sub(src, pos), > >>> DebugLevel); *) > >>> 63 iter := self.tbl.iterateOrdered(); > >>> 64 ind := pos; > >>> 65 original := ""; > >>> 66 REPEAT > >>> 67 INC(ind); > >>> (gdb) > >>> > >>> Any ideas what to look at? > >>> > >>> I don't know if this is relevant: > >>> > >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% uname -a > >>> Darwin lapdog.local 7.9.0 Darwin Kernel Version 7.9.0: Wed Mar 30 > >>> 20:11:17 PST 2005; root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC Power > >>> Macintosh powerpc > >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% gcc -v > >>> Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs > >>> Thread model: posix > >>> gcc version 3.3 20030304 (Apple Computer, Inc. build 1666) > >>> > >>> Mika > >>> > >>> P.S. Am I correct in assuming that I can get CM3 to build on > >>> Windows? > >>> I could switch to CM3 on Unix any time, of course, but I've never > >>> had luck with it on Windows, which is why I am using the ancient > >>> Klagenfurt PM3, which comes on 40-odd "floppies" and a .EXE that > >>> unpacks them into C: (and installation instructions only in German). > >>> If CM3 doesn't work on Windows, I am essentially wasting my time, > >>> as the current project I am working on absolutely requires that the > >>> software run on Windows 2003 Server (yes, it sucks, but what can > >>> you do?) The very old PM3 at least kind of hobbles along on this > >>> platform---actually, better than that; it does Trestle natively > >>> under Windows (no X required), at least on SOME Windows machines. > >>> > >>> P.P.S. Sorry for all the postscripts, but is it true that the > >>> build system has been changed so that building with overrides > >>> (cm3 -x) > >>> requires having the compiler sources available? It didn't use to > >>> be that way, but I can't get Network Objects to work with overrides > >>> now unless I have the sources available... It's a bit of a pain > >>> because it means that every user has to have the compiler sources, > >>> or else ship everything, or was that not the intention? -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.caltech.edu Sat Jan 8 14:47:35 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Sat, 08 Jan 2011 05:47:35 -0800 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: References: <20101227101653.307241A205B@async.async.caltech.edu>, , , , <20101227185453.97CE51A205B@async.async.caltech.edu>, , , , <20110108121441.A58031A205B@async.async.caltech.edu> Message-ID: <20110108134735.B7D4C1A205B@async.async.caltech.edu> I ran "python upgrade.py" from a clean start (back to head a few weeks ago) and got: == package /Users/mika/cm3/cm3/m3-tools/m3bundle == +++ /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3 -build -DROOT=/Users/mika/cm3/cm3 +++ --- building in I386_DARWIN --- ignoring ../src/m3overrides new source -> compiling m3bundle.m3 -> linking m3bundle Undefined symbols: "__alloca", referenced from: _m3bundle__GetElementSizes in m3bundle.mo "_Csetjmp__Jumpbuf_size", referenced from: _Csetjmp__Jumpbuf_size$non_lazy_ptr in m3bundle.mo (maybe you meant: _Csetjmp__Jumpbuf_size$non_lazy_ptr) ld: symbol(s) not found collect2: ld returned 1 exit status m3_link => 1 linker failed linking: m3bundle Fatal Error: package build failed *** execution of [, ] failed *** [hal:cm3/scripts/python] mika% maybe a conf file change I need to make? Why only in m3bundle? Mika Jay K writes: >--_6374b72e-0dad-4a03-8d22-4a59e0218226_ >Content-Type: text/plain; charset="iso-8859-1" >Content-Transfer-Encoding: quoted-printable > >I upgrade across incompatibilities frequently & Hudson does now too. The ex= >isting scripts work very well and you would be foolish to not use them. Jus= >t use upgrade.py. It is very easy. Or upgrade.py nocleangcc. And then do-cm= >3-all.py skipgcc realclean && do-cm3-all.py buildship.py. > > - Jay/phone > >> To: jay.krell at cornell.edu >> Date: Sat=2C 8 Jan 2011 04:14:41 -0800 >> From: mika at async.caltech.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] another Snow Leopard compiler crash >>=20 >> Jay K writes: >> > >> >Please try this Mika. It fixes the problem for me. >>=20 >> Hi Jay=2C >>=20 >> So I upgraded to the CVS head and now I get a segfaulting compiler: >>=20 >> [hal:cm3/m3-libs/m3core] mika% gdb $CM3 >> GNU gdb 6.3.50-20050815 (Apple version gdb-1510) (Wed Sep 22 02:45:02 UTC= > 2010) >> Copyright 2004 Free Software Foundation=2C Inc. >> GDB is free software=2C covered by the GNU General Public License=2C and = >you are >> welcome to change it and/or distribute copies of it under certain conditi= >ons. >> Type "show copying" to see the conditions. >> There is absolutely no warranty for GDB. Type "show warranty" for detail= >s. >> This GDB was configured as "x86_64-apple-darwin"...Reading symbols for sh= >ared libraries ...... done >>=20 >> (gdb) run >> Starting program: /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3=20 >> Reading symbols for shared libraries .+++++.......... done >>=20 >> Program received signal EXC_BAD_ACCESS=2C Could not access memory. >> Reason: KERN_PROTECTION_FAILURE at address: 0x0000038b >> 0x9713354b in _longjmp () >> (gdb) where >> #0 0x9713354b in _longjmp () >> #1 0x00285d2b in RTExFrame__InvokeHandler (f=3D0xbffff34c=2C a=3D0xbffff= >23c) at ../src/runtime/ex_frame/RTExFrame.m3:175 >> #2 0x00285be4 in RTException__ResumeRaise (a=3D0xbffff23c) at ../src/run= >time/ex_frame/RTExFrame.m3:145 >> #3 0x00285a1b in RTException__Raise (act=3D0xbffff23c) at ../src/runtime= >/ex_frame/RTExFrame.m3:91 >> #4 0x00269d44 in RTHooks__Raise (ex=3D0x35a720=2C arg=3D0x181cddc=2C mod= >ule=3D0x398080=2C line=3D50) at ../src/runtime/common/RTHooks.m3:79 >> #5 0x0023adbc in OSErrorPosix__Raise0 (errno=3D2) at ../src/os/POSIX/OSE= >rrorPosix.m3:50 >> #6 0x0023cffc in FSPosix__Fail (p=3D0x181cdc0=2C f=3D0xf049f0) at ../src= >/os/POSIX/FSPosix.m3:359 >> #7 0x0023cdd4 in FS__Status (pn=3D0x181cdc0=2C _result=3D0xbffff3c8) at = >../src/os/POSIX/FSPosix.m3:328 >> #8 0x00217d24 in M3File__IsReadable (path=3D0x181cdc0) at ../src/M3File.= >m3:123 >> #9 0x000a057f in MxConfig__TryConfig (a=3D0x3255e0=2C b=3D0x3255f0=2C c= >=3D0x0) at ../src/MxConfig.m3:122 >> #10 0x0009ff67 in MxConfig__FindConfig () at ../src/MxConfig.m3:51 >> #11 0x0009fcd8 in MxConfig__FindFile () at ../src/MxConfig.m3:19 >> #12 0x0002c446 in Main__DoIt () at ../src/Main.m3:32 >> #13 0x0002d1e9 in Main_M3 (mode=3D1) at ../src/Main.m3:214 >> #14 0x0027a781 in RTLinker__RunMainBody (m=3D0x3705a0) at ../src/runtime/= >common/RTLinker.m3:406 >> #15 0x00279bb6 in RTLinker__AddUnitI (m=3D0x3705a0) at ../src/runtime/com= >mon/RTLinker.m3:113 >> #16 0x00279c3a in RTLinker__AddUnit (b=3D0x2d1d0) at ../src/runtime/commo= >n/RTLinker.m3:122 >> #17 0x00002cfc in main (argc=3D1=2C argv=3D0xbffff674=2C envp=3D0xbffff67= >c) at _m3main.c:16 >> (gdb)=20 >>=20 >> I followed upgrade instructions from Tony (including upgrading the >> back-end)---I have edited the instructions a bit to track changes in=20 >> CM3. I'm starting from head three weeks old.. >>=20 >> Mika >>=20 >>=20 >> Return-Path: hosking at cs.purdue.edu >> Delivery-Date: Sun Jun 24 07:38:38 2007 >> In-Reply-To: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> >> References: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> >>=20 >> Sounds like we really need some work done in this area. I very =20 >> rarely use the build scripts=2C since I bootstrap manually from old =20 >> compilers to new compilers rather than use the scripts. I suggest =20 >> the following approach=2C which I hope you will try=2C and then report =20 >> back on. >>=20 >> Install the bootstrap compiler as you did originally: >>=20 >> > rm -rf /usr/local/cm3/* >> > >> > cd ~/cm3-cvs >> > mkdir boot >> > cd boot >> > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz >> > ./cminstall >>=20 >>=20 >> Now you will have some kind of cm3 installed=2C presumably in /usr/=20 >> local/cm3/bin/cm3. >>=20 >> Make sure you have a fresh CVS checkout in directory cm3 (let's =20 >> assume this is in your home directory ~/cm3). Also=2C make sure you =20 >> have an up-to-date version of the CM3 backend compiler cm3cg =20 >> installed by executing the following: >>=20 >> STEP 0: >>=20 >> export CM3=3D/usr/local/cm3/bin/cm3 >> cd ~/cm3/m3-sys/m3cc >> $CM3 >> $CM3 -ship >>=20 >> You can skip this last step if you know your backend compiler is up =20 >> to date. >>=20 >> Now=2C let's build the new compiler from scratch (this is the sequence =20 >> I use regularly to test changes to the run-time system whenever I =20 >> make them): >>=20 >> can replace compilation step with >>=20 >> rm -rf && $CM3 && $CM3 -ship=20 >>=20 >>=20 >> STEP 1: >>=20 >> (do these LATER if bootstrapping from old compiler!) >> cd ~/cm3/m3-libs/m3core >> $CM3 >> $CM3 -ship >> cd ~/cm3/m3-libs/libm3 >> $CM3 >> $CM3 -ship >>=20 >> Now build the compiler: >>=20 >> cd ~/cm3/m3-libs/sysutils =3B $CM3 etc. >>=20 >> cd ~/cm3/m3-sys/m3middle=3B $CM3 etc. >>=20 >> repeat for: >>=20 >> m3-sys/m3objfile=20 >>=20 >> m3-sys/m3back=20 >>=20 >> m3-sys/m3linker >>=20 >> m3-sys/m3front >>=20 >> m3-sys/m3quake >>=20 >> m3-sys/cm3 >>=20 >> [ here we may need -DROOT=3D ] >>=20 >>=20 >> At this point you should have a bootstrapped version of cm3 installed =20 >> in the directory /usr/local/cm3/pkg/cm3/TARGET/cm3 (where TARGET is =20 >> the CM3 target platform you are building on -- e.g.=2C LINUXLIBC6=2C =20 >> PPC_DARWIN=2C ...). Note that this did not overwrite your original =20 >> installed compiler in /usr/local/cm3/bin/cm3. We >> are now going to test the new compiler=2C which was built using the old = >=20 >> compiler=2C by bootstrapping it one more time. >>=20 >>=20 >> ******* THIS IS WHERE I HAVE A SEGFAULTING COMPILER ******* >>=20 >> (If m3core and libm3 were skipped earlier=2C do them now=2C and RE-DO all >> of the above packages before proceeding.) >>=20 >> From here on out=2C please replace TARGET with your target platform as =20 >> appropriate. >>=20 >> STEP 2: >>=20 >> export CM3=3D/usr/local/cm3/pkg/cm3/TARGET/cm3 >> cd ~/cm3/scripts >>=20 >> ./do-cm3-std.sh realclean >> REPEAT STEP 1 to rebuild the libraries and the compiler using the =20 >> STEP 1 bootstrap compiler. >>=20 >> Now you have a STEP 2 bootstrap compiler installed in /usr/local/cm3/=20 >> pkg/cm3/TARGET/cm3. Let's assume the new compiler now works properly =20 >> since it successfully bootstrapped itself=2C but to be sure we can now =20 >> use it to rebuild the world: >>=20 >> cd ~/cm3/scripts >> ./do-cm3-std.sh realclean >> ./do-cm3-std.sh buildship >>=20 >> Assuming this succeeded then we can be pretty sure /usr/local/cm3/pkg/=20 >> cm3/TARGET/cm3 is good=2C so we can make it our default compiler by =20 >> replacing the original /usr/local/cm3/bin/cm3: >>=20 >> cp $CM3 /usr/local/cm3/bin/cm3 >>=20 >> On Jun 23=2C 2007=2C at 2:38 PM=2C Mika Nystrom wrote: >>=20 >> > Ok=2C I'm sorry if I seem a bit dimwitted in the morning like this=2C >> > but how exactly does one get started? I wish there were a file called >> > "GETTING_STARTED" or something like that in scripts... >> > >> > My Mac is very slow so I switched to my FreeBSD/i386 system (which has >> > PM3 happily installed on it) and tried to install CM3 from scratch. >> > Here are the exact commands I typed. >> > >> > >> > rm -rf /usr/local/cm3/* >> > >> > cd ~/cm3-cvs >> > mkdir boot >> > cd boot >> > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz >> > ./cminstall >> > >> > # now I seem to have some kind of cm3 installed=2C /usr/local/cm3/bin/= >=20 >> > cm3 >> > >> > cd cm3 # location of my CM3 checkout >> > cvs update -d . >> > >> > cd scripts >> > ./boot-cm3-with-m3.sh realclean >> > ./do-cm3-std.sh realclean >> > >> > ./upgrade.sh # fails here=2C libm3 not compiled >> > ./boot-cm3-with-m3.sh build # builds cm3=2C but fails on =20 >> > cminstall=2C patternmatching not built >> > >> > ./do-cm3-std.sh build # OK >> > ./do-cm3-std.sh buildship # OK >> > >> > ./boot-cm3-with-m3.sh realclean # start over >> > ./boot-cm3-with-m3.sh build # OK >> > ./boot-cm3-with-m3.sh buildship # OK >> > >> > ./do-cm3-std.sh realclean # OK >> > ./do-cm3-std.sh build # dies miserably... maybe the =20 >> > compiler can't handle the new libraries? >> > >> > ./install-cm3-compiler.sh upgrade # OK=2C new cm3 binary installed >> > >> > After all that=2C "game over." I have a cm3 that segfaults. >> > >> > Text.i3: In function 'Text_I3': >> > Text.i3:81: internal compiler error: Segmentation fault >> > Please submit a full bug report=2C >> > with preprocessed source if appropriate. >> > See for instructions. >> > compilation failed =3D> not building library "libm3core.a" >> > Fatal Error: package build failed >> > *** execution of failed *** >> > >> > I can't seem to get either m3gdb or gdb to say anything reasonable >> > either. ktrace shows nothing out of the ordinary. >> > >> > ----- >> > >> > Meanwhile=2C my Mac got through "do-cm3-std.sh realclean" and >> > "do-cm3-std.sh buildship" but my compiles are still dying on the >> > same assertion tickled by ktok. On that machine I have INSTALLROOT >> > set to ~/cm3=2C but hopefully that has nothing to do with it... >> > >> > ----- >> > >> > Does do-cm3-std.sh realclean clean EVERYTHING? If so my Mac should >> > really have a fresh setup. The FreeBSD=2C I am not sure=2C maybe the >> > old binary version just doesn't work right? Of course I could try >> > bootstrapping with PM3 as well... but really=2C there's an "approved" >> > process to get from a blank system=2C no? >> > >> > Mika >> > >> > >> > >> > >> > Tony Hosking writes: >> >> That sounds like you forgot to execute "do-cm3-std.sh realclean" >> >> before initiating the build. These sorts of errors sometimes arise >> >> if there are old build directories lying around. >> >> >> >> On Jun 23=2C 2007=2C at 3:34 AM=2C Mika Nystrom wrote: >> >> >> >>> Hello everyone=2C >> >>> >> >>> I am in the process of trying to consolidate build systems for a >> >>> few software packages I am maintaining. Currently=2C I am using an >> >>> old PM3 on FreeBSD4=2C an ancient PM3 (from Klagenfurt?) for Windows >> >>> (NT386GNU)=2C and trying to get the latest CM3 from cvs up and =20 >> >>> compiling >> >>> things on PPC_DARWIN. Ideally=2C I'd like to standardize everything >> >>> on the new PM3---mainly so that I can use pickles (and Network >> >>> Objects) across all three systems. I'd also like to add Linux to >> >>> the mix. >> >>> >> >>> It's natural for me to start with CM3 on Darwin=2C as there's no >> >>> alternative. But I am getting some assertions failing. Everything >> >>> in the CM3 distribution compiles fine=2C and I believe I have compile= >d >> >>> the libraries a few times (that is=2C including with themselves)=2C a= >nd >> >>> updated the compiler=2C too (using boot-cm3-with-m3.sh). I just cvs >> >>> updated tonight. >> >>> >> >>> Here's what I'm running into: >> >>> >> >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/CHP.t -o =20 >> >>> CHPTok.i3 >> >>> >> >>> *** >> >>> *** runtime error: >> >>> *** <*ASSERT*> failed. >> >>> *** file "../src/runtime/common/RTCollector.m3"=2C line 2314 >> >>> *** >> >>> >> >>> Abort >> >>> >> >>> Also: >> >>> >> >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/PRS.t -o =20 >> >>> PRSTok.i3 >> >>> Illegal instruction >> >>> >> >>> As you can see=2C these things are coming from the caltech_parser. I >> >> am using >> >>> our local version=2C but I don't think it is very different from what >> >>> is in the >> >>> CM3 tree. >> >>> >> >>> Examining the first error (the failed assertion) more closely=2C I se= >e >> >>> the following: >> >>> >> >>> (gdb) list >> >>> 108 wr :=3D FileWr.Open(Pathname.ReplaceExt(tp.out=2C "m3"))= >=3B >> >>> 109 EXCEPT OSError.E =3D> >> >>> 110 Debug.Error("Cannot open tok implementation output >> >>> file: " & >> >>> 111 Pathname.ReplaceExt(tp.out=2C "m3"))=3B >> >>> 112 END=3B >> >>> 113 Wr.PutText(wr=2C subs.apply(Bundle.Get(Form=2C =20 >> >>> "tokform.m3")))=3B >> >>> 114 Wr.Close(wr)=3B >> >>> 115 END Main. >> >>> (gdb) where >> >>> #0 0x9004308c in kill () >> >>> #1 0x9009fb3c in abort () >> >>> #2 0x00096f50 in RTOS__Crash () at RTOS.m3:20 >> >>> #3 0x0005bd40 in RTProcess__Crash (M3_Bd56fi_msg=3D0x0) at >> >>> RTProcess.m3:65 >> >>> #4 0x0008e4e0 in RTError__EndError (M3_AicXUJ_crash=3D1 '\001') at >> >>> RTError.m3:115 >> >>> #5 0x0008e08c in RTError__MsgS (M3_AJWxb1_file=3D0xc63d8=2C >> >>> M3_AcxOUs_line=3D2314=2C M3_Bd56fi_msgA=3D0xca3d0=2C >> >>> M3_Bd56fi_msgB=3D0xcbe90=2C M3_Bd56fi_msgC=3D0xca3d0) at RTError.m3:4= >0 >> >>> #6 0x0008eb88 in RTException__Crash (M3_Cblw37_a=3D0xbfffee00=2C >> >>> M3_AicXUJ_raises=3D0 '\0'=2C M3_AJWxb1_rte=3D0xcb538) at RTException.= >m3:79 >> >>> #7 0x0008e74c in RTException__DefaultBackstop >> >>> (M3_Cblw37_a=3D0xbfffee00=2C M3_AicXUJ_raises=3D0 '\0') at =20 >> >>> RTException.m3:39 >> >>> #8 0x0008e614 in RTException__InvokeBackstop >> >>> (M3_Cblw37_a=3D0xbfffee00=2C M3_AicXUJ_raises=3D0 '\0') at =20 >> >>> RTException.m3:25 >> >>> #9 0x00095d04 in RTException__Raise (M3_Cblw37_act=3D0xbfffee00) at >> >>> RTExFrame.m3:29 >> >>> #10 0x0008e840 in RTException__DefaultBackstop >> >>> (M3_Cblw37_a=3D0xbfffee00=2C M3_AicXUJ_raises=3D0 '\0') at =20 >> >>> RTException.m3:47 >> >>> #11 0x0008e614 in RTException__InvokeBackstop >> >>> (M3_Cblw37_a=3D0xbfffee00=2C M3_AicXUJ_raises=3D0 '\0') at =20 >> >>> RTException.m3:25 >> >>> #12 0x00095d04 in RTException__Raise (M3_Cblw37_act=3D0xbfffee00) at >> >>> RTExFrame.m3:29 >> >>> #13 0x00079740 in RTHooks__ReportFault (M3_AJWxb1_module=3D0xb3eb8=2C >> >>> M3_AcxOUs_info=3D74048) at RTHooks.m3:110 >> >>> #14 0x0006ff4c in _m3_fault (M3_AcxOUs_arg=3D74048) >> >>> #15 0x0006bcf4 in RTHooks__CheckStoreTraced >> >>> (M3_Af40ku_ref=3D0xb2415c) at RTCollector.m3:2314 >> >>> #16 0x000700e4 in ThreadPThread__InnerLockMutex >> >>> (M3_AYIbX3_m=3D0xb2415c=2C M3_BXP32l_self=3D0xb24014) at >> >>> ThreadPThread.m3:126 >> >>> #17 0x000704d8 in ThreadPThread__LockMutex (M3_AYIbX3_m=3D0xb2415c) >> >>> at ThreadPThread.m3:153 >> >>> #18 0x00019b24 in Wr__PutText (M3_BxxOH1_wr=3D0xb2415c=2C >> >>> M3_Bd56fi_t=3D0xb44d5c) at Wr.m3:93 >> >>> #19 0x00003f74 in Main_M3 (M3_AcxOUs_mode=3D1) at Main.m3:113 >> >>> #20 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=3D0xad190) at >> >>> RTLinker.m3:399 >> >>> #21 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=3D0xad190) at >> >>> RTLinker.m3:113 >> >>> #22 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=3D0x3600) at >> >>> RTLinker.m3:122 >> >>> #23 0x00001fac in main (argc=3D4=2C argv=3D0xbffffb24=2C envp=3D0xbff= >ffb38) >> >>> at _m3main.mc:4 >> >>> (gdb) >> >>> >> >>> The second error: >> >>> >> >>> Program received signal EXC_BAD_INSTRUCTION=2C Illegal instruction/ >> >>> operand. >> >>> 0x00b111ac in ?? () >> >>> (gdb) where >> >>> #0 0x00b111ac in ?? () >> >>> #1 0x0001214c in TextSubs__Apply (M3_CN69dV_self=3D0xb26450=2C >> >>> M3_Bd56fi_src=3D0xb21cec) at TextSubs.m3:63 >> >>> #2 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=3D0xad190) at >> >>> RTLinker.m3:399 >> >>> #3 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=3D0xad190) at >> >>> RTLinker.m3:113 >> >>> #4 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=3D0x3600) at >> >>> RTLinker.m3:122 >> >>> #5 0x00001fac in main (argc=3D4=2C argv=3D0xbffffb24=2C envp=3D0xbff= >ffb38) >> >>> at _m3main.mc:4 >> >>> (gdb) list >> >>> 58 BEGIN >> >>> 59 WHILE pos < textLen DO >> >>> 60 c :=3D Text.GetChar(src=2C pos)=3B >> >>> 61 IF c IN self.starts THEN >> >>> 62 (* S("analysing: " & Text.Sub(src=2C pos)=2C >> >>> DebugLevel)=3B *) >> >>> 63 iter :=3D self.tbl.iterateOrdered()=3B >> >>> 64 ind :=3D pos=3B >> >>> 65 original :=3D ""=3B >> >>> 66 REPEAT >> >>> 67 INC(ind)=3B >> >>> (gdb) >> >>> >> >>> Any ideas what to look at? >> >>> >> >>> I don't know if this is relevant: >> >>> >> >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% uname -a >> >>> Darwin lapdog.local 7.9.0 Darwin Kernel Version 7.9.0: Wed Mar 30 >> >>> 20:11:17 PST 2005=3B root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC Power >> >>> Macintosh powerpc >> >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% gcc -v >> >>> Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs >> >>> Thread model: posix >> >>> gcc version 3.3 20030304 (Apple Computer=2C Inc. build 1666) >> >>> >> >>> Mika >> >>> >> >>> P.S. Am I correct in assuming that I can get CM3 to build on =20 >> >>> Windows? >> >>> I could switch to CM3 on Unix any time=2C of course=2C but I've never >> >>> had luck with it on Windows=2C which is why I am using the ancient >> >>> Klagenfurt PM3=2C which comes on 40-odd "floppies" and a .EXE that >> >>> unpacks them into C: (and installation instructions only in German). >> >>> If CM3 doesn't work on Windows=2C I am essentially wasting my time=2C >> >>> as the current project I am working on absolutely requires that the >> >>> software run on Windows 2003 Server (yes=2C it sucks=2C but what can >> >>> you do?) The very old PM3 at least kind of hobbles along on this >> >>> platform---actually=2C better than that=3B it does Trestle natively >> >>> under Windows (no X required)=2C at least on SOME Windows machines. >> >>> >> >>> P.P.S. Sorry for all the postscripts=2C but is it true that the >> >>> build system has been changed so that building with overrides =20 >> >>> (cm3 -x) >> >>> requires having the compiler sources available? It didn't use to >> >>> be that way=2C but I can't get Network Objects to work with overrides >> >>> now unless I have the sources available... It's a bit of a pain >> >>> because it means that every user has to have the compiler sources=2C >> >>> or else ship everything=2C or was that not the intention? > = > >--_6374b72e-0dad-4a03-8d22-4a59e0218226_ >Content-Type: text/html; charset="iso-8859-1" >Content-Transfer-Encoding: quoted-printable > > > > > >I upgrade across incompatibilities frequently & H= >udson does now too. The existing scripts work very well and you would be fo= >olish to not use them. Just use upgrade.py. It is very easy. Or upgrade.py = >nocleangcc. And then do-cm3-all.py skipgcc realclean && do-cm3-all.py build= >ship.py.

- Jay/phone

> To:=3B jay.krell@=3Bcornell.edu= >
> Date:=3B Sat=2C 8 Jan 2011 04:=3B14:=3B41 -0800
> From= >8=3B mika@=3Basync.caltech.edu
> CC:=3B m3devel@=3Belegosoft.co= >m
> Subject:=3B Re:=3B [=3BM3devel]=3B another Snow Leopard = >compiler crash
>
> Jay K writes:=3B
> >=3B
> >=3BPlea= >se try this Mika. It fixes the problem for me.
>
> Hi Jay=2C
> r>> So I upgraded to the CVS head and now I get a segfaulting compiler:= >=3B
>
> [=3Bhal:=3Bcm3/m3-libs/m3core]=3B mika%=3B gdb &= >#36=3BCM3
> GNU gdb 6.3.50-20050815 (=3BApple version gdb-1510)=3B= > (=3BWed Sep 22 02:=3B45:=3B02 UTC 2010)=3B
> Copyright 2004= > Free Software Foundation=2C Inc.
> GDB is free software=2C covered by t= >he GNU General Public License=2C and you are
> welcome to change it and/= >or distribute copies of it under certain conditions.
> Type "=3Bshow = >copying"=3B to see the conditions.
> There is absolutely no warranty = >for GDB. Type "=3Bshow warranty"=3B for details.
> This GDB was c= >onfigured as "=3Bx86_64-apple-darwin"=3B...Reading symbols for shared= > libraries ...... done
>
> (=3Bgdb)=3B run
> Starting progr= >am:=3B /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3
> Reading symbols for = >shared libraries .+=3B+=3B+=3B+=3B+=3B.......... done
> <= >br>> Program received signal EXC_BAD_ACCESS=2C Could not access memory.
= >> Reason:=3B KERN_PROTECTION_FAILURE at address:=3B 0x0000038b
> 0= >x9713354b in _longjmp (=3B)=3B
> (=3Bgdb)=3B where
> #= >=3B0 0x9713354b in _longjmp (=3B)=3B
> #=3B1 0x00285d2b in RT= >ExFrame__InvokeHandler (=3Bf==3B0xbffff34c=2C a==3B0xbffff23c)= >=3B at ../src/runtime/ex_frame/RTExFrame.m3:=3B175
> #=3B2 0x0028= >5be4 in RTException__ResumeRaise (=3Ba==3B0xbffff23c)=3B at ../src= >/runtime/ex_frame/RTExFrame.m3:=3B145
> #=3B3 0x00285a1b in RTExc= >eption__Raise (=3Bact==3B0xbffff23c)=3B at ../src/runtime/ex_frame= >/RTExFrame.m3:=3B91
> #=3B4 0x00269d44 in RTHooks__Raise (=3Be= >x==3B0x35a720=2C arg==3B0x181cddc=2C module==3B0x398080=2C line= >1=3B50)=3B at ../src/runtime/common/RTHooks.m3:=3B79
> #=3B5 0= >x0023adbc in OSErrorPosix__Raise0 (=3Berrno==3B2)=3B at ../src/os/= >POSIX/OSErrorPosix.m3:=3B50
> #=3B6 0x0023cffc in FSPosix__Fail &= >#40=3Bp==3B0x181cdc0=2C f==3B0xf049f0)=3B at ../src/os/POSIX/FSPos= >ix.m3:=3B359
> #=3B7 0x0023cdd4 in FS__Status (=3Bpn==3B0x1= >81cdc0=2C _result==3B0xbffff3c8)=3B at ../src/os/POSIX/FSPosix.m3:= >=3B328
> #=3B8 0x00217d24 in M3File__IsReadable (=3Bpath==3B0x= >181cdc0)=3B at ../src/M3File.m3:=3B123
> #=3B9 0x000a057f in M= >xConfig__TryConfig (=3Ba==3B0x3255e0=2C b==3B0x3255f0=2C c==3B0= >x0)=3B at ../src/MxConfig.m3:=3B122
> #=3B10 0x0009ff67 in MxCo= >nfig__FindConfig (=3B)=3B at ../src/MxConfig.m3:=3B51
> #=3B= >11 0x0009fcd8 in MxConfig__FindFile (=3B)=3B at ../src/MxConfig.m3= >8=3B19
> #=3B12 0x0002c446 in Main__DoIt (=3B)=3B at ../src/Mai= >n.m3:=3B32
> #=3B13 0x0002d1e9 in Main_M3 (=3Bmode==3B1)= >=3B at ../src/Main.m3:=3B214
> #=3B14 0x0027a781 in RTLinker__RunM= >ainBody (=3Bm==3B0x3705a0)=3B at ../src/runtime/common/RTLinker.m3= >:=3B406
> #=3B15 0x00279bb6 in RTLinker__AddUnitI (=3Bm==3B0= >x3705a0)=3B at ../src/runtime/common/RTLinker.m3:=3B113
> #=3B1= >6 0x00279c3a in RTLinker__AddUnit (=3Bb==3B0x2d1d0)=3B at ../src/r= >untime/common/RTLinker.m3:=3B122
> #=3B17 0x00002cfc in main (= >=3Bargc==3B1=2C argv==3B0xbffff674=2C envp==3B0xbffff67c)=3B at= > _m3main.c:=3B16
> (=3Bgdb)=3B
>
> I followed upgrade i= >nstructions from Tony (=3Bincluding upgrading the
> back-end)=3B--= >-I have edited the instructions a bit to track changes in
> CM3. I'= >=3Bm starting from head three weeks old..
>
> Mika
>
> = >
> Return-Path:=3B hosking@=3Bcs.purdue.edu
> Delivery-Date:= >=3B Sun Jun 24 07:=3B38:=3B38 2007
> In-Reply-To:=3B <=3B200= >706231838.l5NIcRef079333@=3Bcamembert.async.caltech.edu>=3B
> Refe= >rences:=3B <=3B200706231838.l5NIcRef079333@=3Bcamembert.async.calt= >ech.edu>=3B
>
> Sounds like we really need some work done in this= > area. I very
> rarely use the build scripts=2C since I bootstrap man= >ually from old
> compilers to new compilers rather than use the script= >s. I suggest
> the following approach=2C which I hope you will try=2C= > and then report
> back on.
>
> Install the bootstrap compiler = >as you did originally:=3B
>
> >=3B rm -rf /usr/local/cm3/*= >=3B
> >=3B
> >=3B cd ~=3B/cm3-cvs
> >=3B mkdir bootr>> >=3B cd boot
> >=3B tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-= >2005-10-05.tgz
> >=3B ./cminstall
>
>
> Now you will have = >some kind of cm3 installed=2C presumably in /usr/
> local/cm3/bin/cm3.<= >br>>
> Make sure you have a fresh CVS checkout in directory cm3 (=3B= >let'=3Bs
> assume this is in your home directory ~=3B/cm3)= >=3B. Also=2C make sure you
> have an up-to-date version of the CM3 ba= >ckend compiler cm3cg
> installed by executing the following:=3B
= >>
> STEP 0:=3B
>
> export CM3==3B/usr/local/cm3/bin/cm3>> cd ~=3B/cm3/m3-sys/m3cc
> $=3BCM3
> $=3BCM3 -ship
> <= >br>> You can skip this last step if you know your backend compiler is up <= >br>> to date.
>
> Now=2C let'=3Bs build the new compiler from scr= >atch (=3Bthis is the sequence
> I use regularly to test changes to = >the run-time system whenever I
> make them)=3B:=3B
>
> ca= >n replace compilation step with
>
> rm -rf <=3Bder. dir>=3B &#= >38=3B&=3B $=3BCM3 &=3B&=3B $=3BCM3 -ship
>
>
> S= >TEP 1:=3B
>
> (=3Bdo these LATER if bootstrapping from old com= >piler!=3B)=3B
> cd ~=3B/cm3/m3-libs/m3core
> $=3BCM3
= >> $=3BCM3 -ship
> cd ~=3B/cm3/m3-libs/libm3
> $=3BCM3
> = >$=3BCM3 -ship
>
> Now build the compiler:=3B
>
> cd &#= >126=3B/cm3/m3-libs/sysutils ;=3B $=3BCM3 etc.
>
> cd ~=3B/= >cm3/m3-sys/m3middle;=3B $=3BCM3 etc.
>
> repeat for:=3B
= >>
> m3-sys/m3objfile
>
> m3-sys/m3back
>
> m3-sys/m3lin= >ker
>
> m3-sys/m3front
>
> m3-sys/m3quake
>
> m3-sys/c= >m3
>
> [=3B here we may need -DROOT==3B<=3Broot dir=2C e.g.= >=2C /home/mika/cm3>=3B ]=3B
>
>
> At this point you should= > have a bootstrapped version of cm3 installed
> in the directory /usr/= >local/cm3/pkg/cm3/TARGET/cm3 (=3Bwhere TARGET is
> the CM3 target p= >latform you are building on -- e.g.=2C LINUXLIBC6=2C
> PPC_DARWIN=2C .= >..)=3B. Note that this did not overwrite your original
> installed= > compiler in /usr/local/cm3/bin/cm3. We
> are now going to test the new= > compiler=2C which was built using the old
> compiler=2C by bootstrapp= >ing it one more time.
>
>
> *=3B*=3B*=3B*=3B*=3B&= >#42=3B*=3B THIS IS WHERE I HAVE A SEGFAULTING COMPILER *=3B*=3B= >2=3B*=3B*=3B*=3B*=3B
>
> (=3BIf m3core and libm3 were= > skipped earlier=2C do them now=2C and RE-DO all
> of the above packages= > before proceeding.)=3B
>
> From here on out=2C please replace TA= >RGET with your target platform as
> appropriate.
>
> STEP 2:= >=3B
>
> export CM3==3B/usr/local/cm3/pkg/cm3/TARGET/cm3
> cd &= >#126=3B/cm3/scripts
>
> ./do-cm3-std.sh realclean
> REPEAT STEP 1= > to rebuild the libraries and the compiler using the
> STEP 1 bootstra= >p compiler.
>
> Now you have a STEP 2 bootstrap compiler installed i= >n /usr/local/cm3/
> pkg/cm3/TARGET/cm3. Let'=3Bs assume the new com= >piler now works properly
> since it successfully bootstrapped itself= >=2C but to be sure we can now
> use it to rebuild the world:=3B
= >>
> cd ~=3B/cm3/scripts
> ./do-cm3-std.sh realclean
> ./do-cm= >3-std.sh buildship
>
> Assuming this succeeded then we can be pretty= > sure /usr/local/cm3/pkg/
> cm3/TARGET/cm3 is good=2C so we can make it= > our default compiler by
> replacing the original /usr/local/cm3/bin/c= >m3:=3B
>
> cp $=3BCM3 /usr/local/cm3/bin/cm3
>
> On Jun= > 23=2C 2007=2C at 2:=3B38 PM=2C Mika Nystrom wrote:=3B
>
> = >2=3B Ok=2C I'=3Bm sorry if I seem a bit dimwitted in the morning like th= >is=2C
> >=3B but how exactly does one get started?=3B I wish ther= >e were a file called
> >=3B "=3BGETTING_STARTED"=3B or somethin= >g like that in scripts...
> >=3B
> >=3B My Mac is very slow so = >I switched to my FreeBSD/i386 system (=3Bwhich has
> >=3B PM3 happ= >ily installed on it)=3B and tried to install CM3 from scratch.
> >= >=3B Here are the exact commands I typed.
> >=3B
> >=3B
> = >2=3B rm -rf /usr/local/cm3/*=3B
> >=3B
> >=3B cd ~=3B/cm= >3-cvs
> >=3B mkdir boot
> >=3B cd boot
> >=3B tar xzvf ..= >/cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz
> >=3B ./cminstall
>= > >=3B
> >=3B #=3B now I seem to have some kind of cm3 installed= >=2C /usr/local/cm3/bin/
> >=3B cm3
> >=3B
> >=3B cd cm3 = > #=3B location of my CM3 checkout
> >=3B cvs update -d .
> = >2=3B
> >=3B cd scripts
> >=3B ./boot-cm3-with-m3.sh realcleanr>> >=3B ./do-cm3-std.sh realclean
> >=3B
> >=3B ./upgrade.s= >h #=3B fails here=2C libm3 not compiled
> >= >=3B ./boot-cm3-with-m3.sh build #=3B builds cm3=2C but fails on <= >br>> >=3B cminstall=2C patternmatching not built
> >=3B
> >= >=3B ./do-cm3-std.sh build #=3B OK
> >=3B ./do-cm3-std.= >sh buildship #=3B OK
> >=3B
> >=3B ./boot-cm3-with-m= >3.sh realclean #=3B start over
> >=3B ./boot-cm3-with-m3.sh buil= >d #=3B OK
> >=3B ./boot-cm3-with-m3.sh buildship #=3B O= >K
> >=3B
> >=3B ./do-cm3-std.sh realclean #=3B OK>> >=3B ./do-cm3-std.sh build #=3B dies miserably... mayb= >e the
> >=3B compiler can'=3Bt handle the new libraries?=3Br>> >=3B
> >=3B ./install-cm3-compiler.sh upgrade #=3B OK=2C ne= >w cm3 binary installed
> >=3B
> >=3B After all that=2C "=3Bg= >ame over."=3B I have a cm3 that segfaults.
> >=3B
> >=3B Te= >xt.i3:=3B In function '=3BText_I3'=3B:=3B
> >=3B Text.i3&= >#58=3B81:=3B internal compiler error:=3B Segmentation fault
> >= >=3B Please submit a full bug report=2C
> >=3B with preprocessed sourc= >e if appropriate.
> >=3B See <=3BURL:=3Bhttp:=3B//gcc.gnu.or= >g/bugs.html>=3B for instructions.
> >=3B compilation failed == >=3B>=3B not building library "=3Blibm3core.a"=3B
> >=3B Fata= >l Error:=3B package build failed
> >=3B *=3B*=3B*=3B exe= >cution of failed *=3B*=3B*=3B
> >=3B
> >=3B I can'= >=3Bt seem to get either m3gdb or gdb to say anything reasonable
> >= >=3B either. ktrace shows nothing out of the ordinary.
> >=3B
> &#= >62=3B -----
> >=3B
> >=3B Meanwhile=2C my Mac got through "= >=3Bdo-cm3-std.sh realclean"=3B and
> >=3B "=3Bdo-cm3-std.sh bui= >ldship"=3B but my compiles are still dying on the
> >=3B same asse= >rtion tickled by ktok. On that machine I have INSTALLROOT
> >=3B set= > to ~=3B/cm3=2C but hopefully that has nothing to do with it...
> &#= >62=3B
> >=3B -----
> >=3B
> >=3B Does do-cm3-std.sh realc= >lean clean EVERYTHING?=3B If so my Mac should
> >=3B really have = >a fresh setup. The FreeBSD=2C I am not sure=2C maybe the
> >=3B old = >binary version just doesn'=3Bt work right?=3B Of course I could try<= >br>> >=3B bootstrapping with PM3 as well... but really=2C there'=3Bs = >an "=3Bapproved"=3B
> >=3B process to get from a blank system= >=2C no?=3B
> >=3B
> >=3B Mika
> >=3B
> >= >=3B
> >=3B
> >=3B
> >=3B Tony Hosking writes:=3B
> = >>=3B>=3B That sounds like you forgot to execute "=3Bdo-cm3-std.sh = >realclean"=3B
> >=3B>=3B before initiating the build. These so= >rts of errors sometimes arise
> >=3B>=3B if there are old build di= >rectories lying around.
> >=3B>=3B
> >=3B>=3B On Jun 23= >=2C 2007=2C at 3:=3B34 AM=2C Mika Nystrom wrote:=3B
> >=3B>= >=3B
> >=3B>=3B>=3B Hello everyone=2C
> >=3B>=3B>=3B= >
> >=3B>=3B>=3B I am in the process of trying to consolidate bu= >ild systems for a
> >=3B>=3B>=3B few software packages I am mai= >ntaining. Currently=2C I am using an
> >=3B>=3B>=3B old PM3 on= > FreeBSD4=2C an ancient PM3 (=3Bfrom Klagenfurt?=3B)=3B for Window= >s
> >=3B>=3B>=3B (=3BNT386GNU)=3B=2C and trying to get th= >e latest CM3 from cvs up and
> >=3B>=3B>=3B compiling
> &#= >62=3B>=3B>=3B things on PPC_DARWIN. Ideally=2C I'=3Bd like to sta= >ndardize everything
> >=3B>=3B>=3B on the new PM3---mainly so t= >hat I can use pickles (=3Band Network
> >=3B>=3B>=3B Objects= >)=3B across all three systems. I'=3Bd also like to add Linux to
>= > >=3B>=3B>=3B the mix.
> >=3B>=3B>=3B
> >=3B>= >=3B>=3B It'=3Bs natural for me to start with CM3 on Darwin=2C as ther= >e'=3Bs no
> >=3B>=3B>=3B alternative. But I am getting some= > assertions failing. Everything
> >=3B>=3B>=3B in the CM3 dist= >ribution compiles fine=2C and I believe I have compiled
> >=3B>=3B= >>=3B the libraries a few times (=3Bthat is=2C including with themselv= >es)=3B=2C and
> >=3B>=3B>=3B updated the compiler=2C too = >0=3Busing boot-cm3-with-m3.sh)=3B. I just cvs
> >=3B>=3B>= >=3B updated tonight.
> >=3B>=3B>=3B
> >=3B>=3B>=3B = >Here'=3Bs what I'=3Bm running into:=3B
> >=3B>=3B>=3B<= >br>> >=3B>=3B>=3B /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../s= >rc/CHP.t -o
> >=3B>=3B>=3B CHPTok.i3
> >=3B>=3B>= >=3B
> >=3B>=3B>=3B *=3B*=3B*=3B
> >=3B>=3B= >2=3B *=3B*=3B*=3B runtime error:=3B
> >=3B>=3B>=3B = >*=3B*=3B*=3B <=3B*=3BASSERT*=3B>=3B failed.
> &#= >62=3B>=3B>=3B *=3B*=3B*=3B file "=3B../src/runtime/com= >mon/RTCollector.m3"=3B=2C line 2314
> >=3B>=3B>=3B *=3B&#= >42=3B*=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B Abort>> >=3B>=3B>=3B
> >=3B>=3B>=3B Also:=3B
> >= >=3B>=3B>=3B
> >=3B>=3B>=3B /Users/mika/t/parserlib/ktok/P= >PC_DARWIN/tok ../src/PRS.t -o
> >=3B>=3B>=3B PRSTok.i3
> &= >#62=3B>=3B>=3B Illegal instruction
> >=3B>=3B>=3B
> &#= >62=3B>=3B>=3B As you can see=2C these things are coming from the calt= >ech_parser. I
> >=3B>=3B am using
> >=3B>=3B>=3B our = >local version=2C but I don'=3Bt think it is very different from what
= >> >=3B>=3B>=3B is in the
> >=3B>=3B>=3B CM3 tree.
>= > >=3B>=3B>=3B
> >=3B>=3B>=3B Examining the first error= > (=3Bthe failed assertion)=3B more closely=2C I see
> >=3B>= >=3B>=3B the following:=3B
> >=3B>=3B>=3B
> >=3B>= >=3B>=3B (=3Bgdb)=3B list
> >=3B>=3B>=3B 108 wr= > :=3B==3B FileWr.Open(=3BPathname.ReplaceExt(=3Btp.out=2C "= >=3Bm3"=3B)=3B)=3B;=3B
> >=3B>=3B>=3B 109 EXCE= >PT OSError.E ==3B>=3B
> >=3B>=3B>=3B 110 Debug.Er= >ror(=3B"=3BCannot open tok implementation output
> >=3B>=3B&= >#62=3B file:=3B "=3B &=3B
> >=3B>=3B>=3B 111 = > Pathname.ReplaceExt(=3Btp.out=2C "=3Bm3"=3B)=3B)=3B;=3B<= >br>> >=3B>=3B>=3B 112 END;=3B
> >=3B>=3B>=3B = >113 Wr.PutText(=3Bwr=2C subs.apply(=3BBundle.Get(=3BForm=2C = >
> >=3B>=3B>=3B "=3Btokform.m3"=3B)=3B)=3B)=3B&= >#59=3B
> >=3B>=3B>=3B 114 Wr.Close(=3Bwr)=3B;=3B= >
> >=3B>=3B>=3B 115 END Main.
> >=3B>=3B>=3B &#= >40=3Bgdb)=3B where
> >=3B>=3B>=3B #=3B0 0x9004308c in ki= >ll (=3B)=3B
> >=3B>=3B>=3B #=3B1 0x9009fb3c in abort = >(=3B)=3B
> >=3B>=3B>=3B #=3B2 0x00096f50 in RTOS__Cra= >sh (=3B)=3B at RTOS.m3:=3B20
> >=3B>=3B>=3B #=3B3 = >0x0005bd40 in RTProcess__Crash (=3BM3_Bd56fi_msg==3B0x0)=3B at
= >> >=3B>=3B>=3B RTProcess.m3:=3B65
> >=3B>=3B>=3B &#= >35=3B4 0x0008e4e0 in RTError__EndError (=3BM3_AicXUJ_crash==3B1 '= >=3B\=3B001'=3B)=3B at
> >=3B>=3B>=3B RTError.m3:=3B= >115
> >=3B>=3B>=3B #=3B5 0x0008e08c in RTError__MsgS (= >=3BM3_AJWxb1_file==3B0xc63d8=2C
> >=3B>=3B>=3B M3_AcxOUs_lin= >e==3B2314=2C M3_Bd56fi_msgA==3B0xca3d0=2C
> >=3B>=3B>=3B = >M3_Bd56fi_msgB==3B0xcbe90=2C M3_Bd56fi_msgC==3B0xca3d0)=3B at RTEr= >ror.m3:=3B40
> >=3B>=3B>=3B #=3B6 0x0008eb88 in RTExcept= >ion__Crash (=3BM3_Cblw37_a==3B0xbfffee00=2C
> >=3B>=3B>= >=3B M3_AicXUJ_raises==3B0 '=3B\=3B0'=3B=2C M3_AJWxb1_rte==3B= >0xcb538)=3B at RTException.m3:=3B79
> >=3B>=3B>=3B #= >=3B7 0x0008e74c in RTException__DefaultBackstop
> >=3B>=3B>=3B= > (=3BM3_Cblw37_a==3B0xbfffee00=2C M3_AicXUJ_raises==3B0 '=3B = >2=3B0'=3B)=3B at
> >=3B>=3B>=3B RTException.m3:=3B39= >
> >=3B>=3B>=3B #=3B8 0x0008e614 in RTException__InvokeBack= >stop
> >=3B>=3B>=3B (=3BM3_Cblw37_a==3B0xbfffee00=2C M3_A= >icXUJ_raises==3B0 '=3B\=3B0'=3B)=3B at
> >=3B>=3B= >>=3B RTException.m3:=3B25
> >=3B>=3B>=3B #=3B9 0x0009= >5d04 in RTException__Raise (=3BM3_Cblw37_act==3B0xbfffee00)=3B at<= >br>> >=3B>=3B>=3B RTExFrame.m3:=3B29
> >=3B>=3B>=3B= > #=3B10 0x0008e840 in RTException__DefaultBackstop
> >=3B>=3B&#= >62=3B (=3BM3_Cblw37_a==3B0xbfffee00=2C M3_AicXUJ_raises==3B0 '= >=3B\=3B0'=3B)=3B at
> >=3B>=3B>=3B RTException.m3= >8=3B47
> >=3B>=3B>=3B #=3B11 0x0008e614 in RTException__Invo= >keBackstop
> >=3B>=3B>=3B (=3BM3_Cblw37_a==3B0xbfffee00= >=2C M3_AicXUJ_raises==3B0 '=3B\=3B0'=3B)=3B at
> >= >=3B>=3B>=3B RTException.m3:=3B25
> >=3B>=3B>=3B #= >=3B12 0x00095d04 in RTException__Raise (=3BM3_Cblw37_act==3B0xbfffee0= >0)=3B at
> >=3B>=3B>=3B RTExFrame.m3:=3B29
> >=3B&#= >62=3B>=3B #=3B13 0x00079740 in RTHooks__ReportFault (=3BM3_AJWxb1_= >module==3B0xb3eb8=2C
> >=3B>=3B>=3B M3_AcxOUs_info==3B740= >48)=3B at RTHooks.m3:=3B110
> >=3B>=3B>=3B #=3B14 0x00= >06ff4c in _m3_fault (=3BM3_AcxOUs_arg==3B74048)=3B
> >=3B= >2=3B>=3B #=3B15 0x0006bcf4 in RTHooks__CheckStoreTraced
> >=3B&= >#62=3B>=3B (=3BM3_Af40ku_ref==3B0xb2415c)=3B at RTCollector.m3&= >#58=3B2314
> >=3B>=3B>=3B #=3B16 0x000700e4 in ThreadPThread= >__InnerLockMutex
> >=3B>=3B>=3B (=3BM3_AYIbX3_m==3B0xb241= >5c=2C M3_BXP32l_self==3B0xb24014)=3B at
> >=3B>=3B>=3B Th= >readPThread.m3:=3B126
> >=3B>=3B>=3B #=3B17 0x000704d8 in= > ThreadPThread__LockMutex (=3BM3_AYIbX3_m==3B0xb2415c)=3B
> = >2=3B>=3B>=3B at ThreadPThread.m3:=3B153
> >=3B>=3B>=3B= > #=3B18 0x00019b24 in Wr__PutText (=3BM3_BxxOH1_wr==3B0xb2415c=2C<= >br>> >=3B>=3B>=3B M3_Bd56fi_t==3B0xb44d5c)=3B at Wr.m3:= >=3B93
> >=3B>=3B>=3B #=3B19 0x00003f74 in Main_M3 (=3BM3_= >AcxOUs_mode==3B1)=3B at Main.m3:=3B113
> >=3B>=3B>=3B = >#=3B20 0x0005b1c4 in RTLinker__RunMainBody (=3BM3_DjPxE3_m==3B0xad= >190)=3B at
> >=3B>=3B>=3B RTLinker.m3:=3B399
> >=3B= >>=3B>=3B #=3B21 0x00059f88 in RTLinker__AddUnitI (=3BM3_DjPxE3_= >m==3B0xad190)=3B at
> >=3B>=3B>=3B RTLinker.m3:=3B113<= >br>> >=3B>=3B>=3B #=3B22 0x0005a084 in RTLinker__AddUnit (= >=3BM3_DjPxE5_b==3B0x3600)=3B at
> >=3B>=3B>=3B RTLinker.m= >3:=3B122
> >=3B>=3B>=3B #=3B23 0x00001fac in main (=3B= >argc==3B4=2C argv==3B0xbffffb24=2C envp==3B0xbffffb38)=3B
> = >>=3B>=3B>=3B at _m3main.mc:=3B4
> >=3B>=3B>=3B (= >=3Bgdb)=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B The sec= >ond error:=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B Prog= >ram received signal EXC_BAD_INSTRUCTION=2C Illegal instruction/
> >= >=3B>=3B>=3B operand.
> >=3B>=3B>=3B 0x00b111ac in ?=3B= >?=3B (=3B)=3B
> >=3B>=3B>=3B (=3Bgdb)=3B wherer>> >=3B>=3B>=3B #=3B0 0x00b111ac in ?=3B?=3B (=3B= >1=3B
> >=3B>=3B>=3B #=3B1 0x0001214c in TextSubs__Apply = >0=3BM3_CN69dV_self==3B0xb26450=2C
> >=3B>=3B>=3B M3_Bd56fi_s= >rc==3B0xb21cec)=3B at TextSubs.m3:=3B63
> >=3B>=3B>=3B= > #=3B2 0x0005b1c4 in RTLinker__RunMainBody (=3BM3_DjPxE3_m==3B0xa= >d190)=3B at
> >=3B>=3B>=3B RTLinker.m3:=3B399
> >= >=3B>=3B>=3B #=3B3 0x00059f88 in RTLinker__AddUnitI (=3BM3_DjPx= >E3_m==3B0xad190)=3B at
> >=3B>=3B>=3B RTLinker.m3:=3B1= >13
> >=3B>=3B>=3B #=3B4 0x0005a084 in RTLinker__AddUnit = >0=3BM3_DjPxE5_b==3B0x3600)=3B at
> >=3B>=3B>=3B RTLinker.= >m3:=3B122
> >=3B>=3B>=3B #=3B5 0x00001fac in main (= >=3Bargc==3B4=2C argv==3B0xbffffb24=2C envp==3B0xbffffb38)=3B>> >=3B>=3B>=3B at _m3main.mc:=3B4
> >=3B>=3B>=3B &= >#40=3Bgdb)=3B list
> >=3B>=3B>=3B 58 BEGIN
> >= >=3B>=3B>=3B 59 WHILE pos <=3B textLen DO
> >=3B>= >=3B>=3B 60 c :=3B==3B Text.GetChar(=3Bsrc=2C pos)= >=3B;=3B
> >=3B>=3B>=3B 61 IF c IN self.starts THE= >N
> >=3B>=3B>=3B 62 (=3B*=3B S(=3B"=3B= >analysing:=3B "=3B &=3B Text.Sub(=3Bsrc=2C pos)=3B=2C
> &= >#62=3B>=3B>=3B DebugLevel)=3B;=3B *=3B)=3B
> >=3B&#= >62=3B>=3B 63 iter :=3B==3B self.tbl.iterateOrdered= >0=3B)=3B;=3B
> >=3B>=3B>=3B 64 ind :=3B&#= >61=3B pos;=3B
> >=3B>=3B>=3B 65 original := >=3B==3B "=3B"=3B;=3B
> >=3B>=3B>=3B 66 = > REPEAT
> >=3B>=3B>=3B 67 INC(=3Bind)=3B&#= >59=3B
> >=3B>=3B>=3B (=3Bgdb)=3B
> >=3B>=3B>= >=3B
> >=3B>=3B>=3B Any ideas what to look at?=3B
> >= >=3B>=3B>=3B
> >=3B>=3B>=3B I don'=3Bt know if this is = >relevant:=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B [= >=3Blapdog:=3B~=3B/t/cit_parse/PPC_DARWIN]=3B mika%=3B uname -a= >
> >=3B>=3B>=3B Darwin lapdog.local 7.9.0 Darwin Kernel Version= > 7.9.0:=3B Wed Mar 30
> >=3B>=3B>=3B 20:=3B11:=3B17 PS= >T 2005;=3B root:=3Bxnu/xnu-517.12.7.obj~=3B1/RELEASE_PPC Powerr>> >=3B>=3B>=3B Macintosh powerpc
> >=3B>=3B>=3B [= >=3Blapdog:=3B~=3B/t/cit_parse/PPC_DARWIN]=3B mika%=3B gcc -vr>> >=3B>=3B>=3B Reading specs from /usr/libexec/gcc/darwin/ppc/3.= >3/specs
> >=3B>=3B>=3B Thread model:=3B posix
> >=3B&#= >62=3B>=3B gcc version 3.3 20030304 (=3BApple Computer=2C Inc. build 1= >666)=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B Mika<= >br>> >=3B>=3B>=3B
> >=3B>=3B>=3B P.S. Am I correct in = >assuming that I can get CM3 to build on
> >=3B>=3B>=3B Window= >s?=3B
> >=3B>=3B>=3B I could switch to CM3 on Unix any time= >=2C of course=2C but I'=3Bve never
> >=3B>=3B>=3B had luck w= >ith it on Windows=2C which is why I am using the ancient
> >=3B>= >=3B>=3B Klagenfurt PM3=2C which comes on 40-odd "=3Bfloppies"=3B a= >nd a .EXE that
> >=3B>=3B>=3B unpacks them into C:=3B (= >=3Band installation instructions only in German)=3B.
> >=3B>=3B= >>=3B If CM3 doesn'=3Bt work on Windows=2C I am essentially wasting my= > time=2C
> >=3B>=3B>=3B as the current project I am working on = >absolutely requires that the
> >=3B>=3B>=3B software run on Win= >dows 2003 Server (=3Byes=2C it sucks=2C but what can
> >=3B>=3B= >>=3B you do?=3B)=3B The very old PM3 at least kind of hobbles alo= >ng on this
> >=3B>=3B>=3B platform---actually=2C better than th= >at;=3B it does Trestle natively
> >=3B>=3B>=3B under Windows= > (=3Bno X required)=3B=2C at least on SOME Windows machines.
> = >2=3B>=3B>=3B
> >=3B>=3B>=3B P.P.S. Sorry for all the post= >scripts=2C but is it true that the
> >=3B>=3B>=3B build system = >has been changed so that building with overrides
> >=3B>=3B>= >=3B (=3Bcm3 -x)=3B
> >=3B>=3B>=3B requires having the com= >piler sources available?=3B It didn'=3Bt use to
> >=3B>=3B&= >#62=3B be that way=2C but I can'=3Bt get Network Objects to work with ov= >errides
> >=3B>=3B>=3B now unless I have the sources available.= >.. It'=3Bs a bit of a pain
> >=3B>=3B>=3B because it means = >that every user has to have the compiler sources=2C
> >=3B>=3B>= >=3B or else ship everything=2C or was that not the intention?=3B
> = > >= > >--_6374b72e-0dad-4a03-8d22-4a59e0218226_-- From jay.krell at cornell.edu Sat Jan 8 15:22:05 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 14:22:05 +0000 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: <20110108134735.B7D4C1A205B@async.async.caltech.edu> References: <20101227101653.307241A205B@async.async.caltech.edu>, ,,, ,,<20101227185453.97CE51A205B@async.async.caltech.edu>, , , , , , , <20110108121441.A58031A205B@async.async.caltech.edu>, , <20110108134735.B7D4C1A205B@async.async.caltech.edu> Message-ID: It no longer builds m3bundle I think. There was a problem regarding m3bundle for a while, because I had followed upgrade.sh too closely, which had this problem. And this is a sign of using old cm3cg. Are you sure you didn't do something weird? Uograde.py does upgrade cm3cg appropriately. Try head? > To: jay.krell at cornell.edu > Date: Sat, 8 Jan 2011 05:47:35 -0800 > From: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] another Snow Leopard compiler crash > > I ran "python upgrade.py" from a clean start (back to head a few weeks ago) > and got: > > == package /Users/mika/cm3/cm3/m3-tools/m3bundle == > > +++ /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3 -build -DROOT=/Users/mika/cm3/cm3 +++ > --- building in I386_DARWIN --- > > ignoring ../src/m3overrides > > new source -> compiling m3bundle.m3 > -> linking m3bundle > Undefined symbols: > "__alloca", referenced from: > _m3bundle__GetElementSizes in m3bundle.mo > "_Csetjmp__Jumpbuf_size", referenced from: > _Csetjmp__Jumpbuf_size$non_lazy_ptr in m3bundle.mo > (maybe you meant: _Csetjmp__Jumpbuf_size$non_lazy_ptr) > ld: symbol(s) not found > collect2: ld returned 1 exit status > m3_link => 1 > linker failed linking: m3bundle > Fatal Error: package build failed > *** execution of [, ] failed *** > [hal:cm3/scripts/python] mika% > > maybe a conf file change I need to make? > > Why only in m3bundle? > > Mika > > Jay K writes: > >--_6374b72e-0dad-4a03-8d22-4a59e0218226_ > >Content-Type: text/plain; charset="iso-8859-1" > >Content-Transfer-Encoding: quoted-printable > > > >I upgrade across incompatibilities frequently & Hudson does now too. The ex= > >isting scripts work very well and you would be foolish to not use them. Jus= > >t use upgrade.py. It is very easy. Or upgrade.py nocleangcc. And then do-cm= > >3-all.py skipgcc realclean && do-cm3-all.py buildship.py. > > > > - Jay/phone > > > >> To: jay.krell at cornell.edu > >> Date: Sat=2C 8 Jan 2011 04:14:41 -0800 > >> From: mika at async.caltech.edu > >> CC: m3devel at elegosoft.com > >> Subject: Re: [M3devel] another Snow Leopard compiler crash > >>=20 > >> Jay K writes: > >> > > >> >Please try this Mika. It fixes the problem for me. > >>=20 > >> Hi Jay=2C > >>=20 > >> So I upgraded to the CVS head and now I get a segfaulting compiler: > >>=20 > >> [hal:cm3/m3-libs/m3core] mika% gdb $CM3 > >> GNU gdb 6.3.50-20050815 (Apple version gdb-1510) (Wed Sep 22 02:45:02 UTC= > > 2010) > >> Copyright 2004 Free Software Foundation=2C Inc. > >> GDB is free software=2C covered by the GNU General Public License=2C and = > >you are > >> welcome to change it and/or distribute copies of it under certain conditi= > >ons. > >> Type "show copying" to see the conditions. > >> There is absolutely no warranty for GDB. Type "show warranty" for detail= > >s. > >> This GDB was configured as "x86_64-apple-darwin"...Reading symbols for sh= > >ared libraries ...... done > >>=20 > >> (gdb) run > >> Starting program: /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3=20 > >> Reading symbols for shared libraries .+++++.......... done > >>=20 > >> Program received signal EXC_BAD_ACCESS=2C Could not access memory. > >> Reason: KERN_PROTECTION_FAILURE at address: 0x0000038b > >> 0x9713354b in _longjmp () > >> (gdb) where > >> #0 0x9713354b in _longjmp () > >> #1 0x00285d2b in RTExFrame__InvokeHandler (f=3D0xbffff34c=2C a=3D0xbffff= > >23c) at ../src/runtime/ex_frame/RTExFrame.m3:175 > >> #2 0x00285be4 in RTException__ResumeRaise (a=3D0xbffff23c) at ../src/run= > >time/ex_frame/RTExFrame.m3:145 > >> #3 0x00285a1b in RTException__Raise (act=3D0xbffff23c) at ../src/runtime= > >/ex_frame/RTExFrame.m3:91 > >> #4 0x00269d44 in RTHooks__Raise (ex=3D0x35a720=2C arg=3D0x181cddc=2C mod= > >ule=3D0x398080=2C line=3D50) at ../src/runtime/common/RTHooks.m3:79 > >> #5 0x0023adbc in OSErrorPosix__Raise0 (errno=3D2) at ../src/os/POSIX/OSE= > >rrorPosix.m3:50 > >> #6 0x0023cffc in FSPosix__Fail (p=3D0x181cdc0=2C f=3D0xf049f0) at ../src= > >/os/POSIX/FSPosix.m3:359 > >> #7 0x0023cdd4 in FS__Status (pn=3D0x181cdc0=2C _result=3D0xbffff3c8) at = > >../src/os/POSIX/FSPosix.m3:328 > >> #8 0x00217d24 in M3File__IsReadable (path=3D0x181cdc0) at ../src/M3File.= > >m3:123 > >> #9 0x000a057f in MxConfig__TryConfig (a=3D0x3255e0=2C b=3D0x3255f0=2C c= > >=3D0x0) at ../src/MxConfig.m3:122 > >> #10 0x0009ff67 in MxConfig__FindConfig () at ../src/MxConfig.m3:51 > >> #11 0x0009fcd8 in MxConfig__FindFile () at ../src/MxConfig.m3:19 > >> #12 0x0002c446 in Main__DoIt () at ../src/Main.m3:32 > >> #13 0x0002d1e9 in Main_M3 (mode=3D1) at ../src/Main.m3:214 > >> #14 0x0027a781 in RTLinker__RunMainBody (m=3D0x3705a0) at ../src/runtime/= > >common/RTLinker.m3:406 > >> #15 0x00279bb6 in RTLinker__AddUnitI (m=3D0x3705a0) at ../src/runtime/com= > >mon/RTLinker.m3:113 > >> #16 0x00279c3a in RTLinker__AddUnit (b=3D0x2d1d0) at ../src/runtime/commo= > >n/RTLinker.m3:122 > >> #17 0x00002cfc in main (argc=3D1=2C argv=3D0xbffff674=2C envp=3D0xbffff67= > >c) at _m3main.c:16 > >> (gdb)=20 > >>=20 > >> I followed upgrade instructions from Tony (including upgrading the > >> back-end)---I have edited the instructions a bit to track changes in=20 > >> CM3. I'm starting from head three weeks old.. > >>=20 > >> Mika > >>=20 > >>=20 > >> Return-Path: hosking at cs.purdue.edu > >> Delivery-Date: Sun Jun 24 07:38:38 2007 > >> In-Reply-To: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> > >> References: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> > >>=20 > >> Sounds like we really need some work done in this area. I very =20 > >> rarely use the build scripts=2C since I bootstrap manually from old =20 > >> compilers to new compilers rather than use the scripts. I suggest =20 > >> the following approach=2C which I hope you will try=2C and then report =20 > >> back on. > >>=20 > >> Install the bootstrap compiler as you did originally: > >>=20 > >> > rm -rf /usr/local/cm3/* > >> > > >> > cd ~/cm3-cvs > >> > mkdir boot > >> > cd boot > >> > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz > >> > ./cminstall > >>=20 > >>=20 > >> Now you will have some kind of cm3 installed=2C presumably in /usr/=20 > >> local/cm3/bin/cm3. > >>=20 > >> Make sure you have a fresh CVS checkout in directory cm3 (let's =20 > >> assume this is in your home directory ~/cm3). Also=2C make sure you =20 > >> have an up-to-date version of the CM3 backend compiler cm3cg =20 > >> installed by executing the following: > >>=20 > >> STEP 0: > >>=20 > >> export CM3=3D/usr/local/cm3/bin/cm3 > >> cd ~/cm3/m3-sys/m3cc > >> $CM3 > >> $CM3 -ship > >>=20 > >> You can skip this last step if you know your backend compiler is up =20 > >> to date. > >>=20 > >> Now=2C let's build the new compiler from scratch (this is the sequence =20 > >> I use regularly to test changes to the run-time system whenever I =20 > >> make them): > >>=20 > >> can replace compilation step with > >>=20 > >> rm -rf && $CM3 && $CM3 -ship=20 > >>=20 > >>=20 > >> STEP 1: > >>=20 > >> (do these LATER if bootstrapping from old compiler!) > >> cd ~/cm3/m3-libs/m3core > >> $CM3 > >> $CM3 -ship > >> cd ~/cm3/m3-libs/libm3 > >> $CM3 > >> $CM3 -ship > >>=20 > >> Now build the compiler: > >>=20 > >> cd ~/cm3/m3-libs/sysutils =3B $CM3 etc. > >>=20 > >> cd ~/cm3/m3-sys/m3middle=3B $CM3 etc. > >>=20 > >> repeat for: > >>=20 > >> m3-sys/m3objfile=20 > >>=20 > >> m3-sys/m3back=20 > >>=20 > >> m3-sys/m3linker > >>=20 > >> m3-sys/m3front > >>=20 > >> m3-sys/m3quake > >>=20 > >> m3-sys/cm3 > >>=20 > >> [ here we may need -DROOT=3D ] > >>=20 > >>=20 > >> At this point you should have a bootstrapped version of cm3 installed =20 > >> in the directory /usr/local/cm3/pkg/cm3/TARGET/cm3 (where TARGET is =20 > >> the CM3 target platform you are building on -- e.g.=2C LINUXLIBC6=2C =20 > >> PPC_DARWIN=2C ...). Note that this did not overwrite your original =20 > >> installed compiler in /usr/local/cm3/bin/cm3. We > >> are now going to test the new compiler=2C which was built using the old = > >=20 > >> compiler=2C by bootstrapping it one more time. > >>=20 > >>=20 > >> ******* THIS IS WHERE I HAVE A SEGFAULTING COMPILER ******* > >>=20 > >> (If m3core and libm3 were skipped earlier=2C do them now=2C and RE-DO all > >> of the above packages before proceeding.) > >>=20 > >> From here on out=2C please replace TARGET with your target platform as =20 > >> appropriate. > >>=20 > >> STEP 2: > >>=20 > >> export CM3=3D/usr/local/cm3/pkg/cm3/TARGET/cm3 > >> cd ~/cm3/scripts > >>=20 > >> ./do-cm3-std.sh realclean > >> REPEAT STEP 1 to rebuild the libraries and the compiler using the =20 > >> STEP 1 bootstrap compiler. > >>=20 > >> Now you have a STEP 2 bootstrap compiler installed in /usr/local/cm3/=20 > >> pkg/cm3/TARGET/cm3. Let's assume the new compiler now works properly =20 > >> since it successfully bootstrapped itself=2C but to be sure we can now =20 > >> use it to rebuild the world: > >>=20 > >> cd ~/cm3/scripts > >> ./do-cm3-std.sh realclean > >> ./do-cm3-std.sh buildship > >>=20 > >> Assuming this succeeded then we can be pretty sure /usr/local/cm3/pkg/=20 > >> cm3/TARGET/cm3 is good=2C so we can make it our default compiler by =20 > >> replacing the original /usr/local/cm3/bin/cm3: > >>=20 > >> cp $CM3 /usr/local/cm3/bin/cm3 > >>=20 > >> On Jun 23=2C 2007=2C at 2:38 PM=2C Mika Nystrom wrote: > >>=20 > >> > Ok=2C I'm sorry if I seem a bit dimwitted in the morning like this=2C > >> > but how exactly does one get started? I wish there were a file called > >> > "GETTING_STARTED" or something like that in scripts... > >> > > >> > My Mac is very slow so I switched to my FreeBSD/i386 system (which has > >> > PM3 happily installed on it) and tried to install CM3 from scratch. > >> > Here are the exact commands I typed. > >> > > >> > > >> > rm -rf /usr/local/cm3/* > >> > > >> > cd ~/cm3-cvs > >> > mkdir boot > >> > cd boot > >> > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz > >> > ./cminstall > >> > > >> > # now I seem to have some kind of cm3 installed=2C /usr/local/cm3/bin/= > >=20 > >> > cm3 > >> > > >> > cd cm3 # location of my CM3 checkout > >> > cvs update -d . > >> > > >> > cd scripts > >> > ./boot-cm3-with-m3.sh realclean > >> > ./do-cm3-std.sh realclean > >> > > >> > ./upgrade.sh # fails here=2C libm3 not compiled > >> > ./boot-cm3-with-m3.sh build # builds cm3=2C but fails on =20 > >> > cminstall=2C patternmatching not built > >> > > >> > ./do-cm3-std.sh build # OK > >> > ./do-cm3-std.sh buildship # OK > >> > > >> > ./boot-cm3-with-m3.sh realclean # start over > >> > ./boot-cm3-with-m3.sh build # OK > >> > ./boot-cm3-with-m3.sh buildship # OK > >> > > >> > ./do-cm3-std.sh realclean # OK > >> > ./do-cm3-std.sh build # dies miserably... maybe the =20 > >> > compiler can't handle the new libraries? > >> > > >> > ./install-cm3-compiler.sh upgrade # OK=2C new cm3 binary installed > >> > > >> > After all that=2C "game over." I have a cm3 that segfaults. > >> > > >> > Text.i3: In function 'Text_I3': > >> > Text.i3:81: internal compiler error: Segmentation fault > >> > Please submit a full bug report=2C > >> > with preprocessed source if appropriate. > >> > See for instructions. > >> > compilation failed =3D> not building library "libm3core.a" > >> > Fatal Error: package build failed > >> > *** execution of failed *** > >> > > >> > I can't seem to get either m3gdb or gdb to say anything reasonable > >> > either. ktrace shows nothing out of the ordinary. > >> > > >> > ----- > >> > > >> > Meanwhile=2C my Mac got through "do-cm3-std.sh realclean" and > >> > "do-cm3-std.sh buildship" but my compiles are still dying on the > >> > same assertion tickled by ktok. On that machine I have INSTALLROOT > >> > set to ~/cm3=2C but hopefully that has nothing to do with it... > >> > > >> > ----- > >> > > >> > Does do-cm3-std.sh realclean clean EVERYTHING? If so my Mac should > >> > really have a fresh setup. The FreeBSD=2C I am not sure=2C maybe the > >> > old binary version just doesn't work right? Of course I could try > >> > bootstrapping with PM3 as well... but really=2C there's an "approved" > >> > process to get from a blank system=2C no? > >> > > >> > Mika > >> > > >> > > >> > > >> > > >> > Tony Hosking writes: > >> >> That sounds like you forgot to execute "do-cm3-std.sh realclean" > >> >> before initiating the build. These sorts of errors sometimes arise > >> >> if there are old build directories lying around. > >> >> > >> >> On Jun 23=2C 2007=2C at 3:34 AM=2C Mika Nystrom wrote: > >> >> > >> >>> Hello everyone=2C > >> >>> > >> >>> I am in the process of trying to consolidate build systems for a > >> >>> few software packages I am maintaining. Currently=2C I am using an > >> >>> old PM3 on FreeBSD4=2C an ancient PM3 (from Klagenfurt?) for Windows > >> >>> (NT386GNU)=2C and trying to get the latest CM3 from cvs up and =20 > >> >>> compiling > >> >>> things on PPC_DARWIN. Ideally=2C I'd like to standardize everything > >> >>> on the new PM3---mainly so that I can use pickles (and Network > >> >>> Objects) across all three systems. I'd also like to add Linux to > >> >>> the mix. > >> >>> > >> >>> It's natural for me to start with CM3 on Darwin=2C as there's no > >> >>> alternative. But I am getting some assertions failing. Everything > >> >>> in the CM3 distribution compiles fine=2C and I believe I have compile= > >d > >> >>> the libraries a few times (that is=2C including with themselves)=2C a= > >nd > >> >>> updated the compiler=2C too (using boot-cm3-with-m3.sh). I just cvs > >> >>> updated tonight. > >> >>> > >> >>> Here's what I'm running into: > >> >>> > >> >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/CHP.t -o =20 > >> >>> CHPTok.i3 > >> >>> > >> >>> *** > >> >>> *** runtime error: > >> >>> *** <*ASSERT*> failed. > >> >>> *** file "../src/runtime/common/RTCollector.m3"=2C line 2314 > >> >>> *** > >> >>> > >> >>> Abort > >> >>> > >> >>> Also: > >> >>> > >> >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/PRS.t -o =20 > >> >>> PRSTok.i3 > >> >>> Illegal instruction > >> >>> > >> >>> As you can see=2C these things are coming from the caltech_parser. I > >> >> am using > >> >>> our local version=2C but I don't think it is very different from what > >> >>> is in the > >> >>> CM3 tree. > >> >>> > >> >>> Examining the first error (the failed assertion) more closely=2C I se= > >e > >> >>> the following: > >> >>> > >> >>> (gdb) list > >> >>> 108 wr :=3D FileWr.Open(Pathname.ReplaceExt(tp.out=2C "m3"))= > >=3B > >> >>> 109 EXCEPT OSError.E =3D> > >> >>> 110 Debug.Error("Cannot open tok implementation output > >> >>> file: " & > >> >>> 111 Pathname.ReplaceExt(tp.out=2C "m3"))=3B > >> >>> 112 END=3B > >> >>> 113 Wr.PutText(wr=2C subs.apply(Bundle.Get(Form=2C =20 > >> >>> "tokform.m3")))=3B > >> >>> 114 Wr.Close(wr)=3B > >> >>> 115 END Main. > >> >>> (gdb) where > >> >>> #0 0x9004308c in kill () > >> >>> #1 0x9009fb3c in abort () > >> >>> #2 0x00096f50 in RTOS__Crash () at RTOS.m3:20 > >> >>> #3 0x0005bd40 in RTProcess__Crash (M3_Bd56fi_msg=3D0x0) at > >> >>> RTProcess.m3:65 > >> >>> #4 0x0008e4e0 in RTError__EndError (M3_AicXUJ_crash=3D1 '\001') at > >> >>> RTError.m3:115 > >> >>> #5 0x0008e08c in RTError__MsgS (M3_AJWxb1_file=3D0xc63d8=2C > >> >>> M3_AcxOUs_line=3D2314=2C M3_Bd56fi_msgA=3D0xca3d0=2C > >> >>> M3_Bd56fi_msgB=3D0xcbe90=2C M3_Bd56fi_msgC=3D0xca3d0) at RTError.m3:4= > >0 > >> >>> #6 0x0008eb88 in RTException__Crash (M3_Cblw37_a=3D0xbfffee00=2C > >> >>> M3_AicXUJ_raises=3D0 '\0'=2C M3_AJWxb1_rte=3D0xcb538) at RTException.= > >m3:79 > >> >>> #7 0x0008e74c in RTException__DefaultBackstop > >> >>> (M3_Cblw37_a=3D0xbfffee00=2C M3_AicXUJ_raises=3D0 '\0') at =20 > >> >>> RTException.m3:39 > >> >>> #8 0x0008e614 in RTException__InvokeBackstop > >> >>> (M3_Cblw37_a=3D0xbfffee00=2C M3_AicXUJ_raises=3D0 '\0') at =20 > >> >>> RTException.m3:25 > >> >>> #9 0x00095d04 in RTException__Raise (M3_Cblw37_act=3D0xbfffee00) at > >> >>> RTExFrame.m3:29 > >> >>> #10 0x0008e840 in RTException__DefaultBackstop > >> >>> (M3_Cblw37_a=3D0xbfffee00=2C M3_AicXUJ_raises=3D0 '\0') at =20 > >> >>> RTException.m3:47 > >> >>> #11 0x0008e614 in RTException__InvokeBackstop > >> >>> (M3_Cblw37_a=3D0xbfffee00=2C M3_AicXUJ_raises=3D0 '\0') at =20 > >> >>> RTException.m3:25 > >> >>> #12 0x00095d04 in RTException__Raise (M3_Cblw37_act=3D0xbfffee00) at > >> >>> RTExFrame.m3:29 > >> >>> #13 0x00079740 in RTHooks__ReportFault (M3_AJWxb1_module=3D0xb3eb8=2C > >> >>> M3_AcxOUs_info=3D74048) at RTHooks.m3:110 > >> >>> #14 0x0006ff4c in _m3_fault (M3_AcxOUs_arg=3D74048) > >> >>> #15 0x0006bcf4 in RTHooks__CheckStoreTraced > >> >>> (M3_Af40ku_ref=3D0xb2415c) at RTCollector.m3:2314 > >> >>> #16 0x000700e4 in ThreadPThread__InnerLockMutex > >> >>> (M3_AYIbX3_m=3D0xb2415c=2C M3_BXP32l_self=3D0xb24014) at > >> >>> ThreadPThread.m3:126 > >> >>> #17 0x000704d8 in ThreadPThread__LockMutex (M3_AYIbX3_m=3D0xb2415c) > >> >>> at ThreadPThread.m3:153 > >> >>> #18 0x00019b24 in Wr__PutText (M3_BxxOH1_wr=3D0xb2415c=2C > >> >>> M3_Bd56fi_t=3D0xb44d5c) at Wr.m3:93 > >> >>> #19 0x00003f74 in Main_M3 (M3_AcxOUs_mode=3D1) at Main.m3:113 > >> >>> #20 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=3D0xad190) at > >> >>> RTLinker.m3:399 > >> >>> #21 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=3D0xad190) at > >> >>> RTLinker.m3:113 > >> >>> #22 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=3D0x3600) at > >> >>> RTLinker.m3:122 > >> >>> #23 0x00001fac in main (argc=3D4=2C argv=3D0xbffffb24=2C envp=3D0xbff= > >ffb38) > >> >>> at _m3main.mc:4 > >> >>> (gdb) > >> >>> > >> >>> The second error: > >> >>> > >> >>> Program received signal EXC_BAD_INSTRUCTION=2C Illegal instruction/ > >> >>> operand. > >> >>> 0x00b111ac in ?? () > >> >>> (gdb) where > >> >>> #0 0x00b111ac in ?? () > >> >>> #1 0x0001214c in TextSubs__Apply (M3_CN69dV_self=3D0xb26450=2C > >> >>> M3_Bd56fi_src=3D0xb21cec) at TextSubs.m3:63 > >> >>> #2 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=3D0xad190) at > >> >>> RTLinker.m3:399 > >> >>> #3 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=3D0xad190) at > >> >>> RTLinker.m3:113 > >> >>> #4 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=3D0x3600) at > >> >>> RTLinker.m3:122 > >> >>> #5 0x00001fac in main (argc=3D4=2C argv=3D0xbffffb24=2C envp=3D0xbff= > >ffb38) > >> >>> at _m3main.mc:4 > >> >>> (gdb) list > >> >>> 58 BEGIN > >> >>> 59 WHILE pos < textLen DO > >> >>> 60 c :=3D Text.GetChar(src=2C pos)=3B > >> >>> 61 IF c IN self.starts THEN > >> >>> 62 (* S("analysing: " & Text.Sub(src=2C pos)=2C > >> >>> DebugLevel)=3B *) > >> >>> 63 iter :=3D self.tbl.iterateOrdered()=3B > >> >>> 64 ind :=3D pos=3B > >> >>> 65 original :=3D ""=3B > >> >>> 66 REPEAT > >> >>> 67 INC(ind)=3B > >> >>> (gdb) > >> >>> > >> >>> Any ideas what to look at? > >> >>> > >> >>> I don't know if this is relevant: > >> >>> > >> >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% uname -a > >> >>> Darwin lapdog.local 7.9.0 Darwin Kernel Version 7.9.0: Wed Mar 30 > >> >>> 20:11:17 PST 2005=3B root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC Power > >> >>> Macintosh powerpc > >> >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% gcc -v > >> >>> Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs > >> >>> Thread model: posix > >> >>> gcc version 3.3 20030304 (Apple Computer=2C Inc. build 1666) > >> >>> > >> >>> Mika > >> >>> > >> >>> P.S. Am I correct in assuming that I can get CM3 to build on =20 > >> >>> Windows? > >> >>> I could switch to CM3 on Unix any time=2C of course=2C but I've never > >> >>> had luck with it on Windows=2C which is why I am using the ancient > >> >>> Klagenfurt PM3=2C which comes on 40-odd "floppies" and a .EXE that > >> >>> unpacks them into C: (and installation instructions only in German). > >> >>> If CM3 doesn't work on Windows=2C I am essentially wasting my time=2C > >> >>> as the current project I am working on absolutely requires that the > >> >>> software run on Windows 2003 Server (yes=2C it sucks=2C but what can > >> >>> you do?) The very old PM3 at least kind of hobbles along on this > >> >>> platform---actually=2C better than that=3B it does Trestle natively > >> >>> under Windows (no X required)=2C at least on SOME Windows machines. > >> >>> > >> >>> P.P.S. Sorry for all the postscripts=2C but is it true that the > >> >>> build system has been changed so that building with overrides =20 > >> >>> (cm3 -x) > >> >>> requires having the compiler sources available? It didn't use to > >> >>> be that way=2C but I can't get Network Objects to work with overrides > >> >>> now unless I have the sources available... It's a bit of a pain > >> >>> because it means that every user has to have the compiler sources=2C > >> >>> or else ship everything=2C or was that not the intention? > > = > > > >--_6374b72e-0dad-4a03-8d22-4a59e0218226_ > >Content-Type: text/html; charset="iso-8859-1" > >Content-Transfer-Encoding: quoted-printable > > > > > > > > > > > >I upgrade across incompatibilities frequently & H= > >udson does now too. The existing scripts work very well and you would be fo= > >olish to not use them. Just use upgrade.py. It is very easy. Or upgrade.py = > >nocleangcc. And then do-cm3-all.py skipgcc realclean && do-cm3-all.py build= > >ship.py.

- Jay/phone

> To:=3B jay.krell@=3Bcornell.edu= > >
> Date:=3B Sat=2C 8 Jan 2011 04:=3B14:=3B41 -0800
> From= > >8=3B mika@=3Basync.caltech.edu
> CC:=3B m3devel@=3Belegosoft.co= > >m
> Subject:=3B Re:=3B [=3BM3devel]=3B another Snow Leopard = > >compiler crash
>
> Jay K writes:=3B
> >=3B
> >=3BPlea= > >se try this Mika. It fixes the problem for me.
>
> Hi Jay=2C
> >r>> So I upgraded to the CVS head and now I get a segfaulting compiler:= > >=3B
>
> [=3Bhal:=3Bcm3/m3-libs/m3core]=3B mika%=3B gdb &= > >#36=3BCM3
> GNU gdb 6.3.50-20050815 (=3BApple version gdb-1510)=3B= > > (=3BWed Sep 22 02:=3B45:=3B02 UTC 2010)=3B
> Copyright 2004= > > Free Software Foundation=2C Inc.
> GDB is free software=2C covered by t= > >he GNU General Public License=2C and you are
> welcome to change it and/= > >or distribute copies of it under certain conditions.
> Type "=3Bshow = > >copying"=3B to see the conditions.
> There is absolutely no warranty = > >for GDB. Type "=3Bshow warranty"=3B for details.
> This GDB was c= > >onfigured as "=3Bx86_64-apple-darwin"=3B...Reading symbols for shared= > > libraries ...... done
>
> (=3Bgdb)=3B run
> Starting progr= > >am:=3B /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3
> Reading symbols for = > >shared libraries .+=3B+=3B+=3B+=3B+=3B.......... done
> <= > >br>> Program received signal EXC_BAD_ACCESS=2C Could not access memory.
= > >> Reason:=3B KERN_PROTECTION_FAILURE at address:=3B 0x0000038b
> 0= > >x9713354b in _longjmp (=3B)=3B
> (=3Bgdb)=3B where
> #= > >=3B0 0x9713354b in _longjmp (=3B)=3B
> #=3B1 0x00285d2b in RT= > >ExFrame__InvokeHandler (=3Bf==3B0xbffff34c=2C a==3B0xbffff23c)= > >=3B at ../src/runtime/ex_frame/RTExFrame.m3:=3B175
> #=3B2 0x0028= > >5be4 in RTException__ResumeRaise (=3Ba==3B0xbffff23c)=3B at ../src= > >/runtime/ex_frame/RTExFrame.m3:=3B145
> #=3B3 0x00285a1b in RTExc= > >eption__Raise (=3Bact==3B0xbffff23c)=3B at ../src/runtime/ex_frame= > >/RTExFrame.m3:=3B91
> #=3B4 0x00269d44 in RTHooks__Raise (=3Be= > >x==3B0x35a720=2C arg==3B0x181cddc=2C module==3B0x398080=2C line= > >1=3B50)=3B at ../src/runtime/common/RTHooks.m3:=3B79
> #=3B5 0= > >x0023adbc in OSErrorPosix__Raise0 (=3Berrno==3B2)=3B at ../src/os/= > >POSIX/OSErrorPosix.m3:=3B50
> #=3B6 0x0023cffc in FSPosix__Fail &= > >#40=3Bp==3B0x181cdc0=2C f==3B0xf049f0)=3B at ../src/os/POSIX/FSPos= > >ix.m3:=3B359
> #=3B7 0x0023cdd4 in FS__Status (=3Bpn==3B0x1= > >81cdc0=2C _result==3B0xbffff3c8)=3B at ../src/os/POSIX/FSPosix.m3:= > >=3B328
> #=3B8 0x00217d24 in M3File__IsReadable (=3Bpath==3B0x= > >181cdc0)=3B at ../src/M3File.m3:=3B123
> #=3B9 0x000a057f in M= > >xConfig__TryConfig (=3Ba==3B0x3255e0=2C b==3B0x3255f0=2C c==3B0= > >x0)=3B at ../src/MxConfig.m3:=3B122
> #=3B10 0x0009ff67 in MxCo= > >nfig__FindConfig (=3B)=3B at ../src/MxConfig.m3:=3B51
> #=3B= > >11 0x0009fcd8 in MxConfig__FindFile (=3B)=3B at ../src/MxConfig.m3= > >8=3B19
> #=3B12 0x0002c446 in Main__DoIt (=3B)=3B at ../src/Mai= > >n.m3:=3B32
> #=3B13 0x0002d1e9 in Main_M3 (=3Bmode==3B1)= > >=3B at ../src/Main.m3:=3B214
> #=3B14 0x0027a781 in RTLinker__RunM= > >ainBody (=3Bm==3B0x3705a0)=3B at ../src/runtime/common/RTLinker.m3= > >:=3B406
> #=3B15 0x00279bb6 in RTLinker__AddUnitI (=3Bm==3B0= > >x3705a0)=3B at ../src/runtime/common/RTLinker.m3:=3B113
> #=3B1= > >6 0x00279c3a in RTLinker__AddUnit (=3Bb==3B0x2d1d0)=3B at ../src/r= > >untime/common/RTLinker.m3:=3B122
> #=3B17 0x00002cfc in main (= > >=3Bargc==3B1=2C argv==3B0xbffff674=2C envp==3B0xbffff67c)=3B at= > > _m3main.c:=3B16
> (=3Bgdb)=3B
>
> I followed upgrade i= > >nstructions from Tony (=3Bincluding upgrading the
> back-end)=3B--= > >-I have edited the instructions a bit to track changes in
> CM3. I'= > >=3Bm starting from head three weeks old..
>
> Mika
>
> = > >
> Return-Path:=3B hosking@=3Bcs.purdue.edu
> Delivery-Date:= > >=3B Sun Jun 24 07:=3B38:=3B38 2007
> In-Reply-To:=3B <=3B200= > >706231838.l5NIcRef079333@=3Bcamembert.async.caltech.edu>=3B
> Refe= > >rences:=3B <=3B200706231838.l5NIcRef079333@=3Bcamembert.async.calt= > >ech.edu>=3B
>
> Sounds like we really need some work done in this= > > area. I very
> rarely use the build scripts=2C since I bootstrap man= > >ually from old
> compilers to new compilers rather than use the script= > >s. I suggest
> the following approach=2C which I hope you will try=2C= > > and then report
> back on.
>
> Install the bootstrap compiler = > >as you did originally:=3B
>
> >=3B rm -rf /usr/local/cm3/*= > >=3B
> >=3B
> >=3B cd ~=3B/cm3-cvs
> >=3B mkdir boot >r>> >=3B cd boot
> >=3B tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-= > >2005-10-05.tgz
> >=3B ./cminstall
>
>
> Now you will have = > >some kind of cm3 installed=2C presumably in /usr/
> local/cm3/bin/cm3.<= > >br>>
> Make sure you have a fresh CVS checkout in directory cm3 (=3B= > >let'=3Bs
> assume this is in your home directory ~=3B/cm3)= > >=3B. Also=2C make sure you
> have an up-to-date version of the CM3 ba= > >ckend compiler cm3cg
> installed by executing the following:=3B
= > >>
> STEP 0:=3B
>
> export CM3==3B/usr/local/cm3/bin/cm3 >>> cd ~=3B/cm3/m3-sys/m3cc
> $=3BCM3
> $=3BCM3 -ship
> <= > >br>> You can skip this last step if you know your backend compiler is up <= > >br>> to date.
>
> Now=2C let'=3Bs build the new compiler from scr= > >atch (=3Bthis is the sequence
> I use regularly to test changes to = > >the run-time system whenever I
> make them)=3B:=3B
>
> ca= > >n replace compilation step with
>
> rm -rf <=3Bder. dir>=3B &#= > >38=3B&=3B $=3BCM3 &=3B&=3B $=3BCM3 -ship
>
>
> S= > >TEP 1:=3B
>
> (=3Bdo these LATER if bootstrapping from old com= > >piler!=3B)=3B
> cd ~=3B/cm3/m3-libs/m3core
> $=3BCM3
= > >> $=3BCM3 -ship
> cd ~=3B/cm3/m3-libs/libm3
> $=3BCM3
> = > >$=3BCM3 -ship
>
> Now build the compiler:=3B
>
> cd &#= > >126=3B/cm3/m3-libs/sysutils ;=3B $=3BCM3 etc.
>
> cd ~=3B/= > >cm3/m3-sys/m3middle;=3B $=3BCM3 etc.
>
> repeat for:=3B
= > >>
> m3-sys/m3objfile
>
> m3-sys/m3back
>
> m3-sys/m3lin= > >ker
>
> m3-sys/m3front
>
> m3-sys/m3quake
>
> m3-sys/c= > >m3
>
> [=3B here we may need -DROOT==3B<=3Broot dir=2C e.g.= > >=2C /home/mika/cm3>=3B ]=3B
>
>
> At this point you should= > > have a bootstrapped version of cm3 installed
> in the directory /usr/= > >local/cm3/pkg/cm3/TARGET/cm3 (=3Bwhere TARGET is
> the CM3 target p= > >latform you are building on -- e.g.=2C LINUXLIBC6=2C
> PPC_DARWIN=2C .= > >..)=3B. Note that this did not overwrite your original
> installed= > > compiler in /usr/local/cm3/bin/cm3. We
> are now going to test the new= > > compiler=2C which was built using the old
> compiler=2C by bootstrapp= > >ing it one more time.
>
>
> *=3B*=3B*=3B*=3B*=3B&= > >#42=3B*=3B THIS IS WHERE I HAVE A SEGFAULTING COMPILER *=3B*=3B= > >2=3B*=3B*=3B*=3B*=3B
>
> (=3BIf m3core and libm3 were= > > skipped earlier=2C do them now=2C and RE-DO all
> of the above packages= > > before proceeding.)=3B
>
> From here on out=2C please replace TA= > >RGET with your target platform as
> appropriate.
>
> STEP 2:= > >=3B
>
> export CM3==3B/usr/local/cm3/pkg/cm3/TARGET/cm3
> cd &= > >#126=3B/cm3/scripts
>
> ./do-cm3-std.sh realclean
> REPEAT STEP 1= > > to rebuild the libraries and the compiler using the
> STEP 1 bootstra= > >p compiler.
>
> Now you have a STEP 2 bootstrap compiler installed i= > >n /usr/local/cm3/
> pkg/cm3/TARGET/cm3. Let'=3Bs assume the new com= > >piler now works properly
> since it successfully bootstrapped itself= > >=2C but to be sure we can now
> use it to rebuild the world:=3B
= > >>
> cd ~=3B/cm3/scripts
> ./do-cm3-std.sh realclean
> ./do-cm= > >3-std.sh buildship
>
> Assuming this succeeded then we can be pretty= > > sure /usr/local/cm3/pkg/
> cm3/TARGET/cm3 is good=2C so we can make it= > > our default compiler by
> replacing the original /usr/local/cm3/bin/c= > >m3:=3B
>
> cp $=3BCM3 /usr/local/cm3/bin/cm3
>
> On Jun= > > 23=2C 2007=2C at 2:=3B38 PM=2C Mika Nystrom wrote:=3B
>
> = > >2=3B Ok=2C I'=3Bm sorry if I seem a bit dimwitted in the morning like th= > >is=2C
> >=3B but how exactly does one get started?=3B I wish ther= > >e were a file called
> >=3B "=3BGETTING_STARTED"=3B or somethin= > >g like that in scripts...
> >=3B
> >=3B My Mac is very slow so = > >I switched to my FreeBSD/i386 system (=3Bwhich has
> >=3B PM3 happ= > >ily installed on it)=3B and tried to install CM3 from scratch.
> >= > >=3B Here are the exact commands I typed.
> >=3B
> >=3B
> = > >2=3B rm -rf /usr/local/cm3/*=3B
> >=3B
> >=3B cd ~=3B/cm= > >3-cvs
> >=3B mkdir boot
> >=3B cd boot
> >=3B tar xzvf ..= > >/cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz
> >=3B ./cminstall
>= > > >=3B
> >=3B #=3B now I seem to have some kind of cm3 installed= > >=2C /usr/local/cm3/bin/
> >=3B cm3
> >=3B
> >=3B cd cm3 = > > #=3B location of my CM3 checkout
> >=3B cvs update -d .
> = > >2=3B
> >=3B cd scripts
> >=3B ./boot-cm3-with-m3.sh realclean >r>> >=3B ./do-cm3-std.sh realclean
> >=3B
> >=3B ./upgrade.s= > >h #=3B fails here=2C libm3 not compiled
> >= > >=3B ./boot-cm3-with-m3.sh build #=3B builds cm3=2C but fails on <= > >br>> >=3B cminstall=2C patternmatching not built
> >=3B
> >= > >=3B ./do-cm3-std.sh build #=3B OK
> >=3B ./do-cm3-std.= > >sh buildship #=3B OK
> >=3B
> >=3B ./boot-cm3-with-m= > >3.sh realclean #=3B start over
> >=3B ./boot-cm3-with-m3.sh buil= > >d #=3B OK
> >=3B ./boot-cm3-with-m3.sh buildship #=3B O= > >K
> >=3B
> >=3B ./do-cm3-std.sh realclean #=3B OK >>> >=3B ./do-cm3-std.sh build #=3B dies miserably... mayb= > >e the
> >=3B compiler can'=3Bt handle the new libraries?=3B >r>> >=3B
> >=3B ./install-cm3-compiler.sh upgrade #=3B OK=2C ne= > >w cm3 binary installed
> >=3B
> >=3B After all that=2C "=3Bg= > >ame over."=3B I have a cm3 that segfaults.
> >=3B
> >=3B Te= > >xt.i3:=3B In function '=3BText_I3'=3B:=3B
> >=3B Text.i3&= > >#58=3B81:=3B internal compiler error:=3B Segmentation fault
> >= > >=3B Please submit a full bug report=2C
> >=3B with preprocessed sourc= > >e if appropriate.
> >=3B See <=3BURL:=3Bhttp:=3B//gcc.gnu.or= > >g/bugs.html>=3B for instructions.
> >=3B compilation failed == > >=3B>=3B not building library "=3Blibm3core.a"=3B
> >=3B Fata= > >l Error:=3B package build failed
> >=3B *=3B*=3B*=3B exe= > >cution of failed *=3B*=3B*=3B
> >=3B
> >=3B I can'= > >=3Bt seem to get either m3gdb or gdb to say anything reasonable
> >= > >=3B either. ktrace shows nothing out of the ordinary.
> >=3B
> &#= > >62=3B -----
> >=3B
> >=3B Meanwhile=2C my Mac got through "= > >=3Bdo-cm3-std.sh realclean"=3B and
> >=3B "=3Bdo-cm3-std.sh bui= > >ldship"=3B but my compiles are still dying on the
> >=3B same asse= > >rtion tickled by ktok. On that machine I have INSTALLROOT
> >=3B set= > > to ~=3B/cm3=2C but hopefully that has nothing to do with it...
> &#= > >62=3B
> >=3B -----
> >=3B
> >=3B Does do-cm3-std.sh realc= > >lean clean EVERYTHING?=3B If so my Mac should
> >=3B really have = > >a fresh setup. The FreeBSD=2C I am not sure=2C maybe the
> >=3B old = > >binary version just doesn'=3Bt work right?=3B Of course I could try<= > >br>> >=3B bootstrapping with PM3 as well... but really=2C there'=3Bs = > >an "=3Bapproved"=3B
> >=3B process to get from a blank system= > >=2C no?=3B
> >=3B
> >=3B Mika
> >=3B
> >= > >=3B
> >=3B
> >=3B
> >=3B Tony Hosking writes:=3B
> = > >>=3B>=3B That sounds like you forgot to execute "=3Bdo-cm3-std.sh = > >realclean"=3B
> >=3B>=3B before initiating the build. These so= > >rts of errors sometimes arise
> >=3B>=3B if there are old build di= > >rectories lying around.
> >=3B>=3B
> >=3B>=3B On Jun 23= > >=2C 2007=2C at 3:=3B34 AM=2C Mika Nystrom wrote:=3B
> >=3B>= > >=3B
> >=3B>=3B>=3B Hello everyone=2C
> >=3B>=3B>=3B= > >
> >=3B>=3B>=3B I am in the process of trying to consolidate bu= > >ild systems for a
> >=3B>=3B>=3B few software packages I am mai= > >ntaining. Currently=2C I am using an
> >=3B>=3B>=3B old PM3 on= > > FreeBSD4=2C an ancient PM3 (=3Bfrom Klagenfurt?=3B)=3B for Window= > >s
> >=3B>=3B>=3B (=3BNT386GNU)=3B=2C and trying to get th= > >e latest CM3 from cvs up and
> >=3B>=3B>=3B compiling
> &#= > >62=3B>=3B>=3B things on PPC_DARWIN. Ideally=2C I'=3Bd like to sta= > >ndardize everything
> >=3B>=3B>=3B on the new PM3---mainly so t= > >hat I can use pickles (=3Band Network
> >=3B>=3B>=3B Objects= > >)=3B across all three systems. I'=3Bd also like to add Linux to
>= > > >=3B>=3B>=3B the mix.
> >=3B>=3B>=3B
> >=3B>= > >=3B>=3B It'=3Bs natural for me to start with CM3 on Darwin=2C as ther= > >e'=3Bs no
> >=3B>=3B>=3B alternative. But I am getting some= > > assertions failing. Everything
> >=3B>=3B>=3B in the CM3 dist= > >ribution compiles fine=2C and I believe I have compiled
> >=3B>=3B= > >>=3B the libraries a few times (=3Bthat is=2C including with themselv= > >es)=3B=2C and
> >=3B>=3B>=3B updated the compiler=2C too = > >0=3Busing boot-cm3-with-m3.sh)=3B. I just cvs
> >=3B>=3B>= > >=3B updated tonight.
> >=3B>=3B>=3B
> >=3B>=3B>=3B = > >Here'=3Bs what I'=3Bm running into:=3B
> >=3B>=3B>=3B<= > >br>> >=3B>=3B>=3B /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../s= > >rc/CHP.t -o
> >=3B>=3B>=3B CHPTok.i3
> >=3B>=3B>= > >=3B
> >=3B>=3B>=3B *=3B*=3B*=3B
> >=3B>=3B= > >2=3B *=3B*=3B*=3B runtime error:=3B
> >=3B>=3B>=3B = > >*=3B*=3B*=3B <=3B*=3BASSERT*=3B>=3B failed.
> &#= > >62=3B>=3B>=3B *=3B*=3B*=3B file "=3B../src/runtime/com= > >mon/RTCollector.m3"=3B=2C line 2314
> >=3B>=3B>=3B *=3B&#= > >42=3B*=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B Abort >>> >=3B>=3B>=3B
> >=3B>=3B>=3B Also:=3B
> >= > >=3B>=3B>=3B
> >=3B>=3B>=3B /Users/mika/t/parserlib/ktok/P= > >PC_DARWIN/tok ../src/PRS.t -o
> >=3B>=3B>=3B PRSTok.i3
> &= > >#62=3B>=3B>=3B Illegal instruction
> >=3B>=3B>=3B
> &#= > >62=3B>=3B>=3B As you can see=2C these things are coming from the calt= > >ech_parser. I
> >=3B>=3B am using
> >=3B>=3B>=3B our = > >local version=2C but I don'=3Bt think it is very different from what
= > >> >=3B>=3B>=3B is in the
> >=3B>=3B>=3B CM3 tree.
>= > > >=3B>=3B>=3B
> >=3B>=3B>=3B Examining the first error= > > (=3Bthe failed assertion)=3B more closely=2C I see
> >=3B>= > >=3B>=3B the following:=3B
> >=3B>=3B>=3B
> >=3B>= > >=3B>=3B (=3Bgdb)=3B list
> >=3B>=3B>=3B 108 wr= > > :=3B==3B FileWr.Open(=3BPathname.ReplaceExt(=3Btp.out=2C "= > >=3Bm3"=3B)=3B)=3B;=3B
> >=3B>=3B>=3B 109 EXCE= > >PT OSError.E ==3B>=3B
> >=3B>=3B>=3B 110 Debug.Er= > >ror(=3B"=3BCannot open tok implementation output
> >=3B>=3B&= > >#62=3B file:=3B "=3B &=3B
> >=3B>=3B>=3B 111 = > > Pathname.ReplaceExt(=3Btp.out=2C "=3Bm3"=3B)=3B)=3B;=3B<= > >br>> >=3B>=3B>=3B 112 END;=3B
> >=3B>=3B>=3B = > >113 Wr.PutText(=3Bwr=2C subs.apply(=3BBundle.Get(=3BForm=2C = > >
> >=3B>=3B>=3B "=3Btokform.m3"=3B)=3B)=3B)=3B&= > >#59=3B
> >=3B>=3B>=3B 114 Wr.Close(=3Bwr)=3B;=3B= > >
> >=3B>=3B>=3B 115 END Main.
> >=3B>=3B>=3B &#= > >40=3Bgdb)=3B where
> >=3B>=3B>=3B #=3B0 0x9004308c in ki= > >ll (=3B)=3B
> >=3B>=3B>=3B #=3B1 0x9009fb3c in abort = > >(=3B)=3B
> >=3B>=3B>=3B #=3B2 0x00096f50 in RTOS__Cra= > >sh (=3B)=3B at RTOS.m3:=3B20
> >=3B>=3B>=3B #=3B3 = > >0x0005bd40 in RTProcess__Crash (=3BM3_Bd56fi_msg==3B0x0)=3B at
= > >> >=3B>=3B>=3B RTProcess.m3:=3B65
> >=3B>=3B>=3B &#= > >35=3B4 0x0008e4e0 in RTError__EndError (=3BM3_AicXUJ_crash==3B1 '= > >=3B\=3B001'=3B)=3B at
> >=3B>=3B>=3B RTError.m3:=3B= > >115
> >=3B>=3B>=3B #=3B5 0x0008e08c in RTError__MsgS (= > >=3BM3_AJWxb1_file==3B0xc63d8=2C
> >=3B>=3B>=3B M3_AcxOUs_lin= > >e==3B2314=2C M3_Bd56fi_msgA==3B0xca3d0=2C
> >=3B>=3B>=3B = > >M3_Bd56fi_msgB==3B0xcbe90=2C M3_Bd56fi_msgC==3B0xca3d0)=3B at RTEr= > >ror.m3:=3B40
> >=3B>=3B>=3B #=3B6 0x0008eb88 in RTExcept= > >ion__Crash (=3BM3_Cblw37_a==3B0xbfffee00=2C
> >=3B>=3B>= > >=3B M3_AicXUJ_raises==3B0 '=3B\=3B0'=3B=2C M3_AJWxb1_rte==3B= > >0xcb538)=3B at RTException.m3:=3B79
> >=3B>=3B>=3B #= > >=3B7 0x0008e74c in RTException__DefaultBackstop
> >=3B>=3B>=3B= > > (=3BM3_Cblw37_a==3B0xbfffee00=2C M3_AicXUJ_raises==3B0 '=3B = > >2=3B0'=3B)=3B at
> >=3B>=3B>=3B RTException.m3:=3B39= > >
> >=3B>=3B>=3B #=3B8 0x0008e614 in RTException__InvokeBack= > >stop
> >=3B>=3B>=3B (=3BM3_Cblw37_a==3B0xbfffee00=2C M3_A= > >icXUJ_raises==3B0 '=3B\=3B0'=3B)=3B at
> >=3B>=3B= > >>=3B RTException.m3:=3B25
> >=3B>=3B>=3B #=3B9 0x0009= > >5d04 in RTException__Raise (=3BM3_Cblw37_act==3B0xbfffee00)=3B at<= > >br>> >=3B>=3B>=3B RTExFrame.m3:=3B29
> >=3B>=3B>=3B= > > #=3B10 0x0008e840 in RTException__DefaultBackstop
> >=3B>=3B&#= > >62=3B (=3BM3_Cblw37_a==3B0xbfffee00=2C M3_AicXUJ_raises==3B0 '= > >=3B\=3B0'=3B)=3B at
> >=3B>=3B>=3B RTException.m3= > >8=3B47
> >=3B>=3B>=3B #=3B11 0x0008e614 in RTException__Invo= > >keBackstop
> >=3B>=3B>=3B (=3BM3_Cblw37_a==3B0xbfffee00= > >=2C M3_AicXUJ_raises==3B0 '=3B\=3B0'=3B)=3B at
> >= > >=3B>=3B>=3B RTException.m3:=3B25
> >=3B>=3B>=3B #= > >=3B12 0x00095d04 in RTException__Raise (=3BM3_Cblw37_act==3B0xbfffee0= > >0)=3B at
> >=3B>=3B>=3B RTExFrame.m3:=3B29
> >=3B&#= > >62=3B>=3B #=3B13 0x00079740 in RTHooks__ReportFault (=3BM3_AJWxb1_= > >module==3B0xb3eb8=2C
> >=3B>=3B>=3B M3_AcxOUs_info==3B740= > >48)=3B at RTHooks.m3:=3B110
> >=3B>=3B>=3B #=3B14 0x00= > >06ff4c in _m3_fault (=3BM3_AcxOUs_arg==3B74048)=3B
> >=3B= > >2=3B>=3B #=3B15 0x0006bcf4 in RTHooks__CheckStoreTraced
> >=3B&= > >#62=3B>=3B (=3BM3_Af40ku_ref==3B0xb2415c)=3B at RTCollector.m3&= > >#58=3B2314
> >=3B>=3B>=3B #=3B16 0x000700e4 in ThreadPThread= > >__InnerLockMutex
> >=3B>=3B>=3B (=3BM3_AYIbX3_m==3B0xb241= > >5c=2C M3_BXP32l_self==3B0xb24014)=3B at
> >=3B>=3B>=3B Th= > >readPThread.m3:=3B126
> >=3B>=3B>=3B #=3B17 0x000704d8 in= > > ThreadPThread__LockMutex (=3BM3_AYIbX3_m==3B0xb2415c)=3B
> = > >2=3B>=3B>=3B at ThreadPThread.m3:=3B153
> >=3B>=3B>=3B= > > #=3B18 0x00019b24 in Wr__PutText (=3BM3_BxxOH1_wr==3B0xb2415c=2C<= > >br>> >=3B>=3B>=3B M3_Bd56fi_t==3B0xb44d5c)=3B at Wr.m3:= > >=3B93
> >=3B>=3B>=3B #=3B19 0x00003f74 in Main_M3 (=3BM3_= > >AcxOUs_mode==3B1)=3B at Main.m3:=3B113
> >=3B>=3B>=3B = > >#=3B20 0x0005b1c4 in RTLinker__RunMainBody (=3BM3_DjPxE3_m==3B0xad= > >190)=3B at
> >=3B>=3B>=3B RTLinker.m3:=3B399
> >=3B= > >>=3B>=3B #=3B21 0x00059f88 in RTLinker__AddUnitI (=3BM3_DjPxE3_= > >m==3B0xad190)=3B at
> >=3B>=3B>=3B RTLinker.m3:=3B113<= > >br>> >=3B>=3B>=3B #=3B22 0x0005a084 in RTLinker__AddUnit (= > >=3BM3_DjPxE5_b==3B0x3600)=3B at
> >=3B>=3B>=3B RTLinker.m= > >3:=3B122
> >=3B>=3B>=3B #=3B23 0x00001fac in main (=3B= > >argc==3B4=2C argv==3B0xbffffb24=2C envp==3B0xbffffb38)=3B
> = > >>=3B>=3B>=3B at _m3main.mc:=3B4
> >=3B>=3B>=3B (= > >=3Bgdb)=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B The sec= > >ond error:=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B Prog= > >ram received signal EXC_BAD_INSTRUCTION=2C Illegal instruction/
> >= > >=3B>=3B>=3B operand.
> >=3B>=3B>=3B 0x00b111ac in ?=3B= > >?=3B (=3B)=3B
> >=3B>=3B>=3B (=3Bgdb)=3B where >r>> >=3B>=3B>=3B #=3B0 0x00b111ac in ?=3B?=3B (=3B= > >1=3B
> >=3B>=3B>=3B #=3B1 0x0001214c in TextSubs__Apply = > >0=3BM3_CN69dV_self==3B0xb26450=2C
> >=3B>=3B>=3B M3_Bd56fi_s= > >rc==3B0xb21cec)=3B at TextSubs.m3:=3B63
> >=3B>=3B>=3B= > > #=3B2 0x0005b1c4 in RTLinker__RunMainBody (=3BM3_DjPxE3_m==3B0xa= > >d190)=3B at
> >=3B>=3B>=3B RTLinker.m3:=3B399
> >= > >=3B>=3B>=3B #=3B3 0x00059f88 in RTLinker__AddUnitI (=3BM3_DjPx= > >E3_m==3B0xad190)=3B at
> >=3B>=3B>=3B RTLinker.m3:=3B1= > >13
> >=3B>=3B>=3B #=3B4 0x0005a084 in RTLinker__AddUnit = > >0=3BM3_DjPxE5_b==3B0x3600)=3B at
> >=3B>=3B>=3B RTLinker.= > >m3:=3B122
> >=3B>=3B>=3B #=3B5 0x00001fac in main (= > >=3Bargc==3B4=2C argv==3B0xbffffb24=2C envp==3B0xbffffb38)=3B >>> >=3B>=3B>=3B at _m3main.mc:=3B4
> >=3B>=3B>=3B &= > >#40=3Bgdb)=3B list
> >=3B>=3B>=3B 58 BEGIN
> >= > >=3B>=3B>=3B 59 WHILE pos <=3B textLen DO
> >=3B>= > >=3B>=3B 60 c :=3B==3B Text.GetChar(=3Bsrc=2C pos)= > >=3B;=3B
> >=3B>=3B>=3B 61 IF c IN self.starts THE= > >N
> >=3B>=3B>=3B 62 (=3B*=3B S(=3B"=3B= > >analysing:=3B "=3B &=3B Text.Sub(=3Bsrc=2C pos)=3B=2C
> &= > >#62=3B>=3B>=3B DebugLevel)=3B;=3B *=3B)=3B
> >=3B&#= > >62=3B>=3B 63 iter :=3B==3B self.tbl.iterateOrdered= > >0=3B)=3B;=3B
> >=3B>=3B>=3B 64 ind :=3B&#= > >61=3B pos;=3B
> >=3B>=3B>=3B 65 original := > >=3B==3B "=3B"=3B;=3B
> >=3B>=3B>=3B 66 = > > REPEAT
> >=3B>=3B>=3B 67 INC(=3Bind)=3B&#= > >59=3B
> >=3B>=3B>=3B (=3Bgdb)=3B
> >=3B>=3B>= > >=3B
> >=3B>=3B>=3B Any ideas what to look at?=3B
> >= > >=3B>=3B>=3B
> >=3B>=3B>=3B I don'=3Bt know if this is = > >relevant:=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B [= > >=3Blapdog:=3B~=3B/t/cit_parse/PPC_DARWIN]=3B mika%=3B uname -a= > >
> >=3B>=3B>=3B Darwin lapdog.local 7.9.0 Darwin Kernel Version= > > 7.9.0:=3B Wed Mar 30
> >=3B>=3B>=3B 20:=3B11:=3B17 PS= > >T 2005;=3B root:=3Bxnu/xnu-517.12.7.obj~=3B1/RELEASE_PPC Power >r>> >=3B>=3B>=3B Macintosh powerpc
> >=3B>=3B>=3B [= > >=3Blapdog:=3B~=3B/t/cit_parse/PPC_DARWIN]=3B mika%=3B gcc -v >r>> >=3B>=3B>=3B Reading specs from /usr/libexec/gcc/darwin/ppc/3.= > >3/specs
> >=3B>=3B>=3B Thread model:=3B posix
> >=3B&#= > >62=3B>=3B gcc version 3.3 20030304 (=3BApple Computer=2C Inc. build 1= > >666)=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B Mika<= > >br>> >=3B>=3B>=3B
> >=3B>=3B>=3B P.S. Am I correct in = > >assuming that I can get CM3 to build on
> >=3B>=3B>=3B Window= > >s?=3B
> >=3B>=3B>=3B I could switch to CM3 on Unix any time= > >=2C of course=2C but I'=3Bve never
> >=3B>=3B>=3B had luck w= > >ith it on Windows=2C which is why I am using the ancient
> >=3B>= > >=3B>=3B Klagenfurt PM3=2C which comes on 40-odd "=3Bfloppies"=3B a= > >nd a .EXE that
> >=3B>=3B>=3B unpacks them into C:=3B (= > >=3Band installation instructions only in German)=3B.
> >=3B>=3B= > >>=3B If CM3 doesn'=3Bt work on Windows=2C I am essentially wasting my= > > time=2C
> >=3B>=3B>=3B as the current project I am working on = > >absolutely requires that the
> >=3B>=3B>=3B software run on Win= > >dows 2003 Server (=3Byes=2C it sucks=2C but what can
> >=3B>=3B= > >>=3B you do?=3B)=3B The very old PM3 at least kind of hobbles alo= > >ng on this
> >=3B>=3B>=3B platform---actually=2C better than th= > >at;=3B it does Trestle natively
> >=3B>=3B>=3B under Windows= > > (=3Bno X required)=3B=2C at least on SOME Windows machines.
> = > >2=3B>=3B>=3B
> >=3B>=3B>=3B P.P.S. Sorry for all the post= > >scripts=2C but is it true that the
> >=3B>=3B>=3B build system = > >has been changed so that building with overrides
> >=3B>=3B>= > >=3B (=3Bcm3 -x)=3B
> >=3B>=3B>=3B requires having the com= > >piler sources available?=3B It didn'=3Bt use to
> >=3B>=3B&= > >#62=3B be that way=2C but I can'=3Bt get Network Objects to work with ov= > >errides
> >=3B>=3B>=3B now unless I have the sources available.= > >.. It'=3Bs a bit of a pain
> >=3B>=3B>=3B because it means = > >that every user has to have the compiler sources=2C
> >=3B>=3B>= > >=3B or else ship everything=2C or was that not the intention?=3B
> > = > > > >= > > > >--_6374b72e-0dad-4a03-8d22-4a59e0218226_-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Jan 8 15:56:01 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 14:56:01 +0000 Subject: [M3devel] FW: LONGINT subrange problems In-Reply-To: References: <20110108081522.7A4C12474003@birch.elegosoft.com>, Message-ID: Tony any chance you can look at this? Or advise me where to fix? Notice the mismatches go both ways. This is on Darwin/i386 for me. Probably occurs on all 32bit targets & no 64bit targets. - Jay/phone > From: jay.krell at cornell.edu > To: m3devel at elegosoft.com > Date: Sat, 8 Jan 2011 08:19:06 +0000 > Subject: [M3devel] FW: LONGINT subrange problems > > > This is all based on Mika's work. > > > MODULE Main; > > PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; > > PROCEDURE F2() = > <*UNUSED*>VAR x: [0L..0L]; > BEGIN > END F2; > > PROCEDURE F3() = > VAR x: [0L..0L]; > BEGIN > F1(x); > END F3; > > BEGIN > F1(0L); > F2(); > F3(); > END Main. > > > (20) declare_procedure name:Main__F1 n_params:1 lev:0 exported:false procedure:0x0 procedure:0x4 > > (22) declare_procedure name:Main__F2 n_params:0 lev:0 exported:false procedure:0x0 procedure:0x5 > > (24) declare_procedure name:Main__F3 n_params:0 lev:0 exported:false procedure:0x0 procedure:0x6 > > > > (33) begin_procedure procedure:0x5 > (34) set_source_line 6 > (35) load_integer type:int_64 0 > (36) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int32 ] got [ Int64 ] > (37) store var:0x5 offset:0 src_t:int_32 dst_t:word_8 > (38) set_source_line 8 > (39) exit_proc type:void > (40) end_procedure procedure:0x5 > (41) comment comment:F3 > (42) set_source_line 0xA(10) > > (43) begin_procedure procedure:0x6 > (44) set_source_line 0xB(11) > (45) load_integer type:int_64 0 > (46) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int32 ] got [ Int64 ] > (47) store var:0x6 offset:0 src_t:int_32 dst_t:word_8 > (48) set_source_line 0xD(13) > > (49) start_call_direct procedure:0x4 level:0 > (50) load var:0x6 offset:0 src_t:word_8 dst_t:int_32 > (51) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] > (52) pop_param type:int_64 > (53) call_direct procedure:0x4 > (54) set_source_line 0xE(14) > (55) exit_proc type:void > (56) end_procedure procedure:0x6 > (57) comment comment:Main_M3 > (58) comment comment:module main body Main_M3 > (59) set_source_line 0x10(16) > > > > > > > > ---------------------------------------- > > Date: Sat, 8 Jan 2011 09:15:22 +0000 > > To: m3commit at elegosoft.com > > From: jkrell at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 11/01/08 09:15:21 > > > > Modified files: > > cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > > > > Log message: > > more LONGINT subrange problems, this now has 3 internal codegen errors, > > due to stack type and expected type mismatches > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sat Jan 8 22:59:33 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 8 Jan 2011 16:59:33 -0500 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: References: <20110106002615.77E782474003@birch.elegosoft.com>, Message-ID: <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu> I'll look into this one. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 8, 2011, at 12:17 AM, Jay K wrote: > > fyi, small repro: > > > MODULE Main; > > VAR x: [0L..0L]; > > PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; > > BEGIN > F2(x); > END Main. > > (32) start_call_direct procedure:0x4 level:0 > (33) load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 > (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] > (35) pop_param type:int_64 > > > - Jay > > > ________________________________ >> From: jay.krell at cornell.edu >> To: m3devel at elegosoft.com; mika at async.caltech.edu >> Subject: RE: codegen error (from Mika, new test p250) >> Date: Thu, 6 Jan 2011 01:21:00 +0000 >> >> fyi: >> >> jbook2:p250 jay$ rm -rf I386_DARWIN/ >> jbook2:p250 jay$ cm3 -keep >> --- building in I386_DARWIN --- >> >> new source -> compiling Main.m3 >> "../Main.m3", line 1: 1 code generation error >> 1 error encountered >> compilation failed => not building program "pgm" >> Fatal Error: package build failed >> jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment >> (4) comment comment:module global constants >> (6) comment comment:module global data >> (27) comment comment:F1 >> (34) comment comment:********* M3CG_Check ERROR >> *********** bad stack: expected [ Int64 ] got [ Int32 ] >> (43) comment comment:F2 >> (73) comment comment:Main_M3 >> (74) comment comment:module main body Main_M3 >> (83) comment comment:global constant type descriptor >> (85) comment comment:global data type descriptor >> (87) comment comment:module global constants >> (90) comment comment:procedure names >> (94) comment comment:procedure table >> (101) comment comment:file name >> (103) comment comment:type map for _t0174bdf4 >> (106) comment comment:type description for _t0174bdf4 >> (110) comment comment:module global data >> (120) comment comment:typecell for _t0174bdf4 >> (141) comment comment:load map >> (4) comment comment:module global constants >> (6) comment comment:module global data >> (27) comment comment:F1 >> (34) comment comment:********* M3CG_Check ERROR >> *********** bad stack: expected [ Int64 ] got [ Int32 ] >> (43) comment comment:F2 >> (73) comment comment:Main_M3 >> (74) comment comment:module main body Main_M3 >> (83) comment comment:global constant type descriptor >> (85) comment comment:global data type descriptor >> (87) comment comment:module global constants >> (90) comment comment:procedure names >> (94) comment comment:procedure table >> (101) comment comment:file name >> (103) comment comment:type map for _t0174bdf4 >> (106) comment comment:type description for _t0174bdf4 >> (110) comment comment:module global data >> (120) comment comment:typecell for _t0174bdf4 >> (141) comment comment:load map >> >> >> - Jay >> >> >>> Date: Thu, 6 Jan 2011 01:26:15 +0000 >>> To: m3commit at elegosoft.com >>> From: jkrell at elego.de >>> Subject: [M3commit] CVS Update: cm3 >>> >>> CVSROOT: /usr/cvs >>> Changes by: jkrell at birch. 11/01/06 01:26:15 >>> >>> Modified files: >>> cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 >>> >>> Log message: >>> slightly simpler, same error >>> > From hosking at cs.purdue.edu Sat Jan 8 23:06:02 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 8 Jan 2011 17:06:02 -0500 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: References: <20101227101653.307241A205B@async.async.caltech.edu>, , , , <20101227185453.97CE51A205B@async.async.caltech.edu>, , , , <20110108121441.A58031A205B@async.async.caltech.edu> Message-ID: I'm feeling foolish too since I never use them on my development system... ;-) On Jan 8, 2011, at 8:37 AM, Jay K wrote: > I upgrade across incompatibilities frequently & Hudson does now too. The existing scripts work very well and you would be foolish to not use them. Just use upgrade.py. It is very easy. Or upgrade.py nocleangcc. And then do-cm3-all.py skipgcc realclean && do-cm3-all.py buildship.py. > > - Jay/phone > > > To: jay.krell at cornell.edu > > Date: Sat, 8 Jan 2011 04:14:41 -0800 > > From: mika at async.caltech.edu > > CC: m3devel at elegosoft.com > > Subject: Re: [M3devel] another Snow Leopard compiler crash > > > > Jay K writes: > > > > > >Please try this Mika. It fixes the problem for me. > > > > Hi Jay, > > > > So I upgraded to the CVS head and now I get a segfaulting compiler: > > > > [hal:cm3/m3-libs/m3core] mika% gdb $CM3 > > GNU gdb 6.3.50-20050815 (Apple version gdb-1510) (Wed Sep 22 02:45:02 UTC 2010) > > Copyright 2004 Free Software Foundation, Inc. > > GDB is free software, covered by the GNU General Public License, and you are > > welcome to change it and/or distribute copies of it under certain conditions. > > Type "show copying" to see the conditions. > > There is absolutely no warranty for GDB. Type "show warranty" for details. > > This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries ...... done > > > > (gdb) run > > Starting program: /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3 > > Reading symbols for shared libraries .+++++.......... done > > > > Program received signal EXC_BAD_ACCESS, Could not access memory. > > Reason: KERN_PROTECTION_FAILURE at address: 0x0000038b > > 0x9713354b in _longjmp () > > (gdb) where > > #0 0x9713354b in _longjmp () > > #1 0x00285d2b in RTExFrame__InvokeHandler (f=0xbffff34c, a=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:175 > > #2 0x00285be4 in RTException__ResumeRaise (a=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:145 > > #3 0x00285a1b in RTException__Raise (act=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:91 > > #4 0x00269d44 in RTHooks__Raise (ex=0x35a720, arg=0x181cddc, module=0x398080, line=50) at ../src/runtime/common/RTHooks.m3:79 > > #5 0x0023adbc in OSErrorPosix__Raise0 (errno=2) at ../src/os/POSIX/OSErrorPosix.m3:50 > > #6 0x0023cffc in FSPosix__Fail (p=0x181cdc0, f=0xf049f0) at ../src/os/POSIX/FSPosix.m3:359 > > #7 0x0023cdd4 in FS__Status (pn=0x181cdc0, _result=0xbffff3c8) at ../src/os/POSIX/FSPosix.m3:328 > > #8 0x00217d24 in M3File__IsReadable (path=0x181cdc0) at ../src/M3File.m3:123 > > #9 0x000a057f in MxConfig__TryConfig (a=0x3255e0, b=0x3255f0, c=0x0) at ../src/MxConfig.m3:122 > > #10 0x0009ff67 in MxConfig__FindConfig () at ../src/MxConfig.m3:51 > > #11 0x0009fcd8 in MxConfig__FindFile () at ../src/MxConfig.m3:19 > > #12 0x0002c446 in Main__DoIt () at ../src/Main.m3:32 > > #13 0x0002d1e9 in Main_M3 (mode=1) at ../src/Main.m3:214 > > #14 0x0027a781 in RTLinker__RunMainBody (m=0x3705a0) at ../src/runtime/common/RTLinker.m3:406 > > #15 0x00279bb6 in RTLinker__AddUnitI (m=0x3705a0) at ../src/runtime/common/RTLinker.m3:113 > > #16 0x00279c3a in RTLinker__AddUnit (b=0x2d1d0) at ../src/runtime/common/RTLinker.m3:122 > > #17 0x00002cfc in main (argc=1, argv=0xbffff674, envp=0xbffff67c) at _m3main.c:16 > > (gdb) > > > > I followed upgrade instructions from Tony (including upgrading the > > back-end)---I have edited the instructions a bit to track changes in > > CM3. I'm starting from head three weeks old.. > > > > Mika > > > > > > Return-Path: hosking at cs.purdue.edu > > Delivery-Date: Sun Jun 24 07:38:38 2007 > > In-Reply-To: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> > > References: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> > > > > Sounds like we really need some work done in this area. I very > > rarely use the build scripts, since I bootstrap manually from old > > compilers to new compilers rather than use the scripts. I suggest > > the following approach, which I hope you will try, and then report > > back on. > > > > Install the bootstrap compiler as you did originally: > > > > > rm -rf /usr/local/cm3/* > > > > > > cd ~/cm3-cvs > > > mkdir boot > > > cd boot > > > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz > > > ./cminstall > > > > > > Now you will have some kind of cm3 installed, presumably in /usr/ > > local/cm3/bin/cm3. > > > > Make sure you have a fresh CVS checkout in directory cm3 (let's > > assume this is in your home directory ~/cm3). Also, make sure you > > have an up-to-date version of the CM3 backend compiler cm3cg > > installed by executing the following: > > > > STEP 0: > > > > export CM3=/usr/local/cm3/bin/cm3 > > cd ~/cm3/m3-sys/m3cc > > $CM3 > > $CM3 -ship > > > > You can skip this last step if you know your backend compiler is up > > to date. > > > > Now, let's build the new compiler from scratch (this is the sequence > > I use regularly to test changes to the run-time system whenever I > > make them): > > > > can replace compilation step with > > > > rm -rf && $CM3 && $CM3 -ship > > > > > > STEP 1: > > > > (do these LATER if bootstrapping from old compiler!) > > cd ~/cm3/m3-libs/m3core > > $CM3 > > $CM3 -ship > > cd ~/cm3/m3-libs/libm3 > > $CM3 > > $CM3 -ship > > > > Now build the compiler: > > > > cd ~/cm3/m3-libs/sysutils ; $CM3 etc. > > > > cd ~/cm3/m3-sys/m3middle; $CM3 etc. > > > > repeat for: > > > > m3-sys/m3objfile > > > > m3-sys/m3back > > > > m3-sys/m3linker > > > > m3-sys/m3front > > > > m3-sys/m3quake > > > > m3-sys/cm3 > > > > [ here we may need -DROOT= ] > > > > > > At this point you should have a bootstrapped version of cm3 installed > > in the directory /usr/local/cm3/pkg/cm3/TARGET/cm3 (where TARGET is > > the CM3 target platform you are building on -- e.g., LINUXLIBC6, > > PPC_DARWIN, ...). Note that this did not overwrite your original > > installed compiler in /usr/local/cm3/bin/cm3. We > > are now going to test the new compiler, which was built using the old > > compiler, by bootstrapping it one more time. > > > > > > ******* THIS IS WHERE I HAVE A SEGFAULTING COMPILER ******* > > > > (If m3core and libm3 were skipped earlier, do them now, and RE-DO all > > of the above packages before proceeding.) > > > > From here on out, please replace TARGET with your target platform as > > appropriate. > > > > STEP 2: > > > > export CM3=/usr/local/cm3/pkg/cm3/TARGET/cm3 > > cd ~/cm3/scripts > > > > ./do-cm3-std.sh realclean > > REPEAT STEP 1 to rebuild the libraries and the compiler using the > > STEP 1 bootstrap compiler. > > > > Now you have a STEP 2 bootstrap compiler installed in /usr/local/cm3/ > > pkg/cm3/TARGET/cm3. Let's assume the new compiler now works properly > > since it successfully bootstrapped itself, but to be sure we can now > > use it to rebuild the world: > > > > cd ~/cm3/scripts > > ./do-cm3-std.sh realclean > > ./do-cm3-std.sh buildship > > > > Assuming this succeeded then we can be pretty sure /usr/local/cm3/pkg/ > > cm3/TARGET/cm3 is good, so we can make it our default compiler by > > replacing the original /usr/local/cm3/bin/cm3: > > > > cp $CM3 /usr/local/cm3/bin/cm3 > > > > On Jun 23, 2007, at 2:38 PM, Mika Nystrom wrote: > > > > > Ok, I'm sorry if I seem a bit dimwitted in the morning like this, > > > but how exactly does one get started? I wish there were a file called > > > "GETTING_STARTED" or something like that in scripts... > > > > > > My Mac is very slow so I switched to my FreeBSD/i386 system (which has > > > PM3 happily installed on it) and tried to install CM3 from scratch. > > > Here are the exact commands I typed. > > > > > > > > > rm -rf /usr/local/cm3/* > > > > > > cd ~/cm3-cvs > > > mkdir boot > > > cd boot > > > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz > > > ./cminstall > > > > > > # now I seem to have some kind of cm3 installed, /usr/local/cm3/bin/ > > > cm3 > > > > > > cd cm3 # location of my CM3 checkout > > > cvs update -d . > > > > > > cd scripts > > > ./boot-cm3-with-m3.sh realclean > > > ./do-cm3-std.sh realclean > > > > > > ./upgrade.sh # fails here, libm3 not compiled > > > ./boot-cm3-with-m3.sh build # builds cm3, but fails on > > > cminstall, patternmatching not built > > > > > > ./do-cm3-std.sh build # OK > > > ./do-cm3-std.sh buildship # OK > > > > > > ./boot-cm3-with-m3.sh realclean # start over > > > ./boot-cm3-with-m3.sh build # OK > > > ./boot-cm3-with-m3.sh buildship # OK > > > > > > ./do-cm3-std.sh realclean # OK > > > ./do-cm3-std.sh build # dies miserably... maybe the > > > compiler can't handle the new libraries? > > > > > > ./install-cm3-compiler.sh upgrade # OK, new cm3 binary installed > > > > > > After all that, "game over." I have a cm3 that segfaults. > > > > > > Text.i3: In function 'Text_I3': > > > Text.i3:81: internal compiler error: Segmentation fault > > > Please submit a full bug report, > > > with preprocessed source if appropriate. > > > See for instructions. > > > compilation failed => not building library "libm3core.a" > > > Fatal Error: package build failed > > > *** execution of failed *** > > > > > > I can't seem to get either m3gdb or gdb to say anything reasonable > > > either. ktrace shows nothing out of the ordinary. > > > > > > ----- > > > > > > Meanwhile, my Mac got through "do-cm3-std.sh realclean" and > > > "do-cm3-std.sh buildship" but my compiles are still dying on the > > > same assertion tickled by ktok. On that machine I have INSTALLROOT > > > set to ~/cm3, but hopefully that has nothing to do with it... > > > > > > ----- > > > > > > Does do-cm3-std.sh realclean clean EVERYTHING? If so my Mac should > > > really have a fresh setup. The FreeBSD, I am not sure, maybe the > > > old binary version just doesn't work right? Of course I could try > > > bootstrapping with PM3 as well... but really, there's an "approved" > > > process to get from a blank system, no? > > > > > > Mika > > > > > > > > > > > > > > > Tony Hosking writes: > > >> That sounds like you forgot to execute "do-cm3-std.sh realclean" > > >> before initiating the build. These sorts of errors sometimes arise > > >> if there are old build directories lying around. > > >> > > >> On Jun 23, 2007, at 3:34 AM, Mika Nystrom wrote: > > >> > > >>> Hello everyone, > > >>> > > >>> I am in the process of trying to consolidate build systems for a > > >>> few software packages I am maintaining. Currently, I am using an > > >>> old PM3 on FreeBSD4, an ancient PM3 (from Klagenfurt?) for Windows > > >>> (NT386GNU), and trying to get the latest CM3 from cvs up and > > >>> compiling > > >>> things on PPC_DARWIN. Ideally, I'd like to standardize everything > > >>> on the new PM3---mainly so that I can use pickles (and Network > > >>> Objects) across all three systems. I'd also like to add Linux to > > >>> the mix. > > >>> > > >>> It's natural for me to start with CM3 on Darwin, as there's no > > >>> alternative. But I am getting some assertions failing. Everything > > >>> in the CM3 distribution compiles fine, and I believe I have compiled > > >>> the libraries a few times (that is, including with themselves), and > > >>> updated the compiler, too (using boot-cm3-with-m3.sh). I just cvs > > >>> updated tonight. > > >>> > > >>> Here's what I'm running into: > > >>> > > >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/CHP.t -o > > >>> CHPTok.i3 > > >>> > > >>> *** > > >>> *** runtime error: > > >>> *** <*ASSERT*> failed. > > >>> *** file "../src/runtime/common/RTCollector.m3", line 2314 > > >>> *** > > >>> > > >>> Abort > > >>> > > >>> Also: > > >>> > > >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/PRS.t -o > > >>> PRSTok.i3 > > >>> Illegal instruction > > >>> > > >>> As you can see, these things are coming from the caltech_parser. I > > >> am using > > >>> our local version, but I don't think it is very different from what > > >>> is in the > > >>> CM3 tree. > > >>> > > >>> Examining the first error (the failed assertion) more closely, I see > > >>> the following: > > >>> > > >>> (gdb) list > > >>> 108 wr := FileWr.Open(Pathname.ReplaceExt(tp.out, "m3")); > > >>> 109 EXCEPT OSError.E => > > >>> 110 Debug.Error("Cannot open tok implementation output > > >>> file: " & > > >>> 111 Pathname.ReplaceExt(tp.out, "m3")); > > >>> 112 END; > > >>> 113 Wr.PutText(wr, subs.apply(Bundle.Get(Form, > > >>> "tokform.m3"))); > > >>> 114 Wr.Close(wr); > > >>> 115 END Main. > > >>> (gdb) where > > >>> #0 0x9004308c in kill () > > >>> #1 0x9009fb3c in abort () > > >>> #2 0x00096f50 in RTOS__Crash () at RTOS.m3:20 > > >>> #3 0x0005bd40 in RTProcess__Crash (M3_Bd56fi_msg=0x0) at > > >>> RTProcess.m3:65 > > >>> #4 0x0008e4e0 in RTError__EndError (M3_AicXUJ_crash=1 '\001') at > > >>> RTError.m3:115 > > >>> #5 0x0008e08c in RTError__MsgS (M3_AJWxb1_file=0xc63d8, > > >>> M3_AcxOUs_line=2314, M3_Bd56fi_msgA=0xca3d0, > > >>> M3_Bd56fi_msgB=0xcbe90, M3_Bd56fi_msgC=0xca3d0) at RTError.m3:40 > > >>> #6 0x0008eb88 in RTException__Crash (M3_Cblw37_a=0xbfffee00, > > >>> M3_AicXUJ_raises=0 '\0', M3_AJWxb1_rte=0xcb538) at RTException.m3:79 > > >>> #7 0x0008e74c in RTException__DefaultBackstop > > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at > > >>> RTException.m3:39 > > >>> #8 0x0008e614 in RTException__InvokeBackstop > > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at > > >>> RTException.m3:25 > > >>> #9 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at > > >>> RTExFrame.m3:29 > > >>> #10 0x0008e840 in RTException__DefaultBackstop > > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at > > >>> RTException.m3:47 > > >>> #11 0x0008e614 in RTException__InvokeBackstop > > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at > > >>> RTException.m3:25 > > >>> #12 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at > > >>> RTExFrame.m3:29 > > >>> #13 0x00079740 in RTHooks__ReportFault (M3_AJWxb1_module=0xb3eb8, > > >>> M3_AcxOUs_info=74048) at RTHooks.m3:110 > > >>> #14 0x0006ff4c in _m3_fault (M3_AcxOUs_arg=74048) > > >>> #15 0x0006bcf4 in RTHooks__CheckStoreTraced > > >>> (M3_Af40ku_ref=0xb2415c) at RTCollector.m3:2314 > > >>> #16 0x000700e4 in ThreadPThread__InnerLockMutex > > >>> (M3_AYIbX3_m=0xb2415c, M3_BXP32l_self=0xb24014) at > > >>> ThreadPThread.m3:126 > > >>> #17 0x000704d8 in ThreadPThread__LockMutex (M3_AYIbX3_m=0xb2415c) > > >>> at ThreadPThread.m3:153 > > >>> #18 0x00019b24 in Wr__PutText (M3_BxxOH1_wr=0xb2415c, > > >>> M3_Bd56fi_t=0xb44d5c) at Wr.m3:93 > > >>> #19 0x00003f74 in Main_M3 (M3_AcxOUs_mode=1) at Main.m3:113 > > >>> #20 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at > > >>> RTLinker.m3:399 > > >>> #21 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at > > >>> RTLinker.m3:113 > > >>> #22 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at > > >>> RTLinker.m3:122 > > >>> #23 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38) > > >>> at _m3main.mc:4 > > >>> (gdb) > > >>> > > >>> The second error: > > >>> > > >>> Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/ > > >>> operand. > > >>> 0x00b111ac in ?? () > > >>> (gdb) where > > >>> #0 0x00b111ac in ?? () > > >>> #1 0x0001214c in TextSubs__Apply (M3_CN69dV_self=0xb26450, > > >>> M3_Bd56fi_src=0xb21cec) at TextSubs.m3:63 > > >>> #2 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at > > >>> RTLinker.m3:399 > > >>> #3 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at > > >>> RTLinker.m3:113 > > >>> #4 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at > > >>> RTLinker.m3:122 > > >>> #5 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38) > > >>> at _m3main.mc:4 > > >>> (gdb) list > > >>> 58 BEGIN > > >>> 59 WHILE pos < textLen DO > > >>> 60 c := Text.GetChar(src, pos); > > >>> 61 IF c IN self.starts THEN > > >>> 62 (* S("analysing: " & Text.Sub(src, pos), > > >>> DebugLevel); *) > > >>> 63 iter := self.tbl.iterateOrdered(); > > >>> 64 ind := pos; > > >>> 65 original := ""; > > >>> 66 REPEAT > > >>> 67 INC(ind); > > >>> (gdb) > > >>> > > >>> Any ideas what to look at? > > >>> > > >>> I don't know if this is relevant: > > >>> > > >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% uname -a > > >>> Darwin lapdog.local 7.9.0 Darwin Kernel Version 7.9.0: Wed Mar 30 > > >>> 20:11:17 PST 2005; root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC Power > > >>> Macintosh powerpc > > >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% gcc -v > > >>> Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs > > >>> Thread model: posix > > >>> gcc version 3.3 20030304 (Apple Computer, Inc. build 1666) > > >>> > > >>> Mika > > >>> > > >>> P.S. Am I correct in assuming that I can get CM3 to build on > > >>> Windows? > > >>> I could switch to CM3 on Unix any time, of course, but I've never > > >>> had luck with it on Windows, which is why I am using the ancient > > >>> Klagenfurt PM3, which comes on 40-odd "floppies" and a .EXE that > > >>> unpacks them into C: (and installation instructions only in German). > > >>> If CM3 doesn't work on Windows, I am essentially wasting my time, > > >>> as the current project I am working on absolutely requires that the > > >>> software run on Windows 2003 Server (yes, it sucks, but what can > > >>> you do?) The very old PM3 at least kind of hobbles along on this > > >>> platform---actually, better than that; it does Trestle natively > > >>> under Windows (no X required), at least on SOME Windows machines. > > >>> > > >>> P.P.S. Sorry for all the postscripts, but is it true that the > > >>> build system has been changed so that building with overrides > > >>> (cm3 -x) > > >>> requires having the compiler sources available? It didn't use to > > >>> be that way, but I can't get Network Objects to work with overrides > > >>> now unless I have the sources available... It's a bit of a pain > > >>> because it means that every user has to have the compiler sources, > > >>> or else ship everything, or was that not the intention? -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.caltech.edu Sun Jan 9 00:19:02 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Sat, 08 Jan 2011 15:19:02 -0800 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: message dated "Sat, 08 Jan 2011 17:36:22 +0000." Message-ID: <20110108231903.06D811A205B@async.async.caltech.edu> By going back to the release version and running upgrade, I was able to get further, but now I get these---a change somewhere? Mika --- building in I386_DARWIN --- "/Users/mika/cm3/cm3/m3-db/postgres95/src/m3makefile", line 4: quake runtime error: undefined variable: configure_system_libs --procedure-- -line- -file--- include_dir 4 /Users/mika/cm3/cm3/m3-db/postgres95/src/m3makefile 6 /Users/mika/cm3/cm3/m3-db/postgres95/I386_DARWIN/m3make.args Fatal Error: package build failed CM3_TARGET=I386_DARWIN export CM3_TARGET CM3_INSTALL=/usr/local/cm3 export CM3_INSTALL CM3_ROOT=/Users/mika/cm3/cm3 export CM3_ROOT From mika at async.caltech.edu Sun Jan 9 00:51:39 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Sat, 08 Jan 2011 15:51:39 -0800 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: References: <20101227101653.307241A205B@async.async.caltech.edu> <20101227185453.97CE51A205B@async.async.caltech.edu> <20110108121441.A58031A205B@async.async.caltech.edu> <20110108134735.B7D4C1A205B@async.async.caltech.edu> <20110108161001.DC4871A205B@async.async.caltech.edu> <20110108181715.77FF61A205B@async.async.caltech.edu> Message-ID: <20110108235139.D12A31A205B@async.async.caltech.edu> I started from scratch (working cm3 install) several times. No go. upgrade.py was just not able to upgrade my particular setup (current as of a few weeks ago). Starting from the previous release worked, but now there's this configure_system_libs thing---this seems to be a config file issue? (Also something not taken care of by upgrade.py) A lot of futzing around... Mika jay.krell at cornell.edu writes: >Yes. When upgrade.py fails, you may or may not be in a bad state. I can see a= >bout making it safer. There are unavoidable depenedencies among cm3, cm3cg, a= >nd m3core, and maybe libm3. > >Starting point is a working cm3, and its cm3cg, and its config files, and m3= >core, and possible its libm3. =20 > >I think maybe I should write a feature in upgrade.py that can start from scr= >atch -- download old install archive or start from a specified local copy th= >ereof. Interest? I might use it myself. I think upgrade should also have opt= >ion to build all. > > - Jay > >On Jan 8, 2011, at 1:17 PM, Mika Nystrom wrote: > >> Do I need to go back to the release and install that, and then upgrade.py?= > >> As far as I know my compiler was working fine... >>=20 >> Jay K writes: >>> --_1def5bc1-96d7-442f-bd33-2522abadf97d_ >>> Content-Type: text/plain; charset=3D"iso-8859-1" >>> Content-Transfer-Encoding: quoted-printable >>>=20 >>> Tony's instructions imho are too much work=3D2C error-prone. Upgrade.py d= >oes =3D >>> rebuild cm3cg. Don't do it manually=3D2C as you have to be careful when y= >ou s=3D >>> witch from old to new=3D2C and upgrade.py knows. There was a problem rega= >rdin=3D >>> g m3bundle=3D2C fairly recently. So try head. Not a few weeks ago. The sc= >ript=3D >>> s specifically had a problem. >>>=20 >>> Jay/phone >>>=20 >>>> To: jay.krell at cornell.edu >>>> Subject: Re: [M3devel] another Snow Leopard compiler crash=3D20 >>>> Date: Sat=3D2C 8 Jan 2011 08:10:01 -0800 >>>> From: mika at async.caltech.edu >>>> =3D20 >>>> Jay K writes: >>>>> --_8699851d-dc9a-486c-965d-eaed43f71a51_ >>>>> Content-Type: text/plain=3D3B charset=3D3D"iso-8859-1" >>>>> Content-Transfer-Encoding: quoted-printable >>>>>=20 >>>>> It no longer builds m3bundle I think. There was a problem regarding m3b= >=3D >>> und=3D3D >>>>> le for a while=3D3D2C because I had followed upgrade.sh too closely=3D3= >D2C w=3D >>> hich ha=3D3D >>>>> d this problem. And this is a sign of using old cm3cg. Are you sure you= > =3D >>> did=3D3D >>>>> n't do something weird? Uograde.py does upgrade cm3cg appropriately. Tr= >y=3D >>> he=3D3D >>>>> ad? >>>>>=20 >>>> =3D20 >>>> I'm not sure I didn't do anything weird. I have a CM3 distribution that= > >>>> was release=3D2C then I upgraded it to head as of three weeks ago using >>>> the procedure Tony described to me a few years ago. I've been using >>>> that with no special problems since then. I then updated to the CVS hea= >d >>>> and ran "python upgrade.py". It does not rebuild cm3cg=3D2C but I can d= >o i=3D >>> t >>>> manually and try again. >>>> =3D20 >>>> Mika >>> =3D >>>=20 >>> --_1def5bc1-96d7-442f-bd33-2522abadf97d_ >>> Content-Type: text/html; charset=3D"iso-8859-1" >>> Content-Transfer-Encoding: quoted-printable >>>=20 >>> >>> >>> >>> >>> Tony's instructions imho are too much work=3D= >2C err=3D >>> or-prone. Upgrade.py does rebuild cm3cg. Don't do it manually=3D2C as you= > hav=3D >>> e to be careful when you switch from old to new=3D2C and upgrade.py knows= >. Th=3D >>> ere was a problem regarding m3bundle=3D2C fairly recently. So try head. N= >ot a=3D >>> few weeks ago. The scripts specifically had a problem.

Jay/phone<= >b=3D >>> r>
> To:=3D3B jay.krell@=3D3Bcornell.edu
> Subject:=3D3B R= >e:=3D3B=3D >>> [=3D3BM3devel]=3D3B another Snow Leopard compiler crash
> Date&= >#58=3D >>> =3D3B Sat=3D2C 8 Jan 2011 08:=3D3B10:=3D3B01 -0800
> From:=3D= >3B mika@=3D >>> =3D3Basync.caltech.edu
>
> Jay K writes:=3D3B
> >=3D3B--_= >8699851d=3D >>> -dc9a-486c-965d-eaed43f71a51_
> >=3D3BContent-Type:=3D3B text/pl= >ain=3D >>> 9=3D3B charset==3D3B"=3D3Biso-8859-1"=3D3B
> >=3D3BContent= >-Transfer-En=3D >>> coding:=3D3B quoted-printable
> >=3D3B
> >=3D3B It no long= >er build=3D >>> s m3bundle I think. There was a problem regarding m3bund==3D3B
> &#= >62=3D >>> =3D3Ble for a while==3D3B2C because I had followed upgrade.sh too clos= >ely=3D >>> 1=3D3B2C which ha==3D3B
> >=3D3Bd this problem. And this is a si= >gn of us=3D >>> ing old cm3cg. Are you sure you did==3D3B
> >=3D3Bn'=3D3Bt do= > somethi=3D >>> ng weird?=3D3B Uograde.py does upgrade cm3cg appropriately. Try he== >=3D3B<=3D >>> br>> >=3D3Bad?=3D3B
> >=3D3B
>
> I'=3D3Bm not sure I= > didn'=3D >>> =3D3Bt do anything weird. I have a CM3 distribution that
> was releas= >e=3D2C=3D >>> then I upgraded it to head as of three weeks ago using
> the procedure= > =3D >>> Tony described to me a few years ago. I'=3D3Bve been using
> that w= >ith=3D >>> no special problems since then. I then updated to the CVS head
> and r= >=3D >>> an "=3D3Bpython upgrade.py"=3D3B. It does not rebuild cm3cg=3D2C b= >ut I can=3D >>> do it
> manually and try again.
>
> Mika
=20 >>> <=3D >>> /body> >>> =3D >>>=20 >>> --_1def5bc1-96d7-442f-bd33-2522abadf97d_-- From jay.krell at cornell.edu Sun Jan 9 00:55:24 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 23:55:24 +0000 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu> References: <20110106002615.77E782474003@birch.elegosoft.com>, , , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu> Message-ID: Thank you much. Please notice there are 2 or 3 similar problems. This shows only 1. See test p250. MODULE Main; PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; PROCEDURE F2() = <*UNUSED*>VAR x: [0L..0L]; BEGIN END F2; PROCEDURE F3() = VAR x: [0L..0L]; BEGIN ? F1(x); END F3; BEGIN ? F1(0L); ? F2(); ? F3(); END Main. i.e. initializing local 0L..0L. Passing 0L..0L parameter. ?- Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Sat, 8 Jan 2011 16:59:33 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] codegen error (from Mika, new test p250) > > I'll look into this one. > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 | Mobile +1 765 427 5484 > > > > > On Jan 8, 2011, at 12:17 AM, Jay K wrote: > > > > > fyi, small repro: > > > > > > MODULE Main; > > > > VAR x: [0L..0L]; > > > > PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; > > > > BEGIN > > F2(x); > > END Main. > > > > (32) start_call_direct procedure:0x4 level:0 > > (33) load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 > > (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] > > (35) pop_param type:int_64 > > > > > > - Jay > > > > > > ________________________________ > >> From: jay.krell at cornell.edu > >> To: m3devel at elegosoft.com; mika at async.caltech.edu > >> Subject: RE: codegen error (from Mika, new test p250) > >> Date: Thu, 6 Jan 2011 01:21:00 +0000 > >> > >> fyi: > >> > >> jbook2:p250 jay$ rm -rf I386_DARWIN/ > >> jbook2:p250 jay$ cm3 -keep > >> --- building in I386_DARWIN --- > >> > >> new source -> compiling Main.m3 > >> "../Main.m3", line 1: 1 code generation error > >> 1 error encountered > >> compilation failed => not building program "pgm" > >> Fatal Error: package build failed > >> jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment > >> (4) comment comment:module global constants > >> (6) comment comment:module global data > >> (27) comment comment:F1 > >> (34) comment comment:********* M3CG_Check ERROR > >> *********** bad stack: expected [ Int64 ] got [ Int32 ] > >> (43) comment comment:F2 > >> (73) comment comment:Main_M3 > >> (74) comment comment:module main body Main_M3 > >> (83) comment comment:global constant type descriptor > >> (85) comment comment:global data type descriptor > >> (87) comment comment:module global constants > >> (90) comment comment:procedure names > >> (94) comment comment:procedure table > >> (101) comment comment:file name > >> (103) comment comment:type map for _t0174bdf4 > >> (106) comment comment:type description for _t0174bdf4 > >> (110) comment comment:module global data > >> (120) comment comment:typecell for _t0174bdf4 > >> (141) comment comment:load map > >> (4) comment comment:module global constants > >> (6) comment comment:module global data > >> (27) comment comment:F1 > >> (34) comment comment:********* M3CG_Check ERROR > >> *********** bad stack: expected [ Int64 ] got [ Int32 ] > >> (43) comment comment:F2 > >> (73) comment comment:Main_M3 > >> (74) comment comment:module main body Main_M3 > >> (83) comment comment:global constant type descriptor > >> (85) comment comment:global data type descriptor > >> (87) comment comment:module global constants > >> (90) comment comment:procedure names > >> (94) comment comment:procedure table > >> (101) comment comment:file name > >> (103) comment comment:type map for _t0174bdf4 > >> (106) comment comment:type description for _t0174bdf4 > >> (110) comment comment:module global data > >> (120) comment comment:typecell for _t0174bdf4 > >> (141) comment comment:load map > >> > >> > >> - Jay > >> > >> > >>> Date: Thu, 6 Jan 2011 01:26:15 +0000 > >>> To: m3commit at elegosoft.com > >>> From: jkrell at elego.de > >>> Subject: [M3commit] CVS Update: cm3 > >>> > >>> CVSROOT: /usr/cvs > >>> Changes by: jkrell at birch. 11/01/06 01:26:15 > >>> > >>> Modified files: > >>> cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > >>> > >>> Log message: > >>> slightly simpler, same error > >>> > > > From jay.krell at cornell.edu Sun Jan 9 00:52:07 2011 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Sat, 8 Jan 2011 18:52:07 -0500 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: References: <20101227101653.307241A205B@async.async.caltech.edu> <20101227185453.97CE51A205B@async.async.caltech.edu> <20110108121441.A58031A205B@async.async.caltech.edu> Message-ID: <7AC16197-7752-43D0-AE47-21D461A86E94@gmail.com> Except you. :) But I still recommend it. - Jay On Jan 8, 2011, at 5:06 PM, Tony Hosking wrote: > I'm feeling foolish too since I never use them on my development system... ;-) > > On Jan 8, 2011, at 8:37 AM, Jay K wrote: > >> I upgrade across incompatibilities frequently & Hudson does now too. The existing scripts work very well and you would be foolish to not use them. Just use upgrade.py. It is very easy. Or upgrade.py nocleangcc. And then do-cm3-all.py skipgcc realclean && do-cm3-all.py buildship.py. >> >> - Jay/phone >> >> > To: jay.krell at cornell.edu >> > Date: Sat, 8 Jan 2011 04:14:41 -0800 >> > From: mika at async.caltech.edu >> > CC: m3devel at elegosoft.com >> > Subject: Re: [M3devel] another Snow Leopard compiler crash >> > >> > Jay K writes: >> > > >> > >Please try this Mika. It fixes the problem for me. >> > >> > Hi Jay, >> > >> > So I upgraded to the CVS head and now I get a segfaulting compiler: >> > >> > [hal:cm3/m3-libs/m3core] mika% gdb $CM3 >> > GNU gdb 6.3.50-20050815 (Apple version gdb-1510) (Wed Sep 22 02:45:02 UTC 2010) >> > Copyright 2004 Free Software Foundation, Inc. >> > GDB is free software, covered by the GNU General Public License, and you are >> > welcome to change it and/or distribute copies of it under certain conditions. >> > Type "show copying" to see the conditions. >> > There is absolutely no warranty for GDB. Type "show warranty" for details. >> > This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries ...... done >> > >> > (gdb) run >> > Starting program: /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3 >> > Reading symbols for shared libraries .+++++.......... done >> > >> > Program received signal EXC_BAD_ACCESS, Could not access memory. >> > Reason: KERN_PROTECTION_FAILURE at address: 0x0000038b >> > 0x9713354b in _longjmp () >> > (gdb) where >> > #0 0x9713354b in _longjmp () >> > #1 0x00285d2b in RTExFrame__InvokeHandler (f=0xbffff34c, a=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:175 >> > #2 0x00285be4 in RTException__ResumeRaise (a=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:145 >> > #3 0x00285a1b in RTException__Raise (act=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:91 >> > #4 0x00269d44 in RTHooks__Raise (ex=0x35a720, arg=0x181cddc, module=0x398080, line=50) at ../src/runtime/common/RTHooks.m3:79 >> > #5 0x0023adbc in OSErrorPosix__Raise0 (errno=2) at ../src/os/POSIX/OSErrorPosix.m3:50 >> > #6 0x0023cffc in FSPosix__Fail (p=0x181cdc0, f=0xf049f0) at ../src/os/POSIX/FSPosix.m3:359 >> > #7 0x0023cdd4 in FS__Status (pn=0x181cdc0, _result=0xbffff3c8) at ../src/os/POSIX/FSPosix.m3:328 >> > #8 0x00217d24 in M3File__IsReadable (path=0x181cdc0) at ../src/M3File.m3:123 >> > #9 0x000a057f in MxConfig__TryConfig (a=0x3255e0, b=0x3255f0, c=0x0) at ../src/MxConfig.m3:122 >> > #10 0x0009ff67 in MxConfig__FindConfig () at ../src/MxConfig.m3:51 >> > #11 0x0009fcd8 in MxConfig__FindFile () at ../src/MxConfig.m3:19 >> > #12 0x0002c446 in Main__DoIt () at ../src/Main.m3:32 >> > #13 0x0002d1e9 in Main_M3 (mode=1) at ../src/Main.m3:214 >> > #14 0x0027a781 in RTLinker__RunMainBody (m=0x3705a0) at ../src/runtime/common/RTLinker.m3:406 >> > #15 0x00279bb6 in RTLinker__AddUnitI (m=0x3705a0) at ../src/runtime/common/RTLinker.m3:113 >> > #16 0x00279c3a in RTLinker__AddUnit (b=0x2d1d0) at ../src/runtime/common/RTLinker.m3:122 >> > #17 0x00002cfc in main (argc=1, argv=0xbffff674, envp=0xbffff67c) at _m3main.c:16 >> > (gdb) >> > >> > I followed upgrade instructions from Tony (including upgrading the >> > back-end)---I have edited the instructions a bit to track changes in >> > CM3. I'm starting from head three weeks old.. >> > >> > Mika >> > >> > >> > Return-Path: hosking at cs.purdue.edu >> > Delivery-Date: Sun Jun 24 07:38:38 2007 >> > In-Reply-To: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> >> > References: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> >> > >> > Sounds like we really need some work done in this area. I very >> > rarely use the build scripts, since I bootstrap manually from old >> > compilers to new compilers rather than use the scripts. I suggest >> > the following approach, which I hope you will try, and then report >> > back on. >> > >> > Install the bootstrap compiler as you did originally: >> > >> > > rm -rf /usr/local/cm3/* >> > > >> > > cd ~/cm3-cvs >> > > mkdir boot >> > > cd boot >> > > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz >> > > ./cminstall >> > >> > >> > Now you will have some kind of cm3 installed, presumably in /usr/ >> > local/cm3/bin/cm3. >> > >> > Make sure you have a fresh CVS checkout in directory cm3 (let's >> > assume this is in your home directory ~/cm3). Also, make sure you >> > have an up-to-date version of the CM3 backend compiler cm3cg >> > installed by executing the following: >> > >> > STEP 0: >> > >> > export CM3=/usr/local/cm3/bin/cm3 >> > cd ~/cm3/m3-sys/m3cc >> > $CM3 >> > $CM3 -ship >> > >> > You can skip this last step if you know your backend compiler is up >> > to date. >> > >> > Now, let's build the new compiler from scratch (this is the sequence >> > I use regularly to test changes to the run-time system whenever I >> > make them): >> > >> > can replace compilation step with >> > >> > rm -rf && $CM3 && $CM3 -ship >> > >> > >> > STEP 1: >> > >> > (do these LATER if bootstrapping from old compiler!) >> > cd ~/cm3/m3-libs/m3core >> > $CM3 >> > $CM3 -ship >> > cd ~/cm3/m3-libs/libm3 >> > $CM3 >> > $CM3 -ship >> > >> > Now build the compiler: >> > >> > cd ~/cm3/m3-libs/sysutils ; $CM3 etc. >> > >> > cd ~/cm3/m3-sys/m3middle; $CM3 etc. >> > >> > repeat for: >> > >> > m3-sys/m3objfile >> > >> > m3-sys/m3back >> > >> > m3-sys/m3linker >> > >> > m3-sys/m3front >> > >> > m3-sys/m3quake >> > >> > m3-sys/cm3 >> > >> > [ here we may need -DROOT= ] >> > >> > >> > At this point you should have a bootstrapped version of cm3 installed >> > in the directory /usr/local/cm3/pkg/cm3/TARGET/cm3 (where TARGET is >> > the CM3 target platform you are building on -- e.g., LINUXLIBC6, >> > PPC_DARWIN, ...). Note that this did not overwrite your original >> > installed compiler in /usr/local/cm3/bin/cm3. We >> > are now going to test the new compiler, which was built using the old >> > compiler, by bootstrapping it one more time. >> > >> > >> > ******* THIS IS WHERE I HAVE A SEGFAULTING COMPILER ******* >> > >> > (If m3core and libm3 were skipped earlier, do them now, and RE-DO all >> > of the above packages before proceeding.) >> > >> > From here on out, please replace TARGET with your target platform as >> > appropriate. >> > >> > STEP 2: >> > >> > export CM3=/usr/local/cm3/pkg/cm3/TARGET/cm3 >> > cd ~/cm3/scripts >> > >> > ./do-cm3-std.sh realclean >> > REPEAT STEP 1 to rebuild the libraries and the compiler using the >> > STEP 1 bootstrap compiler. >> > >> > Now you have a STEP 2 bootstrap compiler installed in /usr/local/cm3/ >> > pkg/cm3/TARGET/cm3. Let's assume the new compiler now works properly >> > since it successfully bootstrapped itself, but to be sure we can now >> > use it to rebuild the world: >> > >> > cd ~/cm3/scripts >> > ./do-cm3-std.sh realclean >> > ./do-cm3-std.sh buildship >> > >> > Assuming this succeeded then we can be pretty sure /usr/local/cm3/pkg/ >> > cm3/TARGET/cm3 is good, so we can make it our default compiler by >> > replacing the original /usr/local/cm3/bin/cm3: >> > >> > cp $CM3 /usr/local/cm3/bin/cm3 >> > >> > On Jun 23, 2007, at 2:38 PM, Mika Nystrom wrote: >> > >> > > Ok, I'm sorry if I seem a bit dimwitted in the morning like this, >> > > but how exactly does one get started? I wish there were a file called >> > > "GETTING_STARTED" or something like that in scripts... >> > > >> > > My Mac is very slow so I switched to my FreeBSD/i386 system (which has >> > > PM3 happily installed on it) and tried to install CM3 from scratch. >> > > Here are the exact commands I typed. >> > > >> > > >> > > rm -rf /usr/local/cm3/* >> > > >> > > cd ~/cm3-cvs >> > > mkdir boot >> > > cd boot >> > > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz >> > > ./cminstall >> > > >> > > # now I seem to have some kind of cm3 installed, /usr/local/cm3/bin/ >> > > cm3 >> > > >> > > cd cm3 # location of my CM3 checkout >> > > cvs update -d . >> > > >> > > cd scripts >> > > ./boot-cm3-with-m3.sh realclean >> > > ./do-cm3-std.sh realclean >> > > >> > > ./upgrade.sh # fails here, libm3 not compiled >> > > ./boot-cm3-with-m3.sh build # builds cm3, but fails on >> > > cminstall, patternmatching not built >> > > >> > > ./do-cm3-std.sh build # OK >> > > ./do-cm3-std.sh buildship # OK >> > > >> > > ./boot-cm3-with-m3.sh realclean # start over >> > > ./boot-cm3-with-m3.sh build # OK >> > > ./boot-cm3-with-m3.sh buildship # OK >> > > >> > > ./do-cm3-std.sh realclean # OK >> > > ./do-cm3-std.sh build # dies miserably... maybe the >> > > compiler can't handle the new libraries? >> > > >> > > ./install-cm3-compiler.sh upgrade # OK, new cm3 binary installed >> > > >> > > After all that, "game over." I have a cm3 that segfaults. >> > > >> > > Text.i3: In function 'Text_I3': >> > > Text.i3:81: internal compiler error: Segmentation fault >> > > Please submit a full bug report, >> > > with preprocessed source if appropriate. >> > > See for instructions. >> > > compilation failed => not building library "libm3core.a" >> > > Fatal Error: package build failed >> > > *** execution of failed *** >> > > >> > > I can't seem to get either m3gdb or gdb to say anything reasonable >> > > either. ktrace shows nothing out of the ordinary. >> > > >> > > ----- >> > > >> > > Meanwhile, my Mac got through "do-cm3-std.sh realclean" and >> > > "do-cm3-std.sh buildship" but my compiles are still dying on the >> > > same assertion tickled by ktok. On that machine I have INSTALLROOT >> > > set to ~/cm3, but hopefully that has nothing to do with it... >> > > >> > > ----- >> > > >> > > Does do-cm3-std.sh realclean clean EVERYTHING? If so my Mac should >> > > really have a fresh setup. The FreeBSD, I am not sure, maybe the >> > > old binary version just doesn't work right? Of course I could try >> > > bootstrapping with PM3 as well... but really, there's an "approved" >> > > process to get from a blank system, no? >> > > >> > > Mika >> > > >> > > >> > > >> > > >> > > Tony Hosking writes: >> > >> That sounds like you forgot to execute "do-cm3-std.sh realclean" >> > >> before initiating the build. These sorts of errors sometimes arise >> > >> if there are old build directories lying around. >> > >> >> > >> On Jun 23, 2007, at 3:34 AM, Mika Nystrom wrote: >> > >> >> > >>> Hello everyone, >> > >>> >> > >>> I am in the process of trying to consolidate build systems for a >> > >>> few software packages I am maintaining. Currently, I am using an >> > >>> old PM3 on FreeBSD4, an ancient PM3 (from Klagenfurt?) for Windows >> > >>> (NT386GNU), and trying to get the latest CM3 from cvs up and >> > >>> compiling >> > >>> things on PPC_DARWIN. Ideally, I'd like to standardize everything >> > >>> on the new PM3---mainly so that I can use pickles (and Network >> > >>> Objects) across all three systems. I'd also like to add Linux to >> > >>> the mix. >> > >>> >> > >>> It's natural for me to start with CM3 on Darwin, as there's no >> > >>> alternative. But I am getting some assertions failing. Everything >> > >>> in the CM3 distribution compiles fine, and I believe I have compiled >> > >>> the libraries a few times (that is, including with themselves), and >> > >>> updated the compiler, too (using boot-cm3-with-m3.sh). I just cvs >> > >>> updated tonight. >> > >>> >> > >>> Here's what I'm running into: >> > >>> >> > >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/CHP.t -o >> > >>> CHPTok.i3 >> > >>> >> > >>> *** >> > >>> *** runtime error: >> > >>> *** <*ASSERT*> failed. >> > >>> *** file "../src/runtime/common/RTCollector.m3", line 2314 >> > >>> *** >> > >>> >> > >>> Abort >> > >>> >> > >>> Also: >> > >>> >> > >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/PRS.t -o >> > >>> PRSTok.i3 >> > >>> Illegal instruction >> > >>> >> > >>> As you can see, these things are coming from the caltech_parser. I >> > >> am using >> > >>> our local version, but I don't think it is very different from what >> > >>> is in the >> > >>> CM3 tree. >> > >>> >> > >>> Examining the first error (the failed assertion) more closely, I see >> > >>> the following: >> > >>> >> > >>> (gdb) list >> > >>> 108 wr := FileWr.Open(Pathname.ReplaceExt(tp.out, "m3")); >> > >>> 109 EXCEPT OSError.E => >> > >>> 110 Debug.Error("Cannot open tok implementation output >> > >>> file: " & >> > >>> 111 Pathname.ReplaceExt(tp.out, "m3")); >> > >>> 112 END; >> > >>> 113 Wr.PutText(wr, subs.apply(Bundle.Get(Form, >> > >>> "tokform.m3"))); >> > >>> 114 Wr.Close(wr); >> > >>> 115 END Main. >> > >>> (gdb) where >> > >>> #0 0x9004308c in kill () >> > >>> #1 0x9009fb3c in abort () >> > >>> #2 0x00096f50 in RTOS__Crash () at RTOS.m3:20 >> > >>> #3 0x0005bd40 in RTProcess__Crash (M3_Bd56fi_msg=0x0) at >> > >>> RTProcess.m3:65 >> > >>> #4 0x0008e4e0 in RTError__EndError (M3_AicXUJ_crash=1 '\001') at >> > >>> RTError.m3:115 >> > >>> #5 0x0008e08c in RTError__MsgS (M3_AJWxb1_file=0xc63d8, >> > >>> M3_AcxOUs_line=2314, M3_Bd56fi_msgA=0xca3d0, >> > >>> M3_Bd56fi_msgB=0xcbe90, M3_Bd56fi_msgC=0xca3d0) at RTError.m3:40 >> > >>> #6 0x0008eb88 in RTException__Crash (M3_Cblw37_a=0xbfffee00, >> > >>> M3_AicXUJ_raises=0 '\0', M3_AJWxb1_rte=0xcb538) at RTException.m3:79 >> > >>> #7 0x0008e74c in RTException__DefaultBackstop >> > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at >> > >>> RTException.m3:39 >> > >>> #8 0x0008e614 in RTException__InvokeBackstop >> > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at >> > >>> RTException.m3:25 >> > >>> #9 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at >> > >>> RTExFrame.m3:29 >> > >>> #10 0x0008e840 in RTException__DefaultBackstop >> > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at >> > >>> RTException.m3:47 >> > >>> #11 0x0008e614 in RTException__InvokeBackstop >> > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at >> > >>> RTException.m3:25 >> > >>> #12 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at >> > >>> RTExFrame.m3:29 >> > >>> #13 0x00079740 in RTHooks__ReportFault (M3_AJWxb1_module=0xb3eb8, >> > >>> M3_AcxOUs_info=74048) at RTHooks.m3:110 >> > >>> #14 0x0006ff4c in _m3_fault (M3_AcxOUs_arg=74048) >> > >>> #15 0x0006bcf4 in RTHooks__CheckStoreTraced >> > >>> (M3_Af40ku_ref=0xb2415c) at RTCollector.m3:2314 >> > >>> #16 0x000700e4 in ThreadPThread__InnerLockMutex >> > >>> (M3_AYIbX3_m=0xb2415c, M3_BXP32l_self=0xb24014) at >> > >>> ThreadPThread.m3:126 >> > >>> #17 0x000704d8 in ThreadPThread__LockMutex (M3_AYIbX3_m=0xb2415c) >> > >>> at ThreadPThread.m3:153 >> > >>> #18 0x00019b24 in Wr__PutText (M3_BxxOH1_wr=0xb2415c, >> > >>> M3_Bd56fi_t=0xb44d5c) at Wr.m3:93 >> > >>> #19 0x00003f74 in Main_M3 (M3_AcxOUs_mode=1) at Main.m3:113 >> > >>> #20 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at >> > >>> RTLinker.m3:399 >> > >>> #21 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at >> > >>> RTLinker.m3:113 >> > >>> #22 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at >> > >>> RTLinker.m3:122 >> > >>> #23 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38) >> > >>> at _m3main.mc:4 >> > >>> (gdb) >> > >>> >> > >>> The second error: >> > >>> >> > >>> Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/ >> > >>> operand. >> > >>> 0x00b111ac in ?? () >> > >>> (gdb) where >> > >>> #0 0x00b111ac in ?? () >> > >>> #1 0x0001214c in TextSubs__Apply (M3_CN69dV_self=0xb26450, >> > >>> M3_Bd56fi_src=0xb21cec) at TextSubs.m3:63 >> > >>> #2 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at >> > >>> RTLinker.m3:399 >> > >>> #3 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at >> > >>> RTLinker.m3:113 >> > >>> #4 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at >> > >>> RTLinker.m3:122 >> > >>> #5 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38) >> > >>> at _m3main.mc:4 >> > >>> (gdb) list >> > >>> 58 BEGIN >> > >>> 59 WHILE pos < textLen DO >> > >>> 60 c := Text.GetChar(src, pos); >> > >>> 61 IF c IN self.starts THEN >> > >>> 62 (* S("analysing: " & Text.Sub(src, pos), >> > >>> DebugLevel); *) >> > >>> 63 iter := self.tbl.iterateOrdered(); >> > >>> 64 ind := pos; >> > >>> 65 original := ""; >> > >>> 66 REPEAT >> > >>> 67 INC(ind); >> > >>> (gdb) >> > >>> >> > >>> Any ideas what to look at? >> > >>> >> > >>> I don't know if this is relevant: >> > >>> >> > >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% uname -a >> > >>> Darwin lapdog.local 7.9.0 Darwin Kernel Version 7.9.0: Wed Mar 30 >> > >>> 20:11:17 PST 2005; root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC Power >> > >>> Macintosh powerpc >> > >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% gcc -v >> > >>> Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs >> > >>> Thread model: posix >> > >>> gcc version 3.3 20030304 (Apple Computer, Inc. build 1666) >> > >>> >> > >>> Mika >> > >>> >> > >>> P.S. Am I correct in assuming that I can get CM3 to build on >> > >>> Windows? >> > >>> I could switch to CM3 on Unix any time, of course, but I've never >> > >>> had luck with it on Windows, which is why I am using the ancient >> > >>> Klagenfurt PM3, which comes on 40-odd "floppies" and a .EXE that >> > >>> unpacks them into C: (and installation instructions only in German). >> > >>> If CM3 doesn't work on Windows, I am essentially wasting my time, >> > >>> as the current project I am working on absolutely requires that the >> > >>> software run on Windows 2003 Server (yes, it sucks, but what can >> > >>> you do?) The very old PM3 at least kind of hobbles along on this >> > >>> platform---actually, better than that; it does Trestle natively >> > >>> under Windows (no X required), at least on SOME Windows machines. >> > >>> >> > >>> P.P.S. Sorry for all the postscripts, but is it true that the >> > >>> build system has been changed so that building with overrides >> > >>> (cm3 -x) >> > >>> requires having the compiler sources available? It didn't use to >> > >>> be that way, but I can't get Network Objects to work with overrides >> > >>> now unless I have the sources available... It's a bit of a pain >> > >>> because it means that every user has to have the compiler sources, >> > >>> or else ship everything, or was that not the intention? > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Jan 9 00:50:38 2011 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Sat, 8 Jan 2011 18:50:38 -0500 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: <20110108181715.77FF61A205B@async.async.caltech.edu> References: <20101227101653.307241A205B@async.async.caltech.edu> <20101227185453.97CE51A205B@async.async.caltech.edu> <20110108121441.A58031A205B@async.async.caltech.edu> <20110108134735.B7D4C1A205B@async.async.caltech.edu> <20110108161001.DC4871A205B@async.async.caltech.edu> <20110108181715.77FF61A205B@async.async.caltech.edu> Message-ID: Yes. When upgrade.py fails, you may or may not be in a bad state. I can see about making it safer. There are unavoidable depenedencies among cm3, cm3cg, and m3core, and maybe libm3. Starting point is a working cm3, and its cm3cg, and its config files, and m3core, and possible its libm3. I think maybe I should write a feature in upgrade.py that can start from scratch -- download old install archive or start from a specified local copy thereof. Interest? I might use it myself. I think upgrade should also have option to build all. - Jay On Jan 8, 2011, at 1:17 PM, Mika Nystrom wrote: > Do I need to go back to the release and install that, and then upgrade.py? > As far as I know my compiler was working fine... > > Jay K writes: >> --_1def5bc1-96d7-442f-bd33-2522abadf97d_ >> Content-Type: text/plain; charset="iso-8859-1" >> Content-Transfer-Encoding: quoted-printable >> >> Tony's instructions imho are too much work=2C error-prone. Upgrade.py does = >> rebuild cm3cg. Don't do it manually=2C as you have to be careful when you s= >> witch from old to new=2C and upgrade.py knows. There was a problem regardin= >> g m3bundle=2C fairly recently. So try head. Not a few weeks ago. The script= >> s specifically had a problem. >> >> Jay/phone >> >>> To: jay.krell at cornell.edu >>> Subject: Re: [M3devel] another Snow Leopard compiler crash=20 >>> Date: Sat=2C 8 Jan 2011 08:10:01 -0800 >>> From: mika at async.caltech.edu >>> =20 >>> Jay K writes: >>>> --_8699851d-dc9a-486c-965d-eaed43f71a51_ >>>> Content-Type: text/plain=3B charset=3D"iso-8859-1" >>>> Content-Transfer-Encoding: quoted-printable >>>> >>>> It no longer builds m3bundle I think. There was a problem regarding m3b= >> und=3D >>>> le for a while=3D2C because I had followed upgrade.sh too closely=3D2C w= >> hich ha=3D >>>> d this problem. And this is a sign of using old cm3cg. Are you sure you = >> did=3D >>>> n't do something weird? Uograde.py does upgrade cm3cg appropriately. Try= >> he=3D >>>> ad? >>>> >>> =20 >>> I'm not sure I didn't do anything weird. I have a CM3 distribution that >>> was release=2C then I upgraded it to head as of three weeks ago using >>> the procedure Tony described to me a few years ago. I've been using >>> that with no special problems since then. I then updated to the CVS head >>> and ran "python upgrade.py". It does not rebuild cm3cg=2C but I can do i= >> t >>> manually and try again. >>> =20 >>> Mika >> = >> >> --_1def5bc1-96d7-442f-bd33-2522abadf97d_ >> Content-Type: text/html; charset="iso-8859-1" >> Content-Transfer-Encoding: quoted-printable >> >> >> >> >> >> Tony's instructions imho are too much work=2C err= >> or-prone. Upgrade.py does rebuild cm3cg. Don't do it manually=2C as you hav= >> e to be careful when you switch from old to new=2C and upgrade.py knows. Th= >> ere was a problem regarding m3bundle=2C fairly recently. So try head. Not a= >> few weeks ago. The scripts specifically had a problem.

Jay/phone> r>
> To:=3B jay.krell@=3Bcornell.edu
> Subject:=3B Re:=3B= >> [=3BM3devel]=3B another Snow Leopard compiler crash
> Date:= >> =3B Sat=2C 8 Jan 2011 08:=3B10:=3B01 -0800
> From:=3B mika@= >> =3Basync.caltech.edu
>
> Jay K writes:=3B
> >=3B--_8699851d= >> -dc9a-486c-965d-eaed43f71a51_
> >=3BContent-Type:=3B text/plain= >> 9=3B charset==3B"=3Biso-8859-1"=3B
> >=3BContent-Transfer-En= >> coding:=3B quoted-printable
> >=3B
> >=3B It no longer build= >> s m3bundle I think. There was a problem regarding m3bund==3B
> >= >> =3Ble for a while==3B2C because I had followed upgrade.sh too closely= >> 1=3B2C which ha==3B
> >=3Bd this problem. And this is a sign of us= >> ing old cm3cg. Are you sure you did==3B
> >=3Bn'=3Bt do somethi= >> ng weird?=3B Uograde.py does upgrade cm3cg appropriately. Try he==3B<= >> br>> >=3Bad?=3B
> >=3B
>
> I'=3Bm not sure I didn'= >> =3Bt do anything weird. I have a CM3 distribution that
> was release=2C= >> then I upgraded it to head as of three weeks ago using
> the procedure = >> Tony described to me a few years ago. I'=3Bve been using
> that with= >> no special problems since then. I then updated to the CVS head
> and r= >> an "=3Bpython upgrade.py"=3B. It does not rebuild cm3cg=2C but I can= >> do it
> manually and try again.
>
> Mika
>> <= >> /body> >> = >> >> --_1def5bc1-96d7-442f-bd33-2522abadf97d_-- From jay.krell at cornell.edu Sun Jan 9 01:14:31 2011 From: jay.krell at cornell.edu (Jay K) Date: Sun, 9 Jan 2011 00:14:31 +0000 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: References: <20101227101653.307241A205B@async.async.caltech.edu>, , <20101227185453.97CE51A205B@async.async.caltech.edu>, , , <20110108121441.A58031A205B@async.async.caltech.edu>, , <20110108134735.B7D4C1A205B@async.async.caltech.edu>, , <20110108161001.DC4871A205B@async.async.caltech.edu>, , <20110108181715.77FF61A205B@async.async.caltech.edu>, Message-ID: That is about good enough -- your compiler is upgraded, a few things are out of date and will crash. I'm a bit surprised you hit this. I updated postgres95 to avoid it..but maybe that is masking a problem. I updated upgrade.py to install a more conventional config file instead of what it used to do. What it used to do is delegate back to cvs/m3-sys/cminstall/src/config-no-install. Which is great if you are editing the files and want just one copy, would have saved me a lot of time in the past, but maybe is too nichey. Now it installs what a distribution would include -- no dependency on cvs tree. ?- Jay ---------------------------------------- > From: jay.krell at cornell.edu > Date: Sat, 8 Jan 2011 18:50:38 -0500 > To: mika at async.caltech.edu > CC: m3devel at elegosoft.com; jay.krell at cornell.edu > Subject: Re: [M3devel] another Snow Leopard compiler crash > > Yes. When upgrade.py fails, you may or may not be in a bad state. I can see about making it safer. There are unavoidable depenedencies among cm3, cm3cg, and m3core, and maybe libm3. > > Starting point is a working cm3, and its cm3cg, and its config files, and m3core, and possible its libm3. > > I think maybe I should write a feature in upgrade.py that can start from scratch -- download old install archive or start from a specified local copy thereof. Interest? I might use it myself. I think upgrade should also have option to build all. > > - Jay > > On Jan 8, 2011, at 1:17 PM, Mika Nystrom wrote: > > > Do I need to go back to the release and install that, and then upgrade.py? > > As far as I know my compiler was working fine... > > > > Jay K writes: > >> --_1def5bc1-96d7-442f-bd33-2522abadf97d_ > >> Content-Type: text/plain; charset="iso-8859-1" > >> Content-Transfer-Encoding: quoted-printable > >> > >> Tony's instructions imho are too much work=2C error-prone. Upgrade.py does = > >> rebuild cm3cg. Don't do it manually=2C as you have to be careful when you s= > >> witch from old to new=2C and upgrade.py knows. There was a problem regardin= > >> g m3bundle=2C fairly recently. So try head. Not a few weeks ago. The script= > >> s specifically had a problem. > >> > >> Jay/phone > >> > >>> To: jay.krell at cornell.edu > >>> Subject: Re: [M3devel] another Snow Leopard compiler crash=20 > >>> Date: Sat=2C 8 Jan 2011 08:10:01 -0800 > >>> From: mika at async.caltech.edu > >>> =20 > >>> Jay K writes: > >>>> --_8699851d-dc9a-486c-965d-eaed43f71a51_ > >>>> Content-Type: text/plain=3B charset=3D"iso-8859-1" > >>>> Content-Transfer-Encoding: quoted-printable > >>>> > >>>> It no longer builds m3bundle I think. There was a problem regarding m3b= > >> und=3D > >>>> le for a while=3D2C because I had followed upgrade.sh too closely=3D2C w= > >> hich ha=3D > >>>> d this problem. And this is a sign of using old cm3cg. Are you sure you = > >> did=3D > >>>> n't do something weird? Uograde.py does upgrade cm3cg appropriately. Try= > >> he=3D > >>>> ad? > >>>> > >>> =20 > >>> I'm not sure I didn't do anything weird. I have a CM3 distribution that > >>> was release=2C then I upgraded it to head as of three weeks ago using > >>> the procedure Tony described to me a few years ago. I've been using > >>> that with no special problems since then. I then updated to the CVS head > >>> and ran "python upgrade.py". It does not rebuild cm3cg=2C but I can do i= > >> t > >>> manually and try again. > >>> =20 > >>> Mika > >> = > >> > >> --_1def5bc1-96d7-442f-bd33-2522abadf97d_ > >> Content-Type: text/html; charset="iso-8859-1" > >> Content-Transfer-Encoding: quoted-printable > >> > >> > >> > >> > >> > >> Tony's instructions imho are too much work=2C err= > >> or-prone. Upgrade.py does rebuild cm3cg. Don't do it manually=2C as you hav= > >> e to be careful when you switch from old to new=2C and upgrade.py knows. Th= > >> ere was a problem regarding m3bundle=2C fairly recently. So try head. Not a= > >> few weeks ago. The scripts specifically had a problem. Jay/phone > >> r> > To:=3B jay.krell@=3Bcornell.edu > Subject:=3B Re:=3B= > >> [=3BM3devel]=3B another Snow Leopard compiler crash > Date:= > >> =3B Sat=2C 8 Jan 2011 08:=3B10:=3B01 -0800 > From:=3B mika@= > >> =3Basync.caltech.edu > > Jay K writes:=3B > >=3B--_8699851d= > >> -dc9a-486c-965d-eaed43f71a51_ > >=3BContent-Type:=3B text/plain= > >> 9=3B charset==3B"=3Biso-8859-1"=3B > >=3BContent-Transfer-En= > >> coding:=3B quoted-printable > >=3B > >=3B It no longer build= > >> s m3bundle I think. There was a problem regarding m3bund==3B > >= > >> =3Ble for a while==3B2C because I had followed upgrade.sh too closely= > >> 1=3B2C which ha==3B > >=3Bd this problem. And this is a sign of us= > >> ing old cm3cg. Are you sure you did==3B > >=3Bn'=3Bt do somethi= > >> ng weird?=3B Uograde.py does upgrade cm3cg appropriately. Try he==3B<= > >> br>> >=3Bad?=3B > >=3B > > I'=3Bm not sure I didn'= > >> =3Bt do anything weird. I have a CM3 distribution that > was release=2C= > >> then I upgraded it to head as of three weeks ago using > the procedure = > >> Tony described to me a few years ago. I'=3Bve been using > that with= > >> no special problems since then. I then updated to the CVS head > and r= > >> an "=3Bpython upgrade.py"=3B. It does not rebuild cm3cg=2C but I can= > >> do it > manually and try again. > > Mika > >> <= > >> /body> > >> = > >> > >> --_1def5bc1-96d7-442f-bd33-2522abadf97d_-- From hosking at cs.purdue.edu Sun Jan 9 01:29:10 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 8 Jan 2011 19:29:10 -0500 Subject: [M3devel] FW: LONGINT subrange problems In-Reply-To: References: <20110108081522.7A4C12474003@birch.elegosoft.com>, Message-ID: <9834E1DB-D87B-4263-BF04-4E6140B5D3AD@cs.purdue.edu> Yes, I'll take a look. On Jan 8, 2011, at 9:56 AM, Jay K wrote: > Tony any chance you can look at this? Or advise me where to fix? Notice the mismatches go both ways. This is on Darwin/i386 for me. Probably occurs on all 32bit targets & no 64bit targets. > > - Jay/phone > > > From: jay.krell at cornell.edu > > To: m3devel at elegosoft.com > > Date: Sat, 8 Jan 2011 08:19:06 +0000 > > Subject: [M3devel] FW: LONGINT subrange problems > > > > > > This is all based on Mika's work. > > > > > > MODULE Main; > > > > PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; > > > > PROCEDURE F2() = > > <*UNUSED*>VAR x: [0L..0L]; > > BEGIN > > END F2; > > > > PROCEDURE F3() = > > VAR x: [0L..0L]; > > BEGIN > > F1(x); > > END F3; > > > > BEGIN > > F1(0L); > > F2(); > > F3(); > > END Main. > > > > > > (20) declare_procedure name:Main__F1 n_params:1 lev:0 exported:false procedure:0x0 procedure:0x4 > > > > (22) declare_procedure name:Main__F2 n_params:0 lev:0 exported:false procedure:0x0 procedure:0x5 > > > > (24) declare_procedure name:Main__F3 n_params:0 lev:0 exported:false procedure:0x0 procedure:0x6 > > > > > > > > (33) begin_procedure procedure:0x5 > > (34) set_source_line 6 > > (35) load_integer type:int_64 0 > > (36) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int32 ] got [ Int64 ] > > (37) store var:0x5 offset:0 src_t:int_32 dst_t:word_8 > > (38) set_source_line 8 > > (39) exit_proc type:void > > (40) end_procedure procedure:0x5 > > (41) comment comment:F3 > > (42) set_source_line 0xA(10) > > > > (43) begin_procedure procedure:0x6 > > (44) set_source_line 0xB(11) > > (45) load_integer type:int_64 0 > > (46) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int32 ] got [ Int64 ] > > (47) store var:0x6 offset:0 src_t:int_32 dst_t:word_8 > > (48) set_source_line 0xD(13) > > > > (49) start_call_direct procedure:0x4 level:0 > > (50) load var:0x6 offset:0 src_t:word_8 dst_t:int_32 > > (51) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] > > (52) pop_param type:int_64 > > (53) call_direct procedure:0x4 > > (54) set_source_line 0xE(14) > > (55) exit_proc type:void > > (56) end_procedure procedure:0x6 > > (57) comment comment:Main_M3 > > (58) comment comment:module main body Main_M3 > > (59) set_source_line 0x10(16) > > > > > > > > > > > > > > > > ---------------------------------------- > > > Date: Sat, 8 Jan 2011 09:15:22 +0000 > > > To: m3commit at elegosoft.com > > > From: jkrell at elego.de > > > Subject: [M3commit] CVS Update: cm3 > > > > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 11/01/08 09:15:21 > > > > > > Modified files: > > > cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > > > > > > Log message: > > > more LONGINT subrange problems, this now has 3 internal codegen errors, > > > due to stack type and expected type mismatches > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.caltech.edu Sun Jan 9 02:43:55 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Sat, 08 Jan 2011 17:43:55 -0800 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: <0A37C595-C896-4B66-9EDF-61BB30645321@cs.purdue.edu> Message-ID: <20110109014355.0A01F1A205B@async.async.caltech.edu> Well I spent the whole day figuring out how to update the compiler.. finally got everything working and I think this is with the very latest version (Jay just committed something two hours ago and it's in here). Or... wait.. did he go back a version and re-introduce the deadlock? That would explain why it's behaving the same way as it was before... Mika Thread 68 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 #5 0x97137217 in _cthread_fork_prepare () #6 0x97137155 in fork () #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixCommon.m3:75 #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #13 0x9713885d in _pthread_start () #14 0x971386e2 in thread_start () Thread 67 (process 32362): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003beb7e in ThreadInternal__Poll (fd=13, read=1, m3timeout=-1) at ../src/thread/Common/ThreadInternal.c:31 #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x2009550, fd=13, read=1 '\001', interval=-1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003c19a4 in SchedulerPosix__IOWait (fd=13, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 #4 0x0034f862 in FilePosix__IntermittentRead (h=0x24334f8, b=0xb1df4cd0, mayBlock=1 '\001') at ../src/os/POSIX/FilePosix.m3:220 #5 0x0035e935 in FileRd__Seek (rd=0x2433518, pos=0, dontBlock=0 '\0') at ../src/rw/FileRd.m3:83 #6 0x00356338 in Rd__DoSeek (rd=0x2433518) at ../src/rw/Rd.m3:54 #7 0x003560c1 in UnsafeRd__FastGetChar (rd=0x2433518) at ../src/rw/Rd.m3:43 #8 0x00356018 in Rd__GetChar (rd=0x2433518) at ../src/rw/Rd.m3:34 #9 0x00316fbc in ProcUtils__SSApply (self=0x242f128) at ../src/ProcUtils.m3:54 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009550) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009550) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 66 (process 32362): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003beb7e in ThreadInternal__Poll (fd=11, read=1, m3timeout=-1) at ../src/thread/Common/ThreadInternal.c:31 #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x20094a0, fd=11, read=1 '\001', interval=-1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003c19a4 in SchedulerPosix__IOWait (fd=11, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 #4 0x0034f862 in FilePosix__IntermittentRead (h=0x239f994, b=0xb1d72cd0, mayBlock=1 '\001') at ../src/os/POSIX/FilePosix.m3:220 #5 0x0035e935 in FileRd__Seek (rd=0x239f9b4, pos=0, dontBlock=0 '\0') at ../src/rw/FileRd.m3:83 #6 0x00356338 in Rd__DoSeek (rd=0x239f9b4) at ../src/rw/Rd.m3:54 #7 0x003560c1 in UnsafeRd__FastGetChar (rd=0x239f9b4) at ../src/rw/Rd.m3:43 #8 0x00356018 in Rd__GetChar (rd=0x239f9b4) at ../src/rw/Rd.m3:34 #9 0x00316fbc in ProcUtils__SSApply (self=0x242f0f0) at ../src/ProcUtils.m3:54 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x20094a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20094a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 65 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #33 0x9713885d in _pthread_start () #34 0x971386e2 in thread_start () Thread 64 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #28 0x9713885d in _pthread_start () #29 0x971386e2 in thread_start () Thread 60 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 59 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #19 0x9713885d in _pthread_start () #20 0x971386e2 in thread_start () Thread 54 (process 32362): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003beb7e in ThreadInternal__Poll (fd=10, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:31 #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x161dfc0, fd=10, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=10, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 #4 0x00346693 in TCP__GetBytesFD (t=0x22211d8, arr=0x22f400c, timeout=-1) at ../src/POSIX/TCP.m3:326 #5 0x00348786 in ConnRW__RdSeek (rd=0x2221260, pos=267, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 #6 0x003591ce in Rd__GetLine (rd=0x2221260) at ../src/rw/Rd.m3:426 #7 0x002b2826 in TWSTester__RApply (cl=0x2221290) at ../src/TWSTester.m3:382 #8 0x003c0ea5 in ThreadPThread__RunThread (me=0x161dfc0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #9 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161dfc0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #10 0x9713885d in _pthread_start () #11 0x971386e2 in thread_start () Thread 53 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161deb0, mutex=0x161e1c0, m3timeout=1294411605.506855) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x161e160, n=0.5, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=0.5) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x00297efc in PMTWS__TSCApply (cl=0x2221088) at ../src/PMTWS.m3:229 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e160) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e160) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 52 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #14 0x9713885d in _pthread_start () #15 0x971386e2 in thread_start () Thread 51 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #14 0x9713885d in _pthread_start () #15 0x971386e2 in thread_start () Thread 50 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2005ac0, mutex=0x20059b0, m3timeout=1294411629.006319) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x2005a60, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000e162d in DBTable_gcoms_aux_ordrMonitor__ApplyC (cl=0x229a528) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2005a60) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2005a60) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 49 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2005a40, mutex=0x20058e0, m3timeout=1294411606.0014169) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x20059e0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000e357e in DBTable_gcoms_aux_ordrMonitor__CleanerApply (cl=0x229a720) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x20059e0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20059e0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 48 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161de60, mutex=0x161aa50, m3timeout=1294411629.003248) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x161aae0, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000d2f00 in DBTable_gcoms_fillMonitor__ApplyC (cl=0x229a258) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161aae0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161aae0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 47 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161ac10, mutex=0x1625c10, m3timeout=1294411605.9982891) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x161aa80, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000d50b3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=0x229a450) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161aa80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161aa80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 46 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2004440, mutex=0x2004410, m3timeout=1294411678.997467) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x20043b0, n=100, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=100) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000da48e in DBTable_gcoms_aux_instrumentMonitor__ApplyC (cl=0x1711268) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x20043b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20043b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 45 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x20038d0, mutex=0x2004380, m3timeout=1294411605.9944479) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x2004320, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000dc415 in DBTable_gcoms_aux_instrumentMonitor__CleanerApply (cl=0x1711460) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2004320) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2004320) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 44 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x20071d0, mutex=0x20070e0, m3timeout=1294411678.9916439) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x2007170, n=100, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=100) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x224daf0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007170) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007170) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 43 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x20046e0, mutex=0x2006f50, m3timeout=1294411605.83337) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x2007110, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x224dce8) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007110) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007110) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 42 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161d830, mutex=0x161d780, m3timeout=1294411678.981461) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x161dae0, n=100, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=100) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x224d768) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161dae0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161dae0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 41 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161d7e0, mutex=0x161da50, m3timeout=1294411605.8302381) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x161da80, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x224d960) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161da80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161da80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 40 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161d940, mutex=0x161d910, m3timeout=1294411678.8294799) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x161d8b0, n=100, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=100) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000c4b88 in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=0x224d348) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161d8b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161d8b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 39 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x16262c0, mutex=0x161d750, m3timeout=1294411605.8264539) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x161d850, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000c6a9a in DBTable_gcoms_ordr_statusMonitor__CleanerApply (cl=0x224d540) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161d850) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161d850) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 38 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2003bc0, mutex=0x2003cd0, m3timeout=1294411628.744529) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x2003c70, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000b4d70 in DBTable_gcoms_strategyMonitor__ApplyC (cl=0x228c348) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2003c70) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2003c70) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 37 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2003ba0, mutex=0x2003be0, m3timeout=1294411605.7216971) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x2003c10, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000b6cc1 in DBTable_gcoms_strategyMonitor__CleanerApply (cl=0x228c538) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2003c10) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2003c10) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 36 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x16256b0, mutex=0x16255a0, m3timeout=1294411628.815861) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x1625650, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x228c080) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x1625650) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1625650) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 35 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x1625630, mutex=0x1625570, m3timeout=1294411605.7159209) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x16255d0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x228c270) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x16255d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x16255d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 34 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2003a30, mutex=0x20031e0, m3timeout=1294411628.7167931) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x20039d0, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000d2f00 in DBTable_gcoms_fillMonitor__ApplyC (cl=0x2255d40) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x20039d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20039d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 33 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x20034c0, mutex=0x20038a0, m3timeout=1294411605.7081449) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x2003970, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000d50b3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=0x2255f30) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2003970) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2003970) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 32 (process 32362): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003beb7e in ThreadInternal__Poll (fd=9, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:31 #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x2003780, fd=9, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=9, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 #4 0x00346693 in TCP__GetBytesFD (t=0x227c15c, arr=0x227600c, timeout=-1) at ../src/POSIX/TCP.m3:326 #5 0x00348786 in ConnRW__RdSeek (rd=0x227a010, pos=0, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 #6 0x003591ce in Rd__GetLine (rd=0x227a010) at ../src/rw/Rd.m3:426 #7 0x002678d9 in UpdateMonitor__InApplyP (cl=0x227a040) at ../src/UpdateMonitor.m3:240 #8 0x003c0ea5 in ThreadPThread__RunThread (me=0x2003780) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #9 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2003780) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #10 0x9713885d in _pthread_start () #11 0x971386e2 in thread_start () Thread 31 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2003420, j=0x2003720) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x20036c0, m=0x227c220, c=0x227c22c, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x227c220, c=0x227c22c) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002674cc in UpdateMonitor__OutApplyP (p=0x227c17c) at ../src/UpdateMonitor.m3:178 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x20036c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20036c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 30 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x161a290, j=0x1625020) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x1624fc0, m=0x2255ac0, c=0x2255af4, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x2255ac0, c=0x2255af4) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x0026a003 in DesynchronizedDB__PApply (p=0x2255b04) at ../src/DesynchronizedDB.m3:216 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x1624fc0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1624fc0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 29 (process 32362): #0 0x9716c1d6 in __wait4 () #1 0x9716c1c9 in waitpid$UNIX2003 () #2 0x003c50d5 in Uexec__waitpid (i=32392, j=0xb0e36b7c, k=0) at ../src/unix/Common/Uexec.c:66 #3 0x003c1d31 in SchedulerPosix__WaitProcess (pid=32392, status=0xb0e36b7c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 #4 0x003536dc in Process__Wait (p=0x22585fc) at ../src/os/POSIX/ProcessPosixCommon.m3:275 #5 0x003163ad in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:185 #6 0x00316d6e in ProcUtils__Apply (self=0x2256284) at ../src/ProcUtils.m3:274 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x16251a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x16251a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 28 (process 32362): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003beb7e in ThreadInternal__Poll (fd=8, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:31 #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x20030c0, fd=8, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=8, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 #4 0x00346693 in TCP__GetBytesFD (t=0x22562c4, arr=0x225e00c, timeout=-1) at ../src/POSIX/TCP.m3:326 #5 0x00348786 in ConnRW__RdSeek (rd=0x2256318, pos=0, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 #6 0x00356338 in Rd__DoSeek (rd=0x2256318) at ../src/rw/Rd.m3:54 #7 0x003560c1 in UnsafeRd__FastGetChar (rd=0x2256318) at ../src/rw/Rd.m3:43 #8 0x00356018 in Rd__GetChar (rd=0x2256318) at ../src/rw/Rd.m3:34 #9 0x002c62c5 in ReadLine__ReadALine (t=0x225600c) at ../src/ReadLine.m3:151 #10 0x002c877e in ReadLine__ReadLine (t=0x225600c) at ../src/ReadLine.m3:411 #11 0x0023b1fb in SchemeReadLine__GetCh (p=0x2256348) at ../src/SchemeReadLine.m3:80 #12 0x0025f4b3 in SchemeInputPort__NextToken (t=0x2256348, wx=0x22563cc) at ../src/SchemeInputPort.m3:309 #13 0x0025eb94 in SchemeInputPort__Read (t=0x2256348) at ../src/SchemeInputPort.m3:177 #14 0x0023ba70 in SchemeReadLine__MainLoop (rl=0x225600c, scm=0x22340d0) at ../src/SchemeReadLine.m3:146 #15 0x00006c23 in Main__SCApply (c=0x2255620) at ../src/Main.m3:92 #16 0x003c0ea5 in ThreadPThread__RunThread (me=0x20030c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #17 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20030c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #18 0x9713885d in _pthread_start () #19 0x971386e2 in thread_start () Thread 27 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 26 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20011c0, j=0x2001e10) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2001db0, m=0x1738078, c=0x17380a8, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1738078, c=0x17380a8) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x0009e3d6 in GCOMSOrderStatus__Apply (cl=0x17380b8) at ../src/GCOMSOrderStatus.m3:166 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001db0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001db0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 25 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x1619840, j=0x1619920) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x161a170, m=0x15aab74, c=0x15aab80, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x15aab74, c=0x15aab80) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x000a4482 in GCOMSBusyOrders__Apply (cl=0x15aab90) at ../src/GCOMSBusyOrders.m3:63 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a170) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a170) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 24 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20011a0, j=0x2001170) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2001110, m=0x173e044, c=0x173e050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x173e044, c=0x173e050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0bace84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0bace84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x1594280) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15943b0) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001110) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001110) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 23 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20010f0, j=0x20010c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2001060, m=0x1724034, c=0x1724040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1724034, c=0x1724040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0b2ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0b2ae84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15940f0) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1594220) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001060) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001060) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 22 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2001040, j=0x2001010) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000fb0, m=0x1722034, c=0x1722040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1722034, c=0x1722040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0aa8e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0aa8e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15adb40) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad7cc) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000fb0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000fb0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 21 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000f90, j=0x2000f60) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000f00, m=0x1720034, c=0x1720040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1720034, c=0x1720040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0a26e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0a26e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15adae0) at ../src/SX.m3:151 #9 0x0016017c in CurrencySXProxy__Apply (cl=0x15ad7b0) at ../I386_DARWIN/CurrencySXProxy.m3 => /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000f00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000f00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 20 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000ee0, j=0x2000eb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000e50, m=0x173c044, c=0x173c050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x173c044, c=0x173c050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb09a4e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb09a4e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad450) at ../src/SX.m3:151 #9 0x002d3613 in BoolSXProxy__Apply (cl=0x15ad794) at ../I386_DARWIN/BoolSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000e50) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000e50) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 19 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000e30, j=0x2000e00) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000da0, m=0x171e034, c=0x171e040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x171e034, c=0x171e040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0922e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0922e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad3e8) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad778) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000da0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000da0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 18 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000d80, j=0x2000d50) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000cf0, m=0x1740044, c=0x1740050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1740044, c=0x1740050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb08a0e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb08a0e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad380) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad75c) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000cf0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000cf0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 17 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000cd0, j=0x2000ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000c40, m=0x1704044, c=0x1704050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1704044, c=0x1704050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb081ee84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb081ee84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad318) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad740) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000c40) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000c40) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 16 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000c20, j=0x2000bf0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000b90, m=0x1702044, c=0x1702050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1702044, c=0x1702050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb079ce84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb079ce84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad2b0) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad724) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000b90) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000b90) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 15 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000b70, j=0x2000b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000ae0, m=0x173a044, c=0x173a050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x173a044, c=0x173a050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb071ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb071ae84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad248) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad708) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000ae0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000ae0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 14 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000ac0, j=0x2000a90) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000a30, m=0x171a034, c=0x171a040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x171a034, c=0x171a040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0698e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0698e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad1e0) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad6ec) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000a30) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000a30) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 13 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000a10, j=0x20009e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000980, m=0x1718034, c=0x1718040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1718034, c=0x1718040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0616e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0616e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad618) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad6d0) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000980) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000980) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 12 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000960, j=0x2000930) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x20008d0, m=0x1716034, c=0x1716040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1716034, c=0x1716040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0594e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0594e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad5b0) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad6b4) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x20008d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20008d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 11 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20008b0, j=0x2000880) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000820, m=0x1714034, c=0x1714040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1714034, c=0x1714040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0512e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0512e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad548) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad698) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000820) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000820) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 10 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000800, j=0x20007d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000770, m=0x1712034, c=0x1712040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1712034, c=0x1712040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0490e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0490e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15acea8) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad67c) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000770) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000770) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 9 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000750, j=0x2000720) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x20006c0, m=0x15b6034, c=0x15b6040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x15b6034, c=0x15b6040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb040ee84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb040ee84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591ea8) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1591fd8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x20006c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20006c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 8 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20006a0, j=0x2000670) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000610, m=0x15b4034, c=0x15b4040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x15b4034, c=0x15b4040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb038ce84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb038ce84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591bf8) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1591d28) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000610) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000610) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 7 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20005f0, j=0x20005c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000560, m=0x15b2034, c=0x15b2040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x15b2034, c=0x15b2040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb030ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb030ae84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591a70) at ../src/SX.m3:151 #9 0x0016017c in CurrencySXProxy__Apply (cl=0x1591b98) at ../I386_DARWIN/CurrencySXProxy.m3 => /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 6 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000540, j=0x2000510) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x20004b0, m=0x171c0c0, c=0x171c0cc, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x171c0c0, c=0x171c0cc) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0288e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0288e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591808) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1591938) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x20004b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20004b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 5 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000490, j=0x2000460) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000400, m=0x15b0034, c=0x15b0040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x15b0034, c=0x15b0040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0206e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0206e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591678) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15917a8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000400) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000400) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 4 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20003e0, j=0x20003b0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000350, m=0x15ae034, c=0x15ae040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x15ae034, c=0x15ae040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0184e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0184e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15914e8) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1591618) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000350) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000350) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 3 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000150, j=0x20002c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000260, m=0x159123c, c=0x159122c, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x159123c, c=0x159122c) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002ce79c in VarProxyDefs__NotifyApply (cl=0x1591248) at ../src/VarProxyDefs.m3:55 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000260) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000260) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 2 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #13 0x9713885d in _pthread_start () #14 0x971386e2 in thread_start () Thread 1 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x16076f0, j=0x16076c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x1607660, m=0x15ac4b0, c=0x242f190, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003c1499 in ThreadPThread__XJoin (self=0x1607660, t=0x242f174, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:513 #6 0x003c15ae in Thread__Join (t=0x242f174) at ../src/thread/PTHREAD/ThreadPThread.m3:525 #7 0x003158c9 in ProcUtils__Wait (c=0x242f0d4) at ../src/ProcUtils.m3:318 #8 0x0024618a in SchemeCommandRunner__RealRunTimeoutCommandApply (proc=0x1738cc4, interp=0x2367eac, args=0x239bd88) at ../src/SchemeCommandRunner.m3:164 #9 0x00245e07 in SchemeCommandRunner__RunTimeoutCommandApply (proc=0x1738cc4, interp=0x2367eac, args=0x239bd88) at ../src/SchemeCommandRunner.m3:129 #10 0x00245405 in SchemeCommandRunner__RunCommandApply (proc=0x1738cc4, interp=0x2367eac, args=0x239bd70) at ../src/SchemeCommandRunner.m3:23 #11 0x0025c183 in SchemePrimitive__EDApply (ed=0x1738340, t=0x236b540, interp=0x2367eac, args=0x239bd70) at ../src/SchemePrimitive.m3:207 #12 0x00256d12 in SchemePrimitive__Prims (t=0x236b540, interp=0x2367eac, args=0x239bd70, x=0x239a328, y=0x239bd5c, free=0xbfffe82f) at ../src/SchemePrimitive.m3:580 #13 0x0025bb2b in SchemePrimitive__Apply2 (t=0x236b540, interp=0x2367eac, a1=0x239a328, a2=0x239bd5c) at ../src/SchemePrimitive.m3:549 #14 0x0024d640 in Scheme__EvalInternal (t=0x2367eac, x=0x239a288, env=0x239bce0) at ../src/Scheme.m3:585 #15 0x0024d3a8 in Scheme__EvalInternal (t=0x2367eac, x=0x239a1d8, env=0x239bce0) at ../src/Scheme.m3:582 #16 0x0024d82d in Scheme__Eval (t=0x2367eac, x=0x239b098, envP=0x2367ef4) at ../src/Scheme.m3:353 #17 0x0024b005 in Scheme__EvalInGlobalEnv (t=0x2367eac, x=0x239b098) at ../src/Scheme.m3:603 #18 0x0002aebc in SchemeCalculator__Calc (t=0x2367e9c, arr=0xbfffecdc) at ../src/SchemeCalculator.m3:61 #19 0x0000cbd3 in EuroDriver__Loop (t=0x224da38) at ../src/EuroDriver.m3:289 #20 0x00008820 in Main_M3 (mode=1) at ../src/Main.m3:268 #21 0x003b465a in RTLinker__RunMainBody (m=0x59e4c0) at ../src/runtime/common/RTLinker.m3:406 #22 0x003b3a8f in RTLinker__AddUnitI (m=0x59e4c0) at ../src/runtime/common/RTLinker.m3:113 #23 0x003b3b13 in RTLinker__AddUnit (b=0x6c5d) at ../src/runtime/common/RTLinker.m3:122 #24 0x000052ec in main (argc=19, argv=0xbffff1b4, envp=0xbffff204) at _m3main.c:16 Thread 75 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003ac2e3 in ThreadPThread__PThreadLockMutex (mutex=0x5d3ac0, line=1288, index=2) at ../src/thread/PTHREAD/ThreadPThread.m3:1262 #4 0x003ac409 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1288 #5 0x97137217 in _cthread_fork_prepare () #6 0x97137155 in fork () #7 0x0033bc4d in ProcessPosixCommon__Create_ForkExec (cmd=0x31e02ac, params=0x31e03c8, env=0x0, wd=0x53bf44, stdin=0x0, stdout=0x30e91cc, stderr=0x30ea700) at ../src/os/POSIX/ProcessPosixCommon.m3:75 #8 0x0033d137 in Process__Create (cmd=0x31e02ac, params=0x31e03c8, env=0x0, wd=0x53bf44, stdin=0x0, stdout=0x30e91cc, stderr=0x30ea700) at ../src/os/POSIX/ProcessPosix.m3:21 #9 0x002ffdbc in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 #10 0x003007c1 in ProcUtils__Apply (self=0x30eb88c) at ../src/ProcUtils.m3:274 #11 0x003a9c5b in ThreadPThread__RunThread (me=0x161dd00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #12 0x003a998a in ThreadPThread__ThreadBase (param=0x161dd00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #13 0x9713885d in _pthread_start () #14 0x971386e2 in thread_start () Thread 74 (process 67010): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003a7b74 in ThreadInternal__Poll (fd=13, read=1, m3timeout=-1) at ../src/thread/Common/ThreadInternal.c:57 #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x161dc50, fd=13, read=1 '\001', interval=-1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003aa6dc in SchedulerPosix__IOWait (fd=13, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 #4 0x00338b5f in FilePosix__IntermittentRead (h=0x30ea6f0, b=0xb1ef8cf0, mayBlock=1 '\001') at ../src/os/POSIX/FilePosix.m3:220 #5 0x00347c68 in FileRd__Seek (rd=0x30ea710, pos=0, dontBlock=0 '\0') at ../src/rw/FileRd.m3:83 #6 0x0033f64d in Rd__DoSeek (rd=0x30ea710) at ../src/rw/Rd.m3:54 #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=0x30ea710) at ../src/rw/Rd.m3:43 #8 0x0033f32d in Rd__GetChar (rd=0x30ea710) at ../src/rw/Rd.m3:34 #9 0x00300a0b in ProcUtils__SSApply (self=0x30eb854) at ../src/ProcUtils.m3:54 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161dc50) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161dc50) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 73 (process 67010): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003a7b74 in ThreadInternal__Poll (fd=11, read=1, m3timeout=-1) at ../src/thread/Common/ThreadInternal.c:57 #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x161dbc0, fd=11, read=1 '\001', interval=-1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003aa6dc in SchedulerPosix__IOWait (fd=11, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 #4 0x00338b5f in FilePosix__IntermittentRead (h=0x30e91bc, b=0xb1e76cf0, mayBlock=1 '\001') at ../src/os/POSIX/FilePosix.m3:220 #5 0x00347c68 in FileRd__Seek (rd=0x30e91dc, pos=0, dontBlock=0 '\0') at ../src/rw/FileRd.m3:83 #6 0x0033f64d in Rd__DoSeek (rd=0x30e91dc) at ../src/rw/Rd.m3:54 #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=0x30e91dc) at ../src/rw/Rd.m3:43 #8 0x0033f32d in Rd__GetChar (rd=0x30e91dc) at ../src/rw/Rd.m3:34 #9 0x00300a0b in ProcUtils__SSApply (self=0x30eb81c) at ../src/ProcUtils.m3:54 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161dbc0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161dbc0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 72 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7ebe in ThreadPThread__InitMutex (m=0x31339fc, root=0x31339f8, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003a7f82 in ThreadPThread__LockMutex (m=0x31339f8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x0033f30b in Rd__GetChar (rd=0x31339f8) at ../src/rw/Rd.m3:33 #6 0x0034dffd in Lex__Skip (rd=0x31339f8, cs=0x548018) at ../src/fmtlex/Lex.m3:46 #7 0x003503c3 in Lex__ReadReal (rd=0x31339f8, sign=0xb1df47c3, digits=0xb1df47dc, digCnt=0xb1df47c8, exp=0xb1df47cc) at ../src/fmtlex/Lex.m3:569 #8 0x00350ef5 in Lex__LongReal (rd=0x31339f8) at ../src/fmtlex/Lex.m3:662 #9 0x003518f1 in Scan__LongReal (txt=0x25768e8) at ../src/fmtlex/Scan.m3:77 #10 0x0024f849 in SchemeInputPort__NextToken (t=0x30d4aec, wx=0x31337e8) at ../src/SchemeInputPort.m3:439 #11 0x0024fb9c in SchemeInputPort__ReadTail2 (t=0x30d4aec, wx=0x31337e8) at ../src/SchemeInputPort.m3:240 #12 0x0024e100 in SchemeInputPort__Read (t=0x30d4aec) at ../src/SchemeInputPort.m3:179 #13 0x0024e2bc in SchemeInputPort__Read (t=0x30d4aec) at ../src/SchemeInputPort.m3:191 #14 0x0024fb73 in SchemeInputPort__ReadTail2 (t=0x30d4aec, wx=0x3133620) at ../src/SchemeInputPort.m3:240 #15 0x0024e100 in SchemeInputPort__Read (t=0x30d4aec) at ../src/SchemeInputPort.m3:179 #16 0x0024fb73 in SchemeInputPort__ReadTail2 (t=0x30d4aec, wx=0x3133548) at ../src/SchemeInputPort.m3:240 #17 0x0024e100 in SchemeInputPort__Read (t=0x30d4aec) at ../src/SchemeInputPort.m3:179 #18 0x0023c6cd in Scheme__LoadPort (t=0x30d018c, in=0x30d4aec) at ../src/Scheme.m3:317 #19 0x002399e3 in Scheme__LoadRd (t=0x30d018c, rd=0x30d3cf0, fn=0x0) at ../src/Scheme.m3:174 #20 0x0023d255 in Scheme__ReadInitialFiles (t=0x30d018c, files=0x46fc8c) at ../src/Scheme.m3:134 #21 0x0023d5e7 in Scheme__Init2 (t=0x30d018c, input=0x20003b4, output=0x20013e8, files=0x46fc8c, env=0x0) at ../src/Scheme.m3:127 #22 0x00239461 in Scheme__Init (t=0x30d018c, files=0x46fc8c, env=0x0) at ../src/Scheme.m3:102 #23 0x00029420 in SchemeCalculator__Init (t=0x30d017c, code=0x263fccc) at ../src/SchemeCalculator.m3:28 #24 0x0000deef in EuroDriver__OApply (cl=0x3241b88) at ../src/EuroDriver.m3:865 #25 0x003a9c5b in ThreadPThread__RunThread (me=0x2307650) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #26 0x003a998a in ThreadPThread__ThreadBase (param=0x2307650) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #27 0x9713885d in _pthread_start () #28 0x971386e2 in thread_start () Thread 71 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1345 #4 0x003995a6 in RTHeapRep__RegisterFinalCleanup (r=0x31239f8, p=0x3a7d52) at ../src/runtime/common/RTCollector.m3:2148 #5 0x003a7f1e in ThreadPThread__InitMutex (m=0x31239fc, root=0x31239f8, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:106 #6 0x003a7f82 in ThreadPThread__LockMutex (m=0x31239f8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #7 0x0033f30b in Rd__GetChar (rd=0x31239f8) at ../src/rw/Rd.m3:33 #8 0x0034dffd in Lex__Skip (rd=0x31239f8, cs=0x548018) at ../src/fmtlex/Lex.m3:46 #9 0x003503c3 in Lex__ReadReal (rd=0x31239f8, sign=0xb1d727c3, digits=0xb1d727dc, digCnt=0xb1d727c8, exp=0xb1d727cc) at ../src/fmtlex/Lex.m3:569 #10 0x00350ef5 in Lex__LongReal (rd=0x31239f8) at ../src/fmtlex/Lex.m3:662 #11 0x003518f1 in Scan__LongReal (txt=0x25768e8) at ../src/fmtlex/Scan.m3:77 #12 0x0024f849 in SchemeInputPort__NextToken (t=0x3264aec, wx=0x31237e8) at ../src/SchemeInputPort.m3:439 #13 0x0024fb9c in SchemeInputPort__ReadTail2 (t=0x3264aec, wx=0x31237e8) at ../src/SchemeInputPort.m3:240 #14 0x0024e100 in SchemeInputPort__Read (t=0x3264aec) at ../src/SchemeInputPort.m3:179 #15 0x0024e2bc in SchemeInputPort__Read (t=0x3264aec) at ../src/SchemeInputPort.m3:191 #16 0x0024fb73 in SchemeInputPort__ReadTail2 (t=0x3264aec, wx=0x3123620) at ../src/SchemeInputPort.m3:240 #17 0x0024e100 in SchemeInputPort__Read (t=0x3264aec) at ../src/SchemeInputPort.m3:179 #18 0x0024fb73 in SchemeInputPort__ReadTail2 (t=0x3264aec, wx=0x3123548) at ../src/SchemeInputPort.m3:240 #19 0x0024e100 in SchemeInputPort__Read (t=0x3264aec) at ../src/SchemeInputPort.m3:179 #20 0x0023c6cd in Scheme__LoadPort (t=0x326018c, in=0x3264aec) at ../src/Scheme.m3:317 #21 0x002399e3 in Scheme__LoadRd (t=0x326018c, rd=0x3263cf0, fn=0x0) at ../src/Scheme.m3:174 #22 0x0023d255 in Scheme__ReadInitialFiles (t=0x326018c, files=0x46fc8c) at ../src/Scheme.m3:134 #23 0x0023d5e7 in Scheme__Init2 (t=0x326018c, input=0x20003b4, output=0x20013e8, files=0x46fc8c, env=0x0) at ../src/Scheme.m3:127 #24 0x00239461 in Scheme__Init (t=0x326018c, files=0x46fc8c, env=0x0) at ../src/Scheme.m3:102 #25 0x00029420 in SchemeCalculator__Init (t=0x326017c, code=0x263fccc) at ../src/SchemeCalculator.m3:28 #26 0x0000deef in EuroDriver__OApply (cl=0x3241af0) at ../src/EuroDriver.m3:865 #27 0x003a9c5b in ThreadPThread__RunThread (me=0x23075c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #28 0x003a998a in ThreadPThread__ThreadBase (param=0x23075c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #29 0x9713885d in _pthread_start () #30 0x971386e2 in thread_start () Thread 67 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7ebe in ThreadPThread__InitMutex (m=0x2686284, root=0x2686280, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003a7f82 in ThreadPThread__LockMutex (m=0x2686280) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x003a7d30 in Thread__Acquire (m=0x2686280) at ../src/thread/PTHREAD/ThreadPThread.m3:81 #6 0x00343175 in RdClass__Lock (rd=0x2686280) at ../src/rw/Rd.m3:521 #7 0x0024d9ef in SchemeInputPort__Lock (t=0x2686368) at ../src/SchemeInputPort.m3:72 #8 0x0024e87d in SchemeInputPort__NextToken (t=0x2686368, wx=0x2686388) at ../src/SchemeInputPort.m3:299 #9 0x0024e0bb in SchemeInputPort__Read (t=0x2686368) at ../src/SchemeInputPort.m3:177 #10 0x00239a38 in Scheme__LoadEval (t=0x254018c, rd=0x2686280) at ../src/Scheme.m3:291 #11 0x00239abd in Scheme__LoadEvalText (t=0x254018c, txt=0x263fccc) at ../src/Scheme.m3:306 #12 0x00029574 in SchemeCalculator__Calc (t=0x254017c, arr=0xb1cf09e4) at ../src/SchemeCalculator.m3:47 #13 0x0000ee50 in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 #14 0x0000e7d6 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 #15 0x000103ca in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 #16 0x0000e3a2 in EuroDriver__OApply (cl=0x3018bb0) at ../src/EuroDriver.m3:892 #17 0x003a9c5b in ThreadPThread__RunThread (me=0x23054a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #18 0x003a998a in ThreadPThread__ThreadBase (param=0x23054a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #19 0x9713885d in _pthread_start () #20 0x971386e2 in thread_start () Thread 66 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x230d020, j=0x2305470) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2305410, m=0x311a158, c=0x311a164, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x311a158, c=0x311a164) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb1c6ecb8, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb1c6ecb8, touched=0x0) at ../src/SX.m3:149 #8 0x0001063a in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 #9 0x0000e3a2 in EuroDriver__OApply (cl=0x3018b18) at ../src/EuroDriver.m3:892 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2305410) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2305410) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 62 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x23019d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x31b1584) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x003a7d30 in Thread__Acquire (m=0x31b1584) at ../src/thread/PTHREAD/ThreadPThread.m3:81 #5 0x002c5bb6 in SX__Lock (arr=0x327c430) at ../src/SX.m3:318 #6 0x002c5496 in SXSelect__WaitE (on=0xb1beccb8, except=0x0, touched=0x0) at ../src/SX.m3:241 #7 0x002c4acd in SXSelect__Wait (on=0xb1beccb8, touched=0x0) at ../src/SX.m3:149 #8 0x0001063a in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 #9 0x0000e3a2 in EuroDriver__OApply (cl=0x21fcc00) at ../src/EuroDriver.m3:892 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x1626040) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x1626040) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 61 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7ebe in ThreadPThread__InitMutex (m=0x252c4b4, root=0x252c4b0, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003a7f82 in ThreadPThread__LockMutex (m=0x252c4b0) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x003a7d30 in Thread__Acquire (m=0x252c4b0) at ../src/thread/PTHREAD/ThreadPThread.m3:81 #6 0x00343175 in RdClass__Lock (rd=0x252c4b0) at ../src/rw/Rd.m3:521 #7 0x0024d9ef in SchemeInputPort__Lock (t=0x252c598) at ../src/SchemeInputPort.m3:72 #8 0x0024e87d in SchemeInputPort__NextToken (t=0x252c598, wx=0x252c5b8) at ../src/SchemeInputPort.m3:299 #9 0x0024e0bb in SchemeInputPort__Read (t=0x252c598) at ../src/SchemeInputPort.m3:177 #10 0x00239a38 in Scheme__LoadEval (t=0x26f018c, rd=0x252c4b0) at ../src/Scheme.m3:291 #11 0x00239abd in Scheme__LoadEvalText (t=0x26f018c, txt=0x263fccc) at ../src/Scheme.m3:306 #12 0x00029574 in SchemeCalculator__Calc (t=0x26f017c, arr=0xb1b6a864) at ../src/SchemeCalculator.m3:47 #13 0x0000ee50 in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 #14 0x0000e7d6 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 #15 0x000103ca in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 #16 0x0000e3a2 in EuroDriver__OApply (cl=0x21fcb68) at ../src/EuroDriver.m3:892 #17 0x003a9c5b in ThreadPThread__RunThread (me=0x1625f80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #18 0x003a998a in ThreadPThread__ThreadBase (param=0x1625f80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #19 0x9713885d in _pthread_start () #20 0x971386e2 in thread_start () Thread 54 (process 67010): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003a7b74 in ThreadInternal__Poll (fd=10, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:57 #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x23071d0, fd=10, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=10, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 #4 0x003344ff in TCP__GetBytesFD (t=0x3050f80, arr=0x3053048, timeout=-1) at ../src/POSIX/TCP.m3:326 #5 0x003365ce in ConnRW__RdSeek (rd=0x3053018, pos=390, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 #6 0x003424e3 in Rd__GetLine (rd=0x3053018) at ../src/rw/Rd.m3:426 #7 0x002a00d4 in TWSTester__RApply (cl=0x3055054) at ../src/TWSTester.m3:382 #8 0x003a9c5b in ThreadPThread__RunThread (me=0x23071d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #9 0x003a998a in ThreadPThread__ThreadBase (param=0x23071d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #10 0x9713885d in _pthread_start () #11 0x971386e2 in thread_start () Thread 53 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x1621150, mutex=0x1621120, m3timeout=1294537044.5119109) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x16210c0, n=0.5, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=0.5) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x00286610 in PMTWS__TSCApply (cl=0x3050e30) at ../src/PMTWS.m3:229 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x16210c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x16210c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 52 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1345 #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x1621054) at ../src/runtime/common/RTAllocator.m3:363 #5 0x0038f2c7 in RTAllocator__GetTracedObj (def=0x5d6bf4) at ../src/runtime/common/RTAllocator.m3:224 #6 0x0038ed60 in RTHooks__AllocateTracedObj (defn=0x5d6bf4) at ../src/runtime/common/RTAllocator.m3:122 #7 0x003bc686 in RTHooks__Concat (t=0x3240a08, u=0x52c460) at ../src/text/TextCat.m3:28 #8 0x0029e655 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 #9 0x0029ea07 in TWSTester__ReqMktData (t=0x30505a8, tickerId=4, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 #10 0x002aa233 in TWSTestBridge__MreqMktData (t=0x30505a8, tickerId=4, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 #11 0x00286034 in PMTWS__TSCApply (cl=0x3050dec) at ../src/PMTWS.m3:210 #12 0x003a9c5b in ThreadPThread__RunThread (me=0x1621010) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #13 0x003a998a in ThreadPThread__ThreadBase (param=0x1621010) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #14 0x9713885d in _pthread_start () #15 0x971386e2 in thread_start () Thread 51 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1345 #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x1620ed4) at ../src/runtime/common/RTAllocator.m3:363 #5 0x0038f048 in RTAllocator__GetTracedRef (def=0x5711e0) at ../src/runtime/common/RTAllocator.m3:202 #6 0x0038ed2f in RTHooks__AllocateTracedRef (defn=0x5711e0) at ../src/runtime/common/RTAllocator.m3:115 #7 0x000a8f49 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x328f110, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 #8 0x000a5ecc in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x26608c0, res=0x328f110) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 #9 0x00085c9f in GCOMSPortfolio__Lock (t=0x2660590) at ../src/GCOMSPortfolio.m3:94 #10 0x000288d9 in SXPortfolio__Scan (t=0x300c578) at ../src/SXPortfolio.m3:47 #11 0x0002920d in SXPortfolio__Apply (cl=0x3050324) at ../src/SXPortfolio.m3:113 #12 0x003a9c5b in ThreadPThread__RunThread (me=0x1620e90) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #13 0x003a998a in ThreadPThread__ThreadBase (param=0x1620e90) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #14 0x9713885d in _pthread_start () #15 0x971386e2 in thread_start () Thread 50 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4ad944, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 #5 0x000d9ad8 in DBTable_gcoms_aux_ordrMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #6 0x000d9cdf in DBTable_gcoms_aux_ordrMonitor__CheckForNew (cl=0x300c218) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #7 0x000d9a01 in DBTable_gcoms_aux_ordrMonitor__Sync (cl=0x300c218) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #8 0x000d9588 in DBTable_gcoms_aux_ordrMonitor__ApplyC (cl=0x300c218) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #9 0x003a9c5b in ThreadPThread__RunThread (me=0x1620d80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #10 0x003a998a in ThreadPThread__ThreadBase (param=0x1620d80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #11 0x9713885d in _pthread_start () #12 0x971386e2 in thread_start () Thread 49 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x1620d60, mutex=0x1620cd0, m3timeout=1294537044.970454) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x1620d00, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000db5a3 in DBTable_gcoms_aux_ordrMonitor__CleanerApply (cl=0x300c410) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1620d00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1620d00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 48 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4aa228, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 #5 0x000cb8aa in DBTable_gcoms_fillMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #6 0x000cbbf5 in DBTable_gcoms_fillMonitor__CheckForNew (cl=0x300bf48) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #7 0x000cb7d3 in DBTable_gcoms_fillMonitor__Sync (cl=0x300bf48) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #8 0x000cb35a in DBTable_gcoms_fillMonitor__ApplyC (cl=0x300bf48) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #9 0x003a9c5b in ThreadPThread__RunThread (me=0x1620b50) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #10 0x003a998a in ThreadPThread__ThreadBase (param=0x1620b50) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #11 0x9713885d in _pthread_start () #12 0x971386e2 in thread_start () Thread 47 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x16243d0, mutex=0x1620ac0, m3timeout=1294537044.9675839) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x1620af0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000cd5e3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=0x300c140) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1620af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1620af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 46 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4abd98, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 #5 0x000d2b9a in DBTable_gcoms_aux_instrumentMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #6 0x000d2dbf in DBTable_gcoms_aux_instrumentMonitor__CheckForNew (cl=0x30091c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #7 0x000d2ac3 in DBTable_gcoms_aux_instrumentMonitor__Sync (cl=0x30091c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #8 0x000d264a in DBTable_gcoms_aux_instrumentMonitor__ApplyC (cl=0x30091c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #9 0x003a9c5b in ThreadPThread__RunThread (me=0x2306710) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #10 0x003a998a in ThreadPThread__ThreadBase (param=0x2306710) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #11 0x9713885d in _pthread_start () #12 0x971386e2 in thread_start () Thread 45 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x230b2d0, mutex=0x2306680, m3timeout=1294537044.960629) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x23066b0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000d469b in DBTable_gcoms_aux_instrumentMonitor__CleanerApply (cl=0x30093c0) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x23066b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x23066b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 44 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a159c, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=0x3205b38) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=0x3205b38) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x3205b38) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #9 0x003a9c5b in ThreadPThread__RunThread (me=0x230b000) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #10 0x003a998a in ThreadPThread__ThreadBase (param=0x230b000) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #11 0x9713885d in _pthread_start () #12 0x971386e2 in thread_start () Thread 43 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x230afe0, mutex=0x230af20, m3timeout=1294537044.8138101) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x230af80, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x3205d30) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x230af80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x230af80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 42 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a159c, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=0x32057b0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=0x32057b0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x32057b0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #9 0x003a9c5b in ThreadPThread__RunThread (me=0x230aca0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #10 0x003a998a in ThreadPThread__ThreadBase (param=0x230aca0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #11 0x9713885d in _pthread_start () #12 0x971386e2 in thread_start () Thread 41 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x2301860, mutex=0x230ab40, m3timeout=1294537044.8138311) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x230aba0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x32059a8) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x230aba0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x230aba0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 40 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a6b9c, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 #5 0x000bd587 in DBTable_gcoms_ordr_statusMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #6 0x000bd76e in DBTable_gcoms_ordr_statusMonitor__CheckForNew (cl=0x3205390) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #7 0x000bd4b0 in DBTable_gcoms_ordr_statusMonitor__Sync (cl=0x3205390) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #8 0x000bd037 in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=0x3205390) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #9 0x003a9c5b in ThreadPThread__RunThread (me=0x1621f10) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #10 0x003a998a in ThreadPThread__ThreadBase (param=0x1621f10) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #11 0x9713885d in _pthread_start () #12 0x971386e2 in thread_start () Thread 39 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x16242f0, mutex=0x1621ee0, m3timeout=1294537044.8137701) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x1622280, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000bf010 in DBTable_gcoms_ordr_statusMonitor__CleanerApply (cl=0x3205588) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1622280) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1622280) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 38 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a3144, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 #5 0x000adb3f in DBTable_gcoms_strategyMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #6 0x000add46 in DBTable_gcoms_strategyMonitor__CheckForNew (cl=0x2660b88) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #7 0x000ada68 in DBTable_gcoms_strategyMonitor__Sync (cl=0x2660b88) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #8 0x000ad5ef in DBTable_gcoms_strategyMonitor__ApplyC (cl=0x2660b88) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #9 0x003a9c5b in ThreadPThread__RunThread (me=0x161b820) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #10 0x003a998a in ThreadPThread__ThreadBase (param=0x161b820) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #11 0x9713885d in _pthread_start () #12 0x971386e2 in thread_start () Thread 37 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x2306160, mutex=0x2305f70, m3timeout=1294537044.6482379) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x2306100, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000af60a in DBTable_gcoms_strategyMonitor__CleanerApply (cl=0x2660d78) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x2306100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x2306100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 36 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a159c, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=0x26608c0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=0x26608c0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x26608c0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #9 0x003a9c5b in ThreadPThread__RunThread (me=0x2305e30) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #10 0x003a998a in ThreadPThread__ThreadBase (param=0x2305e30) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #11 0x9713885d in _pthread_start () #12 0x971386e2 in thread_start () Thread 35 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x2305dd0, mutex=0x2305c40, m3timeout=1294537044.6481991) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x2305d70, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x2660ab0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x2305d70) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x2305d70) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 34 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1345 #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=32, dataAlignment=4, thread=0x1623e04) at ../src/runtime/common/RTAllocator.m3:363 #5 0x0038f2c7 in RTAllocator__GetTracedObj (def=0x5c87d4) at ../src/runtime/common/RTAllocator.m3:224 #6 0x0038ed60 in RTHooks__AllocateTracedObj (defn=0x5c87d4) at ../src/runtime/common/RTAllocator.m3:122 #7 0x00260a50 in DatabaseUtils__FilterUnprintable (t=0x4aa228) at ../src/DatabaseUtils.m3:124 #8 0x0026b6ae in UnsafeDatabase__ExecM (t=0x2660178, query=0x4aa228, busyWait=0 '\0', abortConnectionOnFail=1 '\001') at ../src/UnsafeDatabase.m3:217 #9 0x0026baa5 in UnsafeDatabase__TExecM (t=0x2660178, query=0x4aa228, busyWait=0 '\0', abortConnectionOnFail=1 '\001') at ../src/UnsafeDatabase.m3:258 #10 0x002587f9 in DesynchronizedDB__SExec (t=0x26602c4, query=0x4aa228, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:126 #11 0x000cb8aa in DBTable_gcoms_fillMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #12 0x000cbbf5 in DBTable_gcoms_fillMonitor__CheckForNew (cl=0x26605f8) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #13 0x000cb7d3 in DBTable_gcoms_fillMonitor__Sync (cl=0x26605f8) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #14 0x000cb35a in DBTable_gcoms_fillMonitor__ApplyC (cl=0x26605f8) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #15 0x003a9c5b in ThreadPThread__RunThread (me=0x1623dc0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #16 0x003a998a in ThreadPThread__ThreadBase (param=0x1623dc0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #17 0x9713885d in _pthread_start () #18 0x971386e2 in thread_start () Thread 33 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x1623da0, mutex=0x1623640, m3timeout=1294537044.6482589) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x1623d40, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000cd5e3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=0x26607e8) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1623d40) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1623d40) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 32 (process 67010): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003a7b74 in ThreadInternal__Poll (fd=9, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:57 #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x1623c00, fd=9, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=9, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 #4 0x003344ff in TCP__GetBytesFD (t=0x267015c, arr=0x2690040, timeout=-1) at ../src/POSIX/TCP.m3:326 #5 0x003365ce in ConnRW__RdSeek (rd=0x2690010, pos=0, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 #6 0x003424e3 in Rd__GetLine (rd=0x2690010) at ../src/rw/Rd.m3:426 #7 0x00256bb0 in UpdateMonitor__InApplyP (cl=0x269204c) at ../src/UpdateMonitor.m3:240 #8 0x003a9c5b in ThreadPThread__RunThread (me=0x1623c00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #9 0x003a998a in ThreadPThread__ThreadBase (param=0x1623c00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #10 0x9713885d in _pthread_start () #11 0x971386e2 in thread_start () Thread 31 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x1623470, j=0x1623ba0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x1623b40, m=0x2670220, c=0x267022c, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2670220, c=0x267022c) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002567b1 in UpdateMonitor__OutApplyP (p=0x267017c) at ../src/UpdateMonitor.m3:178 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1623b40) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1623b40) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 30 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23016c0, j=0x2305a80) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2305a20, m=0x2660378, c=0x26603ac, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2660378, c=0x26603ac) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x00259145 in DesynchronizedDB__PApply (p=0x26603bc) at ../src/DesynchronizedDB.m3:216 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x2305a20) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x2305a20) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 29 (process 67010): #0 0x9716c1d6 in __wait4 () #1 0x9716c1c9 in waitpid$UNIX2003 () #2 0x003add58 in Uexec__waitpid (i=67040, j=0xb0e36b4c, k=0) at ../src/unix/Common/Uexec.c:67 #3 0x003aaa51 in SchedulerPosix__WaitProcess (pid=67040, status=0xb0e36b4c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 #4 0x0033ca19 in Process__Wait (p=0x2650590) at ../src/os/POSIX/ProcessPosixCommon.m3:275 #5 0x002ffdf6 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:185 #6 0x003007c1 in ProcUtils__Apply (self=0x2640284) at ../src/ProcUtils.m3:274 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x16233b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x16233b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 28 (process 67010): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003a7b74 in ThreadInternal__Poll (fd=7, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:57 #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x1623300, fd=7, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=7, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 #4 0x003344ff in TCP__GetBytesFD (t=0x26402c4, arr=0x2642358, timeout=-1) at ../src/POSIX/TCP.m3:326 #5 0x003365ce in ConnRW__RdSeek (rd=0x2642328, pos=0, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 #6 0x0033f64d in Rd__DoSeek (rd=0x2642328) at ../src/rw/Rd.m3:54 #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=0x2642328) at ../src/rw/Rd.m3:43 #8 0x0033f32d in Rd__GetChar (rd=0x2642328) at ../src/rw/Rd.m3:34 #9 0x002b26e9 in ReadLine__ReadALine (t=0x264000c) at ../src/ReadLine.m3:151 #10 0x002b4a56 in ReadLine__ReadLine (t=0x264000c) at ../src/ReadLine.m3:411 #11 0x0022a383 in SchemeReadLine__GetCh (p=0x2644364) at ../src/SchemeReadLine.m3:80 #12 0x0024e942 in SchemeInputPort__NextToken (t=0x2644364, wx=0x26443e8) at ../src/SchemeInputPort.m3:309 #13 0x0024e0bb in SchemeInputPort__Read (t=0x2644364) at ../src/SchemeInputPort.m3:177 #14 0x0022abaa in SchemeReadLine__MainLoop (rl=0x264000c, scm=0x256b9e4) at ../src/SchemeReadLine.m3:146 #15 0x00006bb7 in Main__SCApply (c=0x263fed0) at ../src/Main.m3:92 #16 0x003a9c5b in ThreadPThread__RunThread (me=0x1623300) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #17 0x003a998a in ThreadPThread__ThreadBase (param=0x1623300) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #18 0x9713885d in _pthread_start () #19 0x971386e2 in thread_start () Thread 27 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x161bd50) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x25400a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x002c77db in SXLongReal__Update (v=0x2540010, newValue=1293719775.9374268, when=1293719775.9374378) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 #5 0x002c7abe in SXLongReal__SetVar (v=0x2540010, newValue=1293719775.9374268, when=1293719775.9374378) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 #6 0x002eaaf7 in SXTimer__Loop (cl=0x21e11cc) at ../src/SXTimer.m3:64 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x161b610) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x161b610) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 26 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23016a0, j=0x2301670) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2301610, m=0x2114828, c=0x2114858, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2114828, c=0x2114858) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x000974c8 in GCOMSOrderStatus__Apply (cl=0x2114868) at ../src/GCOMSOrderStatus.m3:166 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x2301610) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x2301610) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 25 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300540, j=0x2301580) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x23015b0, m=0x211476c, c=0x2114778, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x211476c, c=0x2114778) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x0009d268 in GCOMSBusyOrders__Apply (cl=0x2114788) at ../src/GCOMSBusyOrders.m3:63 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x23015b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x23015b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 24 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300d90, j=0x2300d60) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300d00, m=0x21d0044, c=0x21d0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x21d0044, c=0x21d0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0bace84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0bace84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2111418) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2111548) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300d00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300d00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 23 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300ce0, j=0x2300cb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300c50, m=0x21c0044, c=0x21c0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x21c0044, c=0x21c0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0b2ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0b2ae84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2111288) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x21113b8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300c50) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300c50) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 22 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300c30, j=0x2300c00) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300ba0, m=0x21b0044, c=0x21b0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x21b0044, c=0x21b0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0aa8e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0aa8e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110fd8) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2111108) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300ba0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300ba0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 21 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300b80, j=0x2300b50) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300af0, m=0x21a0044, c=0x21a0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x21a0044, c=0x21a0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0a26e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0a26e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110e50) at ../src/SX.m3:151 #9 0x00163596 in CurrencySXProxy__Apply (cl=0x2110f78) at ../I386_DARWIN/CurrencySXProxy.m3 => /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 20 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300a10, j=0x23009e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300980, m=0x2190044, c=0x2190050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2190044, c=0x2190050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb09a4e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb09a4e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110b48) at ../src/SX.m3:151 #9 0x002bf3d5 in BoolSXProxy__Apply (cl=0x2110c70) at ../I386_DARWIN/BoolSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300980) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300980) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 19 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300960, j=0x2300930) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x23008d0, m=0x2180044, c=0x2180050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2180044, c=0x2180050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0922e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0922e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x21109b8) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2110ae8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x23008d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x23008d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 18 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23008b0, j=0x2300880) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300820, m=0x2170044, c=0x2170050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2170044, c=0x2170050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb08a0e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb08a0e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110828) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2110958) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300820) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300820) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 17 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300800, j=0x23007d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300770, m=0x2160044, c=0x2160050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2160044, c=0x2160050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb081ee84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb081ee84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110698) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x21107c8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300770) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300770) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 16 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300750, j=0x2300720) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x23006c0, m=0x2150044, c=0x2150050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2150044, c=0x2150050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb079ce84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb079ce84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110508) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2110638) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x23006c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x23006c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 15 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23006a0, j=0x2300670) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300610, m=0x2140044, c=0x2140050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2140044, c=0x2140050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb071ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb071ae84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110378) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x21104a8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300610) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300610) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 14 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161af10, j=0x161aee0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x161ae80, m=0x2130044, c=0x2130050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2130044, c=0x2130050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0698e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0698e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x21101e8) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2110318) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161ae80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161ae80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 13 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23005f0, j=0x23005c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300560, m=0x2120044, c=0x2120050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2120044, c=0x2120050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0616e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0616e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x20c0c40) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x21100ac) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 12 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23004c0, j=0x2300490) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300430, m=0x2080044, c=0x2080050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2080044, c=0x2080050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0594e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0594e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x20c0ab0) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x20c0be0) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300430) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300430) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 11 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300410, j=0x23003e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300380, m=0x20f0044, c=0x20f0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x20f0044, c=0x20f0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0512e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0512e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x20c0920) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x20c0a50) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300380) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300380) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 10 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161aad0, j=0x161aaa0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x161aa40, m=0x20b0044, c=0x20b0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x20b0044, c=0x20b0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0490e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0490e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020e88) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020fb8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161aa40) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161aa40) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 9 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23002a0, j=0x2300270) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300210, m=0x2090044, c=0x2090050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2090044, c=0x2090050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb040ee84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb040ee84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020cf8) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020e28) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300210) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300210) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 8 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a9c0, j=0x161a990) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x161a930, m=0x20e0034, c=0x20e0040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x20e0034, c=0x20e0040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb038ce84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb038ce84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020a48) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020b78) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a930) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a930) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 7 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a910, j=0x161a8e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x161a880, m=0x20a0034, c=0x20a0040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x20a0034, c=0x20a0040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb030ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb030ae84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x20208c0) at ../src/SX.m3:151 #9 0x00163596 in CurrencySXProxy__Apply (cl=0x20209e8) at ../I386_DARWIN/CurrencySXProxy.m3 => /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a880) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a880) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 6 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a860, j=0x161a830) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x161a7d0, m=0x2050044, c=0x2050050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2050044, c=0x2050050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0288e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0288e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020658) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020788) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a7d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a7d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 5 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a7b0, j=0x161a780) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x161a720, m=0x2040044, c=0x2040050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2040044, c=0x2040050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0206e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0206e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x20204c8) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x20205f8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a720) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a720) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 4 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a290, j=0x161a6f0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x161a690, m=0x2030044, c=0x2030050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2030044, c=0x2030050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0184e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0184e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020338) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020468) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a690) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a690) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 3 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x1619840, j=0x161a600) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x161a230, m=0x202008c, c=0x202007c, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x202008c, c=0x202007c) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002ba948 in VarProxyDefs__NotifyApply (cl=0x2020098) at ../src/VarProxyDefs.m3:55 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x161a230) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x161a230) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 2 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7ebe in ThreadPThread__InitMutex (m=0x20100ac, root=0x20100a8, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003a7f82 in ThreadPThread__LockMutex (m=0x20100a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x0033f30b in Rd__GetChar (rd=0x20100a8) at ../src/rw/Rd.m3:33 #6 0x0034dffd in Lex__Skip (rd=0x20100a8, cs=0x548018) at ../src/fmtlex/Lex.m3:46 #7 0x003503c3 in Lex__ReadReal (rd=0x20100a8, sign=0xb00809e3, digits=0xb00809fc, digCnt=0xb00809e8, exp=0xb00809ec) at ../src/fmtlex/Lex.m3:569 #8 0x00350ef5 in Lex__LongReal (rd=0x20100a8) at ../src/fmtlex/Lex.m3:662 #9 0x003518f1 in Scan__LongReal (txt=0x201007c) at ../src/fmtlex/Scan.m3:77 #10 0x0030ef75 in XTime__ClApply (cl=0x2004624) at ../src/XTime.m3:185 #11 0x003a9c5b in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #12 0x003a998a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #13 0x9713885d in _pthread_start () #14 0x971386e2 in thread_start () Thread 1 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x16076f0, j=0x16076c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x1607660, m=0x2000084, c=0x30eb8bc, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003aa1f3 in ThreadPThread__XJoin (self=0x1607660, t=0x30eb8a0, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:513 #6 0x003aa2f5 in Thread__Join (t=0x30eb8a0) at ../src/thread/PTHREAD/ThreadPThread.m3:525 #7 0x002ff2b8 in ProcUtils__Wait (c=0x30eb800) at ../src/ProcUtils.m3:318 #8 0x00234ebd in SchemeCommandRunner__RealRunTimeoutCommandApply (proc=0x21e0b44, interp=0x3241ec4, args=0x30e775c) at ../src/SchemeCommandRunner.m3:164 #9 0x00234b4f in SchemeCommandRunner__RunTimeoutCommandApply (proc=0x21e0b44, interp=0x3241ec4, args=0x30e775c) at ../src/SchemeCommandRunner.m3:129 #10 0x00234217 in SchemeCommandRunner__RunCommandApply (proc=0x21e0b44, interp=0x3241ec4, args=0x30e7744) at ../src/SchemeCommandRunner.m3:23 #11 0x0024b81b in SchemePrimitive__EDApply (ed=0x21e01c0, t=0x3245844, interp=0x3241ec4, args=0x30e7744) at ../src/SchemePrimitive.m3:207 #12 0x00246509 in SchemePrimitive__Prims (t=0x3245844, interp=0x3241ec4, args=0x30e7744, x=0x30e5cfc, y=0x30e7730, free=0xbfffea1f) at ../src/SchemePrimitive.m3:580 #13 0x0024b1cb in SchemePrimitive__Apply2 (t=0x3245844, interp=0x3241ec4, a1=0x30e5cfc, a2=0x30e7730) at ../src/SchemePrimitive.m3:549 #14 0x0023c16f in Scheme__EvalInternal (t=0x3241ec4, x=0x30e5c5c, env=0x30e76b4) at ../src/Scheme.m3:585 #15 0x0023bedf in Scheme__EvalInternal (t=0x3241ec4, x=0x30e5bac, env=0x30e76b4) at ../src/Scheme.m3:582 #16 0x0023c35e in Scheme__Eval (t=0x3241ec4, x=0x30e6a6c, envP=0x3241f0c) at ../src/Scheme.m3:353 #17 0x00239bcf in Scheme__EvalInGlobalEnv (t=0x3241ec4, x=0x30e6a6c) at ../src/Scheme.m3:603 #18 0x0002972b in SchemeCalculator__Calc (t=0x3241eb4, arr=0xbfffee3c) at ../src/SchemeCalculator.m3:61 #19 0x0000c8af in EuroDriver__Loop (t=0x3205a80) at ../src/EuroDriver.m3:289 #20 0x00008781 in Main_M3 (mode=1) at ../src/Main.m3:268 #21 0x0039d83d in RTLinker__RunMainBody (m=0x55e420) at ../src/runtime/common/RTLinker.m3:406 #22 0x0039cc99 in RTLinker__AddUnitI (m=0x55e420) at ../src/runtime/common/RTLinker.m3:113 #23 0x0039cd1a in RTLinker__AddUnit (b=0x6be3) at ../src/runtime/common/RTLinker.m3:122 #24 0x0000528c in main (argc=19, argv=0xbffff330, envp=0xbffff380) at _m3main.c:16 From jay.krell at cornell.edu Sun Jan 9 02:46:33 2011 From: jay.krell at cornell.edu (Jay K) Date: Sun, 9 Jan 2011 01:46:33 +0000 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: <20110109014355.0A01F1A205B@async.async.caltech.edu> References: <0A37C595-C896-4B66-9EDF-61BB30645321@cs.purdue.edu> ,<20110109014355.0A01F1A205B@async.async.caltech.edu> Message-ID: Tony raised legit issue w/ my fix. I will try another very soon (tonight). Index: ThreadPThread.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3,v retrieving revision 1.247 diff -u -r1.247 ThreadPThread.m3 --- ThreadPThread.m3??? 9 Jan 2011 00:36:07 -0000??? 1.247 +++ ThreadPThread.m3??? 9 Jan 2011 01:14:16 -0000 @@ -1283,10 +1283,10 @@ ?????? cond: Condition; ?? BEGIN ???? Acquire(joinMu); -??? LockHeap(); ???? FOR i := FIRST(locks) TO LAST(locks) DO ?????? PThreadLockMutex(locks[i], ThisLine(), i); ???? END; +??? LockHeap(); ???? (* Walk activations and lock all threads, conditions. ????? * NOTE: We have initMu, activeMu, so slots ????? * won't change, conditions and mutexes ?- Jay ---------------------------------------- > To: hosking at cs.purdue.edu > Date: Sat, 8 Jan 2011 17:43:55 -0800 > From: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > > Well I spent the whole day figuring out how to update the compiler.. > finally got everything working and I think this is with the very latest > version (Jay just committed something two hours ago and it's in here). > > Or... wait.. did he go back a version and re-introduce the deadlock? > That would explain why it's behaving the same way as it was before... > > Mika > > > > Thread 68 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 > #5 0x97137217 in _cthread_fork_prepare () > #6 0x97137155 in fork () > #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixCommon.m3:75 > #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > Thread 67 (process 32362): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003beb7e in ThreadInternal__Poll (fd=13, read=1, m3timeout=-1) at ../src/thread/Common/ThreadInternal.c:31 > #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x2009550, fd=13, read=1 '\001', interval=-1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003c19a4 in SchedulerPosix__IOWait (fd=13, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 > #4 0x0034f862 in FilePosix__IntermittentRead (h=0x24334f8, b=0xb1df4cd0, mayBlock=1 '\001') at ../src/os/POSIX/FilePosix.m3:220 > #5 0x0035e935 in FileRd__Seek (rd=0x2433518, pos=0, dontBlock=0 '\0') at ../src/rw/FileRd.m3:83 > #6 0x00356338 in Rd__DoSeek (rd=0x2433518) at ../src/rw/Rd.m3:54 > #7 0x003560c1 in UnsafeRd__FastGetChar (rd=0x2433518) at ../src/rw/Rd.m3:43 > #8 0x00356018 in Rd__GetChar (rd=0x2433518) at ../src/rw/Rd.m3:34 > #9 0x00316fbc in ProcUtils__SSApply (self=0x242f128) at ../src/ProcUtils.m3:54 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009550) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009550) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 66 (process 32362): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003beb7e in ThreadInternal__Poll (fd=11, read=1, m3timeout=-1) at ../src/thread/Common/ThreadInternal.c:31 > #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x20094a0, fd=11, read=1 '\001', interval=-1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003c19a4 in SchedulerPosix__IOWait (fd=11, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 > #4 0x0034f862 in FilePosix__IntermittentRead (h=0x239f994, b=0xb1d72cd0, mayBlock=1 '\001') at ../src/os/POSIX/FilePosix.m3:220 > #5 0x0035e935 in FileRd__Seek (rd=0x239f9b4, pos=0, dontBlock=0 '\0') at ../src/rw/FileRd.m3:83 > #6 0x00356338 in Rd__DoSeek (rd=0x239f9b4) at ../src/rw/Rd.m3:54 > #7 0x003560c1 in UnsafeRd__FastGetChar (rd=0x239f9b4) at ../src/rw/Rd.m3:43 > #8 0x00356018 in Rd__GetChar (rd=0x239f9b4) at ../src/rw/Rd.m3:34 > #9 0x00316fbc in ProcUtils__SSApply (self=0x242f0f0) at ../src/ProcUtils.m3:54 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x20094a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20094a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 65 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 > #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 > #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 > #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 > #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 > #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 > #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 > #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 > #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 > #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 > #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 > #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 > #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 > #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 > #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 > #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #33 0x9713885d in _pthread_start () > #34 0x971386e2 in thread_start () > > Thread 64 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 > #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 > #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 > #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 > #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 > #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 > #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 > #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 > #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 > #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 > #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 > #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #28 0x9713885d in _pthread_start () > #29 0x971386e2 in thread_start () > > Thread 60 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 > #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 > #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 > #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 59 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 > #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 > #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 > #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 > #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 > #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 > #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 > #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 > #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #19 0x9713885d in _pthread_start () > #20 0x971386e2 in thread_start () > > Thread 54 (process 32362): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003beb7e in ThreadInternal__Poll (fd=10, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:31 > #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x161dfc0, fd=10, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=10, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > #4 0x00346693 in TCP__GetBytesFD (t=0x22211d8, arr=0x22f400c, timeout=-1) at ../src/POSIX/TCP.m3:326 > #5 0x00348786 in ConnRW__RdSeek (rd=0x2221260, pos=267, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 > #6 0x003591ce in Rd__GetLine (rd=0x2221260) at ../src/rw/Rd.m3:426 > #7 0x002b2826 in TWSTester__RApply (cl=0x2221290) at ../src/TWSTester.m3:382 > #8 0x003c0ea5 in ThreadPThread__RunThread (me=0x161dfc0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #9 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161dfc0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #10 0x9713885d in _pthread_start () > #11 0x971386e2 in thread_start () > > Thread 53 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161deb0, mutex=0x161e1c0, m3timeout=1294411605.506855) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x161e160, n=0.5, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=0.5) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x00297efc in PMTWS__TSCApply (cl=0x2221088) at ../src/PMTWS.m3:229 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e160) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e160) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 52 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 > #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 > #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 > #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #14 0x9713885d in _pthread_start () > #15 0x971386e2 in thread_start () > > Thread 51 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 > #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 > #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 > #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 > #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #14 0x9713885d in _pthread_start () > #15 0x971386e2 in thread_start () > > Thread 50 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2005ac0, mutex=0x20059b0, m3timeout=1294411629.006319) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x2005a60, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000e162d in DBTable_gcoms_aux_ordrMonitor__ApplyC (cl=0x229a528) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2005a60) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2005a60) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 49 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2005a40, mutex=0x20058e0, m3timeout=1294411606.0014169) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x20059e0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000e357e in DBTable_gcoms_aux_ordrMonitor__CleanerApply (cl=0x229a720) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x20059e0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20059e0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 48 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161de60, mutex=0x161aa50, m3timeout=1294411629.003248) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x161aae0, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000d2f00 in DBTable_gcoms_fillMonitor__ApplyC (cl=0x229a258) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161aae0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161aae0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 47 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161ac10, mutex=0x1625c10, m3timeout=1294411605.9982891) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x161aa80, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000d50b3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=0x229a450) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161aa80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161aa80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 46 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2004440, mutex=0x2004410, m3timeout=1294411678.997467) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x20043b0, n=100, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=100) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000da48e in DBTable_gcoms_aux_instrumentMonitor__ApplyC (cl=0x1711268) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x20043b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20043b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 45 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x20038d0, mutex=0x2004380, m3timeout=1294411605.9944479) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x2004320, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000dc415 in DBTable_gcoms_aux_instrumentMonitor__CleanerApply (cl=0x1711460) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2004320) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2004320) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 44 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x20071d0, mutex=0x20070e0, m3timeout=1294411678.9916439) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x2007170, n=100, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=100) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x224daf0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007170) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007170) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 43 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x20046e0, mutex=0x2006f50, m3timeout=1294411605.83337) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x2007110, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x224dce8) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007110) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007110) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 42 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161d830, mutex=0x161d780, m3timeout=1294411678.981461) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x161dae0, n=100, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=100) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x224d768) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161dae0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161dae0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 41 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161d7e0, mutex=0x161da50, m3timeout=1294411605.8302381) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x161da80, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x224d960) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161da80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161da80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 40 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161d940, mutex=0x161d910, m3timeout=1294411678.8294799) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x161d8b0, n=100, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=100) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000c4b88 in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=0x224d348) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161d8b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161d8b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 39 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x16262c0, mutex=0x161d750, m3timeout=1294411605.8264539) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x161d850, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000c6a9a in DBTable_gcoms_ordr_statusMonitor__CleanerApply (cl=0x224d540) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161d850) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161d850) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 38 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2003bc0, mutex=0x2003cd0, m3timeout=1294411628.744529) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x2003c70, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000b4d70 in DBTable_gcoms_strategyMonitor__ApplyC (cl=0x228c348) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2003c70) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2003c70) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 37 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2003ba0, mutex=0x2003be0, m3timeout=1294411605.7216971) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x2003c10, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000b6cc1 in DBTable_gcoms_strategyMonitor__CleanerApply (cl=0x228c538) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2003c10) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2003c10) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 36 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x16256b0, mutex=0x16255a0, m3timeout=1294411628.815861) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x1625650, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x228c080) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x1625650) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1625650) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 35 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x1625630, mutex=0x1625570, m3timeout=1294411605.7159209) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x16255d0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x228c270) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x16255d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x16255d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 34 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2003a30, mutex=0x20031e0, m3timeout=1294411628.7167931) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x20039d0, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000d2f00 in DBTable_gcoms_fillMonitor__ApplyC (cl=0x2255d40) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x20039d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20039d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 33 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x20034c0, mutex=0x20038a0, m3timeout=1294411605.7081449) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x2003970, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000d50b3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=0x2255f30) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2003970) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2003970) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 32 (process 32362): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003beb7e in ThreadInternal__Poll (fd=9, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:31 > #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x2003780, fd=9, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=9, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > #4 0x00346693 in TCP__GetBytesFD (t=0x227c15c, arr=0x227600c, timeout=-1) at ../src/POSIX/TCP.m3:326 > #5 0x00348786 in ConnRW__RdSeek (rd=0x227a010, pos=0, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 > #6 0x003591ce in Rd__GetLine (rd=0x227a010) at ../src/rw/Rd.m3:426 > #7 0x002678d9 in UpdateMonitor__InApplyP (cl=0x227a040) at ../src/UpdateMonitor.m3:240 > #8 0x003c0ea5 in ThreadPThread__RunThread (me=0x2003780) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #9 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2003780) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #10 0x9713885d in _pthread_start () > #11 0x971386e2 in thread_start () > > Thread 31 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2003420, j=0x2003720) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x20036c0, m=0x227c220, c=0x227c22c, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x227c220, c=0x227c22c) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002674cc in UpdateMonitor__OutApplyP (p=0x227c17c) at ../src/UpdateMonitor.m3:178 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x20036c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20036c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 30 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x161a290, j=0x1625020) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x1624fc0, m=0x2255ac0, c=0x2255af4, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x2255ac0, c=0x2255af4) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x0026a003 in DesynchronizedDB__PApply (p=0x2255b04) at ../src/DesynchronizedDB.m3:216 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x1624fc0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1624fc0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 29 (process 32362): > #0 0x9716c1d6 in __wait4 () > #1 0x9716c1c9 in waitpid$UNIX2003 () > #2 0x003c50d5 in Uexec__waitpid (i=32392, j=0xb0e36b7c, k=0) at ../src/unix/Common/Uexec.c:66 > #3 0x003c1d31 in SchedulerPosix__WaitProcess (pid=32392, status=0xb0e36b7c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 > #4 0x003536dc in Process__Wait (p=0x22585fc) at ../src/os/POSIX/ProcessPosixCommon.m3:275 > #5 0x003163ad in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:185 > #6 0x00316d6e in ProcUtils__Apply (self=0x2256284) at ../src/ProcUtils.m3:274 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x16251a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x16251a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 28 (process 32362): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003beb7e in ThreadInternal__Poll (fd=8, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:31 > #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x20030c0, fd=8, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=8, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > #4 0x00346693 in TCP__GetBytesFD (t=0x22562c4, arr=0x225e00c, timeout=-1) at ../src/POSIX/TCP.m3:326 > #5 0x00348786 in ConnRW__RdSeek (rd=0x2256318, pos=0, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 > #6 0x00356338 in Rd__DoSeek (rd=0x2256318) at ../src/rw/Rd.m3:54 > #7 0x003560c1 in UnsafeRd__FastGetChar (rd=0x2256318) at ../src/rw/Rd.m3:43 > #8 0x00356018 in Rd__GetChar (rd=0x2256318) at ../src/rw/Rd.m3:34 > #9 0x002c62c5 in ReadLine__ReadALine (t=0x225600c) at ../src/ReadLine.m3:151 > #10 0x002c877e in ReadLine__ReadLine (t=0x225600c) at ../src/ReadLine.m3:411 > #11 0x0023b1fb in SchemeReadLine__GetCh (p=0x2256348) at ../src/SchemeReadLine.m3:80 > #12 0x0025f4b3 in SchemeInputPort__NextToken (t=0x2256348, wx=0x22563cc) at ../src/SchemeInputPort.m3:309 > #13 0x0025eb94 in SchemeInputPort__Read (t=0x2256348) at ../src/SchemeInputPort.m3:177 > #14 0x0023ba70 in SchemeReadLine__MainLoop (rl=0x225600c, scm=0x22340d0) at ../src/SchemeReadLine.m3:146 > #15 0x00006c23 in Main__SCApply (c=0x2255620) at ../src/Main.m3:92 > #16 0x003c0ea5 in ThreadPThread__RunThread (me=0x20030c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #17 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20030c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #18 0x9713885d in _pthread_start () > #19 0x971386e2 in thread_start () > > Thread 27 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 26 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20011c0, j=0x2001e10) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2001db0, m=0x1738078, c=0x17380a8, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1738078, c=0x17380a8) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x0009e3d6 in GCOMSOrderStatus__Apply (cl=0x17380b8) at ../src/GCOMSOrderStatus.m3:166 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001db0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001db0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 25 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x1619840, j=0x1619920) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x161a170, m=0x15aab74, c=0x15aab80, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x15aab74, c=0x15aab80) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x000a4482 in GCOMSBusyOrders__Apply (cl=0x15aab90) at ../src/GCOMSBusyOrders.m3:63 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a170) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a170) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 24 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20011a0, j=0x2001170) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2001110, m=0x173e044, c=0x173e050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x173e044, c=0x173e050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0bace84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0bace84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x1594280) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15943b0) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001110) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001110) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 23 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20010f0, j=0x20010c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2001060, m=0x1724034, c=0x1724040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1724034, c=0x1724040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0b2ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0b2ae84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15940f0) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1594220) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001060) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001060) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 22 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2001040, j=0x2001010) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000fb0, m=0x1722034, c=0x1722040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1722034, c=0x1722040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0aa8e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0aa8e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15adb40) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad7cc) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000fb0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000fb0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 21 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000f90, j=0x2000f60) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000f00, m=0x1720034, c=0x1720040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1720034, c=0x1720040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0a26e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0a26e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15adae0) at ../src/SX.m3:151 > #9 0x0016017c in CurrencySXProxy__Apply (cl=0x15ad7b0) at ../I386_DARWIN/CurrencySXProxy.m3 => /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000f00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000f00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 20 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000ee0, j=0x2000eb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000e50, m=0x173c044, c=0x173c050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x173c044, c=0x173c050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb09a4e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb09a4e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad450) at ../src/SX.m3:151 > #9 0x002d3613 in BoolSXProxy__Apply (cl=0x15ad794) at ../I386_DARWIN/BoolSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000e50) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000e50) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 19 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000e30, j=0x2000e00) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000da0, m=0x171e034, c=0x171e040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x171e034, c=0x171e040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0922e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0922e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad3e8) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad778) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000da0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000da0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 18 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000d80, j=0x2000d50) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000cf0, m=0x1740044, c=0x1740050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1740044, c=0x1740050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb08a0e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb08a0e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad380) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad75c) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000cf0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000cf0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 17 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000cd0, j=0x2000ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000c40, m=0x1704044, c=0x1704050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1704044, c=0x1704050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb081ee84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb081ee84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad318) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad740) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000c40) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000c40) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 16 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000c20, j=0x2000bf0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000b90, m=0x1702044, c=0x1702050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1702044, c=0x1702050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb079ce84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb079ce84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad2b0) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad724) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000b90) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000b90) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 15 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000b70, j=0x2000b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000ae0, m=0x173a044, c=0x173a050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x173a044, c=0x173a050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb071ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb071ae84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad248) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad708) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000ae0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000ae0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 14 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000ac0, j=0x2000a90) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000a30, m=0x171a034, c=0x171a040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x171a034, c=0x171a040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0698e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0698e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad1e0) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad6ec) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000a30) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000a30) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 13 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000a10, j=0x20009e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000980, m=0x1718034, c=0x1718040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1718034, c=0x1718040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0616e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0616e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad618) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad6d0) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000980) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000980) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 12 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000960, j=0x2000930) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x20008d0, m=0x1716034, c=0x1716040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1716034, c=0x1716040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0594e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0594e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad5b0) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad6b4) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x20008d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20008d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 11 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20008b0, j=0x2000880) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000820, m=0x1714034, c=0x1714040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1714034, c=0x1714040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0512e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0512e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad548) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad698) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000820) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000820) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 10 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000800, j=0x20007d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000770, m=0x1712034, c=0x1712040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1712034, c=0x1712040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0490e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0490e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15acea8) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad67c) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000770) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000770) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 9 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000750, j=0x2000720) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x20006c0, m=0x15b6034, c=0x15b6040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x15b6034, c=0x15b6040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb040ee84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb040ee84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591ea8) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1591fd8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x20006c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20006c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 8 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20006a0, j=0x2000670) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000610, m=0x15b4034, c=0x15b4040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x15b4034, c=0x15b4040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb038ce84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb038ce84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591bf8) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1591d28) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000610) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000610) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 7 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20005f0, j=0x20005c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000560, m=0x15b2034, c=0x15b2040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x15b2034, c=0x15b2040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb030ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb030ae84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591a70) at ../src/SX.m3:151 > #9 0x0016017c in CurrencySXProxy__Apply (cl=0x1591b98) at ../I386_DARWIN/CurrencySXProxy.m3 => /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 6 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000540, j=0x2000510) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x20004b0, m=0x171c0c0, c=0x171c0cc, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x171c0c0, c=0x171c0cc) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0288e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0288e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591808) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1591938) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x20004b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20004b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 5 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000490, j=0x2000460) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000400, m=0x15b0034, c=0x15b0040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x15b0034, c=0x15b0040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0206e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0206e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591678) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15917a8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000400) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000400) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 4 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20003e0, j=0x20003b0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000350, m=0x15ae034, c=0x15ae040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x15ae034, c=0x15ae040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0184e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0184e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15914e8) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1591618) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000350) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000350) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 3 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000150, j=0x20002c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000260, m=0x159123c, c=0x159122c, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x159123c, c=0x159122c) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002ce79c in VarProxyDefs__NotifyApply (cl=0x1591248) at ../src/VarProxyDefs.m3:55 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000260) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000260) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 2 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 > #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 > #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 > #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 > #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > Thread 1 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x16076f0, j=0x16076c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x1607660, m=0x15ac4b0, c=0x242f190, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003c1499 in ThreadPThread__XJoin (self=0x1607660, t=0x242f174, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:513 > #6 0x003c15ae in Thread__Join (t=0x242f174) at ../src/thread/PTHREAD/ThreadPThread.m3:525 > #7 0x003158c9 in ProcUtils__Wait (c=0x242f0d4) at ../src/ProcUtils.m3:318 > #8 0x0024618a in SchemeCommandRunner__RealRunTimeoutCommandApply (proc=0x1738cc4, interp=0x2367eac, args=0x239bd88) at ../src/SchemeCommandRunner.m3:164 > #9 0x00245e07 in SchemeCommandRunner__RunTimeoutCommandApply (proc=0x1738cc4, interp=0x2367eac, args=0x239bd88) at ../src/SchemeCommandRunner.m3:129 > #10 0x00245405 in SchemeCommandRunner__RunCommandApply (proc=0x1738cc4, interp=0x2367eac, args=0x239bd70) at ../src/SchemeCommandRunner.m3:23 > #11 0x0025c183 in SchemePrimitive__EDApply (ed=0x1738340, t=0x236b540, interp=0x2367eac, args=0x239bd70) at ../src/SchemePrimitive.m3:207 > #12 0x00256d12 in SchemePrimitive__Prims (t=0x236b540, interp=0x2367eac, args=0x239bd70, x=0x239a328, y=0x239bd5c, free=0xbfffe82f) at ../src/SchemePrimitive.m3:580 > #13 0x0025bb2b in SchemePrimitive__Apply2 (t=0x236b540, interp=0x2367eac, a1=0x239a328, a2=0x239bd5c) at ../src/SchemePrimitive.m3:549 > #14 0x0024d640 in Scheme__EvalInternal (t=0x2367eac, x=0x239a288, env=0x239bce0) at ../src/Scheme.m3:585 > #15 0x0024d3a8 in Scheme__EvalInternal (t=0x2367eac, x=0x239a1d8, env=0x239bce0) at ../src/Scheme.m3:582 > #16 0x0024d82d in Scheme__Eval (t=0x2367eac, x=0x239b098, envP=0x2367ef4) at ../src/Scheme.m3:353 > #17 0x0024b005 in Scheme__EvalInGlobalEnv (t=0x2367eac, x=0x239b098) at ../src/Scheme.m3:603 > #18 0x0002aebc in SchemeCalculator__Calc (t=0x2367e9c, arr=0xbfffecdc) at ../src/SchemeCalculator.m3:61 > #19 0x0000cbd3 in EuroDriver__Loop (t=0x224da38) at ../src/EuroDriver.m3:289 > #20 0x00008820 in Main_M3 (mode=1) at ../src/Main.m3:268 > #21 0x003b465a in RTLinker__RunMainBody (m=0x59e4c0) at ../src/runtime/common/RTLinker.m3:406 > #22 0x003b3a8f in RTLinker__AddUnitI (m=0x59e4c0) at ../src/runtime/common/RTLinker.m3:113 > #23 0x003b3b13 in RTLinker__AddUnit (b=0x6c5d) at ../src/runtime/common/RTLinker.m3:122 > #24 0x000052ec in main (argc=19, argv=0xbffff1b4, envp=0xbffff204) at _m3main.c:16 > > Thread 75 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003ac2e3 in ThreadPThread__PThreadLockMutex (mutex=0x5d3ac0, line=1288, index=2) at ../src/thread/PTHREAD/ThreadPThread.m3:1262 > #4 0x003ac409 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1288 > #5 0x97137217 in _cthread_fork_prepare () > #6 0x97137155 in fork () > #7 0x0033bc4d in ProcessPosixCommon__Create_ForkExec (cmd=0x31e02ac, params=0x31e03c8, env=0x0, wd=0x53bf44, stdin=0x0, stdout=0x30e91cc, stderr=0x30ea700) at ../src/os/POSIX/ProcessPosixCommon.m3:75 > #8 0x0033d137 in Process__Create (cmd=0x31e02ac, params=0x31e03c8, env=0x0, wd=0x53bf44, stdin=0x0, stdout=0x30e91cc, stderr=0x30ea700) at ../src/os/POSIX/ProcessPosix.m3:21 > #9 0x002ffdbc in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > #10 0x003007c1 in ProcUtils__Apply (self=0x30eb88c) at ../src/ProcUtils.m3:274 > #11 0x003a9c5b in ThreadPThread__RunThread (me=0x161dd00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x003a998a in ThreadPThread__ThreadBase (param=0x161dd00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > Thread 74 (process 67010): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003a7b74 in ThreadInternal__Poll (fd=13, read=1, m3timeout=-1) at ../src/thread/Common/ThreadInternal.c:57 > #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x161dc50, fd=13, read=1 '\001', interval=-1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003aa6dc in SchedulerPosix__IOWait (fd=13, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 > #4 0x00338b5f in FilePosix__IntermittentRead (h=0x30ea6f0, b=0xb1ef8cf0, mayBlock=1 '\001') at ../src/os/POSIX/FilePosix.m3:220 > #5 0x00347c68 in FileRd__Seek (rd=0x30ea710, pos=0, dontBlock=0 '\0') at ../src/rw/FileRd.m3:83 > #6 0x0033f64d in Rd__DoSeek (rd=0x30ea710) at ../src/rw/Rd.m3:54 > #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=0x30ea710) at ../src/rw/Rd.m3:43 > #8 0x0033f32d in Rd__GetChar (rd=0x30ea710) at ../src/rw/Rd.m3:34 > #9 0x00300a0b in ProcUtils__SSApply (self=0x30eb854) at ../src/ProcUtils.m3:54 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161dc50) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161dc50) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 73 (process 67010): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003a7b74 in ThreadInternal__Poll (fd=11, read=1, m3timeout=-1) at ../src/thread/Common/ThreadInternal.c:57 > #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x161dbc0, fd=11, read=1 '\001', interval=-1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003aa6dc in SchedulerPosix__IOWait (fd=11, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 > #4 0x00338b5f in FilePosix__IntermittentRead (h=0x30e91bc, b=0xb1e76cf0, mayBlock=1 '\001') at ../src/os/POSIX/FilePosix.m3:220 > #5 0x00347c68 in FileRd__Seek (rd=0x30e91dc, pos=0, dontBlock=0 '\0') at ../src/rw/FileRd.m3:83 > #6 0x0033f64d in Rd__DoSeek (rd=0x30e91dc) at ../src/rw/Rd.m3:54 > #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=0x30e91dc) at ../src/rw/Rd.m3:43 > #8 0x0033f32d in Rd__GetChar (rd=0x30e91dc) at ../src/rw/Rd.m3:34 > #9 0x00300a0b in ProcUtils__SSApply (self=0x30eb81c) at ../src/ProcUtils.m3:54 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161dbc0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161dbc0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 72 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7ebe in ThreadPThread__InitMutex (m=0x31339fc, root=0x31339f8, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003a7f82 in ThreadPThread__LockMutex (m=0x31339f8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x0033f30b in Rd__GetChar (rd=0x31339f8) at ../src/rw/Rd.m3:33 > #6 0x0034dffd in Lex__Skip (rd=0x31339f8, cs=0x548018) at ../src/fmtlex/Lex.m3:46 > #7 0x003503c3 in Lex__ReadReal (rd=0x31339f8, sign=0xb1df47c3, digits=0xb1df47dc, digCnt=0xb1df47c8, exp=0xb1df47cc) at ../src/fmtlex/Lex.m3:569 > #8 0x00350ef5 in Lex__LongReal (rd=0x31339f8) at ../src/fmtlex/Lex.m3:662 > #9 0x003518f1 in Scan__LongReal (txt=0x25768e8) at ../src/fmtlex/Scan.m3:77 > #10 0x0024f849 in SchemeInputPort__NextToken (t=0x30d4aec, wx=0x31337e8) at ../src/SchemeInputPort.m3:439 > #11 0x0024fb9c in SchemeInputPort__ReadTail2 (t=0x30d4aec, wx=0x31337e8) at ../src/SchemeInputPort.m3:240 > #12 0x0024e100 in SchemeInputPort__Read (t=0x30d4aec) at ../src/SchemeInputPort.m3:179 > #13 0x0024e2bc in SchemeInputPort__Read (t=0x30d4aec) at ../src/SchemeInputPort.m3:191 > #14 0x0024fb73 in SchemeInputPort__ReadTail2 (t=0x30d4aec, wx=0x3133620) at ../src/SchemeInputPort.m3:240 > #15 0x0024e100 in SchemeInputPort__Read (t=0x30d4aec) at ../src/SchemeInputPort.m3:179 > #16 0x0024fb73 in SchemeInputPort__ReadTail2 (t=0x30d4aec, wx=0x3133548) at ../src/SchemeInputPort.m3:240 > #17 0x0024e100 in SchemeInputPort__Read (t=0x30d4aec) at ../src/SchemeInputPort.m3:179 > #18 0x0023c6cd in Scheme__LoadPort (t=0x30d018c, in=0x30d4aec) at ../src/Scheme.m3:317 > #19 0x002399e3 in Scheme__LoadRd (t=0x30d018c, rd=0x30d3cf0, fn=0x0) at ../src/Scheme.m3:174 > #20 0x0023d255 in Scheme__ReadInitialFiles (t=0x30d018c, files=0x46fc8c) at ../src/Scheme.m3:134 > #21 0x0023d5e7 in Scheme__Init2 (t=0x30d018c, input=0x20003b4, output=0x20013e8, files=0x46fc8c, env=0x0) at ../src/Scheme.m3:127 > #22 0x00239461 in Scheme__Init (t=0x30d018c, files=0x46fc8c, env=0x0) at ../src/Scheme.m3:102 > #23 0x00029420 in SchemeCalculator__Init (t=0x30d017c, code=0x263fccc) at ../src/SchemeCalculator.m3:28 > #24 0x0000deef in EuroDriver__OApply (cl=0x3241b88) at ../src/EuroDriver.m3:865 > #25 0x003a9c5b in ThreadPThread__RunThread (me=0x2307650) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #26 0x003a998a in ThreadPThread__ThreadBase (param=0x2307650) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #27 0x9713885d in _pthread_start () > #28 0x971386e2 in thread_start () > > Thread 71 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1345 > #4 0x003995a6 in RTHeapRep__RegisterFinalCleanup (r=0x31239f8, p=0x3a7d52) at ../src/runtime/common/RTCollector.m3:2148 > #5 0x003a7f1e in ThreadPThread__InitMutex (m=0x31239fc, root=0x31239f8, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > #6 0x003a7f82 in ThreadPThread__LockMutex (m=0x31239f8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #7 0x0033f30b in Rd__GetChar (rd=0x31239f8) at ../src/rw/Rd.m3:33 > #8 0x0034dffd in Lex__Skip (rd=0x31239f8, cs=0x548018) at ../src/fmtlex/Lex.m3:46 > #9 0x003503c3 in Lex__ReadReal (rd=0x31239f8, sign=0xb1d727c3, digits=0xb1d727dc, digCnt=0xb1d727c8, exp=0xb1d727cc) at ../src/fmtlex/Lex.m3:569 > #10 0x00350ef5 in Lex__LongReal (rd=0x31239f8) at ../src/fmtlex/Lex.m3:662 > #11 0x003518f1 in Scan__LongReal (txt=0x25768e8) at ../src/fmtlex/Scan.m3:77 > #12 0x0024f849 in SchemeInputPort__NextToken (t=0x3264aec, wx=0x31237e8) at ../src/SchemeInputPort.m3:439 > #13 0x0024fb9c in SchemeInputPort__ReadTail2 (t=0x3264aec, wx=0x31237e8) at ../src/SchemeInputPort.m3:240 > #14 0x0024e100 in SchemeInputPort__Read (t=0x3264aec) at ../src/SchemeInputPort.m3:179 > #15 0x0024e2bc in SchemeInputPort__Read (t=0x3264aec) at ../src/SchemeInputPort.m3:191 > #16 0x0024fb73 in SchemeInputPort__ReadTail2 (t=0x3264aec, wx=0x3123620) at ../src/SchemeInputPort.m3:240 > #17 0x0024e100 in SchemeInputPort__Read (t=0x3264aec) at ../src/SchemeInputPort.m3:179 > #18 0x0024fb73 in SchemeInputPort__ReadTail2 (t=0x3264aec, wx=0x3123548) at ../src/SchemeInputPort.m3:240 > #19 0x0024e100 in SchemeInputPort__Read (t=0x3264aec) at ../src/SchemeInputPort.m3:179 > #20 0x0023c6cd in Scheme__LoadPort (t=0x326018c, in=0x3264aec) at ../src/Scheme.m3:317 > #21 0x002399e3 in Scheme__LoadRd (t=0x326018c, rd=0x3263cf0, fn=0x0) at ../src/Scheme.m3:174 > #22 0x0023d255 in Scheme__ReadInitialFiles (t=0x326018c, files=0x46fc8c) at ../src/Scheme.m3:134 > #23 0x0023d5e7 in Scheme__Init2 (t=0x326018c, input=0x20003b4, output=0x20013e8, files=0x46fc8c, env=0x0) at ../src/Scheme.m3:127 > #24 0x00239461 in Scheme__Init (t=0x326018c, files=0x46fc8c, env=0x0) at ../src/Scheme.m3:102 > #25 0x00029420 in SchemeCalculator__Init (t=0x326017c, code=0x263fccc) at ../src/SchemeCalculator.m3:28 > #26 0x0000deef in EuroDriver__OApply (cl=0x3241af0) at ../src/EuroDriver.m3:865 > #27 0x003a9c5b in ThreadPThread__RunThread (me=0x23075c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #28 0x003a998a in ThreadPThread__ThreadBase (param=0x23075c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #29 0x9713885d in _pthread_start () > #30 0x971386e2 in thread_start () > > Thread 67 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7ebe in ThreadPThread__InitMutex (m=0x2686284, root=0x2686280, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003a7f82 in ThreadPThread__LockMutex (m=0x2686280) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x003a7d30 in Thread__Acquire (m=0x2686280) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #6 0x00343175 in RdClass__Lock (rd=0x2686280) at ../src/rw/Rd.m3:521 > #7 0x0024d9ef in SchemeInputPort__Lock (t=0x2686368) at ../src/SchemeInputPort.m3:72 > #8 0x0024e87d in SchemeInputPort__NextToken (t=0x2686368, wx=0x2686388) at ../src/SchemeInputPort.m3:299 > #9 0x0024e0bb in SchemeInputPort__Read (t=0x2686368) at ../src/SchemeInputPort.m3:177 > #10 0x00239a38 in Scheme__LoadEval (t=0x254018c, rd=0x2686280) at ../src/Scheme.m3:291 > #11 0x00239abd in Scheme__LoadEvalText (t=0x254018c, txt=0x263fccc) at ../src/Scheme.m3:306 > #12 0x00029574 in SchemeCalculator__Calc (t=0x254017c, arr=0xb1cf09e4) at ../src/SchemeCalculator.m3:47 > #13 0x0000ee50 in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > #14 0x0000e7d6 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > #15 0x000103ca in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > #16 0x0000e3a2 in EuroDriver__OApply (cl=0x3018bb0) at ../src/EuroDriver.m3:892 > #17 0x003a9c5b in ThreadPThread__RunThread (me=0x23054a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #18 0x003a998a in ThreadPThread__ThreadBase (param=0x23054a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #19 0x9713885d in _pthread_start () > #20 0x971386e2 in thread_start () > > Thread 66 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x230d020, j=0x2305470) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2305410, m=0x311a158, c=0x311a164, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x311a158, c=0x311a164) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb1c6ecb8, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb1c6ecb8, touched=0x0) at ../src/SX.m3:149 > #8 0x0001063a in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > #9 0x0000e3a2 in EuroDriver__OApply (cl=0x3018b18) at ../src/EuroDriver.m3:892 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2305410) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2305410) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 62 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x23019d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x31b1584) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x003a7d30 in Thread__Acquire (m=0x31b1584) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #5 0x002c5bb6 in SX__Lock (arr=0x327c430) at ../src/SX.m3:318 > #6 0x002c5496 in SXSelect__WaitE (on=0xb1beccb8, except=0x0, touched=0x0) at ../src/SX.m3:241 > #7 0x002c4acd in SXSelect__Wait (on=0xb1beccb8, touched=0x0) at ../src/SX.m3:149 > #8 0x0001063a in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > #9 0x0000e3a2 in EuroDriver__OApply (cl=0x21fcc00) at ../src/EuroDriver.m3:892 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x1626040) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x1626040) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 61 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7ebe in ThreadPThread__InitMutex (m=0x252c4b4, root=0x252c4b0, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003a7f82 in ThreadPThread__LockMutex (m=0x252c4b0) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x003a7d30 in Thread__Acquire (m=0x252c4b0) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #6 0x00343175 in RdClass__Lock (rd=0x252c4b0) at ../src/rw/Rd.m3:521 > #7 0x0024d9ef in SchemeInputPort__Lock (t=0x252c598) at ../src/SchemeInputPort.m3:72 > #8 0x0024e87d in SchemeInputPort__NextToken (t=0x252c598, wx=0x252c5b8) at ../src/SchemeInputPort.m3:299 > #9 0x0024e0bb in SchemeInputPort__Read (t=0x252c598) at ../src/SchemeInputPort.m3:177 > #10 0x00239a38 in Scheme__LoadEval (t=0x26f018c, rd=0x252c4b0) at ../src/Scheme.m3:291 > #11 0x00239abd in Scheme__LoadEvalText (t=0x26f018c, txt=0x263fccc) at ../src/Scheme.m3:306 > #12 0x00029574 in SchemeCalculator__Calc (t=0x26f017c, arr=0xb1b6a864) at ../src/SchemeCalculator.m3:47 > #13 0x0000ee50 in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > #14 0x0000e7d6 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > #15 0x000103ca in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > #16 0x0000e3a2 in EuroDriver__OApply (cl=0x21fcb68) at ../src/EuroDriver.m3:892 > #17 0x003a9c5b in ThreadPThread__RunThread (me=0x1625f80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #18 0x003a998a in ThreadPThread__ThreadBase (param=0x1625f80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #19 0x9713885d in _pthread_start () > #20 0x971386e2 in thread_start () > > Thread 54 (process 67010): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003a7b74 in ThreadInternal__Poll (fd=10, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:57 > #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x23071d0, fd=10, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=10, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > #4 0x003344ff in TCP__GetBytesFD (t=0x3050f80, arr=0x3053048, timeout=-1) at ../src/POSIX/TCP.m3:326 > #5 0x003365ce in ConnRW__RdSeek (rd=0x3053018, pos=390, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 > #6 0x003424e3 in Rd__GetLine (rd=0x3053018) at ../src/rw/Rd.m3:426 > #7 0x002a00d4 in TWSTester__RApply (cl=0x3055054) at ../src/TWSTester.m3:382 > #8 0x003a9c5b in ThreadPThread__RunThread (me=0x23071d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #9 0x003a998a in ThreadPThread__ThreadBase (param=0x23071d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #10 0x9713885d in _pthread_start () > #11 0x971386e2 in thread_start () > > Thread 53 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x1621150, mutex=0x1621120, m3timeout=1294537044.5119109) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x16210c0, n=0.5, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=0.5) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x00286610 in PMTWS__TSCApply (cl=0x3050e30) at ../src/PMTWS.m3:229 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x16210c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x16210c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 52 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1345 > #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x1621054) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x0038f2c7 in RTAllocator__GetTracedObj (def=0x5d6bf4) at ../src/runtime/common/RTAllocator.m3:224 > #6 0x0038ed60 in RTHooks__AllocateTracedObj (defn=0x5d6bf4) at ../src/runtime/common/RTAllocator.m3:122 > #7 0x003bc686 in RTHooks__Concat (t=0x3240a08, u=0x52c460) at ../src/text/TextCat.m3:28 > #8 0x0029e655 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > #9 0x0029ea07 in TWSTester__ReqMktData (t=0x30505a8, tickerId=4, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > #10 0x002aa233 in TWSTestBridge__MreqMktData (t=0x30505a8, tickerId=4, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > #11 0x00286034 in PMTWS__TSCApply (cl=0x3050dec) at ../src/PMTWS.m3:210 > #12 0x003a9c5b in ThreadPThread__RunThread (me=0x1621010) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #13 0x003a998a in ThreadPThread__ThreadBase (param=0x1621010) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #14 0x9713885d in _pthread_start () > #15 0x971386e2 in thread_start () > > Thread 51 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1345 > #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x1620ed4) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x0038f048 in RTAllocator__GetTracedRef (def=0x5711e0) at ../src/runtime/common/RTAllocator.m3:202 > #6 0x0038ed2f in RTHooks__AllocateTracedRef (defn=0x5711e0) at ../src/runtime/common/RTAllocator.m3:115 > #7 0x000a8f49 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x328f110, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > #8 0x000a5ecc in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x26608c0, res=0x328f110) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > #9 0x00085c9f in GCOMSPortfolio__Lock (t=0x2660590) at ../src/GCOMSPortfolio.m3:94 > #10 0x000288d9 in SXPortfolio__Scan (t=0x300c578) at ../src/SXPortfolio.m3:47 > #11 0x0002920d in SXPortfolio__Apply (cl=0x3050324) at ../src/SXPortfolio.m3:113 > #12 0x003a9c5b in ThreadPThread__RunThread (me=0x1620e90) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #13 0x003a998a in ThreadPThread__ThreadBase (param=0x1620e90) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #14 0x9713885d in _pthread_start () > #15 0x971386e2 in thread_start () > > Thread 50 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4ad944, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 > #5 0x000d9ad8 in DBTable_gcoms_aux_ordrMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #6 0x000d9cdf in DBTable_gcoms_aux_ordrMonitor__CheckForNew (cl=0x300c218) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #7 0x000d9a01 in DBTable_gcoms_aux_ordrMonitor__Sync (cl=0x300c218) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #8 0x000d9588 in DBTable_gcoms_aux_ordrMonitor__ApplyC (cl=0x300c218) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #9 0x003a9c5b in ThreadPThread__RunThread (me=0x1620d80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #10 0x003a998a in ThreadPThread__ThreadBase (param=0x1620d80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #11 0x9713885d in _pthread_start () > #12 0x971386e2 in thread_start () > > Thread 49 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x1620d60, mutex=0x1620cd0, m3timeout=1294537044.970454) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x1620d00, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000db5a3 in DBTable_gcoms_aux_ordrMonitor__CleanerApply (cl=0x300c410) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1620d00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1620d00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 48 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4aa228, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 > #5 0x000cb8aa in DBTable_gcoms_fillMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #6 0x000cbbf5 in DBTable_gcoms_fillMonitor__CheckForNew (cl=0x300bf48) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #7 0x000cb7d3 in DBTable_gcoms_fillMonitor__Sync (cl=0x300bf48) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #8 0x000cb35a in DBTable_gcoms_fillMonitor__ApplyC (cl=0x300bf48) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #9 0x003a9c5b in ThreadPThread__RunThread (me=0x1620b50) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #10 0x003a998a in ThreadPThread__ThreadBase (param=0x1620b50) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #11 0x9713885d in _pthread_start () > #12 0x971386e2 in thread_start () > > Thread 47 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x16243d0, mutex=0x1620ac0, m3timeout=1294537044.9675839) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x1620af0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000cd5e3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=0x300c140) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1620af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1620af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 46 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4abd98, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 > #5 0x000d2b9a in DBTable_gcoms_aux_instrumentMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #6 0x000d2dbf in DBTable_gcoms_aux_instrumentMonitor__CheckForNew (cl=0x30091c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #7 0x000d2ac3 in DBTable_gcoms_aux_instrumentMonitor__Sync (cl=0x30091c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #8 0x000d264a in DBTable_gcoms_aux_instrumentMonitor__ApplyC (cl=0x30091c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #9 0x003a9c5b in ThreadPThread__RunThread (me=0x2306710) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #10 0x003a998a in ThreadPThread__ThreadBase (param=0x2306710) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #11 0x9713885d in _pthread_start () > #12 0x971386e2 in thread_start () > > Thread 45 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x230b2d0, mutex=0x2306680, m3timeout=1294537044.960629) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x23066b0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000d469b in DBTable_gcoms_aux_instrumentMonitor__CleanerApply (cl=0x30093c0) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x23066b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x23066b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 44 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a159c, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 > #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=0x3205b38) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=0x3205b38) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x3205b38) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #9 0x003a9c5b in ThreadPThread__RunThread (me=0x230b000) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #10 0x003a998a in ThreadPThread__ThreadBase (param=0x230b000) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #11 0x9713885d in _pthread_start () > #12 0x971386e2 in thread_start () > > Thread 43 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x230afe0, mutex=0x230af20, m3timeout=1294537044.8138101) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x230af80, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x3205d30) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x230af80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x230af80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 42 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a159c, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 > #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=0x32057b0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=0x32057b0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x32057b0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #9 0x003a9c5b in ThreadPThread__RunThread (me=0x230aca0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #10 0x003a998a in ThreadPThread__ThreadBase (param=0x230aca0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #11 0x9713885d in _pthread_start () > #12 0x971386e2 in thread_start () > > Thread 41 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x2301860, mutex=0x230ab40, m3timeout=1294537044.8138311) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x230aba0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x32059a8) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x230aba0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x230aba0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 40 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a6b9c, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 > #5 0x000bd587 in DBTable_gcoms_ordr_statusMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #6 0x000bd76e in DBTable_gcoms_ordr_statusMonitor__CheckForNew (cl=0x3205390) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #7 0x000bd4b0 in DBTable_gcoms_ordr_statusMonitor__Sync (cl=0x3205390) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #8 0x000bd037 in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=0x3205390) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #9 0x003a9c5b in ThreadPThread__RunThread (me=0x1621f10) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #10 0x003a998a in ThreadPThread__ThreadBase (param=0x1621f10) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #11 0x9713885d in _pthread_start () > #12 0x971386e2 in thread_start () > > Thread 39 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x16242f0, mutex=0x1621ee0, m3timeout=1294537044.8137701) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x1622280, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000bf010 in DBTable_gcoms_ordr_statusMonitor__CleanerApply (cl=0x3205588) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1622280) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1622280) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 38 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a3144, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 > #5 0x000adb3f in DBTable_gcoms_strategyMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #6 0x000add46 in DBTable_gcoms_strategyMonitor__CheckForNew (cl=0x2660b88) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #7 0x000ada68 in DBTable_gcoms_strategyMonitor__Sync (cl=0x2660b88) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #8 0x000ad5ef in DBTable_gcoms_strategyMonitor__ApplyC (cl=0x2660b88) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #9 0x003a9c5b in ThreadPThread__RunThread (me=0x161b820) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #10 0x003a998a in ThreadPThread__ThreadBase (param=0x161b820) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #11 0x9713885d in _pthread_start () > #12 0x971386e2 in thread_start () > > Thread 37 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x2306160, mutex=0x2305f70, m3timeout=1294537044.6482379) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x2306100, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000af60a in DBTable_gcoms_strategyMonitor__CleanerApply (cl=0x2660d78) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x2306100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x2306100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 36 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a159c, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 > #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=0x26608c0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=0x26608c0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x26608c0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #9 0x003a9c5b in ThreadPThread__RunThread (me=0x2305e30) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #10 0x003a998a in ThreadPThread__ThreadBase (param=0x2305e30) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #11 0x9713885d in _pthread_start () > #12 0x971386e2 in thread_start () > > Thread 35 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x2305dd0, mutex=0x2305c40, m3timeout=1294537044.6481991) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x2305d70, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x2660ab0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x2305d70) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x2305d70) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 34 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1345 > #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=32, dataAlignment=4, thread=0x1623e04) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x0038f2c7 in RTAllocator__GetTracedObj (def=0x5c87d4) at ../src/runtime/common/RTAllocator.m3:224 > #6 0x0038ed60 in RTHooks__AllocateTracedObj (defn=0x5c87d4) at ../src/runtime/common/RTAllocator.m3:122 > #7 0x00260a50 in DatabaseUtils__FilterUnprintable (t=0x4aa228) at ../src/DatabaseUtils.m3:124 > #8 0x0026b6ae in UnsafeDatabase__ExecM (t=0x2660178, query=0x4aa228, busyWait=0 '\0', abortConnectionOnFail=1 '\001') at ../src/UnsafeDatabase.m3:217 > #9 0x0026baa5 in UnsafeDatabase__TExecM (t=0x2660178, query=0x4aa228, busyWait=0 '\0', abortConnectionOnFail=1 '\001') at ../src/UnsafeDatabase.m3:258 > #10 0x002587f9 in DesynchronizedDB__SExec (t=0x26602c4, query=0x4aa228, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:126 > #11 0x000cb8aa in DBTable_gcoms_fillMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #12 0x000cbbf5 in DBTable_gcoms_fillMonitor__CheckForNew (cl=0x26605f8) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #13 0x000cb7d3 in DBTable_gcoms_fillMonitor__Sync (cl=0x26605f8) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #14 0x000cb35a in DBTable_gcoms_fillMonitor__ApplyC (cl=0x26605f8) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #15 0x003a9c5b in ThreadPThread__RunThread (me=0x1623dc0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #16 0x003a998a in ThreadPThread__ThreadBase (param=0x1623dc0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #17 0x9713885d in _pthread_start () > #18 0x971386e2 in thread_start () > > Thread 33 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x1623da0, mutex=0x1623640, m3timeout=1294537044.6482589) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x1623d40, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000cd5e3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=0x26607e8) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1623d40) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1623d40) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 32 (process 67010): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003a7b74 in ThreadInternal__Poll (fd=9, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:57 > #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x1623c00, fd=9, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=9, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > #4 0x003344ff in TCP__GetBytesFD (t=0x267015c, arr=0x2690040, timeout=-1) at ../src/POSIX/TCP.m3:326 > #5 0x003365ce in ConnRW__RdSeek (rd=0x2690010, pos=0, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 > #6 0x003424e3 in Rd__GetLine (rd=0x2690010) at ../src/rw/Rd.m3:426 > #7 0x00256bb0 in UpdateMonitor__InApplyP (cl=0x269204c) at ../src/UpdateMonitor.m3:240 > #8 0x003a9c5b in ThreadPThread__RunThread (me=0x1623c00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #9 0x003a998a in ThreadPThread__ThreadBase (param=0x1623c00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #10 0x9713885d in _pthread_start () > #11 0x971386e2 in thread_start () > > Thread 31 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x1623470, j=0x1623ba0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x1623b40, m=0x2670220, c=0x267022c, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2670220, c=0x267022c) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002567b1 in UpdateMonitor__OutApplyP (p=0x267017c) at ../src/UpdateMonitor.m3:178 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1623b40) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1623b40) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 30 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23016c0, j=0x2305a80) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2305a20, m=0x2660378, c=0x26603ac, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2660378, c=0x26603ac) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x00259145 in DesynchronizedDB__PApply (p=0x26603bc) at ../src/DesynchronizedDB.m3:216 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x2305a20) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x2305a20) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 29 (process 67010): > #0 0x9716c1d6 in __wait4 () > #1 0x9716c1c9 in waitpid$UNIX2003 () > #2 0x003add58 in Uexec__waitpid (i=67040, j=0xb0e36b4c, k=0) at ../src/unix/Common/Uexec.c:67 > #3 0x003aaa51 in SchedulerPosix__WaitProcess (pid=67040, status=0xb0e36b4c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 > #4 0x0033ca19 in Process__Wait (p=0x2650590) at ../src/os/POSIX/ProcessPosixCommon.m3:275 > #5 0x002ffdf6 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:185 > #6 0x003007c1 in ProcUtils__Apply (self=0x2640284) at ../src/ProcUtils.m3:274 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x16233b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x16233b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 28 (process 67010): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003a7b74 in ThreadInternal__Poll (fd=7, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:57 > #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x1623300, fd=7, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=7, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > #4 0x003344ff in TCP__GetBytesFD (t=0x26402c4, arr=0x2642358, timeout=-1) at ../src/POSIX/TCP.m3:326 > #5 0x003365ce in ConnRW__RdSeek (rd=0x2642328, pos=0, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 > #6 0x0033f64d in Rd__DoSeek (rd=0x2642328) at ../src/rw/Rd.m3:54 > #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=0x2642328) at ../src/rw/Rd.m3:43 > #8 0x0033f32d in Rd__GetChar (rd=0x2642328) at ../src/rw/Rd.m3:34 > #9 0x002b26e9 in ReadLine__ReadALine (t=0x264000c) at ../src/ReadLine.m3:151 > #10 0x002b4a56 in ReadLine__ReadLine (t=0x264000c) at ../src/ReadLine.m3:411 > #11 0x0022a383 in SchemeReadLine__GetCh (p=0x2644364) at ../src/SchemeReadLine.m3:80 > #12 0x0024e942 in SchemeInputPort__NextToken (t=0x2644364, wx=0x26443e8) at ../src/SchemeInputPort.m3:309 > #13 0x0024e0bb in SchemeInputPort__Read (t=0x2644364) at ../src/SchemeInputPort.m3:177 > #14 0x0022abaa in SchemeReadLine__MainLoop (rl=0x264000c, scm=0x256b9e4) at ../src/SchemeReadLine.m3:146 > #15 0x00006bb7 in Main__SCApply (c=0x263fed0) at ../src/Main.m3:92 > #16 0x003a9c5b in ThreadPThread__RunThread (me=0x1623300) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #17 0x003a998a in ThreadPThread__ThreadBase (param=0x1623300) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #18 0x9713885d in _pthread_start () > #19 0x971386e2 in thread_start () > > Thread 27 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x161bd50) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x25400a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x002c77db in SXLongReal__Update (v=0x2540010, newValue=1293719775.9374268, when=1293719775.9374378) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > #5 0x002c7abe in SXLongReal__SetVar (v=0x2540010, newValue=1293719775.9374268, when=1293719775.9374378) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > #6 0x002eaaf7 in SXTimer__Loop (cl=0x21e11cc) at ../src/SXTimer.m3:64 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x161b610) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x161b610) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 26 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23016a0, j=0x2301670) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2301610, m=0x2114828, c=0x2114858, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2114828, c=0x2114858) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x000974c8 in GCOMSOrderStatus__Apply (cl=0x2114868) at ../src/GCOMSOrderStatus.m3:166 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x2301610) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x2301610) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 25 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300540, j=0x2301580) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x23015b0, m=0x211476c, c=0x2114778, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x211476c, c=0x2114778) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x0009d268 in GCOMSBusyOrders__Apply (cl=0x2114788) at ../src/GCOMSBusyOrders.m3:63 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x23015b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x23015b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 24 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300d90, j=0x2300d60) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300d00, m=0x21d0044, c=0x21d0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x21d0044, c=0x21d0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0bace84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0bace84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2111418) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2111548) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300d00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300d00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 23 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300ce0, j=0x2300cb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300c50, m=0x21c0044, c=0x21c0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x21c0044, c=0x21c0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0b2ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0b2ae84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2111288) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x21113b8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300c50) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300c50) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 22 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300c30, j=0x2300c00) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300ba0, m=0x21b0044, c=0x21b0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x21b0044, c=0x21b0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0aa8e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0aa8e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110fd8) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2111108) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300ba0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300ba0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 21 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300b80, j=0x2300b50) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300af0, m=0x21a0044, c=0x21a0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x21a0044, c=0x21a0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0a26e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0a26e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110e50) at ../src/SX.m3:151 > #9 0x00163596 in CurrencySXProxy__Apply (cl=0x2110f78) at ../I386_DARWIN/CurrencySXProxy.m3 => /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 20 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300a10, j=0x23009e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300980, m=0x2190044, c=0x2190050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2190044, c=0x2190050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb09a4e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb09a4e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110b48) at ../src/SX.m3:151 > #9 0x002bf3d5 in BoolSXProxy__Apply (cl=0x2110c70) at ../I386_DARWIN/BoolSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300980) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300980) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 19 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300960, j=0x2300930) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x23008d0, m=0x2180044, c=0x2180050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2180044, c=0x2180050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0922e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0922e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x21109b8) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2110ae8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x23008d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x23008d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 18 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23008b0, j=0x2300880) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300820, m=0x2170044, c=0x2170050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2170044, c=0x2170050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb08a0e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb08a0e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110828) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2110958) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300820) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300820) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 17 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300800, j=0x23007d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300770, m=0x2160044, c=0x2160050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2160044, c=0x2160050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb081ee84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb081ee84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110698) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x21107c8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300770) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300770) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 16 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300750, j=0x2300720) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x23006c0, m=0x2150044, c=0x2150050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2150044, c=0x2150050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb079ce84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb079ce84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110508) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2110638) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x23006c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x23006c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 15 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23006a0, j=0x2300670) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300610, m=0x2140044, c=0x2140050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2140044, c=0x2140050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb071ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb071ae84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110378) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x21104a8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300610) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300610) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 14 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161af10, j=0x161aee0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x161ae80, m=0x2130044, c=0x2130050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2130044, c=0x2130050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0698e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0698e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x21101e8) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2110318) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161ae80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161ae80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 13 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23005f0, j=0x23005c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300560, m=0x2120044, c=0x2120050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2120044, c=0x2120050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0616e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0616e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x20c0c40) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x21100ac) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 12 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23004c0, j=0x2300490) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300430, m=0x2080044, c=0x2080050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2080044, c=0x2080050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0594e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0594e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x20c0ab0) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x20c0be0) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300430) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300430) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 11 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300410, j=0x23003e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300380, m=0x20f0044, c=0x20f0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x20f0044, c=0x20f0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0512e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0512e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x20c0920) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x20c0a50) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300380) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300380) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 10 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161aad0, j=0x161aaa0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x161aa40, m=0x20b0044, c=0x20b0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x20b0044, c=0x20b0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0490e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0490e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020e88) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020fb8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161aa40) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161aa40) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 9 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23002a0, j=0x2300270) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300210, m=0x2090044, c=0x2090050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2090044, c=0x2090050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb040ee84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb040ee84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020cf8) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020e28) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300210) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300210) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 8 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a9c0, j=0x161a990) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x161a930, m=0x20e0034, c=0x20e0040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x20e0034, c=0x20e0040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb038ce84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb038ce84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020a48) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020b78) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a930) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a930) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 7 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a910, j=0x161a8e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x161a880, m=0x20a0034, c=0x20a0040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x20a0034, c=0x20a0040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb030ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb030ae84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x20208c0) at ../src/SX.m3:151 > #9 0x00163596 in CurrencySXProxy__Apply (cl=0x20209e8) at ../I386_DARWIN/CurrencySXProxy.m3 => /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a880) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a880) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 6 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a860, j=0x161a830) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x161a7d0, m=0x2050044, c=0x2050050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2050044, c=0x2050050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0288e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0288e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020658) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020788) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a7d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a7d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 5 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a7b0, j=0x161a780) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x161a720, m=0x2040044, c=0x2040050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2040044, c=0x2040050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0206e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0206e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x20204c8) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x20205f8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a720) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a720) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 4 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a290, j=0x161a6f0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x161a690, m=0x2030044, c=0x2030050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2030044, c=0x2030050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0184e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0184e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020338) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020468) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a690) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a690) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 3 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x1619840, j=0x161a600) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x161a230, m=0x202008c, c=0x202007c, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x202008c, c=0x202007c) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002ba948 in VarProxyDefs__NotifyApply (cl=0x2020098) at ../src/VarProxyDefs.m3:55 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x161a230) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x161a230) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 2 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7ebe in ThreadPThread__InitMutex (m=0x20100ac, root=0x20100a8, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003a7f82 in ThreadPThread__LockMutex (m=0x20100a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x0033f30b in Rd__GetChar (rd=0x20100a8) at ../src/rw/Rd.m3:33 > #6 0x0034dffd in Lex__Skip (rd=0x20100a8, cs=0x548018) at ../src/fmtlex/Lex.m3:46 > #7 0x003503c3 in Lex__ReadReal (rd=0x20100a8, sign=0xb00809e3, digits=0xb00809fc, digCnt=0xb00809e8, exp=0xb00809ec) at ../src/fmtlex/Lex.m3:569 > #8 0x00350ef5 in Lex__LongReal (rd=0x20100a8) at ../src/fmtlex/Lex.m3:662 > #9 0x003518f1 in Scan__LongReal (txt=0x201007c) at ../src/fmtlex/Scan.m3:77 > #10 0x0030ef75 in XTime__ClApply (cl=0x2004624) at ../src/XTime.m3:185 > #11 0x003a9c5b in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x003a998a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > Thread 1 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x16076f0, j=0x16076c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x1607660, m=0x2000084, c=0x30eb8bc, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003aa1f3 in ThreadPThread__XJoin (self=0x1607660, t=0x30eb8a0, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:513 > #6 0x003aa2f5 in Thread__Join (t=0x30eb8a0) at ../src/thread/PTHREAD/ThreadPThread.m3:525 > #7 0x002ff2b8 in ProcUtils__Wait (c=0x30eb800) at ../src/ProcUtils.m3:318 > #8 0x00234ebd in SchemeCommandRunner__RealRunTimeoutCommandApply (proc=0x21e0b44, interp=0x3241ec4, args=0x30e775c) at ../src/SchemeCommandRunner.m3:164 > #9 0x00234b4f in SchemeCommandRunner__RunTimeoutCommandApply (proc=0x21e0b44, interp=0x3241ec4, args=0x30e775c) at ../src/SchemeCommandRunner.m3:129 > #10 0x00234217 in SchemeCommandRunner__RunCommandApply (proc=0x21e0b44, interp=0x3241ec4, args=0x30e7744) at ../src/SchemeCommandRunner.m3:23 > #11 0x0024b81b in SchemePrimitive__EDApply (ed=0x21e01c0, t=0x3245844, interp=0x3241ec4, args=0x30e7744) at ../src/SchemePrimitive.m3:207 > #12 0x00246509 in SchemePrimitive__Prims (t=0x3245844, interp=0x3241ec4, args=0x30e7744, x=0x30e5cfc, y=0x30e7730, free=0xbfffea1f) at ../src/SchemePrimitive.m3:580 > #13 0x0024b1cb in SchemePrimitive__Apply2 (t=0x3245844, interp=0x3241ec4, a1=0x30e5cfc, a2=0x30e7730) at ../src/SchemePrimitive.m3:549 > #14 0x0023c16f in Scheme__EvalInternal (t=0x3241ec4, x=0x30e5c5c, env=0x30e76b4) at ../src/Scheme.m3:585 > #15 0x0023bedf in Scheme__EvalInternal (t=0x3241ec4, x=0x30e5bac, env=0x30e76b4) at ../src/Scheme.m3:582 > #16 0x0023c35e in Scheme__Eval (t=0x3241ec4, x=0x30e6a6c, envP=0x3241f0c) at ../src/Scheme.m3:353 > #17 0x00239bcf in Scheme__EvalInGlobalEnv (t=0x3241ec4, x=0x30e6a6c) at ../src/Scheme.m3:603 > #18 0x0002972b in SchemeCalculator__Calc (t=0x3241eb4, arr=0xbfffee3c) at ../src/SchemeCalculator.m3:61 > #19 0x0000c8af in EuroDriver__Loop (t=0x3205a80) at ../src/EuroDriver.m3:289 > #20 0x00008781 in Main_M3 (mode=1) at ../src/Main.m3:268 > #21 0x0039d83d in RTLinker__RunMainBody (m=0x55e420) at ../src/runtime/common/RTLinker.m3:406 > #22 0x0039cc99 in RTLinker__AddUnitI (m=0x55e420) at ../src/runtime/common/RTLinker.m3:113 > #23 0x0039cd1a in RTLinker__AddUnit (b=0x6be3) at ../src/runtime/common/RTLinker.m3:122 > #24 0x0000528c in main (argc=19, argv=0xbffff330, envp=0xbffff380) at _m3main.c:16 From mika at async.caltech.edu Sun Jan 9 02:50:40 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Sat, 08 Jan 2011 17:50:40 -0800 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: References: <0A37C595-C896-4B66-9EDF-61BB30645321@cs.purdue.edu> , <20110109014355.0A01F1A205B@async.async.caltech.edu> Message-ID: <20110109015040.F196E1A205B@async.async.caltech.edu> On the plus side, the compiler bug you thought you had fixed has indeed disappeared. Mika Jay K writes: > >Tony raised legit issue w/ my fix. I will try another very soon (tonight). > > >Index: ThreadPThread.m3 >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3= >=2Cv >retrieving revision 1.247 >diff -u -r1.247 ThreadPThread.m3 >--- ThreadPThread.m3=A0=A0=A0 9 Jan 2011 00:36:07 -0000=A0=A0=A0 1.247 >+++ ThreadPThread.m3=A0=A0=A0 9 Jan 2011 01:14:16 -0000 >@@ -1283=2C10 +1283=2C10 @@ >=A0=A0=A0=A0=A0=A0 cond: Condition=3B >=A0=A0 BEGIN >=A0=A0=A0=A0 Acquire(joinMu)=3B >-=A0=A0=A0 LockHeap()=3B >=A0=A0=A0=A0 FOR i :=3D FIRST(locks) TO LAST(locks) DO >=A0=A0=A0=A0=A0=A0 PThreadLockMutex(locks[i]=2C ThisLine()=2C i)=3B >=A0=A0=A0=A0 END=3B >+=A0=A0=A0 LockHeap()=3B >=A0=A0=A0=A0 (* Walk activations and lock all threads=2C conditions. >=A0=A0=A0=A0=A0 * NOTE: We have initMu=2C activeMu=2C so slots >=A0=A0=A0=A0=A0 * won't change=2C conditions and mutexes > > > >=A0- Jay > >---------------------------------------- >> To: hosking at cs.purdue.edu >> Date: Sat=2C 8 Jan 2011 17:43:55 -0800 >> From: mika at async.caltech.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? >> >> >> Well I spent the whole day figuring out how to update the compiler.. >> finally got everything working and I think this is with the very latest >> version (Jay just committed something two hours ago and it's in here). >> >> Or... wait.. did he go back a version and re-introduce the deadlock? >> That would explain why it's behaving the same way as it was before... >> >> Mika >> >> >> >> Thread 68 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613c20) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=3D0x613c20=2C lin= >e=3D1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 >> #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD= >/ThreadPThread.m3:1279 >> #5 0x97137217 in _cthread_fork_prepare () >> #6 0x97137155 in fork () >> #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=3D0x242c2ac=2C = >params=3D0x242c3ac=2C env=3D0x0=2C wd=3D0x57bf44=2C stdin=3D0x0=2C stdout= >=3D0x239f9a4=2C stderr=3D0x2433508) at ../src/os/POSIX/ProcessPosixCommon.m= >3:75 >> #8 0x00353de5 in Process__Create (cmd=3D0x242c2ac=2C params=3D0x242c3ac= >=2C env=3D0x0=2C wd=3D0x57bf44=2C stdin=3D0x0=2C stdout=3D0x239f9a4=2C stde= >rr=3D0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 >> #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:18= >0 >> #10 0x00316d6e in ProcUtils__Apply (self=3D0x242f160) at ../src/ProcUtils= >.m3:274 >> #11 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2009600) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2009600) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #13 0x9713885d in _pthread_start () >> #14 0x971386e2 in thread_start () >> >> Thread 67 (process 32362): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D13=2C read=3D1=2C m3timeout= >=3D-1) at ../src/thread/Common/ThreadInternal.c:31 >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x2009550=2C fd=3D13=2C r= >ead=3D1 '\001'=2C interval=3D-1=2C alertable=3D0 '\0') at ../src/thread/PTH= >READ/ThreadPThread.m3:627 >> #3 0x003c19a4 in SchedulerPosix__IOWait (fd=3D13=2C read=3D1 '\001'=2C ti= >meoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 >> #4 0x0034f862 in FilePosix__IntermittentRead (h=3D0x24334f8=2C b=3D0xb1df= >4cd0=2C mayBlock=3D1 '\001') at ../src/os/POSIX/FilePosix.m3:220 >> #5 0x0035e935 in FileRd__Seek (rd=3D0x2433518=2C pos=3D0=2C dontBlock=3D0= > '\0') at ../src/rw/FileRd.m3:83 >> #6 0x00356338 in Rd__DoSeek (rd=3D0x2433518) at ../src/rw/Rd.m3:54 >> #7 0x003560c1 in UnsafeRd__FastGetChar (rd=3D0x2433518) at ../src/rw/Rd.m= >3:43 >> #8 0x00356018 in Rd__GetChar (rd=3D0x2433518) at ../src/rw/Rd.m3:34 >> #9 0x00316fbc in ProcUtils__SSApply (self=3D0x242f128) at ../src/ProcUtil= >s.m3:54 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2009550) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2009550) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 66 (process 32362): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D11=2C read=3D1=2C m3timeout= >=3D-1) at ../src/thread/Common/ThreadInternal.c:31 >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x20094a0=2C fd=3D11=2C r= >ead=3D1 '\001'=2C interval=3D-1=2C alertable=3D0 '\0') at ../src/thread/PTH= >READ/ThreadPThread.m3:627 >> #3 0x003c19a4 in SchedulerPosix__IOWait (fd=3D11=2C read=3D1 '\001'=2C ti= >meoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 >> #4 0x0034f862 in FilePosix__IntermittentRead (h=3D0x239f994=2C b=3D0xb1d7= >2cd0=2C mayBlock=3D1 '\001') at ../src/os/POSIX/FilePosix.m3:220 >> #5 0x0035e935 in FileRd__Seek (rd=3D0x239f9b4=2C pos=3D0=2C dontBlock=3D0= > '\0') at ../src/rw/FileRd.m3:83 >> #6 0x00356338 in Rd__DoSeek (rd=3D0x239f9b4) at ../src/rw/Rd.m3:54 >> #7 0x003560c1 in UnsafeRd__FastGetChar (rd=3D0x239f9b4) at ../src/rw/Rd.m= >3:43 >> #8 0x00356018 in Rd__GetChar (rd=3D0x239f9b4) at ../src/rw/Rd.m3:34 >> #9 0x00316fbc in ProcUtils__SSApply (self=3D0x242f0f0) at ../src/ProcUtil= >s.m3:54 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20094a0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20094a0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 65 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613c20) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003beefd in ThreadPThread__InitMutex (m=3D0x242a6f8=2C root=3D0x242a= >6f4=2C Clean=3D0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >> #4 0x003befce in ThreadPThread__LockMutex (m=3D0x242a6f4) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #5 0x00355ff6 in Rd__GetChar (rd=3D0x242a6f4) at ../src/rw/Rd.m3:33 >> #6 0x00364b5d in Lex__Skip (rd=3D0x242a6f4=2C cs=3D0x587ff8) at ../src/fm= >tlex/Lex.m3:46 >> #7 0x00366e53 in Lex__ReadReal (rd=3D0x242a6f4=2C sign=3D0xb1cf0603=2C di= >gits=3D0xb1cf061c=2C digCnt=3D0xb1cf0608=2C exp=3D0xb1cf060c) at ../src/fmt= >lex/Lex.m3:569 >> #8 0x003678f0 in Lex__LongReal (rd=3D0x242a6f4) at ../src/fmtlex/Lex.m3:6= >62 >> #9 0x0036834e in Scan__LongReal (txt=3D0x1753494) at ../src/fmtlex/Scan.m= >3:77 >> #10 0x002603f5 in SchemeInputPort__NextToken (t=3D0x2380de4=2C wx=3D0x242= >a4a8) at ../src/SchemeInputPort.m3:439 >> #11 0x00260756 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x242= >a4a8) at ../src/SchemeInputPort.m3:240 >> #12 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= >nputPort.m3:179 >> #13 0x0025edad in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= >nputPort.m3:191 >> #14 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x242= >a40c) at ../src/SchemeInputPort.m3:240 >> #15 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= >nputPort.m3:179 >> #16 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x239= >ddc4) at ../src/SchemeInputPort.m3:240 >> #17 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= >nputPort.m3:179 >> #18 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x239= >dc4c) at ../src/SchemeInputPort.m3:240 >> #19 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= >nputPort.m3:179 >> #20 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x239= >da8c) at ../src/SchemeInputPort.m3:240 >> #21 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= >nputPort.m3:179 >> #22 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x239= >d9b4) at ../src/SchemeInputPort.m3:240 >> #23 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= >nputPort.m3:179 >> #24 0x0024db82 in Scheme__LoadPort (t=3D0x237018c=2C in=3D0x2380de4) at .= >./src/Scheme.m3:317 >> #25 0x0024ae56 in Scheme__LoadRd (t=3D0x237018c=2C rd=3D0x2379cfc=2C fn= >=3D0x0) at ../src/Scheme.m3:174 >> #26 0x0024e659 in Scheme__ReadInitialFiles (t=3D0x237018c=2C files=3D0x4a= >fc8c) at ../src/Scheme.m3:134 >> #27 0x0024ea46 in Scheme__Init2 (t=3D0x237018c=2C input=3D0x15ac4ec=2C ou= >tput=3D0x15ac514=2C files=3D0x4afc8c=2C env=3D0x0) at ../src/Scheme.m3:127 >> #28 0x0024a89a in Scheme__Init (t=3D0x237018c=2C files=3D0x4afc8c=2C env= >=3D0x0) at ../src/Scheme.m3:102 >> #29 0x0002abbc in SchemeCalculator__Init (t=3D0x237017c=2C code=3D0x22554= >1c) at ../src/SchemeCalculator.m3:28 >> #30 0x0000e373 in EuroDriver__OApply (cl=3D0x2367b70) at ../src/EuroDrive= >r.m3:865 >> #31 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2008b80) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #32 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2008b80) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #33 0x9713885d in _pthread_start () >> #34 0x971386e2 in thread_start () >> >> Thread 64 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613ca0) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= >.m3:1336 >> #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=3D0x2430f38=2C p=3D0x= >3bed6f) at ../src/runtime/common/RTCollector.m3:2148 >> #5 0x003bef65 in ThreadPThread__InitMutex (m=3D0x2430f3c=2C root=3D0x2430= >f38=2C Clean=3D0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 >> #6 0x003befce in ThreadPThread__LockMutex (m=3D0x2430f38) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #7 0x00355ff6 in Rd__GetChar (rd=3D0x2430f38) at ../src/rw/Rd.m3:33 >> #8 0x00364b5d in Lex__Skip (rd=3D0x2430f38=2C cs=3D0x587ff8) at ../src/fm= >tlex/Lex.m3:46 >> #9 0x00366e53 in Lex__ReadReal (rd=3D0x2430f38=2C sign=3D0xb1c6e7c3=2C di= >gits=3D0xb1c6e7dc=2C digCnt=3D0xb1c6e7c8=2C exp=3D0xb1c6e7cc) at ../src/fmt= >lex/Lex.m3:569 >> #10 0x003678f0 in Lex__LongReal (rd=3D0x2430f38) at ../src/fmtlex/Lex.m3:= >662 >> #11 0x0036834e in Scan__LongReal (txt=3D0x1753494) at ../src/fmtlex/Scan.= >m3:77 >> #12 0x002603f5 in SchemeInputPort__NextToken (t=3D0x237ede4=2C wx=3D0x243= >0e44) at ../src/SchemeInputPort.m3:439 >> #13 0x00260756 in SchemeInputPort__ReadTail2 (t=3D0x237ede4=2C wx=3D0x243= >0e44) at ../src/SchemeInputPort.m3:240 >> #14 0x0025ebdd in SchemeInputPort__Read (t=3D0x237ede4) at ../src/SchemeI= >nputPort.m3:179 >> #15 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x237ede4=2C wx=3D0x243= >0db0) at ../src/SchemeInputPort.m3:240 >> #16 0x0025ebdd in SchemeInputPort__Read (t=3D0x237ede4) at ../src/SchemeI= >nputPort.m3:179 >> #17 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x237ede4=2C wx=3D0x243= >0cd8) at ../src/SchemeInputPort.m3:240 >> #18 0x0025ebdd in SchemeInputPort__Read (t=3D0x237ede4) at ../src/SchemeI= >nputPort.m3:179 >> #19 0x0024db82 in Scheme__LoadPort (t=3D0x236e18c=2C in=3D0x237ede4) at .= >./src/Scheme.m3:317 >> #20 0x0024ae56 in Scheme__LoadRd (t=3D0x236e18c=2C rd=3D0x2377cfc=2C fn= >=3D0x0) at ../src/Scheme.m3:174 >> #21 0x0024e659 in Scheme__ReadInitialFiles (t=3D0x236e18c=2C files=3D0x4a= >fc8c) at ../src/Scheme.m3:134 >> #22 0x0024ea46 in Scheme__Init2 (t=3D0x236e18c=2C input=3D0x15ac4ec=2C ou= >tput=3D0x15ac514=2C files=3D0x4afc8c=2C env=3D0x0) at ../src/Scheme.m3:127 >> #23 0x0024a89a in Scheme__Init (t=3D0x236e18c=2C files=3D0x4afc8c=2C env= >=3D0x0) at ../src/Scheme.m3:102 >> #24 0x0002abbc in SchemeCalculator__Init (t=3D0x236e17c=2C code=3D0x22554= >1c) at ../src/SchemeCalculator.m3:28 >> #25 0x0000e373 in EuroDriver__OApply (cl=3D0x2367ad8) at ../src/EuroDrive= >r.m3:865 >> #26 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2008af0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #27 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2008af0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #28 0x9713885d in _pthread_start () >> #29 0x971386e2 in thread_start () >> >> Thread 60 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x2006bc0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003befff in ThreadPThread__LockMutex (m=3D0x22cc724) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x003bed47 in Thread__Acquire (m=3D0x22cc724) at ../src/thread/PTHREAD= >/ThreadPThread.m3:81 >> #5 0x002d9fb9 in SX__Lock (arr=3D0x235a9a4) at ../src/SX.m3:318 >> #6 0x002d983f in SXSelect__WaitE (on=3D0xb1beccd8=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:241 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb1beccd8=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDrive= >r.m3:832 >> #9 0x0000e830 in EuroDriver__OApply (cl=3D0x22aad10) at ../src/EuroDriver= >.m3:892 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2007080) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2007080) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 59 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613c20) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003beefd in ThreadPThread__InitMutex (m=3D0x2354a24=2C root=3D0x2354= >a20=2C Clean=3D0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >> #4 0x003befce in ThreadPThread__LockMutex (m=3D0x2354a20) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #5 0x003bed47 in Thread__Acquire (m=3D0x2354a20) at ../src/thread/PTHREAD= >/ThreadPThread.m3:81 >> #6 0x00359e60 in RdClass__Lock (rd=3D0x2354a20) at ../src/rw/Rd.m3:521 >> #7 0x0025e4c4 in SchemeInputPort__Lock (t=3D0x2354b08) at ../src/SchemeIn= >putPort.m3:72 >> #8 0x0025f3dc in SchemeInputPort__NextToken (t=3D0x2354b08=2C wx=3D0x2354= >b28) at ../src/SchemeInputPort.m3:299 >> #9 0x0025eb94 in SchemeInputPort__Read (t=3D0x2354b08) at ../src/SchemeIn= >putPort.m3:177 >> #10 0x0024aea9 in Scheme__LoadEval (t=3D0x224418c=2C rd=3D0x2354a20) at .= >./src/Scheme.m3:291 >> #11 0x0024af22 in Scheme__LoadEvalText (t=3D0x224418c=2C txt=3D0x225541c)= > at ../src/Scheme.m3:306 >> #12 0x0002ad28 in SchemeCalculator__Calc (t=3D0x224417c=2C arr=3D0xb1b6ab= >04) at ../src/SchemeCalculator.m3:47 >> #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/Eur= >oDriver.m3:564 >> #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/E= >uroDriver.m3:507 >> #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriv= >er.m3:795 >> #16 0x0000e830 in EuroDriver__OApply (cl=3D0x22aac78) at ../src/EuroDrive= >r.m3:892 >> #17 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2007020) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #18 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2007020) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #19 0x9713885d in _pthread_start () >> #20 0x971386e2 in thread_start () >> >> Thread 54 (process 32362): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D10=2C read=3D1=2C m3timeout= >=3D1) at ../src/thread/Common/ThreadInternal.c:31 >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x161dfc0=2C fd=3D10=2C r= >ead=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001= >') at ../src/thread/PTHREAD/ThreadPThread.m3:627 >> #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=3D10=2C read=3D1 '\001'= >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 >> #4 0x00346693 in TCP__GetBytesFD (t=3D0x22211d8=2C arr=3D0x22f400c=2C tim= >eout=3D-1) at ../src/POSIX/TCP.m3:326 >> #5 0x00348786 in ConnRW__RdSeek (rd=3D0x2221260=2C pos=3D267=2C dontBlock= >=3D0 '\0') at ../src/common/ConnRW.m3:69 >> #6 0x003591ce in Rd__GetLine (rd=3D0x2221260) at ../src/rw/Rd.m3:426 >> #7 0x002b2826 in TWSTester__RApply (cl=3D0x2221290) at ../src/TWSTester.m= >3:382 >> #8 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161dfc0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #9 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161dfc0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #10 0x9713885d in _pthread_start () >> #11 0x971386e2 in thread_start () >> >> Thread 53 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161deb0= >=2C mutex=3D0x161e1c0=2C m3timeout=3D1294411605.506855) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161e160=2C n=3D0.5=2C al= >ertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D0.5) at ../src/thread/PTHREAD/ThreadP= >Thread.m3:567 >> #6 0x00297efc in PMTWS__TSCApply (cl=3D0x2221088) at ../src/PMTWS.m3:229 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161e160) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161e160) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 52 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613ca0) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= >.m3:1336 >> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=3D24=2C dataAlignment= >=3D4=2C thread=3D0x161e144) at ../src/runtime/common/RTAllocator.m3:363 >> #5 0x003a5a99 in RTAllocator__GetTracedObj (def=3D0x616d54) at ../src/run= >time/common/RTAllocator.m3:224 >> #6 0x003a550f in RTHooks__AllocateTracedObj (defn=3D0x616d54) at ../src/r= >untime/common/RTAllocator.m3:122 >> #7 0x003d3c0e in RTHooks__Concat (t=3D0x23669ec=2C u=3D0x56c460) at ../sr= >c/text/TextCat.m3:28 >> #8 0x002b0dc2 in TWSTester__MakeString (contract=3D0xb19e4dc0) at ../src/= >TWSTester.m3:92 >> #9 0x002b11ac in TWSTester__ReqMktData (t=3D0x2220800=2C tickerId=3D3=2C = >contract=3D0xb19e4dc0) at ../src/TWSTester.m3:136 >> #10 0x002bccaf in TWSTestBridge__MreqMktData (t=3D0x2220800=2C tickerId= >=3D3=2C contract=3D0xb19e4dc0) at ../src/TWSTestBridge.m3 =3D> ../src/TWSBr= >idgeG.mg:580 >> #11 0x002978ec in PMTWS__TSCApply (cl=3D0x2221044) at ../src/PMTWS.m3:210 >> #12 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161e100) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161e100) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #14 0x9713885d in _pthread_start () >> #15 0x971386e2 in thread_start () >> >> Thread 51 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613ca0) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= >.m3:1336 >> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=3D136=2C dataAlignmen= >t=3D8=2C thread=3D0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 >> #5 0x003a581e in RTAllocator__GetTracedRef (def=3D0x5b1280) at ../src/run= >time/common/RTAllocator.m3:202 >> #6 0x003a54da in RTHooks__AllocateTracedRef (defn=3D0x5b1280) at ../src/r= >untime/common/RTAllocator.m3:115 >> #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=3D0x235f464=2C = >key=3D0xb1962d7c=2C val=3D0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_in= >strumentTbl.m3 =3D> /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 >> #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=3D0x228c080= >=2C res=3D0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 = >=3D> /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 >> #9 0x0008c6de in GCOMSPortfolio__Lock (t=3D0x2255cd8) at ../src/GCOMSPort= >folio.m3:94 >> #10 0x00029faa in SXPortfolio__Scan (t=3D0x229a888) at ../src/SXPortfolio= >.m3:47 >> #11 0x0002a998 in SXPortfolio__Apply (cl=3D0x222057c) at ../src/SXPortfol= >io.m3:113 >> #12 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x1626560) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x1626560) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #14 0x9713885d in _pthread_start () >> #15 0x971386e2 in thread_start () >> >> Thread 50 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2005ac0= >=2C mutex=3D0x20059b0=2C m3timeout=3D1294411629.006319) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2005a60=2C n=3D50=2C ale= >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= >eadPThread.m3:573 >> #6 0x000e162d in DBTable_gcoms_aux_ordrMonitor__ApplyC (cl=3D0x229a528) a= >t ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/calarm= >/ratsql/src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2005a60) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2005a60) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 49 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2005a40= >=2C mutex=3D0x20058e0=2C m3timeout=3D1294411606.0014169) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x20059e0=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000e357e in DBTable_gcoms_aux_ordrMonitor__CleanerApply (cl=3D0x229a= >720) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/= >calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20059e0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20059e0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 48 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161de60= >=2C mutex=3D0x161aa50=2C m3timeout=3D1294411629.003248) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161aae0=2C n=3D50=2C ale= >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= >eadPThread.m3:573 >> #6 0x000d2f00 in DBTable_gcoms_fillMonitor__ApplyC (cl=3D0x229a258) at ..= >/I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/= >src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161aae0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161aae0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 47 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161ac10= >=2C mutex=3D0x1625c10=2C m3timeout=3D1294411605.9982891) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161aa80=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000d50b3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=3D0x229a450)= > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= >atsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161aa80) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161aa80) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 46 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2004440= >=2C mutex=3D0x2004410=2C m3timeout=3D1294411678.997467) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x20043b0=2C n=3D100=2C al= >ertable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D100) at ../src/thread/PTHREAD/Th= >readPThread.m3:573 >> #6 0x000da48e in DBTable_gcoms_aux_instrumentMonitor__ApplyC (cl=3D0x1711= >268) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Users/m= >ika/t/calarm/ratsql/src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20043b0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20043b0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 45 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x20038d0= >=2C mutex=3D0x2004380=2C m3timeout=3D1294411605.9944479) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2004320=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000dc415 in DBTable_gcoms_aux_instrumentMonitor__CleanerApply (cl=3D= >0x1711460) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /U= >sers/mika/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2004320) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2004320) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 44 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x20071d0= >=2C mutex=3D0x20070e0=2C m3timeout=3D1294411678.9916439) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2007170=2C n=3D100=2C al= >ertable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D100) at ../src/thread/PTHREAD/Th= >readPThread.m3:573 >> #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x224daf0)= > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= >larm/ratsql/src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2007170) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2007170) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 43 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x20046e0= >=2C mutex=3D0x2006f50=2C m3timeout=3D1294411605.83337) at ../src/thread/PTH= >READ/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2007110=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x22= >4dce8) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= >a/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2007110) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2007110) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 42 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161d830= >=2C mutex=3D0x161d780=2C m3timeout=3D1294411678.981461) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161dae0=2C n=3D100=2C al= >ertable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D100) at ../src/thread/PTHREAD/Th= >readPThread.m3:573 >> #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x224d768)= > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= >larm/ratsql/src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161dae0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161dae0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 41 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161d7e0= >=2C mutex=3D0x161da50=2C m3timeout=3D1294411605.8302381) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161da80=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x22= >4d960) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= >a/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161da80) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161da80) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 40 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161d940= >=2C mutex=3D0x161d910=2C m3timeout=3D1294411678.8294799) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161d8b0=2C n=3D100=2C al= >ertable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D100) at ../src/thread/PTHREAD/Th= >readPThread.m3:573 >> #6 0x000c4b88 in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=3D0x224d348= >) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mika/t/= >calarm/ratsql/src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161d8b0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161d8b0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 39 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x16262c0= >=2C mutex=3D0x161d750=2C m3timeout=3D1294411605.8264539) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161d850=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000c6a9a in DBTable_gcoms_ordr_statusMonitor__CleanerApply (cl=3D0x2= >24d540) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/m= >ika/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161d850) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161d850) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 38 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2003bc0= >=2C mutex=3D0x2003cd0=2C m3timeout=3D1294411628.744529) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2003c70=2C n=3D50=2C ale= >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= >eadPThread.m3:573 >> #6 0x000b4d70 in DBTable_gcoms_strategyMonitor__ApplyC (cl=3D0x228c348) a= >t ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/calarm= >/ratsql/src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2003c70) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2003c70) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 37 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2003ba0= >=2C mutex=3D0x2003be0=2C m3timeout=3D1294411605.7216971) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2003c10=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000b6cc1 in DBTable_gcoms_strategyMonitor__CleanerApply (cl=3D0x228c= >538) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/= >calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2003c10) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2003c10) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 36 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x16256b0= >=2C mutex=3D0x16255a0=2C m3timeout=3D1294411628.815861) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x1625650=2C n=3D50=2C ale= >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= >eadPThread.m3:573 >> #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x228c080)= > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= >larm/ratsql/src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x1625650) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x1625650) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 35 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x1625630= >=2C mutex=3D0x1625570=2C m3timeout=3D1294411605.7159209) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x16255d0=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x22= >8c270) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= >a/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x16255d0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x16255d0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 34 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2003a30= >=2C mutex=3D0x20031e0=2C m3timeout=3D1294411628.7167931) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x20039d0=2C n=3D50=2C ale= >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= >eadPThread.m3:573 >> #6 0x000d2f00 in DBTable_gcoms_fillMonitor__ApplyC (cl=3D0x2255d40) at ..= >/I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/= >src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20039d0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20039d0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 33 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x20034c0= >=2C mutex=3D0x20038a0=2C m3timeout=3D1294411605.7081449) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2003970=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000d50b3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=3D0x2255f30)= > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= >atsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2003970) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2003970) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 32 (process 32362): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D9=2C read=3D1=2C m3timeout=3D= >1) at ../src/thread/Common/ThreadInternal.c:31 >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x2003780=2C fd=3D9=2C re= >ad=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001'= >) at ../src/thread/PTHREAD/ThreadPThread.m3:627 >> #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=3D9=2C read=3D1 '\001'= >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 >> #4 0x00346693 in TCP__GetBytesFD (t=3D0x227c15c=2C arr=3D0x227600c=2C tim= >eout=3D-1) at ../src/POSIX/TCP.m3:326 >> #5 0x00348786 in ConnRW__RdSeek (rd=3D0x227a010=2C pos=3D0=2C dontBlock= >=3D0 '\0') at ../src/common/ConnRW.m3:69 >> #6 0x003591ce in Rd__GetLine (rd=3D0x227a010) at ../src/rw/Rd.m3:426 >> #7 0x002678d9 in UpdateMonitor__InApplyP (cl=3D0x227a040) at ../src/Updat= >eMonitor.m3:240 >> #8 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2003780) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #9 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2003780) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #10 0x9713885d in _pthread_start () >> #11 0x971386e2 in thread_start () >> >> Thread 31 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2003420=2C j=3D0= >x2003720) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x20036c0=2C m=3D0x227c220= >=2C c=3D0x227c22c=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x227c220=2C c=3D0x227c22c) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002674cc in UpdateMonitor__OutApplyP (p=3D0x227c17c) at ../src/Updat= >eMonitor.m3:178 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20036c0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20036c0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 30 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x161a290=2C j=3D0= >x1625020) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x1624fc0=2C m=3D0x2255ac0= >=2C c=3D0x2255af4=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x2255ac0=2C c=3D0x2255af4) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x0026a003 in DesynchronizedDB__PApply (p=3D0x2255b04) at ../src/Desyn= >chronizedDB.m3:216 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x1624fc0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x1624fc0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 29 (process 32362): >> #0 0x9716c1d6 in __wait4 () >> #1 0x9716c1c9 in waitpid$UNIX2003 () >> #2 0x003c50d5 in Uexec__waitpid (i=3D32392=2C j=3D0xb0e36b7c=2C k=3D0) at= > ../src/unix/Common/Uexec.c:66 >> #3 0x003c1d31 in SchedulerPosix__WaitProcess (pid=3D32392=2C status=3D0xb= >0e36b7c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 >> #4 0x003536dc in Process__Wait (p=3D0x22585fc) at ../src/os/POSIX/Process= >PosixCommon.m3:275 >> #5 0x003163ad in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:18= >5 >> #6 0x00316d6e in ProcUtils__Apply (self=3D0x2256284) at ../src/ProcUtils.= >m3:274 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x16251a0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x16251a0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 28 (process 32362): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D8=2C read=3D1=2C m3timeout=3D= >1) at ../src/thread/Common/ThreadInternal.c:31 >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x20030c0=2C fd=3D8=2C re= >ad=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001'= >) at ../src/thread/PTHREAD/ThreadPThread.m3:627 >> #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=3D8=2C read=3D1 '\001'= >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 >> #4 0x00346693 in TCP__GetBytesFD (t=3D0x22562c4=2C arr=3D0x225e00c=2C tim= >eout=3D-1) at ../src/POSIX/TCP.m3:326 >> #5 0x00348786 in ConnRW__RdSeek (rd=3D0x2256318=2C pos=3D0=2C dontBlock= >=3D0 '\0') at ../src/common/ConnRW.m3:69 >> #6 0x00356338 in Rd__DoSeek (rd=3D0x2256318) at ../src/rw/Rd.m3:54 >> #7 0x003560c1 in UnsafeRd__FastGetChar (rd=3D0x2256318) at ../src/rw/Rd.m= >3:43 >> #8 0x00356018 in Rd__GetChar (rd=3D0x2256318) at ../src/rw/Rd.m3:34 >> #9 0x002c62c5 in ReadLine__ReadALine (t=3D0x225600c) at ../src/ReadLine.m= >3:151 >> #10 0x002c877e in ReadLine__ReadLine (t=3D0x225600c) at ../src/ReadLine.m= >3:411 >> #11 0x0023b1fb in SchemeReadLine__GetCh (p=3D0x2256348) at ../src/SchemeR= >eadLine.m3:80 >> #12 0x0025f4b3 in SchemeInputPort__NextToken (t=3D0x2256348=2C wx=3D0x225= >63cc) at ../src/SchemeInputPort.m3:309 >> #13 0x0025eb94 in SchemeInputPort__Read (t=3D0x2256348) at ../src/SchemeI= >nputPort.m3:177 >> #14 0x0023ba70 in SchemeReadLine__MainLoop (rl=3D0x225600c=2C scm=3D0x223= >40d0) at ../src/SchemeReadLine.m3:146 >> #15 0x00006c23 in Main__SCApply (c=3D0x2255620) at ../src/Main.m3:92 >> #16 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20030c0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #17 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20030c0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #18 0x9713885d in _pthread_start () >> #19 0x971386e2 in thread_start () >> >> Thread 27 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x161e470) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003befff in ThreadPThread__LockMutex (m=3D0x22440a4) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x002dbd63 in SXLongReal__Update (v=3D0x2244010=2C newValue=3D12937212= >30.087589=2C when=3D1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 =3D>= > ../src/SXType.mg:79 >> #5 0x002dc086 in SXLongReal__SetVar (v=3D0x2244010=2C newValue=3D12937212= >30.087589=2C when=3D1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 =3D>= > ../src/SXType.mg:98 >> #6 0x00300c16 in SXTimer__Loop (cl=3D0x173934c) at ../src/SXTimer.m3:64 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2001ec0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2001ec0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 26 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20011c0=2C j=3D0= >x2001e10) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2001db0=2C m=3D0x1738078= >=2C c=3D0x17380a8=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1738078=2C c=3D0x17380a8) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x0009e3d6 in GCOMSOrderStatus__Apply (cl=3D0x17380b8) at ../src/GCOMS= >OrderStatus.m3:166 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2001db0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2001db0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 25 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x1619840=2C j=3D0= >x1619920) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x161a170=2C m=3D0x15aab74= >=2C c=3D0x15aab80=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15aab74=2C c=3D0x15aab80) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x000a4482 in GCOMSBusyOrders__Apply (cl=3D0x15aab90) at ../src/GCOMSB= >usyOrders.m3:63 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161a170) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161a170) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 24 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20011a0=2C j=3D0= >x2001170) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2001110=2C m=3D0x173e044= >=2C c=3D0x173e050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x173e044=2C c=3D0x173e050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0bace84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0bace84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1594280) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15943b0) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2001110) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2001110) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 23 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20010f0=2C j=3D0= >x20010c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2001060=2C m=3D0x1724034= >=2C c=3D0x1724040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1724034=2C c=3D0x1724040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0b2ae84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0b2ae84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15940f0) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1594220) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2001060) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2001060) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 22 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2001040=2C j=3D0= >x2001010) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000fb0=2C m=3D0x1722034= >=2C c=3D0x1722040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1722034=2C c=3D0x1722040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0aa8e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0aa8e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15adb40) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad7cc) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000fb0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000fb0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 21 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000f90=2C j=3D0= >x2000f60) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000f00=2C m=3D0x1720034= >=2C c=3D0x1720040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1720034=2C c=3D0x1720040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0a26e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0a26e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15adae0) at ../src/SX.m3:151 >> #9 0x0016017c in CurrencySXProxy__Apply (cl=3D0x15ad7b0) at ../I386_DARWI= >N/CurrencySXProxy.m3 =3D> /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000f00) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000f00) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 20 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000ee0=2C j=3D0= >x2000eb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000e50=2C m=3D0x173c044= >=2C c=3D0x173c050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x173c044=2C c=3D0x173c050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb09a4e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb09a4e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad450) at ../src/SX.m3:151 >> #9 0x002d3613 in BoolSXProxy__Apply (cl=3D0x15ad794) at ../I386_DARWIN/Bo= >olSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000e50) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000e50) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 19 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000e30=2C j=3D0= >x2000e00) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000da0=2C m=3D0x171e034= >=2C c=3D0x171e040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x171e034=2C c=3D0x171e040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0922e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0922e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad3e8) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad778) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000da0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000da0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 18 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000d80=2C j=3D0= >x2000d50) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000cf0=2C m=3D0x1740044= >=2C c=3D0x1740050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1740044=2C c=3D0x1740050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb08a0e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb08a0e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad380) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad75c) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000cf0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000cf0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 17 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000cd0=2C j=3D0= >x2000ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000c40=2C m=3D0x1704044= >=2C c=3D0x1704050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1704044=2C c=3D0x1704050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb081ee84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb081ee84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad318) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad740) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000c40) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000c40) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 16 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000c20=2C j=3D0= >x2000bf0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000b90=2C m=3D0x1702044= >=2C c=3D0x1702050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1702044=2C c=3D0x1702050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb079ce84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb079ce84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad2b0) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad724) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000b90) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000b90) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 15 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000b70=2C j=3D0= >x2000b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000ae0=2C m=3D0x173a044= >=2C c=3D0x173a050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x173a044=2C c=3D0x173a050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb071ae84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb071ae84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad248) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad708) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000ae0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000ae0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 14 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000ac0=2C j=3D0= >x2000a90) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000a30=2C m=3D0x171a034= >=2C c=3D0x171a040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x171a034=2C c=3D0x171a040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0698e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0698e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad1e0) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad6ec) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000a30) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000a30) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 13 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000a10=2C j=3D0= >x20009e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000980=2C m=3D0x1718034= >=2C c=3D0x1718040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1718034=2C c=3D0x1718040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0616e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0616e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad618) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad6d0) at ../I386_DARWI= N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000980) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000980) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 12 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000960=2C j=3D0= >x2000930) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x20008d0=2C m=3D0x1716034= >=2C c=3D0x1716040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1716034=2C c=3D0x1716040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0594e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0594e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad5b0) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad6b4) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20008d0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20008d0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 11 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20008b0=2C j=3D0= >x2000880) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000820=2C m=3D0x1714034= >=2C c=3D0x1714040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1714034=2C c=3D0x1714040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0512e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0512e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad548) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad698) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000820) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000820) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 10 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000800=2C j=3D0= >x20007d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000770=2C m=3D0x1712034= >=2C c=3D0x1712040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1712034=2C c=3D0x1712040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0490e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0490e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15acea8) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad67c) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000770) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000770) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 9 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000750=2C j=3D0= >x2000720) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x20006c0=2C m=3D0x15b6034= >=2C c=3D0x15b6040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15b6034=2C c=3D0x15b6040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb040ee84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb040ee84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591ea8) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1591fd8) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20006c0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20006c0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 8 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20006a0=2C j=3D0= >x2000670) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000610=2C m=3D0x15b4034= >=2C c=3D0x15b4040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15b4034=2C c=3D0x15b4040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb038ce84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb038ce84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591bf8) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1591d28) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000610) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000610) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 7 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20005f0=2C j=3D0= >x20005c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000560=2C m=3D0x15b2034= >=2C c=3D0x15b2040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15b2034=2C c=3D0x15b2040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb030ae84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb030ae84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591a70) at ../src/SX.m3:151 >> #9 0x0016017c in CurrencySXProxy__Apply (cl=3D0x1591b98) at ../I386_DARWI= >N/CurrencySXProxy.m3 =3D> /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000560) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000560) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 6 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000540=2C j=3D0= >x2000510) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x20004b0=2C m=3D0x171c0c0= >=2C c=3D0x171c0cc=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x171c0c0=2C c=3D0x171c0cc) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0288e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0288e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591808) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1591938) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20004b0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20004b0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 5 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000490=2C j=3D0= >x2000460) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000400=2C m=3D0x15b0034= >=2C c=3D0x15b0040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15b0034=2C c=3D0x15b0040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0206e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0206e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591678) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15917a8) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000400) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000400) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 4 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20003e0=2C j=3D0= >x20003b0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000350=2C m=3D0x15ae034= >=2C c=3D0x15ae040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15ae034=2C c=3D0x15ae040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0184e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0184e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15914e8) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1591618) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000350) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000350) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 3 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000150=2C j=3D0= >x20002c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000260=2C m=3D0x159123c= >=2C c=3D0x159122c=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x159123c=2C c=3D0x159122c) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002ce79c in VarProxyDefs__NotifyApply (cl=3D0x1591248) at ../src/Var= >ProxyDefs.m3:55 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000260) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000260) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 2 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613c20) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003beefd in ThreadPThread__InitMutex (m=3D0x23480ac=2C root=3D0x2348= >0a8=2C Clean=3D0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >> #4 0x003befce in ThreadPThread__LockMutex (m=3D0x23480a8) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #5 0x00355ff6 in Rd__GetChar (rd=3D0x23480a8) at ../src/rw/Rd.m3:33 >> #6 0x00364b5d in Lex__Skip (rd=3D0x23480a8=2C cs=3D0x587ff8) at ../src/fm= >tlex/Lex.m3:46 >> #7 0x00366e53 in Lex__ReadReal (rd=3D0x23480a8=2C sign=3D0xb0080ca3=2C di= >gits=3D0xb0080cbc=2C digCnt=3D0xb0080ca8=2C exp=3D0xb0080cac) at ../src/fmt= >lex/Lex.m3:569 >> #8 0x003678f0 in Lex__LongReal (rd=3D0x23480a8) at ../src/fmtlex/Lex.m3:6= >62 >> #9 0x0036834e in Scan__LongReal (txt=3D0x234807c) at ../src/fmtlex/Scan.m= >3:77 >> #10 0x003260a0 in XTime__ClApply (cl=3D0x15971b8) at ../src/XTime.m3:185 >> #11 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161a0b0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161a0b0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #13 0x9713885d in _pthread_start () >> #14 0x971386e2 in thread_start () >> >> Thread 1 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x16076f0=2C j=3D0= >x16076c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x1607660=2C m=3D0x15ac4b0= >=2C c=3D0x242f190=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003c1499 in ThreadPThread__XJoin (self=3D0x1607660=2C t=3D0x242f174= >=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:513 >> #6 0x003c15ae in Thread__Join (t=3D0x242f174) at ../src/thread/PTHREAD/Th= >readPThread.m3:525 >> #7 0x003158c9 in ProcUtils__Wait (c=3D0x242f0d4) at ../src/ProcUtils.m3:3= >18 >> #8 0x0024618a in SchemeCommandRunner__RealRunTimeoutCommandApply (proc=3D= >0x1738cc4=2C interp=3D0x2367eac=2C args=3D0x239bd88) at ../src/SchemeComman= >dRunner.m3:164 >> #9 0x00245e07 in SchemeCommandRunner__RunTimeoutCommandApply (proc=3D0x17= >38cc4=2C interp=3D0x2367eac=2C args=3D0x239bd88) at ../src/SchemeCommandRun= >ner.m3:129 >> #10 0x00245405 in SchemeCommandRunner__RunCommandApply (proc=3D0x1738cc4= >=2C interp=3D0x2367eac=2C args=3D0x239bd70) at ../src/SchemeCommandRunner.m= >3:23 >> #11 0x0025c183 in SchemePrimitive__EDApply (ed=3D0x1738340=2C t=3D0x236b5= >40=2C interp=3D0x2367eac=2C args=3D0x239bd70) at ../src/SchemePrimitive.m3:= >207 >> #12 0x00256d12 in SchemePrimitive__Prims (t=3D0x236b540=2C interp=3D0x236= >7eac=2C args=3D0x239bd70=2C x=3D0x239a328=2C y=3D0x239bd5c=2C free=3D0xbfff= >e82f) at ../src/SchemePrimitive.m3:580 >> #13 0x0025bb2b in SchemePrimitive__Apply2 (t=3D0x236b540=2C interp=3D0x23= >67eac=2C a1=3D0x239a328=2C a2=3D0x239bd5c) at ../src/SchemePrimitive.m3:549 >> #14 0x0024d640 in Scheme__EvalInternal (t=3D0x2367eac=2C x=3D0x239a288=2C= > env=3D0x239bce0) at ../src/Scheme.m3:585 >> #15 0x0024d3a8 in Scheme__EvalInternal (t=3D0x2367eac=2C x=3D0x239a1d8=2C= > env=3D0x239bce0) at ../src/Scheme.m3:582 >> #16 0x0024d82d in Scheme__Eval (t=3D0x2367eac=2C x=3D0x239b098=2C envP=3D= >0x2367ef4) at ../src/Scheme.m3:353 >> #17 0x0024b005 in Scheme__EvalInGlobalEnv (t=3D0x2367eac=2C x=3D0x239b098= >) at ../src/Scheme.m3:603 >> #18 0x0002aebc in SchemeCalculator__Calc (t=3D0x2367e9c=2C arr=3D0xbfffec= >dc) at ../src/SchemeCalculator.m3:61 >> #19 0x0000cbd3 in EuroDriver__Loop (t=3D0x224da38) at ../src/EuroDriver.m= >3:289 >> #20 0x00008820 in Main_M3 (mode=3D1) at ../src/Main.m3:268 >> #21 0x003b465a in RTLinker__RunMainBody (m=3D0x59e4c0) at ../src/runtime/= >common/RTLinker.m3:406 >> #22 0x003b3a8f in RTLinker__AddUnitI (m=3D0x59e4c0) at ../src/runtime/com= >mon/RTLinker.m3:113 >> #23 0x003b3b13 in RTLinker__AddUnit (b=3D0x6c5d) at ../src/runtime/common= >/RTLinker.m3:122 >> #24 0x000052ec in main (argc=3D19=2C argv=3D0xbffff1b4=2C envp=3D0xbffff2= >04) at _m3main.c:16 >> >> Thread 75 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003ac2e3 in ThreadPThread__PThreadLockMutex (mutex=3D0x5d3ac0=2C lin= >e=3D1288=2C index=3D2) at ../src/thread/PTHREAD/ThreadPThread.m3:1262 >> #4 0x003ac409 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD= >/ThreadPThread.m3:1288 >> #5 0x97137217 in _cthread_fork_prepare () >> #6 0x97137155 in fork () >> #7 0x0033bc4d in ProcessPosixCommon__Create_ForkExec (cmd=3D0x31e02ac=2C = >params=3D0x31e03c8=2C env=3D0x0=2C wd=3D0x53bf44=2C stdin=3D0x0=2C stdout= >=3D0x30e91cc=2C stderr=3D0x30ea700) at ../src/os/POSIX/ProcessPosixCommon.m= >3:75 >> #8 0x0033d137 in Process__Create (cmd=3D0x31e02ac=2C params=3D0x31e03c8= >=2C env=3D0x0=2C wd=3D0x53bf44=2C stdin=3D0x0=2C stdout=3D0x30e91cc=2C stde= >rr=3D0x30ea700) at ../src/os/POSIX/ProcessPosix.m3:21 >> #9 0x002ffdbc in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:18= >0 >> #10 0x003007c1 in ProcUtils__Apply (self=3D0x30eb88c) at ../src/ProcUtils= >.m3:274 >> #11 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161dd00) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #12 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161dd00) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #13 0x9713885d in _pthread_start () >> #14 0x971386e2 in thread_start () >> >> Thread 74 (process 67010): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D13=2C read=3D1=2C m3timeout= >=3D-1) at ../src/thread/Common/ThreadInternal.c:57 >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x161dc50=2C fd=3D13=2C r= >ead=3D1 '\001'=2C interval=3D-1=2C alertable=3D0 '\0') at ../src/thread/PTH= >READ/ThreadPThread.m3:627 >> #3 0x003aa6dc in SchedulerPosix__IOWait (fd=3D13=2C read=3D1 '\001'=2C ti= >meoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 >> #4 0x00338b5f in FilePosix__IntermittentRead (h=3D0x30ea6f0=2C b=3D0xb1ef= >8cf0=2C mayBlock=3D1 '\001') at ../src/os/POSIX/FilePosix.m3:220 >> #5 0x00347c68 in FileRd__Seek (rd=3D0x30ea710=2C pos=3D0=2C dontBlock=3D0= > '\0') at ../src/rw/FileRd.m3:83 >> #6 0x0033f64d in Rd__DoSeek (rd=3D0x30ea710) at ../src/rw/Rd.m3:54 >> #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=3D0x30ea710) at ../src/rw/Rd.m= >3:43 >> #8 0x0033f32d in Rd__GetChar (rd=3D0x30ea710) at ../src/rw/Rd.m3:34 >> #9 0x00300a0b in ProcUtils__SSApply (self=3D0x30eb854) at ../src/ProcUtil= >s.m3:54 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161dc50) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161dc50) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 73 (process 67010): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D11=2C read=3D1=2C m3timeout= >=3D-1) at ../src/thread/Common/ThreadInternal.c:57 >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x161dbc0=2C fd=3D11=2C r= >ead=3D1 '\001'=2C interval=3D-1=2C alertable=3D0 '\0') at ../src/thread/PTH= >READ/ThreadPThread.m3:627 >> #3 0x003aa6dc in SchedulerPosix__IOWait (fd=3D11=2C read=3D1 '\001'=2C ti= >meoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 >> #4 0x00338b5f in FilePosix__IntermittentRead (h=3D0x30e91bc=2C b=3D0xb1e7= >6cf0=2C mayBlock=3D1 '\001') at ../src/os/POSIX/FilePosix.m3:220 >> #5 0x00347c68 in FileRd__Seek (rd=3D0x30e91dc=2C pos=3D0=2C dontBlock=3D0= > '\0') at ../src/rw/FileRd.m3:83 >> #6 0x0033f64d in Rd__DoSeek (rd=3D0x30e91dc) at ../src/rw/Rd.m3:54 >> #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=3D0x30e91dc) at ../src/rw/Rd.m= >3:43 >> #8 0x0033f32d in Rd__GetChar (rd=3D0x30e91dc) at ../src/rw/Rd.m3:34 >> #9 0x00300a0b in ProcUtils__SSApply (self=3D0x30eb81c) at ../src/ProcUtil= >s.m3:54 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161dbc0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161dbc0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 72 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7ebe in ThreadPThread__InitMutex (m=3D0x31339fc=2C root=3D0x3133= >9f8=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >> #4 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x31339f8) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #5 0x0033f30b in Rd__GetChar (rd=3D0x31339f8) at ../src/rw/Rd.m3:33 >> #6 0x0034dffd in Lex__Skip (rd=3D0x31339f8=2C cs=3D0x548018) at ../src/fm= >tlex/Lex.m3:46 >> #7 0x003503c3 in Lex__ReadReal (rd=3D0x31339f8=2C sign=3D0xb1df47c3=2C di= >gits=3D0xb1df47dc=2C digCnt=3D0xb1df47c8=2C exp=3D0xb1df47cc) at ../src/fmt= >lex/Lex.m3:569 >> #8 0x00350ef5 in Lex__LongReal (rd=3D0x31339f8) at ../src/fmtlex/Lex.m3:6= >62 >> #9 0x003518f1 in Scan__LongReal (txt=3D0x25768e8) at ../src/fmtlex/Scan.m= >3:77 >> #10 0x0024f849 in SchemeInputPort__NextToken (t=3D0x30d4aec=2C wx=3D0x313= >37e8) at ../src/SchemeInputPort.m3:439 >> #11 0x0024fb9c in SchemeInputPort__ReadTail2 (t=3D0x30d4aec=2C wx=3D0x313= >37e8) at ../src/SchemeInputPort.m3:240 >> #12 0x0024e100 in SchemeInputPort__Read (t=3D0x30d4aec) at ../src/SchemeI= >nputPort.m3:179 >> #13 0x0024e2bc in SchemeInputPort__Read (t=3D0x30d4aec) at ../src/SchemeI= >nputPort.m3:191 >> #14 0x0024fb73 in SchemeInputPort__ReadTail2 (t=3D0x30d4aec=2C wx=3D0x313= >3620) at ../src/SchemeInputPort.m3:240 >> #15 0x0024e100 in SchemeInputPort__Read (t=3D0x30d4aec) at ../src/SchemeI= >nputPort.m3:179 >> #16 0x0024fb73 in SchemeInputPort__ReadTail2 (t=3D0x30d4aec=2C wx=3D0x313= >3548) at ../src/SchemeInputPort.m3:240 >> #17 0x0024e100 in SchemeInputPort__Read (t=3D0x30d4aec) at ../src/SchemeI= >nputPort.m3:179 >> #18 0x0023c6cd in Scheme__LoadPort (t=3D0x30d018c=2C in=3D0x30d4aec) at .= >./src/Scheme.m3:317 >> #19 0x002399e3 in Scheme__LoadRd (t=3D0x30d018c=2C rd=3D0x30d3cf0=2C fn= >=3D0x0) at ../src/Scheme.m3:174 >> #20 0x0023d255 in Scheme__ReadInitialFiles (t=3D0x30d018c=2C files=3D0x46= >fc8c) at ../src/Scheme.m3:134 >> #21 0x0023d5e7 in Scheme__Init2 (t=3D0x30d018c=2C input=3D0x20003b4=2C ou= >tput=3D0x20013e8=2C files=3D0x46fc8c=2C env=3D0x0) at ../src/Scheme.m3:127 >> #22 0x00239461 in Scheme__Init (t=3D0x30d018c=2C files=3D0x46fc8c=2C env= >=3D0x0) at ../src/Scheme.m3:102 >> #23 0x00029420 in SchemeCalculator__Init (t=3D0x30d017c=2C code=3D0x263fc= >cc) at ../src/SchemeCalculator.m3:28 >> #24 0x0000deef in EuroDriver__OApply (cl=3D0x3241b88) at ../src/EuroDrive= >r.m3:865 >> #25 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2307650) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #26 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2307650) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #27 0x9713885d in _pthread_start () >> #28 0x971386e2 in thread_start () >> >> Thread 71 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3b40) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= >.m3:1345 >> #4 0x003995a6 in RTHeapRep__RegisterFinalCleanup (r=3D0x31239f8=2C p=3D0x= >3a7d52) at ../src/runtime/common/RTCollector.m3:2148 >> #5 0x003a7f1e in ThreadPThread__InitMutex (m=3D0x31239fc=2C root=3D0x3123= >9f8=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:106 >> #6 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x31239f8) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #7 0x0033f30b in Rd__GetChar (rd=3D0x31239f8) at ../src/rw/Rd.m3:33 >> #8 0x0034dffd in Lex__Skip (rd=3D0x31239f8=2C cs=3D0x548018) at ../src/fm= >tlex/Lex.m3:46 >> #9 0x003503c3 in Lex__ReadReal (rd=3D0x31239f8=2C sign=3D0xb1d727c3=2C di= >gits=3D0xb1d727dc=2C digCnt=3D0xb1d727c8=2C exp=3D0xb1d727cc) at ../src/fmt= >lex/Lex.m3:569 >> #10 0x00350ef5 in Lex__LongReal (rd=3D0x31239f8) at ../src/fmtlex/Lex.m3:= >662 >> #11 0x003518f1 in Scan__LongReal (txt=3D0x25768e8) at ../src/fmtlex/Scan.= >m3:77 >> #12 0x0024f849 in SchemeInputPort__NextToken (t=3D0x3264aec=2C wx=3D0x312= >37e8) at ../src/SchemeInputPort.m3:439 >> #13 0x0024fb9c in SchemeInputPort__ReadTail2 (t=3D0x3264aec=2C wx=3D0x312= >37e8) at ../src/SchemeInputPort.m3:240 >> #14 0x0024e100 in SchemeInputPort__Read (t=3D0x3264aec) at ../src/SchemeI= >nputPort.m3:179 >> #15 0x0024e2bc in SchemeInputPort__Read (t=3D0x3264aec) at ../src/SchemeI= >nputPort.m3:191 >> #16 0x0024fb73 in SchemeInputPort__ReadTail2 (t=3D0x3264aec=2C wx=3D0x312= >3620) at ../src/SchemeInputPort.m3:240 >> #17 0x0024e100 in SchemeInputPort__Read (t=3D0x3264aec) at ../src/SchemeI= >nputPort.m3:179 >> #18 0x0024fb73 in SchemeInputPort__ReadTail2 (t=3D0x3264aec=2C wx=3D0x312= >3548) at ../src/SchemeInputPort.m3:240 >> #19 0x0024e100 in SchemeInputPort__Read (t=3D0x3264aec) at ../src/SchemeI= >nputPort.m3:179 >> #20 0x0023c6cd in Scheme__LoadPort (t=3D0x326018c=2C in=3D0x3264aec) at .= >./src/Scheme.m3:317 >> #21 0x002399e3 in Scheme__LoadRd (t=3D0x326018c=2C rd=3D0x3263cf0=2C fn= >=3D0x0) at ../src/Scheme.m3:174 >> #22 0x0023d255 in Scheme__ReadInitialFiles (t=3D0x326018c=2C files=3D0x46= >fc8c) at ../src/Scheme.m3:134 >> #23 0x0023d5e7 in Scheme__Init2 (t=3D0x326018c=2C input=3D0x20003b4=2C ou= >tput=3D0x20013e8=2C files=3D0x46fc8c=2C env=3D0x0) at ../src/Scheme.m3:127 >> #24 0x00239461 in Scheme__Init (t=3D0x326018c=2C files=3D0x46fc8c=2C env= >=3D0x0) at ../src/Scheme.m3:102 >> #25 0x00029420 in SchemeCalculator__Init (t=3D0x326017c=2C code=3D0x263fc= >cc) at ../src/SchemeCalculator.m3:28 >> #26 0x0000deef in EuroDriver__OApply (cl=3D0x3241af0) at ../src/EuroDrive= >r.m3:865 >> #27 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23075c0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #28 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23075c0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #29 0x9713885d in _pthread_start () >> #30 0x971386e2 in thread_start () >> >> Thread 67 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7ebe in ThreadPThread__InitMutex (m=3D0x2686284=2C root=3D0x2686= >280=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >> #4 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x2686280) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #5 0x003a7d30 in Thread__Acquire (m=3D0x2686280) at ../src/thread/PTHREAD= >/ThreadPThread.m3:81 >> #6 0x00343175 in RdClass__Lock (rd=3D0x2686280) at ../src/rw/Rd.m3:521 >> #7 0x0024d9ef in SchemeInputPort__Lock (t=3D0x2686368) at ../src/SchemeIn= >putPort.m3:72 >> #8 0x0024e87d in SchemeInputPort__NextToken (t=3D0x2686368=2C wx=3D0x2686= >388) at ../src/SchemeInputPort.m3:299 >> #9 0x0024e0bb in SchemeInputPort__Read (t=3D0x2686368) at ../src/SchemeIn= >putPort.m3:177 >> #10 0x00239a38 in Scheme__LoadEval (t=3D0x254018c=2C rd=3D0x2686280) at .= >./src/Scheme.m3:291 >> #11 0x00239abd in Scheme__LoadEvalText (t=3D0x254018c=2C txt=3D0x263fccc)= > at ../src/Scheme.m3:306 >> #12 0x00029574 in SchemeCalculator__Calc (t=3D0x254017c=2C arr=3D0xb1cf09= >e4) at ../src/SchemeCalculator.m3:47 >> #13 0x0000ee50 in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/Eur= >oDriver.m3:564 >> #14 0x0000e7d6 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/E= >uroDriver.m3:507 >> #15 0x000103ca in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriv= >er.m3:795 >> #16 0x0000e3a2 in EuroDriver__OApply (cl=3D0x3018bb0) at ../src/EuroDrive= >r.m3:892 >> #17 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23054a0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #18 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23054a0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #19 0x9713885d in _pthread_start () >> #20 0x971386e2 in thread_start () >> >> Thread 66 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x230d020=2C j=3D0= >x2305470) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2305410=2C m=3D0x311a158= >=2C c=3D0x311a164=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x311a158=2C c=3D0x311a164) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb1c6ecb8=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb1c6ecb8=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x0001063a in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDrive= >r.m3:832 >> #9 0x0000e3a2 in EuroDriver__OApply (cl=3D0x3018b18) at ../src/EuroDriver= >.m3:892 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2305410) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2305410) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 62 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x23019d0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x31b1584) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x003a7d30 in Thread__Acquire (m=3D0x31b1584) at ../src/thread/PTHREAD= >/ThreadPThread.m3:81 >> #5 0x002c5bb6 in SX__Lock (arr=3D0x327c430) at ../src/SX.m3:318 >> #6 0x002c5496 in SXSelect__WaitE (on=3D0xb1beccb8=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:241 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb1beccb8=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x0001063a in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDrive= >r.m3:832 >> #9 0x0000e3a2 in EuroDriver__OApply (cl=3D0x21fcc00) at ../src/EuroDriver= >.m3:892 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1626040) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1626040) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 61 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7ebe in ThreadPThread__InitMutex (m=3D0x252c4b4=2C root=3D0x252c= >4b0=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >> #4 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x252c4b0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #5 0x003a7d30 in Thread__Acquire (m=3D0x252c4b0) at ../src/thread/PTHREAD= >/ThreadPThread.m3:81 >> #6 0x00343175 in RdClass__Lock (rd=3D0x252c4b0) at ../src/rw/Rd.m3:521 >> #7 0x0024d9ef in SchemeInputPort__Lock (t=3D0x252c598) at ../src/SchemeIn= >putPort.m3:72 >> #8 0x0024e87d in SchemeInputPort__NextToken (t=3D0x252c598=2C wx=3D0x252c= >5b8) at ../src/SchemeInputPort.m3:299 >> #9 0x0024e0bb in SchemeInputPort__Read (t=3D0x252c598) at ../src/SchemeIn= >putPort.m3:177 >> #10 0x00239a38 in Scheme__LoadEval (t=3D0x26f018c=2C rd=3D0x252c4b0) at .= >./src/Scheme.m3:291 >> #11 0x00239abd in Scheme__LoadEvalText (t=3D0x26f018c=2C txt=3D0x263fccc)= > at ../src/Scheme.m3:306 >> #12 0x00029574 in SchemeCalculator__Calc (t=3D0x26f017c=2C arr=3D0xb1b6a8= >64) at ../src/SchemeCalculator.m3:47 >> #13 0x0000ee50 in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/Eur= >oDriver.m3:564 >> #14 0x0000e7d6 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/E= >uroDriver.m3:507 >> #15 0x000103ca in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriv= >er.m3:795 >> #16 0x0000e3a2 in EuroDriver__OApply (cl=3D0x21fcb68) at ../src/EuroDrive= >r.m3:892 >> #17 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1625f80) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #18 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1625f80) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #19 0x9713885d in _pthread_start () >> #20 0x971386e2 in thread_start () >> >> Thread 54 (process 67010): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D10=2C read=3D1=2C m3timeout= >=3D1) at ../src/thread/Common/ThreadInternal.c:57 >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x23071d0=2C fd=3D10=2C r= >ead=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001= >') at ../src/thread/PTHREAD/ThreadPThread.m3:627 >> #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=3D10=2C read=3D1 '\001'= >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 >> #4 0x003344ff in TCP__GetBytesFD (t=3D0x3050f80=2C arr=3D0x3053048=2C tim= >eout=3D-1) at ../src/POSIX/TCP.m3:326 >> #5 0x003365ce in ConnRW__RdSeek (rd=3D0x3053018=2C pos=3D390=2C dontBlock= >=3D0 '\0') at ../src/common/ConnRW.m3:69 >> #6 0x003424e3 in Rd__GetLine (rd=3D0x3053018) at ../src/rw/Rd.m3:426 >> #7 0x002a00d4 in TWSTester__RApply (cl=3D0x3055054) at ../src/TWSTester.m= >3:382 >> #8 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23071d0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #9 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23071d0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #10 0x9713885d in _pthread_start () >> #11 0x971386e2 in thread_start () >> >> Thread 53 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x1621150= >=2C mutex=3D0x1621120=2C m3timeout=3D1294537044.5119109) at ../src/thread/P= >THREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x16210c0=2C n=3D0.5=2C al= >ertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D0.5) at ../src/thread/PTHREAD/ThreadP= >Thread.m3:567 >> #6 0x00286610 in PMTWS__TSCApply (cl=3D0x3050e30) at ../src/PMTWS.m3:229 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x16210c0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x16210c0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 52 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3b40) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= >.m3:1345 >> #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=3D24=2C dataAlignment= >=3D4=2C thread=3D0x1621054) at ../src/runtime/common/RTAllocator.m3:363 >> #5 0x0038f2c7 in RTAllocator__GetTracedObj (def=3D0x5d6bf4) at ../src/run= >time/common/RTAllocator.m3:224 >> #6 0x0038ed60 in RTHooks__AllocateTracedObj (defn=3D0x5d6bf4) at ../src/r= >untime/common/RTAllocator.m3:122 >> #7 0x003bc686 in RTHooks__Concat (t=3D0x3240a08=2C u=3D0x52c460) at ../sr= >c/text/TextCat.m3:28 >> #8 0x0029e655 in TWSTester__MakeString (contract=3D0xb19e4dc0) at ../src/= >TWSTester.m3:92 >> #9 0x0029ea07 in TWSTester__ReqMktData (t=3D0x30505a8=2C tickerId=3D4=2C = >contract=3D0xb19e4dc0) at ../src/TWSTester.m3:136 >> #10 0x002aa233 in TWSTestBridge__MreqMktData (t=3D0x30505a8=2C tickerId= >=3D4=2C contract=3D0xb19e4dc0) at ../src/TWSTestBridge.m3 =3D> ../src/TWSBr= >idgeG.mg:580 >> #11 0x00286034 in PMTWS__TSCApply (cl=3D0x3050dec) at ../src/PMTWS.m3:210 >> #12 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1621010) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #13 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1621010) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #14 0x9713885d in _pthread_start () >> #15 0x971386e2 in thread_start () >> >> Thread 51 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3b40) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= >.m3:1345 >> #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=3D136=2C dataAlignmen= >t=3D8=2C thread=3D0x1620ed4) at ../src/runtime/common/RTAllocator.m3:363 >> #5 0x0038f048 in RTAllocator__GetTracedRef (def=3D0x5711e0) at ../src/run= >time/common/RTAllocator.m3:202 >> #6 0x0038ed2f in RTHooks__AllocateTracedRef (defn=3D0x5711e0) at ../src/r= >untime/common/RTAllocator.m3:115 >> #7 0x000a8f49 in IntDBTable_gcoms_instrumentTbl__Put (tbl=3D0x328f110=2C = >key=3D0xb1962d7c=2C val=3D0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_in= >strumentTbl.m3 =3D> /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 >> #8 0x000a5ecc in DBTable_gcoms_instrumentMonitor__CopyC (cl=3D0x26608c0= >=2C res=3D0x328f110) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 = >=3D> /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 >> #9 0x00085c9f in GCOMSPortfolio__Lock (t=3D0x2660590) at ../src/GCOMSPort= >folio.m3:94 >> #10 0x000288d9 in SXPortfolio__Scan (t=3D0x300c578) at ../src/SXPortfolio= >.m3:47 >> #11 0x0002920d in SXPortfolio__Apply (cl=3D0x3050324) at ../src/SXPortfol= >io.m3:113 >> #12 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620e90) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #13 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620e90) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #14 0x9713885d in _pthread_start () >> #15 0x971386e2 in thread_start () >> >> Thread 50 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4ad9= >44=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= >25 >> #5 0x000d9ad8 in DBTable_gcoms_aux_ordrMonitor__DbNow (db=3D0x26602c4) at= > ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/calarm/= >ratsql/src/TableMonitor.mg:456 >> #6 0x000d9cdf in DBTable_gcoms_aux_ordrMonitor__CheckForNew (cl=3D0x300c2= >18) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/c= >alarm/ratsql/src/TableMonitor.mg:467 >> #7 0x000d9a01 in DBTable_gcoms_aux_ordrMonitor__Sync (cl=3D0x300c218) at = >../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/calarm/r= >atsql/src/TableMonitor.mg:445 >> #8 0x000d9588 in DBTable_gcoms_aux_ordrMonitor__ApplyC (cl=3D0x300c218) a= >t ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/calarm= >/ratsql/src/TableMonitor.mg:393 >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620d80) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620d80) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #11 0x9713885d in _pthread_start () >> #12 0x971386e2 in thread_start () >> >> Thread 49 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x1620d60= >=2C mutex=3D0x1620cd0=2C m3timeout=3D1294537044.970454) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x1620d00=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000db5a3 in DBTable_gcoms_aux_ordrMonitor__CleanerApply (cl=3D0x300c= >410) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/= >calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620d00) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620d00) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 48 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4aa2= >28=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= >25 >> #5 0x000cb8aa in DBTable_gcoms_fillMonitor__DbNow (db=3D0x26602c4) at ../= >I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/s= >rc/TableMonitor.mg:456 >> #6 0x000cbbf5 in DBTable_gcoms_fillMonitor__CheckForNew (cl=3D0x300bf48) = >at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ra= >tsql/src/TableMonitor.mg:467 >> #7 0x000cb7d3 in DBTable_gcoms_fillMonitor__Sync (cl=3D0x300bf48) at ../I= >386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/sr= >c/TableMonitor.mg:445 >> #8 0x000cb35a in DBTable_gcoms_fillMonitor__ApplyC (cl=3D0x300bf48) at ..= >/I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/= >src/TableMonitor.mg:393 >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620b50) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620b50) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #11 0x9713885d in _pthread_start () >> #12 0x971386e2 in thread_start () >> >> Thread 47 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x16243d0= >=2C mutex=3D0x1620ac0=2C m3timeout=3D1294537044.9675839) at ../src/thread/P= >THREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x1620af0=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000cd5e3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=3D0x300c140)= > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= >atsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620af0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620af0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 46 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4abd= >98=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= >25 >> #5 0x000d2b9a in DBTable_gcoms_aux_instrumentMonitor__DbNow (db=3D0x26602= >c4) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Users/mi= >ka/t/calarm/ratsql/src/TableMonitor.mg:456 >> #6 0x000d2dbf in DBTable_gcoms_aux_instrumentMonitor__CheckForNew (cl=3D0= >x30091c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Us= >ers/mika/t/calarm/ratsql/src/TableMonitor.mg:467 >> #7 0x000d2ac3 in DBTable_gcoms_aux_instrumentMonitor__Sync (cl=3D0x30091c= >8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Users/mik= >a/t/calarm/ratsql/src/TableMonitor.mg:445 >> #8 0x000d264a in DBTable_gcoms_aux_instrumentMonitor__ApplyC (cl=3D0x3009= >1c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Users/m= >ika/t/calarm/ratsql/src/TableMonitor.mg:393 >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2306710) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2306710) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #11 0x9713885d in _pthread_start () >> #12 0x971386e2 in thread_start () >> >> Thread 45 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x230b2d0= >=2C mutex=3D0x2306680=2C m3timeout=3D1294537044.960629) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x23066b0=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000d469b in DBTable_gcoms_aux_instrumentMonitor__CleanerApply (cl=3D= >0x30093c0) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /U= >sers/mika/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23066b0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23066b0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 44 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a15= >9c=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= >25 >> #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=3D0x26602c4) = >at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cal= >arm/ratsql/src/TableMonitor.mg:456 >> #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=3D0x320= >5b38) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika= >/t/calarm/ratsql/src/TableMonitor.mg:467 >> #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=3D0x3205b38) a= >t ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cala= >rm/ratsql/src/TableMonitor.mg:445 >> #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x3205b38)= > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= >larm/ratsql/src/TableMonitor.mg:393 >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x230b000) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x230b000) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #11 0x9713885d in _pthread_start () >> #12 0x971386e2 in thread_start () >> >> Thread 43 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x230afe0= >=2C mutex=3D0x230af20=2C m3timeout=3D1294537044.8138101) at ../src/thread/P= >THREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x230af80=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x32= >05d30) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= >a/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x230af80) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x230af80) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 42 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a15= >9c=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= >25 >> #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=3D0x26602c4) = >at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cal= >arm/ratsql/src/TableMonitor.mg:456 >> #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=3D0x320= >57b0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika= >/t/calarm/ratsql/src/TableMonitor.mg:467 >> #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=3D0x32057b0) a= >t ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cala= >rm/ratsql/src/TableMonitor.mg:445 >> #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x32057b0)= > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= >larm/ratsql/src/TableMonitor.mg:393 >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x230aca0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x230aca0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #11 0x9713885d in _pthread_start () >> #12 0x971386e2 in thread_start () >> >> Thread 41 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x2301860= >=2C mutex=3D0x230ab40=2C m3timeout=3D1294537044.8138311) at ../src/thread/P= >THREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x230aba0=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x32= >059a8) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= >a/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x230aba0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x230aba0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 40 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a6b= >9c=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= >25 >> #5 0x000bd587 in DBTable_gcoms_ordr_statusMonitor__DbNow (db=3D0x26602c4)= > at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mika/t/c= >alarm/ratsql/src/TableMonitor.mg:456 >> #6 0x000bd76e in DBTable_gcoms_ordr_statusMonitor__CheckForNew (cl=3D0x32= >05390) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mi= >ka/t/calarm/ratsql/src/TableMonitor.mg:467 >> #7 0x000bd4b0 in DBTable_gcoms_ordr_statusMonitor__Sync (cl=3D0x3205390) = >at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mika/t/ca= >larm/ratsql/src/TableMonitor.mg:445 >> #8 0x000bd037 in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=3D0x3205390= >) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mika/t/= >calarm/ratsql/src/TableMonitor.mg:393 >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1621f10) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1621f10) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #11 0x9713885d in _pthread_start () >> #12 0x971386e2 in thread_start () >> >> Thread 39 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x16242f0= >=2C mutex=3D0x1621ee0=2C m3timeout=3D1294537044.8137701) at ../src/thread/P= >THREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x1622280=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000bf010 in DBTable_gcoms_ordr_statusMonitor__CleanerApply (cl=3D0x3= >205588) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/m= >ika/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1622280) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1622280) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 38 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a31= >44=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= >25 >> #5 0x000adb3f in DBTable_gcoms_strategyMonitor__DbNow (db=3D0x26602c4) at= > ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/calarm/= >ratsql/src/TableMonitor.mg:456 >> #6 0x000add46 in DBTable_gcoms_strategyMonitor__CheckForNew (cl=3D0x2660b= >88) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/c= >alarm/ratsql/src/TableMonitor.mg:467 >> #7 0x000ada68 in DBTable_gcoms_strategyMonitor__Sync (cl=3D0x2660b88) at = >../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/calarm/r= >atsql/src/TableMonitor.mg:445 >> #8 0x000ad5ef in DBTable_gcoms_strategyMonitor__ApplyC (cl=3D0x2660b88) a= >t ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/calarm= >/ratsql/src/TableMonitor.mg:393 >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161b820) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161b820) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #11 0x9713885d in _pthread_start () >> #12 0x971386e2 in thread_start () >> >> Thread 37 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x2306160= >=2C mutex=3D0x2305f70=2C m3timeout=3D1294537044.6482379) at ../src/thread/P= >THREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x2306100=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000af60a in DBTable_gcoms_strategyMonitor__CleanerApply (cl=3D0x2660= >d78) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/= >calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2306100) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2306100) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 36 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a15= >9c=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= >25 >> #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=3D0x26602c4) = >at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cal= >arm/ratsql/src/TableMonitor.mg:456 >> #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=3D0x266= >08c0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika= >/t/calarm/ratsql/src/TableMonitor.mg:467 >> #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=3D0x26608c0) a= >t ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cala= >rm/ratsql/src/TableMonitor.mg:445 >> #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x26608c0)= > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= >larm/ratsql/src/TableMonitor.mg:393 >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2305e30) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2305e30) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #11 0x9713885d in _pthread_start () >> #12 0x971386e2 in thread_start () >> >> Thread 35 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x2305dd0= >=2C mutex=3D0x2305c40=2C m3timeout=3D1294537044.6481991) at ../src/thread/P= >THREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x2305d70=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x26= >60ab0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= >a/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2305d70) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2305d70) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 34 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3b40) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= >.m3:1345 >> #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=3D32=2C dataAlignment= >=3D4=2C thread=3D0x1623e04) at ../src/runtime/common/RTAllocator.m3:363 >> #5 0x0038f2c7 in RTAllocator__GetTracedObj (def=3D0x5c87d4) at ../src/run= >time/common/RTAllocator.m3:224 >> #6 0x0038ed60 in RTHooks__AllocateTracedObj (defn=3D0x5c87d4) at ../src/r= >untime/common/RTAllocator.m3:122 >> #7 0x00260a50 in DatabaseUtils__FilterUnprintable (t=3D0x4aa228) at ../sr= >c/DatabaseUtils.m3:124 >> #8 0x0026b6ae in UnsafeDatabase__ExecM (t=3D0x2660178=2C query=3D0x4aa228= >=2C busyWait=3D0 '\0'=2C abortConnectionOnFail=3D1 '\001') at ../src/Unsafe= >Database.m3:217 >> #9 0x0026baa5 in UnsafeDatabase__TExecM (t=3D0x2660178=2C query=3D0x4aa22= >8=2C busyWait=3D0 '\0'=2C abortConnectionOnFail=3D1 '\001') at ../src/Unsaf= >eDatabase.m3:258 >> #10 0x002587f9 in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4aa= >228=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:= >126 >> #11 0x000cb8aa in DBTable_gcoms_fillMonitor__DbNow (db=3D0x26602c4) at ..= >/I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/= >src/TableMonitor.mg:456 >> #12 0x000cbbf5 in DBTable_gcoms_fillMonitor__CheckForNew (cl=3D0x26605f8)= > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= >atsql/src/TableMonitor.mg:467 >> #13 0x000cb7d3 in DBTable_gcoms_fillMonitor__Sync (cl=3D0x26605f8) at ../= >I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/s= >rc/TableMonitor.mg:445 >> #14 0x000cb35a in DBTable_gcoms_fillMonitor__ApplyC (cl=3D0x26605f8) at .= >./I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql= >/src/TableMonitor.mg:393 >> #15 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623dc0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #16 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623dc0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #17 0x9713885d in _pthread_start () >> #18 0x971386e2 in thread_start () >> >> Thread 33 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x1623da0= >=2C mutex=3D0x1623640=2C m3timeout=3D1294537044.6482589) at ../src/thread/P= >THREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x1623d40=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000cd5e3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=3D0x26607e8)= > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= >atsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623d40) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623d40) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 32 (process 67010): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D9=2C read=3D1=2C m3timeout=3D= >1) at ../src/thread/Common/ThreadInternal.c:57 >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x1623c00=2C fd=3D9=2C re= >ad=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001'= >) at ../src/thread/PTHREAD/ThreadPThread.m3:627 >> #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=3D9=2C read=3D1 '\001'= >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 >> #4 0x003344ff in TCP__GetBytesFD (t=3D0x267015c=2C arr=3D0x2690040=2C tim= >eout=3D-1) at ../src/POSIX/TCP.m3:326 >> #5 0x003365ce in ConnRW__RdSeek (rd=3D0x2690010=2C pos=3D0=2C dontBlock= >=3D0 '\0') at ../src/common/ConnRW.m3:69 >> #6 0x003424e3 in Rd__GetLine (rd=3D0x2690010) at ../src/rw/Rd.m3:426 >> #7 0x00256bb0 in UpdateMonitor__InApplyP (cl=3D0x269204c) at ../src/Updat= >eMonitor.m3:240 >> #8 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623c00) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #9 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623c00) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #10 0x9713885d in _pthread_start () >> #11 0x971386e2 in thread_start () >> >> Thread 31 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x1623470=2C j=3D0= >x1623ba0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x1623b40=2C m=3D0x2670220= >=2C c=3D0x267022c=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2670220=2C c=3D0x267022c) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002567b1 in UpdateMonitor__OutApplyP (p=3D0x267017c) at ../src/Updat= >eMonitor.m3:178 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623b40) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623b40) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 30 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23016c0=2C j=3D0= >x2305a80) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2305a20=2C m=3D0x2660378= >=2C c=3D0x26603ac=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2660378=2C c=3D0x26603ac) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x00259145 in DesynchronizedDB__PApply (p=3D0x26603bc) at ../src/Desyn= >chronizedDB.m3:216 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2305a20) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2305a20) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 29 (process 67010): >> #0 0x9716c1d6 in __wait4 () >> #1 0x9716c1c9 in waitpid$UNIX2003 () >> #2 0x003add58 in Uexec__waitpid (i=3D67040=2C j=3D0xb0e36b4c=2C k=3D0) at= > ../src/unix/Common/Uexec.c:67 >> #3 0x003aaa51 in SchedulerPosix__WaitProcess (pid=3D67040=2C status=3D0xb= >0e36b4c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 >> #4 0x0033ca19 in Process__Wait (p=3D0x2650590) at ../src/os/POSIX/Process= >PosixCommon.m3:275 >> #5 0x002ffdf6 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:18= >5 >> #6 0x003007c1 in ProcUtils__Apply (self=3D0x2640284) at ../src/ProcUtils.= >m3:274 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x16233b0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x16233b0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 28 (process 67010): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D7=2C read=3D1=2C m3timeout=3D= >1) at ../src/thread/Common/ThreadInternal.c:57 >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x1623300=2C fd=3D7=2C re= >ad=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001'= >) at ../src/thread/PTHREAD/ThreadPThread.m3:627 >> #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=3D7=2C read=3D1 '\001'= >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 >> #4 0x003344ff in TCP__GetBytesFD (t=3D0x26402c4=2C arr=3D0x2642358=2C tim= >eout=3D-1) at ../src/POSIX/TCP.m3:326 >> #5 0x003365ce in ConnRW__RdSeek (rd=3D0x2642328=2C pos=3D0=2C dontBlock= >=3D0 '\0') at ../src/common/ConnRW.m3:69 >> #6 0x0033f64d in Rd__DoSeek (rd=3D0x2642328) at ../src/rw/Rd.m3:54 >> #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=3D0x2642328) at ../src/rw/Rd.m= >3:43 >> #8 0x0033f32d in Rd__GetChar (rd=3D0x2642328) at ../src/rw/Rd.m3:34 >> #9 0x002b26e9 in ReadLine__ReadALine (t=3D0x264000c) at ../src/ReadLine.m= >3:151 >> #10 0x002b4a56 in ReadLine__ReadLine (t=3D0x264000c) at ../src/ReadLine.m= >3:411 >> #11 0x0022a383 in SchemeReadLine__GetCh (p=3D0x2644364) at ../src/SchemeR= >eadLine.m3:80 >> #12 0x0024e942 in SchemeInputPort__NextToken (t=3D0x2644364=2C wx=3D0x264= >43e8) at ../src/SchemeInputPort.m3:309 >> #13 0x0024e0bb in SchemeInputPort__Read (t=3D0x2644364) at ../src/SchemeI= >nputPort.m3:177 >> #14 0x0022abaa in SchemeReadLine__MainLoop (rl=3D0x264000c=2C scm=3D0x256= >b9e4) at ../src/SchemeReadLine.m3:146 >> #15 0x00006bb7 in Main__SCApply (c=3D0x263fed0) at ../src/Main.m3:92 >> #16 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623300) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #17 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623300) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #18 0x9713885d in _pthread_start () >> #19 0x971386e2 in thread_start () >> >> Thread 27 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x161bd50) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x25400a4) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x002c77db in SXLongReal__Update (v=3D0x2540010=2C newValue=3D12937197= >75.9374268=2C when=3D1293719775.9374378) at ../I386_DARWIN/SXLongReal.m3 = >=3D> ../src/SXType.mg:79 >> #5 0x002c7abe in SXLongReal__SetVar (v=3D0x2540010=2C newValue=3D12937197= >75.9374268=2C when=3D1293719775.9374378) at ../I386_DARWIN/SXLongReal.m3 = >=3D> ../src/SXType.mg:98 >> #6 0x002eaaf7 in SXTimer__Loop (cl=3D0x21e11cc) at ../src/SXTimer.m3:64 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161b610) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161b610) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 26 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23016a0=2C j=3D0= >x2301670) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2301610=2C m=3D0x2114828= >=2C c=3D0x2114858=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2114828=2C c=3D0x2114858) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x000974c8 in GCOMSOrderStatus__Apply (cl=3D0x2114868) at ../src/GCOMS= >OrderStatus.m3:166 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2301610) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2301610) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 25 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300540=2C j=3D0= >x2301580) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x23015b0=2C m=3D0x211476c= >=2C c=3D0x2114778=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x211476c=2C c=3D0x2114778) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x0009d268 in GCOMSBusyOrders__Apply (cl=3D0x2114788) at ../src/GCOMSB= >usyOrders.m3:63 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23015b0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23015b0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 24 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300d90=2C j=3D0= >x2300d60) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300d00=2C m=3D0x21d0044= >=2C c=3D0x21d0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x21d0044=2C c=3D0x21d0050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0bace84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0bace84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2111418) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2111548) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300d00) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300d00) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 23 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300ce0=2C j=3D0= >x2300cb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300c50=2C m=3D0x21c0044= >=2C c=3D0x21c0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x21c0044=2C c=3D0x21c0050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0b2ae84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0b2ae84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2111288) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x21113b8) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300c50) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300c50) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 22 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300c30=2C j=3D0= >x2300c00) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300ba0=2C m=3D0x21b0044= >=2C c=3D0x21b0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x21b0044=2C c=3D0x21b0050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0aa8e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0aa8e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110fd8) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2111108) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300ba0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300ba0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 21 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300b80=2C j=3D0= >x2300b50) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300af0=2C m=3D0x21a0044= >=2C c=3D0x21a0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x21a0044=2C c=3D0x21a0050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0a26e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0a26e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110e50) at ../src/SX.m3:151 >> #9 0x00163596 in CurrencySXProxy__Apply (cl=3D0x2110f78) at ../I386_DARWI= >N/CurrencySXProxy.m3 =3D> /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300af0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300af0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 20 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300a10=2C j=3D0= >x23009e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300980=2C m=3D0x2190044= >=2C c=3D0x2190050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2190044=2C c=3D0x2190050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb09a4e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb09a4e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110b48) at ../src/SX.m3:151 >> #9 0x002bf3d5 in BoolSXProxy__Apply (cl=3D0x2110c70) at ../I386_DARWIN/Bo= >olSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300980) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300980) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 19 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300960=2C j=3D0= >x2300930) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x23008d0=2C m=3D0x2180044= >=2C c=3D0x2180050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2180044=2C c=3D0x2180050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0922e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0922e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x21109b8) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2110ae8) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23008d0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23008d0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 18 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23008b0=2C j=3D0= >x2300880) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300820=2C m=3D0x2170044= >=2C c=3D0x2170050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2170044=2C c=3D0x2170050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb08a0e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb08a0e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110828) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2110958) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300820) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300820) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 17 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300800=2C j=3D0= >x23007d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300770=2C m=3D0x2160044= >=2C c=3D0x2160050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2160044=2C c=3D0x2160050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb081ee84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb081ee84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110698) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x21107c8) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300770) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300770) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 16 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300750=2C j=3D0= >x2300720) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x23006c0=2C m=3D0x2150044= >=2C c=3D0x2150050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2150044=2C c=3D0x2150050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb079ce84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb079ce84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110508) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2110638) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23006c0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23006c0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 15 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23006a0=2C j=3D0= >x2300670) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300610=2C m=3D0x2140044= >=2C c=3D0x2140050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2140044=2C c=3D0x2140050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb071ae84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb071ae84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110378) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x21104a8) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300610) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300610) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 14 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161af10=2C j=3D0= >x161aee0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161ae80=2C m=3D0x2130044= >=2C c=3D0x2130050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2130044=2C c=3D0x2130050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0698e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0698e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x21101e8) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2110318) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161ae80) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161ae80) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 13 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23005f0=2C j=3D0= >x23005c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300560=2C m=3D0x2120044= >=2C c=3D0x2120050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2120044=2C c=3D0x2120050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0616e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0616e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20c0c40) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x21100ac) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300560) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300560) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 12 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23004c0=2C j=3D0= >x2300490) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300430=2C m=3D0x2080044= >=2C c=3D0x2080050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2080044=2C c=3D0x2080050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0594e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0594e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20c0ab0) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x20c0be0) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300430) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300430) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 11 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300410=2C j=3D0= >x23003e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300380=2C m=3D0x20f0044= >=2C c=3D0x20f0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x20f0044=2C c=3D0x20f0050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0512e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0512e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20c0920) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x20c0a50) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300380) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300380) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 10 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161aad0=2C j=3D0= >x161aaa0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161aa40=2C m=3D0x20b0044= >=2C c=3D0x20b0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x20b0044=2C c=3D0x20b0050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0490e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0490e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020e88) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020fb8) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161aa40) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161aa40) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 9 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23002a0=2C j=3D0= >x2300270) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300210=2C m=3D0x2090044= >=2C c=3D0x2090050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2090044=2C c=3D0x2090050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb040ee84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb040ee84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020cf8) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020e28) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300210) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300210) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 8 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a9c0=2C j=3D0= >x161a990) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a930=2C m=3D0x20e0034= >=2C c=3D0x20e0040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x20e0034=2C c=3D0x20e0040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb038ce84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb038ce84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020a48) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020b78) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a930) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a930) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 7 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a910=2C j=3D0= >x161a8e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a880=2C m=3D0x20a0034= >=2C c=3D0x20a0040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x20a0034=2C c=3D0x20a0040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb030ae84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb030ae84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20208c0) at ../src/SX.m3:151 >> #9 0x00163596 in CurrencySXProxy__Apply (cl=3D0x20209e8) at ../I386_DARWI= >N/CurrencySXProxy.m3 =3D> /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a880) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a880) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 6 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a860=2C j=3D0= >x161a830) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a7d0=2C m=3D0x2050044= >=2C c=3D0x2050050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2050044=2C c=3D0x2050050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0288e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0288e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020658) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020788) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a7d0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a7d0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 5 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a7b0=2C j=3D0= >x161a780) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a720=2C m=3D0x2040044= >=2C c=3D0x2040050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2040044=2C c=3D0x2040050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0206e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0206e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20204c8) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x20205f8) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a720) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a720) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 4 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a290=2C j=3D0= >x161a6f0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a690=2C m=3D0x2030044= >=2C c=3D0x2030050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2030044=2C c=3D0x2030050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0184e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0184e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020338) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020468) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a690) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a690) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 3 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x1619840=2C j=3D0= >x161a600) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a230=2C m=3D0x202008c= >=2C c=3D0x202007c=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x202008c=2C c=3D0x202007c) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002ba948 in VarProxyDefs__NotifyApply (cl=3D0x2020098) at ../src/Var= >ProxyDefs.m3:55 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a230) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a230) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 2 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7ebe in ThreadPThread__InitMutex (m=3D0x20100ac=2C root=3D0x2010= >0a8=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >> #4 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x20100a8) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #5 0x0033f30b in Rd__GetChar (rd=3D0x20100a8) at ../src/rw/Rd.m3:33 >> #6 0x0034dffd in Lex__Skip (rd=3D0x20100a8=2C cs=3D0x548018) at ../src/fm= >tlex/Lex.m3:46 >> #7 0x003503c3 in Lex__ReadReal (rd=3D0x20100a8=2C sign=3D0xb00809e3=2C di= >gits=3D0xb00809fc=2C digCnt=3D0xb00809e8=2C exp=3D0xb00809ec) at ../src/fmt= >lex/Lex.m3:569 >> #8 0x00350ef5 in Lex__LongReal (rd=3D0x20100a8) at ../src/fmtlex/Lex.m3:6= >62 >> #9 0x003518f1 in Scan__LongReal (txt=3D0x201007c) at ../src/fmtlex/Scan.m= >3:77 >> #10 0x0030ef75 in XTime__ClApply (cl=3D0x2004624) at ../src/XTime.m3:185 >> #11 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a0b0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #12 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a0b0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #13 0x9713885d in _pthread_start () >> #14 0x971386e2 in thread_start () >> >> Thread 1 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x16076f0=2C j=3D0= >x16076c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x1607660=2C m=3D0x2000084= >=2C c=3D0x30eb8bc=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003aa1f3 in ThreadPThread__XJoin (self=3D0x1607660=2C t=3D0x30eb8a0= >=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:513 >> #6 0x003aa2f5 in Thread__Join (t=3D0x30eb8a0) at ../src/thread/PTHREAD/Th= >readPThread.m3:525 >> #7 0x002ff2b8 in ProcUtils__Wait (c=3D0x30eb800) at ../src/ProcUtils.m3:3= >18 >> #8 0x00234ebd in SchemeCommandRunner__RealRunTimeoutCommandApply (proc=3D= >0x21e0b44=2C interp=3D0x3241ec4=2C args=3D0x30e775c) at ../src/SchemeComman= >dRunner.m3:164 >> #9 0x00234b4f in SchemeCommandRunner__RunTimeoutCommandApply (proc=3D0x21= >e0b44=2C interp=3D0x3241ec4=2C args=3D0x30e775c) at ../src/SchemeCommandRun= >ner.m3:129 >> #10 0x00234217 in SchemeCommandRunner__RunCommandApply (proc=3D0x21e0b44= >=2C interp=3D0x3241ec4=2C args=3D0x30e7744) at ../src/SchemeCommandRunner.m= >3:23 >> #11 0x0024b81b in SchemePrimitive__EDApply (ed=3D0x21e01c0=2C t=3D0x32458= >44=2C interp=3D0x3241ec4=2C args=3D0x30e7744) at ../src/SchemePrimitive.m3:= >207 >> #12 0x00246509 in SchemePrimitive__Prims (t=3D0x3245844=2C interp=3D0x324= >1ec4=2C args=3D0x30e7744=2C x=3D0x30e5cfc=2C y=3D0x30e7730=2C free=3D0xbfff= >ea1f) at ../src/SchemePrimitive.m3:580 >> #13 0x0024b1cb in SchemePrimitive__Apply2 (t=3D0x3245844=2C interp=3D0x32= >41ec4=2C a1=3D0x30e5cfc=2C a2=3D0x30e7730) at ../src/SchemePrimitive.m3:549 >> #14 0x0023c16f in Scheme__EvalInternal (t=3D0x3241ec4=2C x=3D0x30e5c5c=2C= > env=3D0x30e76b4) at ../src/Scheme.m3:585 >> #15 0x0023bedf in Scheme__EvalInternal (t=3D0x3241ec4=2C x=3D0x30e5bac=2C= > env=3D0x30e76b4) at ../src/Scheme.m3:582 >> #16 0x0023c35e in Scheme__Eval (t=3D0x3241ec4=2C x=3D0x30e6a6c=2C envP=3D= >0x3241f0c) at ../src/Scheme.m3:353 >> #17 0x00239bcf in Scheme__EvalInGlobalEnv (t=3D0x3241ec4=2C x=3D0x30e6a6c= >) at ../src/Scheme.m3:603 >> #18 0x0002972b in SchemeCalculator__Calc (t=3D0x3241eb4=2C arr=3D0xbfffee= >3c) at ../src/SchemeCalculator.m3:61 >> #19 0x0000c8af in EuroDriver__Loop (t=3D0x3205a80) at ../src/EuroDriver.m= >3:289 >> #20 0x00008781 in Main_M3 (mode=3D1) at ../src/Main.m3:268 >> #21 0x0039d83d in RTLinker__RunMainBody (m=3D0x55e420) at ../src/runtime/= >common/RTLinker.m3:406 >> #22 0x0039cc99 in RTLinker__AddUnitI (m=3D0x55e420) at ../src/runtime/com= >mon/RTLinker.m3:113 >> #23 0x0039cd1a in RTLinker__AddUnit (b=3D0x6be3) at ../src/runtime/common= >/RTLinker.m3:122 >> #24 0x0000528c in main (argc=3D19=2C argv=3D0xbffff330=2C envp=3D0xbffff3= >80) at _m3main.c:16 > = From jay.krell at cornell.edu Sun Jan 9 02:52:35 2011 From: jay.krell at cornell.edu (Jay K) Date: Sun, 9 Jan 2011 01:52:35 +0000 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: <20110109015040.F196E1A205B@async.async.caltech.edu> References: <0A37C595-C896-4B66-9EDF-61BB30645321@cs.purdue.edu> , , <20110109014355.0A01F1A205B@async.async.caltech.edu>, , <20110109015040.F196E1A205B@async.async.caltech.edu> Message-ID: -march=i686 vs. i586 I assume helped. The int32 vs. int64 problems should remain. ?- Jay ---------------------------------------- > To: jay.krell at cornell.edu > Date: Sat, 8 Jan 2011 17:50:40 -0800 > From: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > On the plus side, the compiler bug you thought you had fixed has indeed disappeared. > > Mika > > Jay K writes: > > > >Tony raised legit issue w/ my fix. I will try another very soon (tonight). > > > > > >Index: ThreadPThread.m3 > >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= > >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= > >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > >RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3= > >=2Cv > >retrieving revision 1.247 > >diff -u -r1.247 ThreadPThread.m3 > >--- ThreadPThread.m3=A0=A0=A0 9 Jan 2011 00:36:07 -0000=A0=A0=A0 1.247 > >+++ ThreadPThread.m3=A0=A0=A0 9 Jan 2011 01:14:16 -0000 > >@@ -1283=2C10 +1283=2C10 @@ > >=A0=A0=A0=A0=A0=A0 cond: Condition=3B > >=A0=A0 BEGIN > >=A0=A0=A0=A0 Acquire(joinMu)=3B > >-=A0=A0=A0 LockHeap()=3B > >=A0=A0=A0=A0 FOR i :=3D FIRST(locks) TO LAST(locks) DO > >=A0=A0=A0=A0=A0=A0 PThreadLockMutex(locks[i]=2C ThisLine()=2C i)=3B > >=A0=A0=A0=A0 END=3B > >+=A0=A0=A0 LockHeap()=3B > >=A0=A0=A0=A0 (* Walk activations and lock all threads=2C conditions. > >=A0=A0=A0=A0=A0 * NOTE: We have initMu=2C activeMu=2C so slots > >=A0=A0=A0=A0=A0 * won't change=2C conditions and mutexes > > > > > > > >=A0- Jay > > > >---------------------------------------- > >> To: hosking at cs.purdue.edu > >> Date: Sat=2C 8 Jan 2011 17:43:55 -0800 > >> From: mika at async.caltech.edu > >> CC: m3devel at elegosoft.com > >> Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > >> > >> > >> Well I spent the whole day figuring out how to update the compiler.. > >> finally got everything working and I think this is with the very latest > >> version (Jay just committed something two hours ago and it's in here). > >> > >> Or... wait.. did he go back a version and re-introduce the deadlock? > >> That would explain why it's behaving the same way as it was before... > >> > >> Mika > >> > >> > >> > >> Thread 68 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613c20) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=3D0x613c20=2C lin= > >e=3D1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > >> #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD= > >/ThreadPThread.m3:1279 > >> #5 0x97137217 in _cthread_fork_prepare () > >> #6 0x97137155 in fork () > >> #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=3D0x242c2ac=2C = > >params=3D0x242c3ac=2C env=3D0x0=2C wd=3D0x57bf44=2C stdin=3D0x0=2C stdout= > >=3D0x239f9a4=2C stderr=3D0x2433508) at ../src/os/POSIX/ProcessPosixCommon.m= > >3:75 > >> #8 0x00353de5 in Process__Create (cmd=3D0x242c2ac=2C params=3D0x242c3ac= > >=2C env=3D0x0=2C wd=3D0x57bf44=2C stdin=3D0x0=2C stdout=3D0x239f9a4=2C stde= > >rr=3D0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > >> #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:18= > >0 > >> #10 0x00316d6e in ProcUtils__Apply (self=3D0x242f160) at ../src/ProcUtils= > >.m3:274 > >> #11 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2009600) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2009600) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #13 0x9713885d in _pthread_start () > >> #14 0x971386e2 in thread_start () > >> > >> Thread 67 (process 32362): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D13=2C read=3D1=2C m3timeout= > >=3D-1) at ../src/thread/Common/ThreadInternal.c:31 > >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x2009550=2C fd=3D13=2C r= > >ead=3D1 '\001'=2C interval=3D-1=2C alertable=3D0 '\0') at ../src/thread/PTH= > >READ/ThreadPThread.m3:627 > >> #3 0x003c19a4 in SchedulerPosix__IOWait (fd=3D13=2C read=3D1 '\001'=2C ti= > >meoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 > >> #4 0x0034f862 in FilePosix__IntermittentRead (h=3D0x24334f8=2C b=3D0xb1df= > >4cd0=2C mayBlock=3D1 '\001') at ../src/os/POSIX/FilePosix.m3:220 > >> #5 0x0035e935 in FileRd__Seek (rd=3D0x2433518=2C pos=3D0=2C dontBlock=3D0= > > '\0') at ../src/rw/FileRd.m3:83 > >> #6 0x00356338 in Rd__DoSeek (rd=3D0x2433518) at ../src/rw/Rd.m3:54 > >> #7 0x003560c1 in UnsafeRd__FastGetChar (rd=3D0x2433518) at ../src/rw/Rd.m= > >3:43 > >> #8 0x00356018 in Rd__GetChar (rd=3D0x2433518) at ../src/rw/Rd.m3:34 > >> #9 0x00316fbc in ProcUtils__SSApply (self=3D0x242f128) at ../src/ProcUtil= > >s.m3:54 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2009550) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2009550) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 66 (process 32362): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D11=2C read=3D1=2C m3timeout= > >=3D-1) at ../src/thread/Common/ThreadInternal.c:31 > >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x20094a0=2C fd=3D11=2C r= > >ead=3D1 '\001'=2C interval=3D-1=2C alertable=3D0 '\0') at ../src/thread/PTH= > >READ/ThreadPThread.m3:627 > >> #3 0x003c19a4 in SchedulerPosix__IOWait (fd=3D11=2C read=3D1 '\001'=2C ti= > >meoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 > >> #4 0x0034f862 in FilePosix__IntermittentRead (h=3D0x239f994=2C b=3D0xb1d7= > >2cd0=2C mayBlock=3D1 '\001') at ../src/os/POSIX/FilePosix.m3:220 > >> #5 0x0035e935 in FileRd__Seek (rd=3D0x239f9b4=2C pos=3D0=2C dontBlock=3D0= > > '\0') at ../src/rw/FileRd.m3:83 > >> #6 0x00356338 in Rd__DoSeek (rd=3D0x239f9b4) at ../src/rw/Rd.m3:54 > >> #7 0x003560c1 in UnsafeRd__FastGetChar (rd=3D0x239f9b4) at ../src/rw/Rd.m= > >3:43 > >> #8 0x00356018 in Rd__GetChar (rd=3D0x239f9b4) at ../src/rw/Rd.m3:34 > >> #9 0x00316fbc in ProcUtils__SSApply (self=3D0x242f0f0) at ../src/ProcUtil= > >s.m3:54 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20094a0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20094a0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 65 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613c20) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003beefd in ThreadPThread__InitMutex (m=3D0x242a6f8=2C root=3D0x242a= > >6f4=2C Clean=3D0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >> #4 0x003befce in ThreadPThread__LockMutex (m=3D0x242a6f4) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #5 0x00355ff6 in Rd__GetChar (rd=3D0x242a6f4) at ../src/rw/Rd.m3:33 > >> #6 0x00364b5d in Lex__Skip (rd=3D0x242a6f4=2C cs=3D0x587ff8) at ../src/fm= > >tlex/Lex.m3:46 > >> #7 0x00366e53 in Lex__ReadReal (rd=3D0x242a6f4=2C sign=3D0xb1cf0603=2C di= > >gits=3D0xb1cf061c=2C digCnt=3D0xb1cf0608=2C exp=3D0xb1cf060c) at ../src/fmt= > >lex/Lex.m3:569 > >> #8 0x003678f0 in Lex__LongReal (rd=3D0x242a6f4) at ../src/fmtlex/Lex.m3:6= > >62 > >> #9 0x0036834e in Scan__LongReal (txt=3D0x1753494) at ../src/fmtlex/Scan.m= > >3:77 > >> #10 0x002603f5 in SchemeInputPort__NextToken (t=3D0x2380de4=2C wx=3D0x242= > >a4a8) at ../src/SchemeInputPort.m3:439 > >> #11 0x00260756 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x242= > >a4a8) at ../src/SchemeInputPort.m3:240 > >> #12 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= > >nputPort.m3:179 > >> #13 0x0025edad in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= > >nputPort.m3:191 > >> #14 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x242= > >a40c) at ../src/SchemeInputPort.m3:240 > >> #15 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= > >nputPort.m3:179 > >> #16 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x239= > >ddc4) at ../src/SchemeInputPort.m3:240 > >> #17 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= > >nputPort.m3:179 > >> #18 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x239= > >dc4c) at ../src/SchemeInputPort.m3:240 > >> #19 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= > >nputPort.m3:179 > >> #20 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x239= > >da8c) at ../src/SchemeInputPort.m3:240 > >> #21 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= > >nputPort.m3:179 > >> #22 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x239= > >d9b4) at ../src/SchemeInputPort.m3:240 > >> #23 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= > >nputPort.m3:179 > >> #24 0x0024db82 in Scheme__LoadPort (t=3D0x237018c=2C in=3D0x2380de4) at .= > >./src/Scheme.m3:317 > >> #25 0x0024ae56 in Scheme__LoadRd (t=3D0x237018c=2C rd=3D0x2379cfc=2C fn= > >=3D0x0) at ../src/Scheme.m3:174 > >> #26 0x0024e659 in Scheme__ReadInitialFiles (t=3D0x237018c=2C files=3D0x4a= > >fc8c) at ../src/Scheme.m3:134 > >> #27 0x0024ea46 in Scheme__Init2 (t=3D0x237018c=2C input=3D0x15ac4ec=2C ou= > >tput=3D0x15ac514=2C files=3D0x4afc8c=2C env=3D0x0) at ../src/Scheme.m3:127 > >> #28 0x0024a89a in Scheme__Init (t=3D0x237018c=2C files=3D0x4afc8c=2C env= > >=3D0x0) at ../src/Scheme.m3:102 > >> #29 0x0002abbc in SchemeCalculator__Init (t=3D0x237017c=2C code=3D0x22554= > >1c) at ../src/SchemeCalculator.m3:28 > >> #30 0x0000e373 in EuroDriver__OApply (cl=3D0x2367b70) at ../src/EuroDrive= > >r.m3:865 > >> #31 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2008b80) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #32 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2008b80) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #33 0x9713885d in _pthread_start () > >> #34 0x971386e2 in thread_start () > >> > >> Thread 64 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613ca0) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= > >.m3:1336 > >> #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=3D0x2430f38=2C p=3D0x= > >3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > >> #5 0x003bef65 in ThreadPThread__InitMutex (m=3D0x2430f3c=2C root=3D0x2430= > >f38=2C Clean=3D0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > >> #6 0x003befce in ThreadPThread__LockMutex (m=3D0x2430f38) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #7 0x00355ff6 in Rd__GetChar (rd=3D0x2430f38) at ../src/rw/Rd.m3:33 > >> #8 0x00364b5d in Lex__Skip (rd=3D0x2430f38=2C cs=3D0x587ff8) at ../src/fm= > >tlex/Lex.m3:46 > >> #9 0x00366e53 in Lex__ReadReal (rd=3D0x2430f38=2C sign=3D0xb1c6e7c3=2C di= > >gits=3D0xb1c6e7dc=2C digCnt=3D0xb1c6e7c8=2C exp=3D0xb1c6e7cc) at ../src/fmt= > >lex/Lex.m3:569 > >> #10 0x003678f0 in Lex__LongReal (rd=3D0x2430f38) at ../src/fmtlex/Lex.m3:= > >662 > >> #11 0x0036834e in Scan__LongReal (txt=3D0x1753494) at ../src/fmtlex/Scan.= > >m3:77 > >> #12 0x002603f5 in SchemeInputPort__NextToken (t=3D0x237ede4=2C wx=3D0x243= > >0e44) at ../src/SchemeInputPort.m3:439 > >> #13 0x00260756 in SchemeInputPort__ReadTail2 (t=3D0x237ede4=2C wx=3D0x243= > >0e44) at ../src/SchemeInputPort.m3:240 > >> #14 0x0025ebdd in SchemeInputPort__Read (t=3D0x237ede4) at ../src/SchemeI= > >nputPort.m3:179 > >> #15 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x237ede4=2C wx=3D0x243= > >0db0) at ../src/SchemeInputPort.m3:240 > >> #16 0x0025ebdd in SchemeInputPort__Read (t=3D0x237ede4) at ../src/SchemeI= > >nputPort.m3:179 > >> #17 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x237ede4=2C wx=3D0x243= > >0cd8) at ../src/SchemeInputPort.m3:240 > >> #18 0x0025ebdd in SchemeInputPort__Read (t=3D0x237ede4) at ../src/SchemeI= > >nputPort.m3:179 > >> #19 0x0024db82 in Scheme__LoadPort (t=3D0x236e18c=2C in=3D0x237ede4) at .= > >./src/Scheme.m3:317 > >> #20 0x0024ae56 in Scheme__LoadRd (t=3D0x236e18c=2C rd=3D0x2377cfc=2C fn= > >=3D0x0) at ../src/Scheme.m3:174 > >> #21 0x0024e659 in Scheme__ReadInitialFiles (t=3D0x236e18c=2C files=3D0x4a= > >fc8c) at ../src/Scheme.m3:134 > >> #22 0x0024ea46 in Scheme__Init2 (t=3D0x236e18c=2C input=3D0x15ac4ec=2C ou= > >tput=3D0x15ac514=2C files=3D0x4afc8c=2C env=3D0x0) at ../src/Scheme.m3:127 > >> #23 0x0024a89a in Scheme__Init (t=3D0x236e18c=2C files=3D0x4afc8c=2C env= > >=3D0x0) at ../src/Scheme.m3:102 > >> #24 0x0002abbc in SchemeCalculator__Init (t=3D0x236e17c=2C code=3D0x22554= > >1c) at ../src/SchemeCalculator.m3:28 > >> #25 0x0000e373 in EuroDriver__OApply (cl=3D0x2367ad8) at ../src/EuroDrive= > >r.m3:865 > >> #26 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2008af0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #27 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2008af0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #28 0x9713885d in _pthread_start () > >> #29 0x971386e2 in thread_start () > >> > >> Thread 60 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x2006bc0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003befff in ThreadPThread__LockMutex (m=3D0x22cc724) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x003bed47 in Thread__Acquire (m=3D0x22cc724) at ../src/thread/PTHREAD= > >/ThreadPThread.m3:81 > >> #5 0x002d9fb9 in SX__Lock (arr=3D0x235a9a4) at ../src/SX.m3:318 > >> #6 0x002d983f in SXSelect__WaitE (on=3D0xb1beccd8=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:241 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb1beccd8=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDrive= > >r.m3:832 > >> #9 0x0000e830 in EuroDriver__OApply (cl=3D0x22aad10) at ../src/EuroDriver= > >.m3:892 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2007080) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2007080) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 59 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613c20) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003beefd in ThreadPThread__InitMutex (m=3D0x2354a24=2C root=3D0x2354= > >a20=2C Clean=3D0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >> #4 0x003befce in ThreadPThread__LockMutex (m=3D0x2354a20) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #5 0x003bed47 in Thread__Acquire (m=3D0x2354a20) at ../src/thread/PTHREAD= > >/ThreadPThread.m3:81 > >> #6 0x00359e60 in RdClass__Lock (rd=3D0x2354a20) at ../src/rw/Rd.m3:521 > >> #7 0x0025e4c4 in SchemeInputPort__Lock (t=3D0x2354b08) at ../src/SchemeIn= > >putPort.m3:72 > >> #8 0x0025f3dc in SchemeInputPort__NextToken (t=3D0x2354b08=2C wx=3D0x2354= > >b28) at ../src/SchemeInputPort.m3:299 > >> #9 0x0025eb94 in SchemeInputPort__Read (t=3D0x2354b08) at ../src/SchemeIn= > >putPort.m3:177 > >> #10 0x0024aea9 in Scheme__LoadEval (t=3D0x224418c=2C rd=3D0x2354a20) at .= > >./src/Scheme.m3:291 > >> #11 0x0024af22 in Scheme__LoadEvalText (t=3D0x224418c=2C txt=3D0x225541c)= > > at ../src/Scheme.m3:306 > >> #12 0x0002ad28 in SchemeCalculator__Calc (t=3D0x224417c=2C arr=3D0xb1b6ab= > >04) at ../src/SchemeCalculator.m3:47 > >> #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/Eur= > >oDriver.m3:564 > >> #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/E= > >uroDriver.m3:507 > >> #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriv= > >er.m3:795 > >> #16 0x0000e830 in EuroDriver__OApply (cl=3D0x22aac78) at ../src/EuroDrive= > >r.m3:892 > >> #17 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2007020) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #18 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2007020) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #19 0x9713885d in _pthread_start () > >> #20 0x971386e2 in thread_start () > >> > >> Thread 54 (process 32362): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D10=2C read=3D1=2C m3timeout= > >=3D1) at ../src/thread/Common/ThreadInternal.c:31 > >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x161dfc0=2C fd=3D10=2C r= > >ead=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001= > >') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > >> #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=3D10=2C read=3D1 '\001'= > >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > >> #4 0x00346693 in TCP__GetBytesFD (t=3D0x22211d8=2C arr=3D0x22f400c=2C tim= > >eout=3D-1) at ../src/POSIX/TCP.m3:326 > >> #5 0x00348786 in ConnRW__RdSeek (rd=3D0x2221260=2C pos=3D267=2C dontBlock= > >=3D0 '\0') at ../src/common/ConnRW.m3:69 > >> #6 0x003591ce in Rd__GetLine (rd=3D0x2221260) at ../src/rw/Rd.m3:426 > >> #7 0x002b2826 in TWSTester__RApply (cl=3D0x2221290) at ../src/TWSTester.m= > >3:382 > >> #8 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161dfc0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #9 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161dfc0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #10 0x9713885d in _pthread_start () > >> #11 0x971386e2 in thread_start () > >> > >> Thread 53 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161deb0= > >=2C mutex=3D0x161e1c0=2C m3timeout=3D1294411605.506855) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161e160=2C n=3D0.5=2C al= > >ertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D0.5) at ../src/thread/PTHREAD/ThreadP= > >Thread.m3:567 > >> #6 0x00297efc in PMTWS__TSCApply (cl=3D0x2221088) at ../src/PMTWS.m3:229 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161e160) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161e160) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 52 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613ca0) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= > >.m3:1336 > >> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=3D24=2C dataAlignment= > >=3D4=2C thread=3D0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > >> #5 0x003a5a99 in RTAllocator__GetTracedObj (def=3D0x616d54) at ../src/run= > >time/common/RTAllocator.m3:224 > >> #6 0x003a550f in RTHooks__AllocateTracedObj (defn=3D0x616d54) at ../src/r= > >untime/common/RTAllocator.m3:122 > >> #7 0x003d3c0e in RTHooks__Concat (t=3D0x23669ec=2C u=3D0x56c460) at ../sr= > >c/text/TextCat.m3:28 > >> #8 0x002b0dc2 in TWSTester__MakeString (contract=3D0xb19e4dc0) at ../src/= > >TWSTester.m3:92 > >> #9 0x002b11ac in TWSTester__ReqMktData (t=3D0x2220800=2C tickerId=3D3=2C = > >contract=3D0xb19e4dc0) at ../src/TWSTester.m3:136 > >> #10 0x002bccaf in TWSTestBridge__MreqMktData (t=3D0x2220800=2C tickerId= > >=3D3=2C contract=3D0xb19e4dc0) at ../src/TWSTestBridge.m3 =3D> ../src/TWSBr= > >idgeG.mg:580 > >> #11 0x002978ec in PMTWS__TSCApply (cl=3D0x2221044) at ../src/PMTWS.m3:210 > >> #12 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161e100) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161e100) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #14 0x9713885d in _pthread_start () > >> #15 0x971386e2 in thread_start () > >> > >> Thread 51 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613ca0) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= > >.m3:1336 > >> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=3D136=2C dataAlignmen= > >t=3D8=2C thread=3D0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > >> #5 0x003a581e in RTAllocator__GetTracedRef (def=3D0x5b1280) at ../src/run= > >time/common/RTAllocator.m3:202 > >> #6 0x003a54da in RTHooks__AllocateTracedRef (defn=3D0x5b1280) at ../src/r= > >untime/common/RTAllocator.m3:115 > >> #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=3D0x235f464=2C = > >key=3D0xb1962d7c=2C val=3D0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_in= > >strumentTbl.m3 =3D> /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > >> #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=3D0x228c080= > >=2C res=3D0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 = > >=3D> /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > >> #9 0x0008c6de in GCOMSPortfolio__Lock (t=3D0x2255cd8) at ../src/GCOMSPort= > >folio.m3:94 > >> #10 0x00029faa in SXPortfolio__Scan (t=3D0x229a888) at ../src/SXPortfolio= > >.m3:47 > >> #11 0x0002a998 in SXPortfolio__Apply (cl=3D0x222057c) at ../src/SXPortfol= > >io.m3:113 > >> #12 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x1626560) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x1626560) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #14 0x9713885d in _pthread_start () > >> #15 0x971386e2 in thread_start () > >> > >> Thread 50 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2005ac0= > >=2C mutex=3D0x20059b0=2C m3timeout=3D1294411629.006319) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2005a60=2C n=3D50=2C ale= > >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= > >eadPThread.m3:573 > >> #6 0x000e162d in DBTable_gcoms_aux_ordrMonitor__ApplyC (cl=3D0x229a528) a= > >t ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/calarm= > >/ratsql/src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2005a60) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2005a60) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 49 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2005a40= > >=2C mutex=3D0x20058e0=2C m3timeout=3D1294411606.0014169) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x20059e0=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000e357e in DBTable_gcoms_aux_ordrMonitor__CleanerApply (cl=3D0x229a= > >720) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/= > >calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20059e0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20059e0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 48 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161de60= > >=2C mutex=3D0x161aa50=2C m3timeout=3D1294411629.003248) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161aae0=2C n=3D50=2C ale= > >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= > >eadPThread.m3:573 > >> #6 0x000d2f00 in DBTable_gcoms_fillMonitor__ApplyC (cl=3D0x229a258) at ..= > >/I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/= > >src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161aae0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161aae0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 47 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161ac10= > >=2C mutex=3D0x1625c10=2C m3timeout=3D1294411605.9982891) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161aa80=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000d50b3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=3D0x229a450)= > > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= > >atsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161aa80) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161aa80) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 46 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2004440= > >=2C mutex=3D0x2004410=2C m3timeout=3D1294411678.997467) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x20043b0=2C n=3D100=2C al= > >ertable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D100) at ../src/thread/PTHREAD/Th= > >readPThread.m3:573 > >> #6 0x000da48e in DBTable_gcoms_aux_instrumentMonitor__ApplyC (cl=3D0x1711= > >268) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Users/m= > >ika/t/calarm/ratsql/src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20043b0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20043b0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 45 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x20038d0= > >=2C mutex=3D0x2004380=2C m3timeout=3D1294411605.9944479) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2004320=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000dc415 in DBTable_gcoms_aux_instrumentMonitor__CleanerApply (cl=3D= > >0x1711460) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /U= > >sers/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2004320) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2004320) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 44 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x20071d0= > >=2C mutex=3D0x20070e0=2C m3timeout=3D1294411678.9916439) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2007170=2C n=3D100=2C al= > >ertable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D100) at ../src/thread/PTHREAD/Th= > >readPThread.m3:573 > >> #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x224daf0)= > > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= > >larm/ratsql/src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2007170) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2007170) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 43 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x20046e0= > >=2C mutex=3D0x2006f50=2C m3timeout=3D1294411605.83337) at ../src/thread/PTH= > >READ/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2007110=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x22= > >4dce8) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= > >a/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2007110) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2007110) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 42 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161d830= > >=2C mutex=3D0x161d780=2C m3timeout=3D1294411678.981461) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161dae0=2C n=3D100=2C al= > >ertable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D100) at ../src/thread/PTHREAD/Th= > >readPThread.m3:573 > >> #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x224d768)= > > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= > >larm/ratsql/src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161dae0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161dae0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 41 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161d7e0= > >=2C mutex=3D0x161da50=2C m3timeout=3D1294411605.8302381) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161da80=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x22= > >4d960) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= > >a/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161da80) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161da80) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 40 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161d940= > >=2C mutex=3D0x161d910=2C m3timeout=3D1294411678.8294799) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161d8b0=2C n=3D100=2C al= > >ertable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D100) at ../src/thread/PTHREAD/Th= > >readPThread.m3:573 > >> #6 0x000c4b88 in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=3D0x224d348= > >) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mika/t/= > >calarm/ratsql/src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161d8b0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161d8b0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 39 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x16262c0= > >=2C mutex=3D0x161d750=2C m3timeout=3D1294411605.8264539) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161d850=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000c6a9a in DBTable_gcoms_ordr_statusMonitor__CleanerApply (cl=3D0x2= > >24d540) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/m= > >ika/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161d850) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161d850) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 38 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2003bc0= > >=2C mutex=3D0x2003cd0=2C m3timeout=3D1294411628.744529) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2003c70=2C n=3D50=2C ale= > >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= > >eadPThread.m3:573 > >> #6 0x000b4d70 in DBTable_gcoms_strategyMonitor__ApplyC (cl=3D0x228c348) a= > >t ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/calarm= > >/ratsql/src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2003c70) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2003c70) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 37 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2003ba0= > >=2C mutex=3D0x2003be0=2C m3timeout=3D1294411605.7216971) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2003c10=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000b6cc1 in DBTable_gcoms_strategyMonitor__CleanerApply (cl=3D0x228c= > >538) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/= > >calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2003c10) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2003c10) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 36 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x16256b0= > >=2C mutex=3D0x16255a0=2C m3timeout=3D1294411628.815861) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x1625650=2C n=3D50=2C ale= > >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= > >eadPThread.m3:573 > >> #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x228c080)= > > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= > >larm/ratsql/src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x1625650) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x1625650) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 35 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x1625630= > >=2C mutex=3D0x1625570=2C m3timeout=3D1294411605.7159209) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x16255d0=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x22= > >8c270) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= > >a/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x16255d0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x16255d0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 34 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2003a30= > >=2C mutex=3D0x20031e0=2C m3timeout=3D1294411628.7167931) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x20039d0=2C n=3D50=2C ale= > >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= > >eadPThread.m3:573 > >> #6 0x000d2f00 in DBTable_gcoms_fillMonitor__ApplyC (cl=3D0x2255d40) at ..= > >/I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/= > >src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20039d0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20039d0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 33 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x20034c0= > >=2C mutex=3D0x20038a0=2C m3timeout=3D1294411605.7081449) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2003970=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000d50b3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=3D0x2255f30)= > > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= > >atsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2003970) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2003970) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 32 (process 32362): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D9=2C read=3D1=2C m3timeout=3D= > >1) at ../src/thread/Common/ThreadInternal.c:31 > >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x2003780=2C fd=3D9=2C re= > >ad=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001'= > >) at ../src/thread/PTHREAD/ThreadPThread.m3:627 > >> #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=3D9=2C read=3D1 '\001'= > >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > >> #4 0x00346693 in TCP__GetBytesFD (t=3D0x227c15c=2C arr=3D0x227600c=2C tim= > >eout=3D-1) at ../src/POSIX/TCP.m3:326 > >> #5 0x00348786 in ConnRW__RdSeek (rd=3D0x227a010=2C pos=3D0=2C dontBlock= > >=3D0 '\0') at ../src/common/ConnRW.m3:69 > >> #6 0x003591ce in Rd__GetLine (rd=3D0x227a010) at ../src/rw/Rd.m3:426 > >> #7 0x002678d9 in UpdateMonitor__InApplyP (cl=3D0x227a040) at ../src/Updat= > >eMonitor.m3:240 > >> #8 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2003780) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #9 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2003780) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #10 0x9713885d in _pthread_start () > >> #11 0x971386e2 in thread_start () > >> > >> Thread 31 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2003420=2C j=3D0= > >x2003720) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x20036c0=2C m=3D0x227c220= > >=2C c=3D0x227c22c=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x227c220=2C c=3D0x227c22c) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002674cc in UpdateMonitor__OutApplyP (p=3D0x227c17c) at ../src/Updat= > >eMonitor.m3:178 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20036c0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20036c0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 30 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x161a290=2C j=3D0= > >x1625020) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x1624fc0=2C m=3D0x2255ac0= > >=2C c=3D0x2255af4=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x2255ac0=2C c=3D0x2255af4) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x0026a003 in DesynchronizedDB__PApply (p=3D0x2255b04) at ../src/Desyn= > >chronizedDB.m3:216 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x1624fc0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x1624fc0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 29 (process 32362): > >> #0 0x9716c1d6 in __wait4 () > >> #1 0x9716c1c9 in waitpid$UNIX2003 () > >> #2 0x003c50d5 in Uexec__waitpid (i=3D32392=2C j=3D0xb0e36b7c=2C k=3D0) at= > > ../src/unix/Common/Uexec.c:66 > >> #3 0x003c1d31 in SchedulerPosix__WaitProcess (pid=3D32392=2C status=3D0xb= > >0e36b7c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 > >> #4 0x003536dc in Process__Wait (p=3D0x22585fc) at ../src/os/POSIX/Process= > >PosixCommon.m3:275 > >> #5 0x003163ad in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:18= > >5 > >> #6 0x00316d6e in ProcUtils__Apply (self=3D0x2256284) at ../src/ProcUtils.= > >m3:274 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x16251a0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x16251a0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 28 (process 32362): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D8=2C read=3D1=2C m3timeout=3D= > >1) at ../src/thread/Common/ThreadInternal.c:31 > >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x20030c0=2C fd=3D8=2C re= > >ad=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001'= > >) at ../src/thread/PTHREAD/ThreadPThread.m3:627 > >> #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=3D8=2C read=3D1 '\001'= > >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > >> #4 0x00346693 in TCP__GetBytesFD (t=3D0x22562c4=2C arr=3D0x225e00c=2C tim= > >eout=3D-1) at ../src/POSIX/TCP.m3:326 > >> #5 0x00348786 in ConnRW__RdSeek (rd=3D0x2256318=2C pos=3D0=2C dontBlock= > >=3D0 '\0') at ../src/common/ConnRW.m3:69 > >> #6 0x00356338 in Rd__DoSeek (rd=3D0x2256318) at ../src/rw/Rd.m3:54 > >> #7 0x003560c1 in UnsafeRd__FastGetChar (rd=3D0x2256318) at ../src/rw/Rd.m= > >3:43 > >> #8 0x00356018 in Rd__GetChar (rd=3D0x2256318) at ../src/rw/Rd.m3:34 > >> #9 0x002c62c5 in ReadLine__ReadALine (t=3D0x225600c) at ../src/ReadLine.m= > >3:151 > >> #10 0x002c877e in ReadLine__ReadLine (t=3D0x225600c) at ../src/ReadLine.m= > >3:411 > >> #11 0x0023b1fb in SchemeReadLine__GetCh (p=3D0x2256348) at ../src/SchemeR= > >eadLine.m3:80 > >> #12 0x0025f4b3 in SchemeInputPort__NextToken (t=3D0x2256348=2C wx=3D0x225= > >63cc) at ../src/SchemeInputPort.m3:309 > >> #13 0x0025eb94 in SchemeInputPort__Read (t=3D0x2256348) at ../src/SchemeI= > >nputPort.m3:177 > >> #14 0x0023ba70 in SchemeReadLine__MainLoop (rl=3D0x225600c=2C scm=3D0x223= > >40d0) at ../src/SchemeReadLine.m3:146 > >> #15 0x00006c23 in Main__SCApply (c=3D0x2255620) at ../src/Main.m3:92 > >> #16 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20030c0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #17 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20030c0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #18 0x9713885d in _pthread_start () > >> #19 0x971386e2 in thread_start () > >> > >> Thread 27 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x161e470) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003befff in ThreadPThread__LockMutex (m=3D0x22440a4) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x002dbd63 in SXLongReal__Update (v=3D0x2244010=2C newValue=3D12937212= > >30.087589=2C when=3D1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 =3D>= > > ../src/SXType.mg:79 > >> #5 0x002dc086 in SXLongReal__SetVar (v=3D0x2244010=2C newValue=3D12937212= > >30.087589=2C when=3D1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 =3D>= > > ../src/SXType.mg:98 > >> #6 0x00300c16 in SXTimer__Loop (cl=3D0x173934c) at ../src/SXTimer.m3:64 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2001ec0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2001ec0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 26 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20011c0=2C j=3D0= > >x2001e10) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2001db0=2C m=3D0x1738078= > >=2C c=3D0x17380a8=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1738078=2C c=3D0x17380a8) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x0009e3d6 in GCOMSOrderStatus__Apply (cl=3D0x17380b8) at ../src/GCOMS= > >OrderStatus.m3:166 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2001db0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2001db0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 25 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x1619840=2C j=3D0= > >x1619920) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x161a170=2C m=3D0x15aab74= > >=2C c=3D0x15aab80=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15aab74=2C c=3D0x15aab80) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x000a4482 in GCOMSBusyOrders__Apply (cl=3D0x15aab90) at ../src/GCOMSB= > >usyOrders.m3:63 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161a170) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161a170) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 24 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20011a0=2C j=3D0= > >x2001170) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2001110=2C m=3D0x173e044= > >=2C c=3D0x173e050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x173e044=2C c=3D0x173e050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0bace84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0bace84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1594280) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15943b0) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2001110) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2001110) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 23 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20010f0=2C j=3D0= > >x20010c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2001060=2C m=3D0x1724034= > >=2C c=3D0x1724040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1724034=2C c=3D0x1724040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0b2ae84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0b2ae84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15940f0) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1594220) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2001060) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2001060) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 22 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2001040=2C j=3D0= > >x2001010) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000fb0=2C m=3D0x1722034= > >=2C c=3D0x1722040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1722034=2C c=3D0x1722040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0aa8e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0aa8e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15adb40) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad7cc) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000fb0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000fb0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 21 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000f90=2C j=3D0= > >x2000f60) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000f00=2C m=3D0x1720034= > >=2C c=3D0x1720040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1720034=2C c=3D0x1720040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0a26e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0a26e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15adae0) at ../src/SX.m3:151 > >> #9 0x0016017c in CurrencySXProxy__Apply (cl=3D0x15ad7b0) at ../I386_DARWI= > >N/CurrencySXProxy.m3 =3D> /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000f00) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000f00) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 20 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000ee0=2C j=3D0= > >x2000eb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000e50=2C m=3D0x173c044= > >=2C c=3D0x173c050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x173c044=2C c=3D0x173c050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb09a4e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb09a4e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad450) at ../src/SX.m3:151 > >> #9 0x002d3613 in BoolSXProxy__Apply (cl=3D0x15ad794) at ../I386_DARWIN/Bo= > >olSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000e50) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000e50) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 19 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000e30=2C j=3D0= > >x2000e00) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000da0=2C m=3D0x171e034= > >=2C c=3D0x171e040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x171e034=2C c=3D0x171e040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0922e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0922e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad3e8) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad778) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000da0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000da0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 18 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000d80=2C j=3D0= > >x2000d50) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000cf0=2C m=3D0x1740044= > >=2C c=3D0x1740050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1740044=2C c=3D0x1740050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb08a0e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb08a0e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad380) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad75c) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000cf0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000cf0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 17 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000cd0=2C j=3D0= > >x2000ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000c40=2C m=3D0x1704044= > >=2C c=3D0x1704050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1704044=2C c=3D0x1704050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb081ee84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb081ee84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad318) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad740) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000c40) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000c40) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 16 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000c20=2C j=3D0= > >x2000bf0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000b90=2C m=3D0x1702044= > >=2C c=3D0x1702050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1702044=2C c=3D0x1702050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb079ce84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb079ce84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad2b0) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad724) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000b90) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000b90) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 15 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000b70=2C j=3D0= > >x2000b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000ae0=2C m=3D0x173a044= > >=2C c=3D0x173a050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x173a044=2C c=3D0x173a050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb071ae84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb071ae84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad248) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad708) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000ae0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000ae0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 14 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000ac0=2C j=3D0= > >x2000a90) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000a30=2C m=3D0x171a034= > >=2C c=3D0x171a040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x171a034=2C c=3D0x171a040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0698e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0698e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad1e0) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad6ec) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000a30) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000a30) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 13 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000a10=2C j=3D0= > >x20009e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000980=2C m=3D0x1718034= > >=2C c=3D0x1718040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1718034=2C c=3D0x1718040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0616e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0616e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad618) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad6d0) at ../I386_DARWI= > N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000980) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000980) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 12 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000960=2C j=3D0= > >x2000930) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x20008d0=2C m=3D0x1716034= > >=2C c=3D0x1716040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1716034=2C c=3D0x1716040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0594e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0594e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad5b0) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad6b4) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20008d0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20008d0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 11 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20008b0=2C j=3D0= > >x2000880) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000820=2C m=3D0x1714034= > >=2C c=3D0x1714040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1714034=2C c=3D0x1714040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0512e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0512e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad548) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad698) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000820) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000820) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 10 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000800=2C j=3D0= > >x20007d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000770=2C m=3D0x1712034= > >=2C c=3D0x1712040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1712034=2C c=3D0x1712040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0490e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0490e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15acea8) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad67c) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000770) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000770) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 9 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000750=2C j=3D0= > >x2000720) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x20006c0=2C m=3D0x15b6034= > >=2C c=3D0x15b6040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15b6034=2C c=3D0x15b6040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb040ee84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb040ee84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591ea8) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1591fd8) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20006c0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20006c0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 8 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20006a0=2C j=3D0= > >x2000670) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000610=2C m=3D0x15b4034= > >=2C c=3D0x15b4040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15b4034=2C c=3D0x15b4040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb038ce84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb038ce84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591bf8) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1591d28) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000610) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000610) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 7 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20005f0=2C j=3D0= > >x20005c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000560=2C m=3D0x15b2034= > >=2C c=3D0x15b2040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15b2034=2C c=3D0x15b2040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb030ae84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb030ae84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591a70) at ../src/SX.m3:151 > >> #9 0x0016017c in CurrencySXProxy__Apply (cl=3D0x1591b98) at ../I386_DARWI= > >N/CurrencySXProxy.m3 =3D> /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000560) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000560) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 6 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000540=2C j=3D0= > >x2000510) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x20004b0=2C m=3D0x171c0c0= > >=2C c=3D0x171c0cc=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x171c0c0=2C c=3D0x171c0cc) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0288e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0288e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591808) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1591938) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20004b0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20004b0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 5 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000490=2C j=3D0= > >x2000460) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000400=2C m=3D0x15b0034= > >=2C c=3D0x15b0040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15b0034=2C c=3D0x15b0040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0206e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0206e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591678) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15917a8) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000400) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000400) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 4 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20003e0=2C j=3D0= > >x20003b0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000350=2C m=3D0x15ae034= > >=2C c=3D0x15ae040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15ae034=2C c=3D0x15ae040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0184e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0184e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15914e8) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1591618) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000350) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000350) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 3 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000150=2C j=3D0= > >x20002c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000260=2C m=3D0x159123c= > >=2C c=3D0x159122c=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x159123c=2C c=3D0x159122c) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002ce79c in VarProxyDefs__NotifyApply (cl=3D0x1591248) at ../src/Var= > >ProxyDefs.m3:55 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000260) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000260) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 2 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613c20) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003beefd in ThreadPThread__InitMutex (m=3D0x23480ac=2C root=3D0x2348= > >0a8=2C Clean=3D0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >> #4 0x003befce in ThreadPThread__LockMutex (m=3D0x23480a8) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #5 0x00355ff6 in Rd__GetChar (rd=3D0x23480a8) at ../src/rw/Rd.m3:33 > >> #6 0x00364b5d in Lex__Skip (rd=3D0x23480a8=2C cs=3D0x587ff8) at ../src/fm= > >tlex/Lex.m3:46 > >> #7 0x00366e53 in Lex__ReadReal (rd=3D0x23480a8=2C sign=3D0xb0080ca3=2C di= > >gits=3D0xb0080cbc=2C digCnt=3D0xb0080ca8=2C exp=3D0xb0080cac) at ../src/fmt= > >lex/Lex.m3:569 > >> #8 0x003678f0 in Lex__LongReal (rd=3D0x23480a8) at ../src/fmtlex/Lex.m3:6= > >62 > >> #9 0x0036834e in Scan__LongReal (txt=3D0x234807c) at ../src/fmtlex/Scan.m= > >3:77 > >> #10 0x003260a0 in XTime__ClApply (cl=3D0x15971b8) at ../src/XTime.m3:185 > >> #11 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161a0b0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161a0b0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #13 0x9713885d in _pthread_start () > >> #14 0x971386e2 in thread_start () > >> > >> Thread 1 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x16076f0=2C j=3D0= > >x16076c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x1607660=2C m=3D0x15ac4b0= > >=2C c=3D0x242f190=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003c1499 in ThreadPThread__XJoin (self=3D0x1607660=2C t=3D0x242f174= > >=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:513 > >> #6 0x003c15ae in Thread__Join (t=3D0x242f174) at ../src/thread/PTHREAD/Th= > >readPThread.m3:525 > >> #7 0x003158c9 in ProcUtils__Wait (c=3D0x242f0d4) at ../src/ProcUtils.m3:3= > >18 > >> #8 0x0024618a in SchemeCommandRunner__RealRunTimeoutCommandApply (proc=3D= > >0x1738cc4=2C interp=3D0x2367eac=2C args=3D0x239bd88) at ../src/SchemeComman= > >dRunner.m3:164 > >> #9 0x00245e07 in SchemeCommandRunner__RunTimeoutCommandApply (proc=3D0x17= > >38cc4=2C interp=3D0x2367eac=2C args=3D0x239bd88) at ../src/SchemeCommandRun= > >ner.m3:129 > >> #10 0x00245405 in SchemeCommandRunner__RunCommandApply (proc=3D0x1738cc4= > >=2C interp=3D0x2367eac=2C args=3D0x239bd70) at ../src/SchemeCommandRunner.m= > >3:23 > >> #11 0x0025c183 in SchemePrimitive__EDApply (ed=3D0x1738340=2C t=3D0x236b5= > >40=2C interp=3D0x2367eac=2C args=3D0x239bd70) at ../src/SchemePrimitive.m3:= > >207 > >> #12 0x00256d12 in SchemePrimitive__Prims (t=3D0x236b540=2C interp=3D0x236= > >7eac=2C args=3D0x239bd70=2C x=3D0x239a328=2C y=3D0x239bd5c=2C free=3D0xbfff= > >e82f) at ../src/SchemePrimitive.m3:580 > >> #13 0x0025bb2b in SchemePrimitive__Apply2 (t=3D0x236b540=2C interp=3D0x23= > >67eac=2C a1=3D0x239a328=2C a2=3D0x239bd5c) at ../src/SchemePrimitive.m3:549 > >> #14 0x0024d640 in Scheme__EvalInternal (t=3D0x2367eac=2C x=3D0x239a288=2C= > > env=3D0x239bce0) at ../src/Scheme.m3:585 > >> #15 0x0024d3a8 in Scheme__EvalInternal (t=3D0x2367eac=2C x=3D0x239a1d8=2C= > > env=3D0x239bce0) at ../src/Scheme.m3:582 > >> #16 0x0024d82d in Scheme__Eval (t=3D0x2367eac=2C x=3D0x239b098=2C envP=3D= > >0x2367ef4) at ../src/Scheme.m3:353 > >> #17 0x0024b005 in Scheme__EvalInGlobalEnv (t=3D0x2367eac=2C x=3D0x239b098= > >) at ../src/Scheme.m3:603 > >> #18 0x0002aebc in SchemeCalculator__Calc (t=3D0x2367e9c=2C arr=3D0xbfffec= > >dc) at ../src/SchemeCalculator.m3:61 > >> #19 0x0000cbd3 in EuroDriver__Loop (t=3D0x224da38) at ../src/EuroDriver.m= > >3:289 > >> #20 0x00008820 in Main_M3 (mode=3D1) at ../src/Main.m3:268 > >> #21 0x003b465a in RTLinker__RunMainBody (m=3D0x59e4c0) at ../src/runtime/= > >common/RTLinker.m3:406 > >> #22 0x003b3a8f in RTLinker__AddUnitI (m=3D0x59e4c0) at ../src/runtime/com= > >mon/RTLinker.m3:113 > >> #23 0x003b3b13 in RTLinker__AddUnit (b=3D0x6c5d) at ../src/runtime/common= > >/RTLinker.m3:122 > >> #24 0x000052ec in main (argc=3D19=2C argv=3D0xbffff1b4=2C envp=3D0xbffff2= > >04) at _m3main.c:16 > >> > >> Thread 75 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003ac2e3 in ThreadPThread__PThreadLockMutex (mutex=3D0x5d3ac0=2C lin= > >e=3D1288=2C index=3D2) at ../src/thread/PTHREAD/ThreadPThread.m3:1262 > >> #4 0x003ac409 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD= > >/ThreadPThread.m3:1288 > >> #5 0x97137217 in _cthread_fork_prepare () > >> #6 0x97137155 in fork () > >> #7 0x0033bc4d in ProcessPosixCommon__Create_ForkExec (cmd=3D0x31e02ac=2C = > >params=3D0x31e03c8=2C env=3D0x0=2C wd=3D0x53bf44=2C stdin=3D0x0=2C stdout= > >=3D0x30e91cc=2C stderr=3D0x30ea700) at ../src/os/POSIX/ProcessPosixCommon.m= > >3:75 > >> #8 0x0033d137 in Process__Create (cmd=3D0x31e02ac=2C params=3D0x31e03c8= > >=2C env=3D0x0=2C wd=3D0x53bf44=2C stdin=3D0x0=2C stdout=3D0x30e91cc=2C stde= > >rr=3D0x30ea700) at ../src/os/POSIX/ProcessPosix.m3:21 > >> #9 0x002ffdbc in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:18= > >0 > >> #10 0x003007c1 in ProcUtils__Apply (self=3D0x30eb88c) at ../src/ProcUtils= > >.m3:274 > >> #11 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161dd00) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #12 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161dd00) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #13 0x9713885d in _pthread_start () > >> #14 0x971386e2 in thread_start () > >> > >> Thread 74 (process 67010): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D13=2C read=3D1=2C m3timeout= > >=3D-1) at ../src/thread/Common/ThreadInternal.c:57 > >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x161dc50=2C fd=3D13=2C r= > >ead=3D1 '\001'=2C interval=3D-1=2C alertable=3D0 '\0') at ../src/thread/PTH= > >READ/ThreadPThread.m3:627 > >> #3 0x003aa6dc in SchedulerPosix__IOWait (fd=3D13=2C read=3D1 '\001'=2C ti= > >meoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 > >> #4 0x00338b5f in FilePosix__IntermittentRead (h=3D0x30ea6f0=2C b=3D0xb1ef= > >8cf0=2C mayBlock=3D1 '\001') at ../src/os/POSIX/FilePosix.m3:220 > >> #5 0x00347c68 in FileRd__Seek (rd=3D0x30ea710=2C pos=3D0=2C dontBlock=3D0= > > '\0') at ../src/rw/FileRd.m3:83 > >> #6 0x0033f64d in Rd__DoSeek (rd=3D0x30ea710) at ../src/rw/Rd.m3:54 > >> #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=3D0x30ea710) at ../src/rw/Rd.m= > >3:43 > >> #8 0x0033f32d in Rd__GetChar (rd=3D0x30ea710) at ../src/rw/Rd.m3:34 > >> #9 0x00300a0b in ProcUtils__SSApply (self=3D0x30eb854) at ../src/ProcUtil= > >s.m3:54 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161dc50) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161dc50) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 73 (process 67010): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D11=2C read=3D1=2C m3timeout= > >=3D-1) at ../src/thread/Common/ThreadInternal.c:57 > >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x161dbc0=2C fd=3D11=2C r= > >ead=3D1 '\001'=2C interval=3D-1=2C alertable=3D0 '\0') at ../src/thread/PTH= > >READ/ThreadPThread.m3:627 > >> #3 0x003aa6dc in SchedulerPosix__IOWait (fd=3D11=2C read=3D1 '\001'=2C ti= > >meoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 > >> #4 0x00338b5f in FilePosix__IntermittentRead (h=3D0x30e91bc=2C b=3D0xb1e7= > >6cf0=2C mayBlock=3D1 '\001') at ../src/os/POSIX/FilePosix.m3:220 > >> #5 0x00347c68 in FileRd__Seek (rd=3D0x30e91dc=2C pos=3D0=2C dontBlock=3D0= > > '\0') at ../src/rw/FileRd.m3:83 > >> #6 0x0033f64d in Rd__DoSeek (rd=3D0x30e91dc) at ../src/rw/Rd.m3:54 > >> #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=3D0x30e91dc) at ../src/rw/Rd.m= > >3:43 > >> #8 0x0033f32d in Rd__GetChar (rd=3D0x30e91dc) at ../src/rw/Rd.m3:34 > >> #9 0x00300a0b in ProcUtils__SSApply (self=3D0x30eb81c) at ../src/ProcUtil= > >s.m3:54 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161dbc0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161dbc0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 72 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7ebe in ThreadPThread__InitMutex (m=3D0x31339fc=2C root=3D0x3133= > >9f8=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >> #4 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x31339f8) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #5 0x0033f30b in Rd__GetChar (rd=3D0x31339f8) at ../src/rw/Rd.m3:33 > >> #6 0x0034dffd in Lex__Skip (rd=3D0x31339f8=2C cs=3D0x548018) at ../src/fm= > >tlex/Lex.m3:46 > >> #7 0x003503c3 in Lex__ReadReal (rd=3D0x31339f8=2C sign=3D0xb1df47c3=2C di= > >gits=3D0xb1df47dc=2C digCnt=3D0xb1df47c8=2C exp=3D0xb1df47cc) at ../src/fmt= > >lex/Lex.m3:569 > >> #8 0x00350ef5 in Lex__LongReal (rd=3D0x31339f8) at ../src/fmtlex/Lex.m3:6= > >62 > >> #9 0x003518f1 in Scan__LongReal (txt=3D0x25768e8) at ../src/fmtlex/Scan.m= > >3:77 > >> #10 0x0024f849 in SchemeInputPort__NextToken (t=3D0x30d4aec=2C wx=3D0x313= > >37e8) at ../src/SchemeInputPort.m3:439 > >> #11 0x0024fb9c in SchemeInputPort__ReadTail2 (t=3D0x30d4aec=2C wx=3D0x313= > >37e8) at ../src/SchemeInputPort.m3:240 > >> #12 0x0024e100 in SchemeInputPort__Read (t=3D0x30d4aec) at ../src/SchemeI= > >nputPort.m3:179 > >> #13 0x0024e2bc in SchemeInputPort__Read (t=3D0x30d4aec) at ../src/SchemeI= > >nputPort.m3:191 > >> #14 0x0024fb73 in SchemeInputPort__ReadTail2 (t=3D0x30d4aec=2C wx=3D0x313= > >3620) at ../src/SchemeInputPort.m3:240 > >> #15 0x0024e100 in SchemeInputPort__Read (t=3D0x30d4aec) at ../src/SchemeI= > >nputPort.m3:179 > >> #16 0x0024fb73 in SchemeInputPort__ReadTail2 (t=3D0x30d4aec=2C wx=3D0x313= > >3548) at ../src/SchemeInputPort.m3:240 > >> #17 0x0024e100 in SchemeInputPort__Read (t=3D0x30d4aec) at ../src/SchemeI= > >nputPort.m3:179 > >> #18 0x0023c6cd in Scheme__LoadPort (t=3D0x30d018c=2C in=3D0x30d4aec) at .= > >./src/Scheme.m3:317 > >> #19 0x002399e3 in Scheme__LoadRd (t=3D0x30d018c=2C rd=3D0x30d3cf0=2C fn= > >=3D0x0) at ../src/Scheme.m3:174 > >> #20 0x0023d255 in Scheme__ReadInitialFiles (t=3D0x30d018c=2C files=3D0x46= > >fc8c) at ../src/Scheme.m3:134 > >> #21 0x0023d5e7 in Scheme__Init2 (t=3D0x30d018c=2C input=3D0x20003b4=2C ou= > >tput=3D0x20013e8=2C files=3D0x46fc8c=2C env=3D0x0) at ../src/Scheme.m3:127 > >> #22 0x00239461 in Scheme__Init (t=3D0x30d018c=2C files=3D0x46fc8c=2C env= > >=3D0x0) at ../src/Scheme.m3:102 > >> #23 0x00029420 in SchemeCalculator__Init (t=3D0x30d017c=2C code=3D0x263fc= > >cc) at ../src/SchemeCalculator.m3:28 > >> #24 0x0000deef in EuroDriver__OApply (cl=3D0x3241b88) at ../src/EuroDrive= > >r.m3:865 > >> #25 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2307650) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #26 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2307650) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #27 0x9713885d in _pthread_start () > >> #28 0x971386e2 in thread_start () > >> > >> Thread 71 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3b40) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= > >.m3:1345 > >> #4 0x003995a6 in RTHeapRep__RegisterFinalCleanup (r=3D0x31239f8=2C p=3D0x= > >3a7d52) at ../src/runtime/common/RTCollector.m3:2148 > >> #5 0x003a7f1e in ThreadPThread__InitMutex (m=3D0x31239fc=2C root=3D0x3123= > >9f8=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > >> #6 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x31239f8) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #7 0x0033f30b in Rd__GetChar (rd=3D0x31239f8) at ../src/rw/Rd.m3:33 > >> #8 0x0034dffd in Lex__Skip (rd=3D0x31239f8=2C cs=3D0x548018) at ../src/fm= > >tlex/Lex.m3:46 > >> #9 0x003503c3 in Lex__ReadReal (rd=3D0x31239f8=2C sign=3D0xb1d727c3=2C di= > >gits=3D0xb1d727dc=2C digCnt=3D0xb1d727c8=2C exp=3D0xb1d727cc) at ../src/fmt= > >lex/Lex.m3:569 > >> #10 0x00350ef5 in Lex__LongReal (rd=3D0x31239f8) at ../src/fmtlex/Lex.m3:= > >662 > >> #11 0x003518f1 in Scan__LongReal (txt=3D0x25768e8) at ../src/fmtlex/Scan.= > >m3:77 > >> #12 0x0024f849 in SchemeInputPort__NextToken (t=3D0x3264aec=2C wx=3D0x312= > >37e8) at ../src/SchemeInputPort.m3:439 > >> #13 0x0024fb9c in SchemeInputPort__ReadTail2 (t=3D0x3264aec=2C wx=3D0x312= > >37e8) at ../src/SchemeInputPort.m3:240 > >> #14 0x0024e100 in SchemeInputPort__Read (t=3D0x3264aec) at ../src/SchemeI= > >nputPort.m3:179 > >> #15 0x0024e2bc in SchemeInputPort__Read (t=3D0x3264aec) at ../src/SchemeI= > >nputPort.m3:191 > >> #16 0x0024fb73 in SchemeInputPort__ReadTail2 (t=3D0x3264aec=2C wx=3D0x312= > >3620) at ../src/SchemeInputPort.m3:240 > >> #17 0x0024e100 in SchemeInputPort__Read (t=3D0x3264aec) at ../src/SchemeI= > >nputPort.m3:179 > >> #18 0x0024fb73 in SchemeInputPort__ReadTail2 (t=3D0x3264aec=2C wx=3D0x312= > >3548) at ../src/SchemeInputPort.m3:240 > >> #19 0x0024e100 in SchemeInputPort__Read (t=3D0x3264aec) at ../src/SchemeI= > >nputPort.m3:179 > >> #20 0x0023c6cd in Scheme__LoadPort (t=3D0x326018c=2C in=3D0x3264aec) at .= > >./src/Scheme.m3:317 > >> #21 0x002399e3 in Scheme__LoadRd (t=3D0x326018c=2C rd=3D0x3263cf0=2C fn= > >=3D0x0) at ../src/Scheme.m3:174 > >> #22 0x0023d255 in Scheme__ReadInitialFiles (t=3D0x326018c=2C files=3D0x46= > >fc8c) at ../src/Scheme.m3:134 > >> #23 0x0023d5e7 in Scheme__Init2 (t=3D0x326018c=2C input=3D0x20003b4=2C ou= > >tput=3D0x20013e8=2C files=3D0x46fc8c=2C env=3D0x0) at ../src/Scheme.m3:127 > >> #24 0x00239461 in Scheme__Init (t=3D0x326018c=2C files=3D0x46fc8c=2C env= > >=3D0x0) at ../src/Scheme.m3:102 > >> #25 0x00029420 in SchemeCalculator__Init (t=3D0x326017c=2C code=3D0x263fc= > >cc) at ../src/SchemeCalculator.m3:28 > >> #26 0x0000deef in EuroDriver__OApply (cl=3D0x3241af0) at ../src/EuroDrive= > >r.m3:865 > >> #27 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23075c0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #28 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23075c0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #29 0x9713885d in _pthread_start () > >> #30 0x971386e2 in thread_start () > >> > >> Thread 67 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7ebe in ThreadPThread__InitMutex (m=3D0x2686284=2C root=3D0x2686= > >280=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >> #4 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x2686280) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #5 0x003a7d30 in Thread__Acquire (m=3D0x2686280) at ../src/thread/PTHREAD= > >/ThreadPThread.m3:81 > >> #6 0x00343175 in RdClass__Lock (rd=3D0x2686280) at ../src/rw/Rd.m3:521 > >> #7 0x0024d9ef in SchemeInputPort__Lock (t=3D0x2686368) at ../src/SchemeIn= > >putPort.m3:72 > >> #8 0x0024e87d in SchemeInputPort__NextToken (t=3D0x2686368=2C wx=3D0x2686= > >388) at ../src/SchemeInputPort.m3:299 > >> #9 0x0024e0bb in SchemeInputPort__Read (t=3D0x2686368) at ../src/SchemeIn= > >putPort.m3:177 > >> #10 0x00239a38 in Scheme__LoadEval (t=3D0x254018c=2C rd=3D0x2686280) at .= > >./src/Scheme.m3:291 > >> #11 0x00239abd in Scheme__LoadEvalText (t=3D0x254018c=2C txt=3D0x263fccc)= > > at ../src/Scheme.m3:306 > >> #12 0x00029574 in SchemeCalculator__Calc (t=3D0x254017c=2C arr=3D0xb1cf09= > >e4) at ../src/SchemeCalculator.m3:47 > >> #13 0x0000ee50 in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/Eur= > >oDriver.m3:564 > >> #14 0x0000e7d6 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/E= > >uroDriver.m3:507 > >> #15 0x000103ca in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriv= > >er.m3:795 > >> #16 0x0000e3a2 in EuroDriver__OApply (cl=3D0x3018bb0) at ../src/EuroDrive= > >r.m3:892 > >> #17 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23054a0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #18 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23054a0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #19 0x9713885d in _pthread_start () > >> #20 0x971386e2 in thread_start () > >> > >> Thread 66 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x230d020=2C j=3D0= > >x2305470) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2305410=2C m=3D0x311a158= > >=2C c=3D0x311a164=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x311a158=2C c=3D0x311a164) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb1c6ecb8=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb1c6ecb8=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x0001063a in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDrive= > >r.m3:832 > >> #9 0x0000e3a2 in EuroDriver__OApply (cl=3D0x3018b18) at ../src/EuroDriver= > >.m3:892 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2305410) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2305410) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 62 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x23019d0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x31b1584) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x003a7d30 in Thread__Acquire (m=3D0x31b1584) at ../src/thread/PTHREAD= > >/ThreadPThread.m3:81 > >> #5 0x002c5bb6 in SX__Lock (arr=3D0x327c430) at ../src/SX.m3:318 > >> #6 0x002c5496 in SXSelect__WaitE (on=3D0xb1beccb8=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:241 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb1beccb8=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x0001063a in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDrive= > >r.m3:832 > >> #9 0x0000e3a2 in EuroDriver__OApply (cl=3D0x21fcc00) at ../src/EuroDriver= > >.m3:892 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1626040) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1626040) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 61 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7ebe in ThreadPThread__InitMutex (m=3D0x252c4b4=2C root=3D0x252c= > >4b0=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >> #4 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x252c4b0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #5 0x003a7d30 in Thread__Acquire (m=3D0x252c4b0) at ../src/thread/PTHREAD= > >/ThreadPThread.m3:81 > >> #6 0x00343175 in RdClass__Lock (rd=3D0x252c4b0) at ../src/rw/Rd.m3:521 > >> #7 0x0024d9ef in SchemeInputPort__Lock (t=3D0x252c598) at ../src/SchemeIn= > >putPort.m3:72 > >> #8 0x0024e87d in SchemeInputPort__NextToken (t=3D0x252c598=2C wx=3D0x252c= > >5b8) at ../src/SchemeInputPort.m3:299 > >> #9 0x0024e0bb in SchemeInputPort__Read (t=3D0x252c598) at ../src/SchemeIn= > >putPort.m3:177 > >> #10 0x00239a38 in Scheme__LoadEval (t=3D0x26f018c=2C rd=3D0x252c4b0) at .= > >./src/Scheme.m3:291 > >> #11 0x00239abd in Scheme__LoadEvalText (t=3D0x26f018c=2C txt=3D0x263fccc)= > > at ../src/Scheme.m3:306 > >> #12 0x00029574 in SchemeCalculator__Calc (t=3D0x26f017c=2C arr=3D0xb1b6a8= > >64) at ../src/SchemeCalculator.m3:47 > >> #13 0x0000ee50 in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/Eur= > >oDriver.m3:564 > >> #14 0x0000e7d6 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/E= > >uroDriver.m3:507 > >> #15 0x000103ca in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriv= > >er.m3:795 > >> #16 0x0000e3a2 in EuroDriver__OApply (cl=3D0x21fcb68) at ../src/EuroDrive= > >r.m3:892 > >> #17 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1625f80) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #18 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1625f80) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #19 0x9713885d in _pthread_start () > >> #20 0x971386e2 in thread_start () > >> > >> Thread 54 (process 67010): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D10=2C read=3D1=2C m3timeout= > >=3D1) at ../src/thread/Common/ThreadInternal.c:57 > >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x23071d0=2C fd=3D10=2C r= > >ead=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001= > >') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > >> #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=3D10=2C read=3D1 '\001'= > >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > >> #4 0x003344ff in TCP__GetBytesFD (t=3D0x3050f80=2C arr=3D0x3053048=2C tim= > >eout=3D-1) at ../src/POSIX/TCP.m3:326 > >> #5 0x003365ce in ConnRW__RdSeek (rd=3D0x3053018=2C pos=3D390=2C dontBlock= > >=3D0 '\0') at ../src/common/ConnRW.m3:69 > >> #6 0x003424e3 in Rd__GetLine (rd=3D0x3053018) at ../src/rw/Rd.m3:426 > >> #7 0x002a00d4 in TWSTester__RApply (cl=3D0x3055054) at ../src/TWSTester.m= > >3:382 > >> #8 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23071d0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #9 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23071d0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #10 0x9713885d in _pthread_start () > >> #11 0x971386e2 in thread_start () > >> > >> Thread 53 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x1621150= > >=2C mutex=3D0x1621120=2C m3timeout=3D1294537044.5119109) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x16210c0=2C n=3D0.5=2C al= > >ertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D0.5) at ../src/thread/PTHREAD/ThreadP= > >Thread.m3:567 > >> #6 0x00286610 in PMTWS__TSCApply (cl=3D0x3050e30) at ../src/PMTWS.m3:229 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x16210c0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x16210c0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 52 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3b40) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= > >.m3:1345 > >> #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=3D24=2C dataAlignment= > >=3D4=2C thread=3D0x1621054) at ../src/runtime/common/RTAllocator.m3:363 > >> #5 0x0038f2c7 in RTAllocator__GetTracedObj (def=3D0x5d6bf4) at ../src/run= > >time/common/RTAllocator.m3:224 > >> #6 0x0038ed60 in RTHooks__AllocateTracedObj (defn=3D0x5d6bf4) at ../src/r= > >untime/common/RTAllocator.m3:122 > >> #7 0x003bc686 in RTHooks__Concat (t=3D0x3240a08=2C u=3D0x52c460) at ../sr= > >c/text/TextCat.m3:28 > >> #8 0x0029e655 in TWSTester__MakeString (contract=3D0xb19e4dc0) at ../src/= > >TWSTester.m3:92 > >> #9 0x0029ea07 in TWSTester__ReqMktData (t=3D0x30505a8=2C tickerId=3D4=2C = > >contract=3D0xb19e4dc0) at ../src/TWSTester.m3:136 > >> #10 0x002aa233 in TWSTestBridge__MreqMktData (t=3D0x30505a8=2C tickerId= > >=3D4=2C contract=3D0xb19e4dc0) at ../src/TWSTestBridge.m3 =3D> ../src/TWSBr= > >idgeG.mg:580 > >> #11 0x00286034 in PMTWS__TSCApply (cl=3D0x3050dec) at ../src/PMTWS.m3:210 > >> #12 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1621010) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #13 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1621010) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #14 0x9713885d in _pthread_start () > >> #15 0x971386e2 in thread_start () > >> > >> Thread 51 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3b40) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= > >.m3:1345 > >> #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=3D136=2C dataAlignmen= > >t=3D8=2C thread=3D0x1620ed4) at ../src/runtime/common/RTAllocator.m3:363 > >> #5 0x0038f048 in RTAllocator__GetTracedRef (def=3D0x5711e0) at ../src/run= > >time/common/RTAllocator.m3:202 > >> #6 0x0038ed2f in RTHooks__AllocateTracedRef (defn=3D0x5711e0) at ../src/r= > >untime/common/RTAllocator.m3:115 > >> #7 0x000a8f49 in IntDBTable_gcoms_instrumentTbl__Put (tbl=3D0x328f110=2C = > >key=3D0xb1962d7c=2C val=3D0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_in= > >strumentTbl.m3 =3D> /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > >> #8 0x000a5ecc in DBTable_gcoms_instrumentMonitor__CopyC (cl=3D0x26608c0= > >=2C res=3D0x328f110) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 = > >=3D> /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > >> #9 0x00085c9f in GCOMSPortfolio__Lock (t=3D0x2660590) at ../src/GCOMSPort= > >folio.m3:94 > >> #10 0x000288d9 in SXPortfolio__Scan (t=3D0x300c578) at ../src/SXPortfolio= > >.m3:47 > >> #11 0x0002920d in SXPortfolio__Apply (cl=3D0x3050324) at ../src/SXPortfol= > >io.m3:113 > >> #12 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620e90) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #13 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620e90) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #14 0x9713885d in _pthread_start () > >> #15 0x971386e2 in thread_start () > >> > >> Thread 50 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4ad9= > >44=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= > >25 > >> #5 0x000d9ad8 in DBTable_gcoms_aux_ordrMonitor__DbNow (db=3D0x26602c4) at= > > ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/calarm/= > >ratsql/src/TableMonitor.mg:456 > >> #6 0x000d9cdf in DBTable_gcoms_aux_ordrMonitor__CheckForNew (cl=3D0x300c2= > >18) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/c= > >alarm/ratsql/src/TableMonitor.mg:467 > >> #7 0x000d9a01 in DBTable_gcoms_aux_ordrMonitor__Sync (cl=3D0x300c218) at = > >../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/calarm/r= > >atsql/src/TableMonitor.mg:445 > >> #8 0x000d9588 in DBTable_gcoms_aux_ordrMonitor__ApplyC (cl=3D0x300c218) a= > >t ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/calarm= > >/ratsql/src/TableMonitor.mg:393 > >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620d80) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620d80) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #11 0x9713885d in _pthread_start () > >> #12 0x971386e2 in thread_start () > >> > >> Thread 49 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x1620d60= > >=2C mutex=3D0x1620cd0=2C m3timeout=3D1294537044.970454) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x1620d00=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000db5a3 in DBTable_gcoms_aux_ordrMonitor__CleanerApply (cl=3D0x300c= > >410) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/= > >calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620d00) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620d00) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 48 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4aa2= > >28=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= > >25 > >> #5 0x000cb8aa in DBTable_gcoms_fillMonitor__DbNow (db=3D0x26602c4) at ../= > >I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/s= > >rc/TableMonitor.mg:456 > >> #6 0x000cbbf5 in DBTable_gcoms_fillMonitor__CheckForNew (cl=3D0x300bf48) = > >at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ra= > >tsql/src/TableMonitor.mg:467 > >> #7 0x000cb7d3 in DBTable_gcoms_fillMonitor__Sync (cl=3D0x300bf48) at ../I= > >386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/sr= > >c/TableMonitor.mg:445 > >> #8 0x000cb35a in DBTable_gcoms_fillMonitor__ApplyC (cl=3D0x300bf48) at ..= > >/I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/= > >src/TableMonitor.mg:393 > >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620b50) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620b50) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #11 0x9713885d in _pthread_start () > >> #12 0x971386e2 in thread_start () > >> > >> Thread 47 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x16243d0= > >=2C mutex=3D0x1620ac0=2C m3timeout=3D1294537044.9675839) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x1620af0=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000cd5e3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=3D0x300c140)= > > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= > >atsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620af0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620af0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 46 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4abd= > >98=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= > >25 > >> #5 0x000d2b9a in DBTable_gcoms_aux_instrumentMonitor__DbNow (db=3D0x26602= > >c4) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Users/mi= > >ka/t/calarm/ratsql/src/TableMonitor.mg:456 > >> #6 0x000d2dbf in DBTable_gcoms_aux_instrumentMonitor__CheckForNew (cl=3D0= > >x30091c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Us= > >ers/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > >> #7 0x000d2ac3 in DBTable_gcoms_aux_instrumentMonitor__Sync (cl=3D0x30091c= > >8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Users/mik= > >a/t/calarm/ratsql/src/TableMonitor.mg:445 > >> #8 0x000d264a in DBTable_gcoms_aux_instrumentMonitor__ApplyC (cl=3D0x3009= > >1c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Users/m= > >ika/t/calarm/ratsql/src/TableMonitor.mg:393 > >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2306710) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2306710) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #11 0x9713885d in _pthread_start () > >> #12 0x971386e2 in thread_start () > >> > >> Thread 45 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x230b2d0= > >=2C mutex=3D0x2306680=2C m3timeout=3D1294537044.960629) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x23066b0=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000d469b in DBTable_gcoms_aux_instrumentMonitor__CleanerApply (cl=3D= > >0x30093c0) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /U= > >sers/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23066b0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23066b0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 44 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a15= > >9c=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= > >25 > >> #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=3D0x26602c4) = > >at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cal= > >arm/ratsql/src/TableMonitor.mg:456 > >> #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=3D0x320= > >5b38) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika= > >/t/calarm/ratsql/src/TableMonitor.mg:467 > >> #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=3D0x3205b38) a= > >t ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cala= > >rm/ratsql/src/TableMonitor.mg:445 > >> #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x3205b38)= > > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= > >larm/ratsql/src/TableMonitor.mg:393 > >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x230b000) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x230b000) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #11 0x9713885d in _pthread_start () > >> #12 0x971386e2 in thread_start () > >> > >> Thread 43 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x230afe0= > >=2C mutex=3D0x230af20=2C m3timeout=3D1294537044.8138101) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x230af80=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x32= > >05d30) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= > >a/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x230af80) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x230af80) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 42 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a15= > >9c=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= > >25 > >> #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=3D0x26602c4) = > >at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cal= > >arm/ratsql/src/TableMonitor.mg:456 > >> #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=3D0x320= > >57b0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika= > >/t/calarm/ratsql/src/TableMonitor.mg:467 > >> #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=3D0x32057b0) a= > >t ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cala= > >rm/ratsql/src/TableMonitor.mg:445 > >> #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x32057b0)= > > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= > >larm/ratsql/src/TableMonitor.mg:393 > >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x230aca0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x230aca0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #11 0x9713885d in _pthread_start () > >> #12 0x971386e2 in thread_start () > >> > >> Thread 41 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x2301860= > >=2C mutex=3D0x230ab40=2C m3timeout=3D1294537044.8138311) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x230aba0=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x32= > >059a8) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= > >a/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x230aba0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x230aba0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 40 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a6b= > >9c=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= > >25 > >> #5 0x000bd587 in DBTable_gcoms_ordr_statusMonitor__DbNow (db=3D0x26602c4)= > > at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mika/t/c= > >alarm/ratsql/src/TableMonitor.mg:456 > >> #6 0x000bd76e in DBTable_gcoms_ordr_statusMonitor__CheckForNew (cl=3D0x32= > >05390) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mi= > >ka/t/calarm/ratsql/src/TableMonitor.mg:467 > >> #7 0x000bd4b0 in DBTable_gcoms_ordr_statusMonitor__Sync (cl=3D0x3205390) = > >at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mika/t/ca= > >larm/ratsql/src/TableMonitor.mg:445 > >> #8 0x000bd037 in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=3D0x3205390= > >) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mika/t/= > >calarm/ratsql/src/TableMonitor.mg:393 > >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1621f10) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1621f10) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #11 0x9713885d in _pthread_start () > >> #12 0x971386e2 in thread_start () > >> > >> Thread 39 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x16242f0= > >=2C mutex=3D0x1621ee0=2C m3timeout=3D1294537044.8137701) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x1622280=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000bf010 in DBTable_gcoms_ordr_statusMonitor__CleanerApply (cl=3D0x3= > >205588) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/m= > >ika/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1622280) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1622280) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 38 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a31= > >44=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= > >25 > >> #5 0x000adb3f in DBTable_gcoms_strategyMonitor__DbNow (db=3D0x26602c4) at= > > ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/calarm/= > >ratsql/src/TableMonitor.mg:456 > >> #6 0x000add46 in DBTable_gcoms_strategyMonitor__CheckForNew (cl=3D0x2660b= > >88) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/c= > >alarm/ratsql/src/TableMonitor.mg:467 > >> #7 0x000ada68 in DBTable_gcoms_strategyMonitor__Sync (cl=3D0x2660b88) at = > >../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/calarm/r= > >atsql/src/TableMonitor.mg:445 > >> #8 0x000ad5ef in DBTable_gcoms_strategyMonitor__ApplyC (cl=3D0x2660b88) a= > >t ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/calarm= > >/ratsql/src/TableMonitor.mg:393 > >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161b820) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161b820) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #11 0x9713885d in _pthread_start () > >> #12 0x971386e2 in thread_start () > >> > >> Thread 37 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x2306160= > >=2C mutex=3D0x2305f70=2C m3timeout=3D1294537044.6482379) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x2306100=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000af60a in DBTable_gcoms_strategyMonitor__CleanerApply (cl=3D0x2660= > >d78) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/= > >calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2306100) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2306100) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 36 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a15= > >9c=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= > >25 > >> #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=3D0x26602c4) = > >at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cal= > >arm/ratsql/src/TableMonitor.mg:456 > >> #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=3D0x266= > >08c0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika= > >/t/calarm/ratsql/src/TableMonitor.mg:467 > >> #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=3D0x26608c0) a= > >t ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cala= > >rm/ratsql/src/TableMonitor.mg:445 > >> #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x26608c0)= > > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= > >larm/ratsql/src/TableMonitor.mg:393 > >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2305e30) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2305e30) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #11 0x9713885d in _pthread_start () > >> #12 0x971386e2 in thread_start () > >> > >> Thread 35 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x2305dd0= > >=2C mutex=3D0x2305c40=2C m3timeout=3D1294537044.6481991) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x2305d70=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x26= > >60ab0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= > >a/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2305d70) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2305d70) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 34 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3b40) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= > >.m3:1345 > >> #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=3D32=2C dataAlignment= > >=3D4=2C thread=3D0x1623e04) at ../src/runtime/common/RTAllocator.m3:363 > >> #5 0x0038f2c7 in RTAllocator__GetTracedObj (def=3D0x5c87d4) at ../src/run= > >time/common/RTAllocator.m3:224 > >> #6 0x0038ed60 in RTHooks__AllocateTracedObj (defn=3D0x5c87d4) at ../src/r= > >untime/common/RTAllocator.m3:122 > >> #7 0x00260a50 in DatabaseUtils__FilterUnprintable (t=3D0x4aa228) at ../sr= > >c/DatabaseUtils.m3:124 > >> #8 0x0026b6ae in UnsafeDatabase__ExecM (t=3D0x2660178=2C query=3D0x4aa228= > >=2C busyWait=3D0 '\0'=2C abortConnectionOnFail=3D1 '\001') at ../src/Unsafe= > >Database.m3:217 > >> #9 0x0026baa5 in UnsafeDatabase__TExecM (t=3D0x2660178=2C query=3D0x4aa22= > >8=2C busyWait=3D0 '\0'=2C abortConnectionOnFail=3D1 '\001') at ../src/Unsaf= > >eDatabase.m3:258 > >> #10 0x002587f9 in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4aa= > >228=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:= > >126 > >> #11 0x000cb8aa in DBTable_gcoms_fillMonitor__DbNow (db=3D0x26602c4) at ..= > >/I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/= > >src/TableMonitor.mg:456 > >> #12 0x000cbbf5 in DBTable_gcoms_fillMonitor__CheckForNew (cl=3D0x26605f8)= > > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= > >atsql/src/TableMonitor.mg:467 > >> #13 0x000cb7d3 in DBTable_gcoms_fillMonitor__Sync (cl=3D0x26605f8) at ../= > >I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/s= > >rc/TableMonitor.mg:445 > >> #14 0x000cb35a in DBTable_gcoms_fillMonitor__ApplyC (cl=3D0x26605f8) at .= > >./I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql= > >/src/TableMonitor.mg:393 > >> #15 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623dc0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #16 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623dc0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #17 0x9713885d in _pthread_start () > >> #18 0x971386e2 in thread_start () > >> > >> Thread 33 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x1623da0= > >=2C mutex=3D0x1623640=2C m3timeout=3D1294537044.6482589) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x1623d40=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000cd5e3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=3D0x26607e8)= > > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= > >atsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623d40) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623d40) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 32 (process 67010): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D9=2C read=3D1=2C m3timeout=3D= > >1) at ../src/thread/Common/ThreadInternal.c:57 > >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x1623c00=2C fd=3D9=2C re= > >ad=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001'= > >) at ../src/thread/PTHREAD/ThreadPThread.m3:627 > >> #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=3D9=2C read=3D1 '\001'= > >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > >> #4 0x003344ff in TCP__GetBytesFD (t=3D0x267015c=2C arr=3D0x2690040=2C tim= > >eout=3D-1) at ../src/POSIX/TCP.m3:326 > >> #5 0x003365ce in ConnRW__RdSeek (rd=3D0x2690010=2C pos=3D0=2C dontBlock= > >=3D0 '\0') at ../src/common/ConnRW.m3:69 > >> #6 0x003424e3 in Rd__GetLine (rd=3D0x2690010) at ../src/rw/Rd.m3:426 > >> #7 0x00256bb0 in UpdateMonitor__InApplyP (cl=3D0x269204c) at ../src/Updat= > >eMonitor.m3:240 > >> #8 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623c00) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #9 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623c00) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #10 0x9713885d in _pthread_start () > >> #11 0x971386e2 in thread_start () > >> > >> Thread 31 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x1623470=2C j=3D0= > >x1623ba0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x1623b40=2C m=3D0x2670220= > >=2C c=3D0x267022c=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2670220=2C c=3D0x267022c) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002567b1 in UpdateMonitor__OutApplyP (p=3D0x267017c) at ../src/Updat= > >eMonitor.m3:178 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623b40) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623b40) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 30 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23016c0=2C j=3D0= > >x2305a80) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2305a20=2C m=3D0x2660378= > >=2C c=3D0x26603ac=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2660378=2C c=3D0x26603ac) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x00259145 in DesynchronizedDB__PApply (p=3D0x26603bc) at ../src/Desyn= > >chronizedDB.m3:216 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2305a20) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2305a20) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 29 (process 67010): > >> #0 0x9716c1d6 in __wait4 () > >> #1 0x9716c1c9 in waitpid$UNIX2003 () > >> #2 0x003add58 in Uexec__waitpid (i=3D67040=2C j=3D0xb0e36b4c=2C k=3D0) at= > > ../src/unix/Common/Uexec.c:67 > >> #3 0x003aaa51 in SchedulerPosix__WaitProcess (pid=3D67040=2C status=3D0xb= > >0e36b4c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 > >> #4 0x0033ca19 in Process__Wait (p=3D0x2650590) at ../src/os/POSIX/Process= > >PosixCommon.m3:275 > >> #5 0x002ffdf6 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:18= > >5 > >> #6 0x003007c1 in ProcUtils__Apply (self=3D0x2640284) at ../src/ProcUtils.= > >m3:274 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x16233b0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x16233b0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 28 (process 67010): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D7=2C read=3D1=2C m3timeout=3D= > >1) at ../src/thread/Common/ThreadInternal.c:57 > >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x1623300=2C fd=3D7=2C re= > >ad=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001'= > >) at ../src/thread/PTHREAD/ThreadPThread.m3:627 > >> #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=3D7=2C read=3D1 '\001'= > >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > >> #4 0x003344ff in TCP__GetBytesFD (t=3D0x26402c4=2C arr=3D0x2642358=2C tim= > >eout=3D-1) at ../src/POSIX/TCP.m3:326 > >> #5 0x003365ce in ConnRW__RdSeek (rd=3D0x2642328=2C pos=3D0=2C dontBlock= > >=3D0 '\0') at ../src/common/ConnRW.m3:69 > >> #6 0x0033f64d in Rd__DoSeek (rd=3D0x2642328) at ../src/rw/Rd.m3:54 > >> #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=3D0x2642328) at ../src/rw/Rd.m= > >3:43 > >> #8 0x0033f32d in Rd__GetChar (rd=3D0x2642328) at ../src/rw/Rd.m3:34 > >> #9 0x002b26e9 in ReadLine__ReadALine (t=3D0x264000c) at ../src/ReadLine.m= > >3:151 > >> #10 0x002b4a56 in ReadLine__ReadLine (t=3D0x264000c) at ../src/ReadLine.m= > >3:411 > >> #11 0x0022a383 in SchemeReadLine__GetCh (p=3D0x2644364) at ../src/SchemeR= > >eadLine.m3:80 > >> #12 0x0024e942 in SchemeInputPort__NextToken (t=3D0x2644364=2C wx=3D0x264= > >43e8) at ../src/SchemeInputPort.m3:309 > >> #13 0x0024e0bb in SchemeInputPort__Read (t=3D0x2644364) at ../src/SchemeI= > >nputPort.m3:177 > >> #14 0x0022abaa in SchemeReadLine__MainLoop (rl=3D0x264000c=2C scm=3D0x256= > >b9e4) at ../src/SchemeReadLine.m3:146 > >> #15 0x00006bb7 in Main__SCApply (c=3D0x263fed0) at ../src/Main.m3:92 > >> #16 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623300) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #17 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623300) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #18 0x9713885d in _pthread_start () > >> #19 0x971386e2 in thread_start () > >> > >> Thread 27 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x161bd50) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x25400a4) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x002c77db in SXLongReal__Update (v=3D0x2540010=2C newValue=3D12937197= > >75.9374268=2C when=3D1293719775.9374378) at ../I386_DARWIN/SXLongReal.m3 = > >=3D> ../src/SXType.mg:79 > >> #5 0x002c7abe in SXLongReal__SetVar (v=3D0x2540010=2C newValue=3D12937197= > >75.9374268=2C when=3D1293719775.9374378) at ../I386_DARWIN/SXLongReal.m3 = > >=3D> ../src/SXType.mg:98 > >> #6 0x002eaaf7 in SXTimer__Loop (cl=3D0x21e11cc) at ../src/SXTimer.m3:64 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161b610) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161b610) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 26 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23016a0=2C j=3D0= > >x2301670) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2301610=2C m=3D0x2114828= > >=2C c=3D0x2114858=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2114828=2C c=3D0x2114858) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x000974c8 in GCOMSOrderStatus__Apply (cl=3D0x2114868) at ../src/GCOMS= > >OrderStatus.m3:166 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2301610) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2301610) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 25 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300540=2C j=3D0= > >x2301580) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x23015b0=2C m=3D0x211476c= > >=2C c=3D0x2114778=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x211476c=2C c=3D0x2114778) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x0009d268 in GCOMSBusyOrders__Apply (cl=3D0x2114788) at ../src/GCOMSB= > >usyOrders.m3:63 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23015b0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23015b0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 24 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300d90=2C j=3D0= > >x2300d60) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300d00=2C m=3D0x21d0044= > >=2C c=3D0x21d0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x21d0044=2C c=3D0x21d0050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0bace84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0bace84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2111418) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2111548) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300d00) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300d00) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 23 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300ce0=2C j=3D0= > >x2300cb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300c50=2C m=3D0x21c0044= > >=2C c=3D0x21c0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x21c0044=2C c=3D0x21c0050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0b2ae84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0b2ae84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2111288) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x21113b8) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300c50) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300c50) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 22 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300c30=2C j=3D0= > >x2300c00) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300ba0=2C m=3D0x21b0044= > >=2C c=3D0x21b0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x21b0044=2C c=3D0x21b0050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0aa8e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0aa8e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110fd8) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2111108) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300ba0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300ba0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 21 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300b80=2C j=3D0= > >x2300b50) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300af0=2C m=3D0x21a0044= > >=2C c=3D0x21a0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x21a0044=2C c=3D0x21a0050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0a26e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0a26e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110e50) at ../src/SX.m3:151 > >> #9 0x00163596 in CurrencySXProxy__Apply (cl=3D0x2110f78) at ../I386_DARWI= > >N/CurrencySXProxy.m3 =3D> /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300af0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300af0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 20 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300a10=2C j=3D0= > >x23009e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300980=2C m=3D0x2190044= > >=2C c=3D0x2190050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2190044=2C c=3D0x2190050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb09a4e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb09a4e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110b48) at ../src/SX.m3:151 > >> #9 0x002bf3d5 in BoolSXProxy__Apply (cl=3D0x2110c70) at ../I386_DARWIN/Bo= > >olSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300980) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300980) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 19 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300960=2C j=3D0= > >x2300930) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x23008d0=2C m=3D0x2180044= > >=2C c=3D0x2180050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2180044=2C c=3D0x2180050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0922e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0922e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x21109b8) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2110ae8) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23008d0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23008d0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 18 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23008b0=2C j=3D0= > >x2300880) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300820=2C m=3D0x2170044= > >=2C c=3D0x2170050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2170044=2C c=3D0x2170050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb08a0e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb08a0e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110828) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2110958) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300820) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300820) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 17 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300800=2C j=3D0= > >x23007d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300770=2C m=3D0x2160044= > >=2C c=3D0x2160050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2160044=2C c=3D0x2160050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb081ee84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb081ee84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110698) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x21107c8) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300770) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300770) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 16 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300750=2C j=3D0= > >x2300720) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x23006c0=2C m=3D0x2150044= > >=2C c=3D0x2150050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2150044=2C c=3D0x2150050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb079ce84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb079ce84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110508) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2110638) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23006c0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23006c0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 15 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23006a0=2C j=3D0= > >x2300670) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300610=2C m=3D0x2140044= > >=2C c=3D0x2140050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2140044=2C c=3D0x2140050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb071ae84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb071ae84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110378) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x21104a8) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300610) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300610) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 14 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161af10=2C j=3D0= > >x161aee0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161ae80=2C m=3D0x2130044= > >=2C c=3D0x2130050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2130044=2C c=3D0x2130050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0698e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0698e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x21101e8) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2110318) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161ae80) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161ae80) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 13 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23005f0=2C j=3D0= > >x23005c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300560=2C m=3D0x2120044= > >=2C c=3D0x2120050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2120044=2C c=3D0x2120050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0616e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0616e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20c0c40) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x21100ac) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300560) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300560) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 12 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23004c0=2C j=3D0= > >x2300490) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300430=2C m=3D0x2080044= > >=2C c=3D0x2080050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2080044=2C c=3D0x2080050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0594e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0594e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20c0ab0) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x20c0be0) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300430) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300430) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 11 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300410=2C j=3D0= > >x23003e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300380=2C m=3D0x20f0044= > >=2C c=3D0x20f0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x20f0044=2C c=3D0x20f0050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0512e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0512e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20c0920) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x20c0a50) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300380) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300380) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 10 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161aad0=2C j=3D0= > >x161aaa0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161aa40=2C m=3D0x20b0044= > >=2C c=3D0x20b0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x20b0044=2C c=3D0x20b0050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0490e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0490e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020e88) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020fb8) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161aa40) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161aa40) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 9 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23002a0=2C j=3D0= > >x2300270) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300210=2C m=3D0x2090044= > >=2C c=3D0x2090050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2090044=2C c=3D0x2090050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb040ee84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb040ee84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020cf8) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020e28) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300210) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300210) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 8 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a9c0=2C j=3D0= > >x161a990) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a930=2C m=3D0x20e0034= > >=2C c=3D0x20e0040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x20e0034=2C c=3D0x20e0040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb038ce84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb038ce84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020a48) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020b78) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a930) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a930) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 7 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a910=2C j=3D0= > >x161a8e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a880=2C m=3D0x20a0034= > >=2C c=3D0x20a0040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x20a0034=2C c=3D0x20a0040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb030ae84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb030ae84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20208c0) at ../src/SX.m3:151 > >> #9 0x00163596 in CurrencySXProxy__Apply (cl=3D0x20209e8) at ../I386_DARWI= > >N/CurrencySXProxy.m3 =3D> /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a880) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a880) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 6 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a860=2C j=3D0= > >x161a830) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a7d0=2C m=3D0x2050044= > >=2C c=3D0x2050050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2050044=2C c=3D0x2050050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0288e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0288e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020658) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020788) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a7d0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a7d0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 5 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a7b0=2C j=3D0= > >x161a780) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a720=2C m=3D0x2040044= > >=2C c=3D0x2040050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2040044=2C c=3D0x2040050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0206e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0206e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20204c8) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x20205f8) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a720) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a720) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 4 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a290=2C j=3D0= > >x161a6f0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a690=2C m=3D0x2030044= > >=2C c=3D0x2030050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2030044=2C c=3D0x2030050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0184e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0184e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020338) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020468) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a690) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a690) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 3 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x1619840=2C j=3D0= > >x161a600) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a230=2C m=3D0x202008c= > >=2C c=3D0x202007c=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x202008c=2C c=3D0x202007c) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002ba948 in VarProxyDefs__NotifyApply (cl=3D0x2020098) at ../src/Var= > >ProxyDefs.m3:55 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a230) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a230) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 2 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7ebe in ThreadPThread__InitMutex (m=3D0x20100ac=2C root=3D0x2010= > >0a8=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >> #4 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x20100a8) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #5 0x0033f30b in Rd__GetChar (rd=3D0x20100a8) at ../src/rw/Rd.m3:33 > >> #6 0x0034dffd in Lex__Skip (rd=3D0x20100a8=2C cs=3D0x548018) at ../src/fm= > >tlex/Lex.m3:46 > >> #7 0x003503c3 in Lex__ReadReal (rd=3D0x20100a8=2C sign=3D0xb00809e3=2C di= > >gits=3D0xb00809fc=2C digCnt=3D0xb00809e8=2C exp=3D0xb00809ec) at ../src/fmt= > >lex/Lex.m3:569 > >> #8 0x00350ef5 in Lex__LongReal (rd=3D0x20100a8) at ../src/fmtlex/Lex.m3:6= > >62 > >> #9 0x003518f1 in Scan__LongReal (txt=3D0x201007c) at ../src/fmtlex/Scan.m= > >3:77 > >> #10 0x0030ef75 in XTime__ClApply (cl=3D0x2004624) at ../src/XTime.m3:185 > >> #11 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a0b0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #12 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a0b0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #13 0x9713885d in _pthread_start () > >> #14 0x971386e2 in thread_start () > >> > >> Thread 1 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x16076f0=2C j=3D0= > >x16076c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x1607660=2C m=3D0x2000084= > >=2C c=3D0x30eb8bc=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003aa1f3 in ThreadPThread__XJoin (self=3D0x1607660=2C t=3D0x30eb8a0= > >=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:513 > >> #6 0x003aa2f5 in Thread__Join (t=3D0x30eb8a0) at ../src/thread/PTHREAD/Th= > >readPThread.m3:525 > >> #7 0x002ff2b8 in ProcUtils__Wait (c=3D0x30eb800) at ../src/ProcUtils.m3:3= > >18 > >> #8 0x00234ebd in SchemeCommandRunner__RealRunTimeoutCommandApply (proc=3D= > >0x21e0b44=2C interp=3D0x3241ec4=2C args=3D0x30e775c) at ../src/SchemeComman= > >dRunner.m3:164 > >> #9 0x00234b4f in SchemeCommandRunner__RunTimeoutCommandApply (proc=3D0x21= > >e0b44=2C interp=3D0x3241ec4=2C args=3D0x30e775c) at ../src/SchemeCommandRun= > >ner.m3:129 > >> #10 0x00234217 in SchemeCommandRunner__RunCommandApply (proc=3D0x21e0b44= > >=2C interp=3D0x3241ec4=2C args=3D0x30e7744) at ../src/SchemeCommandRunner.m= > >3:23 > >> #11 0x0024b81b in SchemePrimitive__EDApply (ed=3D0x21e01c0=2C t=3D0x32458= > >44=2C interp=3D0x3241ec4=2C args=3D0x30e7744) at ../src/SchemePrimitive.m3:= > >207 > >> #12 0x00246509 in SchemePrimitive__Prims (t=3D0x3245844=2C interp=3D0x324= > >1ec4=2C args=3D0x30e7744=2C x=3D0x30e5cfc=2C y=3D0x30e7730=2C free=3D0xbfff= > >ea1f) at ../src/SchemePrimitive.m3:580 > >> #13 0x0024b1cb in SchemePrimitive__Apply2 (t=3D0x3245844=2C interp=3D0x32= > >41ec4=2C a1=3D0x30e5cfc=2C a2=3D0x30e7730) at ../src/SchemePrimitive.m3:549 > >> #14 0x0023c16f in Scheme__EvalInternal (t=3D0x3241ec4=2C x=3D0x30e5c5c=2C= > > env=3D0x30e76b4) at ../src/Scheme.m3:585 > >> #15 0x0023bedf in Scheme__EvalInternal (t=3D0x3241ec4=2C x=3D0x30e5bac=2C= > > env=3D0x30e76b4) at ../src/Scheme.m3:582 > >> #16 0x0023c35e in Scheme__Eval (t=3D0x3241ec4=2C x=3D0x30e6a6c=2C envP=3D= > >0x3241f0c) at ../src/Scheme.m3:353 > >> #17 0x00239bcf in Scheme__EvalInGlobalEnv (t=3D0x3241ec4=2C x=3D0x30e6a6c= > >) at ../src/Scheme.m3:603 > >> #18 0x0002972b in SchemeCalculator__Calc (t=3D0x3241eb4=2C arr=3D0xbfffee= > >3c) at ../src/SchemeCalculator.m3:61 > >> #19 0x0000c8af in EuroDriver__Loop (t=3D0x3205a80) at ../src/EuroDriver.m= > >3:289 > >> #20 0x00008781 in Main_M3 (mode=3D1) at ../src/Main.m3:268 > >> #21 0x0039d83d in RTLinker__RunMainBody (m=3D0x55e420) at ../src/runtime/= > >common/RTLinker.m3:406 > >> #22 0x0039cc99 in RTLinker__AddUnitI (m=3D0x55e420) at ../src/runtime/com= > >mon/RTLinker.m3:113 > >> #23 0x0039cd1a in RTLinker__AddUnit (b=3D0x6be3) at ../src/runtime/common= > >/RTLinker.m3:122 > >> #24 0x0000528c in main (argc=3D19=2C argv=3D0xbffff330=2C envp=3D0xbffff3= > >80) at _m3main.c:16 > > = From mika at async.caltech.edu Sun Jan 9 10:35:33 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Sun, 09 Jan 2011 01:35:33 -0800 Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <20110109023648.2344ACC37A@birch.elegosoft.com> References: <20110109023648.2344ACC37A@birch.elegosoft.com> Message-ID: <20110109093533.74F061A205B@async.async.caltech.edu> Jay did you expect this to fix things? I'm still seeing the same problems... Jay Krell writes: >CVSROOT: /usr/cvs >Changes by: jkrell at birch. 11/01/09 03:36: >46 > >Modified files: > cm3/m3-libs/m3core/src/thread/PTHREAD/: > ThreadPThread.m3 > >Log message: > LockHeap later in ForkPrepare, try to f >ix deadlock with mutex initialization From hosking at cs.purdue.edu Sun Jan 9 10:52:27 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 9 Jan 2011 04:52:27 -0500 Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <20110109093533.74F061A205B@async.async.caltech.edu> References: <20110109023648.2344ACC37A@birch.elegosoft.com> <20110109093533.74F061A205B@async.async.caltech.edu> Message-ID: <166140D0-E5D0-43D3-BF61-BDB3604B7A6D@cs.purdue.edu> Jay, don't you need to order your unlocks in AtForkParent in reverse order to AtForkPrepare? That means you'd need to UnlockHeap before unlocking the other mutexes. On Jan 9, 2011, at 4:35 AM, Mika Nystrom wrote: > Jay did you expect this to fix things? > > I'm still seeing the same problems... > > > > Jay Krell writes: >> CVSROOT: /usr/cvs >> Changes by: jkrell at birch. 11/01/09 03:36: >> 46 >> >> Modified files: >> cm3/m3-libs/m3core/src/thread/PTHREAD/: >> ThreadPThread.m3 >> >> Log message: >> LockHeap later in ForkPrepare, try to f >> ix deadlock with mutex initialization From hosking at cs.purdue.edu Sun Jan 9 11:27:20 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 9 Jan 2011 05:27:20 -0500 Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <166140D0-E5D0-43D3-BF61-BDB3604B7A6D@cs.purdue.edu> References: <20110109023648.2344ACC37A@birch.elegosoft.com> <20110109093533.74F061A205B@async.async.caltech.edu> <166140D0-E5D0-43D3-BF61-BDB3604B7A6D@cs.purdue.edu> Message-ID: Jay, In order to support AtForkPrepare I think we will need to rework LockHeap. I'm working on it now. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 9, 2011, at 4:52 AM, Tony Hosking wrote: > Jay, don't you need to order your unlocks in AtForkParent in reverse order to AtForkPrepare? > That means you'd need to UnlockHeap before unlocking the other mutexes. > > On Jan 9, 2011, at 4:35 AM, Mika Nystrom wrote: > >> Jay did you expect this to fix things? >> >> I'm still seeing the same problems... >> >> >> >> Jay Krell writes: >>> CVSROOT: /usr/cvs >>> Changes by: jkrell at birch. 11/01/09 03:36: >>> 46 >>> >>> Modified files: >>> cm3/m3-libs/m3core/src/thread/PTHREAD/: >>> ThreadPThread.m3 >>> >>> Log message: >>> LockHeap later in ForkPrepare, try to f >>> ix deadlock with mutex initialization > From jay.krell at cornell.edu Sun Jan 9 22:03:15 2011 From: jay.krell at cornell.edu (Jay K) Date: Sun, 9 Jan 2011 21:03:15 +0000 Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: References: <20110109023648.2344ACC37A@birch.elegosoft.com>, <20110109093533.74F061A205B@async.async.caltech.edu>, <166140D0-E5D0-43D3-BF61-BDB3604B7A6D@cs.purdue.edu>, Message-ID: Right, oops, sorry, obvious error on my part? to leave the unlock order the same. I don't know what rework LockHeap needs though. Maybe there is a problem with it allowing recursion? i.e. ForkPrepare should assert that the lock count is 1? ?- Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Sun, 9 Jan 2011 05:27:20 -0500 > To: hosking at cs.purdue.edu > CC: jkrell at elego.de; m3devel at elegosoft.com > Subject: Re: [M3devel] [M3commit] CVS Update: cm3 > > Jay, > > In order to support AtForkPrepare I think we will need to rework LockHeap. > I'm working on it now. > > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 | Mobile +1 765 427 5484 > > > > > On Jan 9, 2011, at 4:52 AM, Tony Hosking wrote: > > > Jay, don't you need to order your unlocks in AtForkParent in reverse order to AtForkPrepare? > > That means you'd need to UnlockHeap before unlocking the other mutexes. > > > > On Jan 9, 2011, at 4:35 AM, Mika Nystrom wrote: > > > >> Jay did you expect this to fix things? > >> > >> I'm still seeing the same problems... > >> > >> > >> > >> Jay Krell writes: > >>> CVSROOT: /usr/cvs > >>> Changes by: jkrell at birch. 11/01/09 03:36: > >>> 46 > >>> > >>> Modified files: > >>> cm3/m3-libs/m3core/src/thread/PTHREAD/: > >>> ThreadPThread.m3 > >>> > >>> Log message: > >>> LockHeap later in ForkPrepare, try to f > >>> ix deadlock with mutex initialization > > > From rcolebur at SCIRES.COM Tue Jan 11 03:11:34 2011 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Mon, 10 Jan 2011 21:11:34 -0500 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: References: <20110107151412.026651A205B@async.async.caltech.edu>, <10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu> Message-ID: Yes, if you are going to hold multiple locks, need to define a partial lock order to avoid deadlock. Also, recall that I committed some test programs a while back to test multiple threads. These may prove helpful in debugging what is going on. Regards, Randy -----Original Message----- From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Friday, January 07, 2011 3:31 PM To: Tony; Mika Nystrom Cc: m3devel Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? We need a lock order. I guessed. Maybe poorly. I/we should study the code and these stacks more and determine its validity. Here is the code, *slightly* altered just now for debuggability. VAR locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; PROCEDURE AtForkPrepare() = VAR me := GetActivation(); act: Activation; cond: Condition; BEGIN Acquire(joinMu); LockHeap(); FOR i := FIRST(locks) TO LAST(locks) DO PThreadLockMutex(locks[i], ThisLine(), i); END; (* Walk activations and lock all threads, conditions. * NOTE: We have initMu, activeMu, so slots * won't change, conditions and mutexes * won't be initialized on-demand. *) act := me; REPEAT PThreadLockMutex(act.mutex, ThisLine(), -1); (*PThreadLockMutex(act.waitingOn, ThisLine());*) cond := slots[act.slot].join; IF cond # NIL THEN PThreadLockMutex(cond.mutex, ThisLine(), -2) END; act := act.next; UNTIL act = me; END AtForkPrepare; Mika, if this easy to reproduce, please try again from head. The problem is not fixed, but there's a little more information that will appear. - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Fri, 7 Jan 2011 10:42:38 -0500 > To: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > This has something to do with the fork handlers Jay introduced, which run when a process is forked. They invoke LockHeap in the parent before the fork, and UnlockHeap in the parent after the fork. It appears that your threads are stuck waiting on LockHeap. Also, we have two threads in your trace trying to acquire initMu. Jay, I think we have a deadlock caused by AtForkPrepare. Ideas? > > On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: > > > Hi m3devel (especially Tony), > > > > I'm having a problem with a Modula-3 program that seems to deadlock > > with one of my 60+ threads stuck in Process.Create. Is it possible > > there is a bug in ThreadPThread.m3? (Would be really nice to have a > > deadlock detector here, you know... rather than have the program go > > catatonic when there's a deadlock. Deadlock is stable so the detector > > could run very infrequently---i.e., be very inefficient---and still be > > extremely useful....) > > > > I don't think there is anything I ought to be able to do from "user > > code" that would cause Process.Create to be part of a deadlock cycle. > > Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) > > possibly exhibit itself as a failure of Process.Create to complete?? > > > > Below are backtraces of the threads stuck in some sort of locking > > activity, platform is I386_DARWIN at head as of a couple of weeks ago. > > (I deleted the threads that are up to other things than locking.) > > > > Mika > > > > Thread 68 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > > #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 > > #5 0x97137217 in _cthread_fork_prepare () > > #6 0x97137155 in fork () > > #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC > > ommon.m3:75 > > #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > > #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > > #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 > > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #13 0x9713885d in _pthread_start () > > #14 0x971386e2 in thread_start () > > > > Thread 65 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 > > #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 > > #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 > > #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > > #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 > > #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 > > #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 > > #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 > > #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 > > #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 > > #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 > > #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 > > #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 > > #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 > > #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 > > #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > > #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > > #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > > #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 > > #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #33 0x9713885d in _pthread_start () > > #34 0x971386e2 in thread_start () > > > > Thread 64 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 > > #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 > > #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 > > #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > > #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 > > #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 > > #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 > > #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 > > #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 > > #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 > > #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 > > #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > > #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > > #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > > #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 > > #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #28 0x9713885d in _pthread_start () > > #29 0x971386e2 in thread_start () > > > > Thread 60 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > > #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > > #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 > > #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 > > #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 > > #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > > #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 > > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #12 0x9713885d in _pthread_start () > > #13 0x971386e2 in thread_start () > > > > Thread 59 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > > #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 > > #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 > > #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 > > #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 > > #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 > > #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 > > #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 > > #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > > #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > > #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > > #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 > > #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #19 0x9713885d in _pthread_start () > > #20 0x971386e2 in thread_start () > > > > Thread 52 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > > #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 > > #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 > > #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 > > #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > > #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > > #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > > #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 > > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #14 0x9713885d in _pthread_start () > > #15 0x971386e2 in thread_start () > > > > Thread 51 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > > #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 > > #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 > > #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > > #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > > #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 > > #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 > > #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 > > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #14 0x9713885d in _pthread_start () > > #15 0x971386e2 in thread_start () > > > > Thread 27 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > > #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > > #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > > #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 > > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #9 0x9713885d in _pthread_start () > > #10 0x971386e2 in thread_start () > > > > Thread 2 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 > > #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 > > #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 > > #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 > > #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 > > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #13 0x9713885d in _pthread_start () > > #14 0x971386e2 in thread_start () > > > > > From hosking at cs.purdue.edu Tue Jan 11 04:49:04 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 10 Jan 2011 22:49:04 -0500 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: References: <20110107151412.026651A205B@async.async.caltech.edu>, <10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu> Message-ID: I'm reworking it. On Jan 10, 2011, at 9:11 PM, Coleburn, Randy wrote: > Yes, if you are going to hold multiple locks, need to define a partial lock order to avoid deadlock. > Also, recall that I committed some test programs a while back to test multiple threads. These may prove helpful in debugging what is going on. > Regards, > Randy > > -----Original Message----- > From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K > Sent: Friday, January 07, 2011 3:31 PM > To: Tony; Mika Nystrom > Cc: m3devel > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > > We need a lock order. I guessed. Maybe poorly. I/we should study the code and these stacks more and determine its validity. > > > Here is the code, *slightly* altered just now for debuggability. > > > VAR > locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; > > > > PROCEDURE AtForkPrepare() = > VAR me := GetActivation(); > act: Activation; > cond: Condition; > BEGIN > Acquire(joinMu); > LockHeap(); > FOR i := FIRST(locks) TO LAST(locks) DO > PThreadLockMutex(locks[i], ThisLine(), i); > END; > (* Walk activations and lock all threads, conditions. > * NOTE: We have initMu, activeMu, so slots > * won't change, conditions and mutexes > * won't be initialized on-demand. > *) > act := me; > REPEAT > PThreadLockMutex(act.mutex, ThisLine(), -1); > (*PThreadLockMutex(act.waitingOn, ThisLine());*) > cond := slots[act.slot].join; > IF cond # NIL THEN PThreadLockMutex(cond.mutex, ThisLine(), -2) END; > act := act.next; > UNTIL act = me; > END AtForkPrepare; > > > > Mika, if this easy to reproduce, please try again from head. > The problem is not fixed, but there's a little more information that will appear. > > > - Jay > > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Fri, 7 Jan 2011 10:42:38 -0500 >> To: mika at async.caltech.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? >> >> This has something to do with the fork handlers Jay introduced, which run when a process is forked. They invoke LockHeap in the parent before the fork, and UnlockHeap in the parent after the fork. It appears that your threads are stuck waiting on LockHeap. Also, we have two threads in your trace trying to acquire initMu. Jay, I think we have a deadlock caused by AtForkPrepare. Ideas? >> >> On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: >> >>> Hi m3devel (especially Tony), >>> >>> I'm having a problem with a Modula-3 program that seems to deadlock >>> with one of my 60+ threads stuck in Process.Create. Is it possible >>> there is a bug in ThreadPThread.m3? (Would be really nice to have a >>> deadlock detector here, you know... rather than have the program go >>> catatonic when there's a deadlock. Deadlock is stable so the detector >>> could run very infrequently---i.e., be very inefficient---and still be >>> extremely useful....) >>> >>> I don't think there is anything I ought to be able to do from "user >>> code" that would cause Process.Create to be part of a deadlock cycle. >>> Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) >>> possibly exhibit itself as a failure of Process.Create to complete?? >>> >>> Below are backtraces of the threads stuck in some sort of locking >>> activity, platform is I386_DARWIN at head as of a couple of weeks ago. >>> (I deleted the threads that are up to other things than locking.) >>> >>> Mika >>> >>> Thread 68 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 >>> #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 >>> #5 0x97137217 in _cthread_fork_prepare () >>> #6 0x97137155 in fork () >>> #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC >>> ommon.m3:75 >>> #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 >>> #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 >>> #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 >>> #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #13 0x9713885d in _pthread_start () >>> #14 0x971386e2 in thread_start () >>> >>> Thread 65 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >>> #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >>> #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 >>> #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 >>> #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 >>> #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 >>> #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 >>> #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 >>> #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 >>> #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>> #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 >>> #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 >>> #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>> #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 >>> #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>> #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 >>> #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>> #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 >>> #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>> #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 >>> #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>> #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 >>> #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 >>> #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 >>> #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 >>> #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 >>> #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 >>> #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 >>> #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #33 0x9713885d in _pthread_start () >>> #34 0x971386e2 in thread_start () >>> >>> Thread 64 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 >>> #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 >>> #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 >>> #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >>> #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 >>> #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 >>> #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 >>> #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 >>> #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 >>> #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 >>> #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 >>> #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 >>> #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 >>> #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 >>> #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 >>> #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 >>> #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 >>> #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 >>> #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 >>> #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 >>> #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 >>> #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 >>> #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 >>> #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #28 0x9713885d in _pthread_start () >>> #29 0x971386e2 in thread_start () >>> >>> Thread 60 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 >>> #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 >>> #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 >>> #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 >>> #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 >>> #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 >>> #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 >>> #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #12 0x9713885d in _pthread_start () >>> #13 0x971386e2 in thread_start () >>> >>> Thread 59 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >>> #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >>> #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 >>> #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 >>> #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 >>> #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 >>> #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 >>> #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 >>> #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 >>> #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 >>> #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 >>> #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 >>> #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 >>> #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 >>> #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #19 0x9713885d in _pthread_start () >>> #20 0x971386e2 in thread_start () >>> >>> Thread 52 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 >>> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 >>> #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 >>> #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 >>> #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 >>> #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 >>> #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 >>> #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 >>> #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 >>> #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #14 0x9713885d in _pthread_start () >>> #15 0x971386e2 in thread_start () >>> >>> Thread 51 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 >>> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 >>> #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 >>> #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 >>> #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 >>> #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 >>> #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 >>> #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 >>> #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 >>> #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #14 0x9713885d in _pthread_start () >>> #15 0x971386e2 in thread_start () >>> >>> Thread 27 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 >>> #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 >>> #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 >>> #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 >>> #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #9 0x9713885d in _pthread_start () >>> #10 0x971386e2 in thread_start () >>> >>> Thread 2 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >>> #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >>> #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 >>> #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 >>> #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 >>> #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 >>> #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 >>> #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 >>> #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #13 0x9713885d in _pthread_start () >>> #14 0x971386e2 in thread_start () >>> >>> >> > From hosking at cs.purdue.edu Tue Jan 11 06:58:35 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 11 Jan 2011 00:58:35 -0500 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: References: <20110106002615.77E782474003@birch.elegosoft.com>, , , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu> Message-ID: I know what the problem is. The fix is not particularly pretty, and will entail tracking the stack types for integers (Int32 or Int64) throughout code generation. This all leads me to wonder why we don't simply back LONGINT out of the language. [I had mentioned my increasing unease with LONGINT in a prior e-mail a long time ago.] We can replace LONGINT with Longint and Longword: Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] and define signed operations in Longint and unsigned operations in Longword. These can be implemented efficiently as wrappers to appropriate C routines operating on "long long" or inlined if performance is a particular concern. We can provide conversion routines to/from INTEGER as needs. Other than handling 64-bit file offsets, etc., does anyone really make use of LONGINT that argues convincingly for it to be retained? On Jan 8, 2011, at 6:55 PM, Jay K wrote: > > Thank you much. Please notice there are 2 or 3 similar problems. This shows only 1. > See test p250. > > > MODULE Main; > > PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; > > PROCEDURE F2() = > <*UNUSED*>VAR x: [0L..0L]; > BEGIN > END F2; > > PROCEDURE F3() = > VAR x: [0L..0L]; > BEGIN > F1(x); > END F3; > > BEGIN > F1(0L); > F2(); > F3(); > END Main. > > i.e. initializing local 0L..0L. > Passing 0L..0L parameter. > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Sat, 8 Jan 2011 16:59:33 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] codegen error (from Mika, new test p250) >> >> I'll look into this one. >> >> Antony Hosking | Associate Professor | Computer Science | Purdue University >> 305 N. University Street | West Lafayette | IN 47907 | USA >> Office +1 765 494 6001 | Mobile +1 765 427 5484 >> >> >> >> >> On Jan 8, 2011, at 12:17 AM, Jay K wrote: >> >>> >>> fyi, small repro: >>> >>> >>> MODULE Main; >>> >>> VAR x: [0L..0L]; >>> >>> PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; >>> >>> BEGIN >>> F2(x); >>> END Main. >>> >>> (32) start_call_direct procedure:0x4 level:0 >>> (33) load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 >>> (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] >>> (35) pop_param type:int_64 >>> >>> >>> - Jay >>> >>> >>> ________________________________ >>>> From: jay.krell at cornell.edu >>>> To: m3devel at elegosoft.com; mika at async.caltech.edu >>>> Subject: RE: codegen error (from Mika, new test p250) >>>> Date: Thu, 6 Jan 2011 01:21:00 +0000 >>>> >>>> fyi: >>>> >>>> jbook2:p250 jay$ rm -rf I386_DARWIN/ >>>> jbook2:p250 jay$ cm3 -keep >>>> --- building in I386_DARWIN --- >>>> >>>> new source -> compiling Main.m3 >>>> "../Main.m3", line 1: 1 code generation error >>>> 1 error encountered >>>> compilation failed => not building program "pgm" >>>> Fatal Error: package build failed >>>> jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment >>>> (4) comment comment:module global constants >>>> (6) comment comment:module global data >>>> (27) comment comment:F1 >>>> (34) comment comment:********* M3CG_Check ERROR >>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] >>>> (43) comment comment:F2 >>>> (73) comment comment:Main_M3 >>>> (74) comment comment:module main body Main_M3 >>>> (83) comment comment:global constant type descriptor >>>> (85) comment comment:global data type descriptor >>>> (87) comment comment:module global constants >>>> (90) comment comment:procedure names >>>> (94) comment comment:procedure table >>>> (101) comment comment:file name >>>> (103) comment comment:type map for _t0174bdf4 >>>> (106) comment comment:type description for _t0174bdf4 >>>> (110) comment comment:module global data >>>> (120) comment comment:typecell for _t0174bdf4 >>>> (141) comment comment:load map >>>> (4) comment comment:module global constants >>>> (6) comment comment:module global data >>>> (27) comment comment:F1 >>>> (34) comment comment:********* M3CG_Check ERROR >>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] >>>> (43) comment comment:F2 >>>> (73) comment comment:Main_M3 >>>> (74) comment comment:module main body Main_M3 >>>> (83) comment comment:global constant type descriptor >>>> (85) comment comment:global data type descriptor >>>> (87) comment comment:module global constants >>>> (90) comment comment:procedure names >>>> (94) comment comment:procedure table >>>> (101) comment comment:file name >>>> (103) comment comment:type map for _t0174bdf4 >>>> (106) comment comment:type description for _t0174bdf4 >>>> (110) comment comment:module global data >>>> (120) comment comment:typecell for _t0174bdf4 >>>> (141) comment comment:load map >>>> >>>> >>>> - Jay >>>> >>>> >>>>> Date: Thu, 6 Jan 2011 01:26:15 +0000 >>>>> To: m3commit at elegosoft.com >>>>> From: jkrell at elego.de >>>>> Subject: [M3commit] CVS Update: cm3 >>>>> >>>>> CVSROOT: /usr/cvs >>>>> Changes by: jkrell at birch. 11/01/06 01:26:15 >>>>> >>>>> Modified files: >>>>> cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 >>>>> >>>>> Log message: >>>>> slightly simpler, same error >>>>> >>> >> > From jay.krell at cornell.edu Tue Jan 11 08:33:57 2011 From: jay.krell at cornell.edu (Jay K) Date: Tue, 11 Jan 2011 07:33:57 +0000 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: References: <20110106002615.77E782474003@birch.elegosoft.com>, , , , , , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu>, , Message-ID: Quibbling with the details: Is this legal, on a 32bit system? Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] And even if it is legal, it is of dubious correctness, eh? For implementation of this in Modula-3, you want the low word to be unsigned and the high word to be signed. Granted, you want full range unsigned, so, like, Word.T, but you want 32 bits. There should therefore be, like, interfaces Word32 and Word64 (ok, you already have Long). As well, the implementation on 64bit targets will perhaps suffer. As well, does it work for 64bit targets? Isn't [00000...FFFFFFFF] 64 bits? Maybe you'd say: Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF BITS 32 FOR [16_00000000..16_FFFFFFFF] And then, *really*, you want the order/significance of the words to be endian-specific. So, you'd want perhaps 3 implementations: 64bit: Longint.T = INTEGER 32bit big endian: Longint.T = RECORD high: INTEGER; low: Word.T; END; 32bit little endian: Longint.T = RECORD low: Word.T; high: INTEGER; END; or maybe just two: ?big endian: Longint.T = RECORD high: some-32bit-signed-type; low: some-32bit-psuedo-unsigned-type; END; ?little endian: Longint.T = RECORD low some-32bit-psuedo-unsigned-type; low: some-32bit-signed-type; END; Ultimately, the very very very general true point is: ? extension via library is probably generally easier ? BUT only makes for good results in an adequate language, e.g. one with operator overloading! Surely surely the compiler isn't so unmalleable? ie. we aren't stuck with the language asis because the compiler is too hard to change? I can't argue too strongly in favor of LONGINT. But..definitely there should be some reasonable convenient efficient way for dealing with 64bit integers. ? 32bit C implementations have had very good mechanisms for 25+ years. ? It does seem a shame we seemingly can't/won't compete. And still. interface Rd/Wr I believe still need work.. Probably to add a parallel set of functions ending in "L". ?- Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Tue, 11 Jan 2011 00:58:35 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] codegen error (from Mika, new test p250) > > I know what the problem is. The fix is not particularly pretty, and will entail tracking the stack types for integers (Int32 or Int64) throughout code generation. > > This all leads me to wonder why we don't simply back LONGINT out of the language. > [I had mentioned my increasing unease with LONGINT in a prior e-mail a long time ago.] > > We can replace LONGINT with Longint and Longword: > > Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] > > and define signed operations in Longint and unsigned operations in Longword. > These can be implemented efficiently as wrappers to appropriate C routines operating on "long long" or inlined if performance is a particular concern. We can provide conversion routines to/from INTEGER as needs. > > Other than handling 64-bit file offsets, etc., does anyone really make use of LONGINT that argues convincingly for it to be retained? > > On Jan 8, 2011, at 6:55 PM, Jay K wrote: > > > > > Thank you much. Please notice there are 2 or 3 similar problems. This shows only 1. > > See test p250. > > > > > > MODULE Main; > > > > PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; > > > > PROCEDURE F2() = > > <*UNUSED*>VAR x: [0L..0L]; > > BEGIN > > END F2; > > > > PROCEDURE F3() = > > VAR x: [0L..0L]; > > BEGIN > > F1(x); > > END F3; > > > > BEGIN > > F1(0L); > > F2(); > > F3(); > > END Main. > > > > i.e. initializing local 0L..0L. > > Passing 0L..0L parameter. > > > > - Jay > > > > > > ---------------------------------------- > >> From: hosking at cs.purdue.edu > >> Date: Sat, 8 Jan 2011 16:59:33 -0500 > >> To: jay.krell at cornell.edu > >> CC: m3devel at elegosoft.com > >> Subject: Re: [M3devel] codegen error (from Mika, new test p250) > >> > >> I'll look into this one. > >> > >> Antony Hosking | Associate Professor | Computer Science | Purdue University > >> 305 N. University Street | West Lafayette | IN 47907 | USA > >> Office +1 765 494 6001 | Mobile +1 765 427 5484 > >> > >> > >> > >> > >> On Jan 8, 2011, at 12:17 AM, Jay K wrote: > >> > >>> > >>> fyi, small repro: > >>> > >>> > >>> MODULE Main; > >>> > >>> VAR x: [0L..0L]; > >>> > >>> PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; > >>> > >>> BEGIN > >>> F2(x); > >>> END Main. > >>> > >>> (32) start_call_direct procedure:0x4 level:0 > >>> (33) load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 > >>> (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] > >>> (35) pop_param type:int_64 > >>> > >>> > >>> - Jay > >>> > >>> > >>> ________________________________ > >>>> From: jay.krell at cornell.edu > >>>> To: m3devel at elegosoft.com; mika at async.caltech.edu > >>>> Subject: RE: codegen error (from Mika, new test p250) > >>>> Date: Thu, 6 Jan 2011 01:21:00 +0000 > >>>> > >>>> fyi: > >>>> > >>>> jbook2:p250 jay$ rm -rf I386_DARWIN/ > >>>> jbook2:p250 jay$ cm3 -keep > >>>> --- building in I386_DARWIN --- > >>>> > >>>> new source -> compiling Main.m3 > >>>> "../Main.m3", line 1: 1 code generation error > >>>> 1 error encountered > >>>> compilation failed => not building program "pgm" > >>>> Fatal Error: package build failed > >>>> jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment > >>>> (4) comment comment:module global constants > >>>> (6) comment comment:module global data > >>>> (27) comment comment:F1 > >>>> (34) comment comment:********* M3CG_Check ERROR > >>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] > >>>> (43) comment comment:F2 > >>>> (73) comment comment:Main_M3 > >>>> (74) comment comment:module main body Main_M3 > >>>> (83) comment comment:global constant type descriptor > >>>> (85) comment comment:global data type descriptor > >>>> (87) comment comment:module global constants > >>>> (90) comment comment:procedure names > >>>> (94) comment comment:procedure table > >>>> (101) comment comment:file name > >>>> (103) comment comment:type map for _t0174bdf4 > >>>> (106) comment comment:type description for _t0174bdf4 > >>>> (110) comment comment:module global data > >>>> (120) comment comment:typecell for _t0174bdf4 > >>>> (141) comment comment:load map > >>>> (4) comment comment:module global constants > >>>> (6) comment comment:module global data > >>>> (27) comment comment:F1 > >>>> (34) comment comment:********* M3CG_Check ERROR > >>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] > >>>> (43) comment comment:F2 > >>>> (73) comment comment:Main_M3 > >>>> (74) comment comment:module main body Main_M3 > >>>> (83) comment comment:global constant type descriptor > >>>> (85) comment comment:global data type descriptor > >>>> (87) comment comment:module global constants > >>>> (90) comment comment:procedure names > >>>> (94) comment comment:procedure table > >>>> (101) comment comment:file name > >>>> (103) comment comment:type map for _t0174bdf4 > >>>> (106) comment comment:type description for _t0174bdf4 > >>>> (110) comment comment:module global data > >>>> (120) comment comment:typecell for _t0174bdf4 > >>>> (141) comment comment:load map > >>>> > >>>> > >>>> - Jay > >>>> > >>>> > >>>>> Date: Thu, 6 Jan 2011 01:26:15 +0000 > >>>>> To: m3commit at elegosoft.com > >>>>> From: jkrell at elego.de > >>>>> Subject: [M3commit] CVS Update: cm3 > >>>>> > >>>>> CVSROOT: /usr/cvs > >>>>> Changes by: jkrell at birch. 11/01/06 01:26:15 > >>>>> > >>>>> Modified files: > >>>>> cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > >>>>> > >>>>> Log message: > >>>>> slightly simpler, same error > >>>>> > >>> > >> > > > From jay.krell at cornell.edu Tue Jan 11 08:36:06 2011 From: jay.krell at cornell.edu (Jay K) Date: Tue, 11 Jan 2011 07:36:06 +0000 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: References: <20110106002615.77E782474003@birch.elegosoft.com>, , , , , , , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu>, , , Message-ID: ps: can M3CG_Check be pushed into service to do the work? You know, it is already tracking everything and where the detection/error is currently. Can we make it, like, required, and have it cast/loophole as needed? Or is this too late and it might miss problems, such as incorrect/unchecked narrowing? ?- Jay ---------------------------------------- > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: RE: [M3devel] codegen error (from Mika, new test p250) > Date: Tue, 11 Jan 2011 07:33:57 +0000 > > > Quibbling with the details: > > Is this legal, on a 32bit system? > > Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] > > And even if it is legal, it is of dubious correctness, eh? > For implementation of this in Modula-3, you want the low word to be unsigned and the high word to be signed. > Granted, you want full range unsigned, so, like, Word.T, but you want 32 bits. > > There should therefore be, like, interfaces Word32 and Word64 (ok, you already have Long). > > As well, the implementation on 64bit targets will perhaps suffer. > > As well, does it work for 64bit targets? Isn't [00000...FFFFFFFF] 64 bits? > Maybe you'd say: > Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF BITS 32 FOR [16_00000000..16_FFFFFFFF] > > > And then, *really*, you want the order/significance of the words to be endian-specific. > > So, you'd want perhaps 3 implementations: > > 64bit: Longint.T = INTEGER > 32bit big endian: Longint.T = RECORD high: INTEGER; low: Word.T; END; > 32bit little endian: Longint.T = RECORD low: Word.T; high: INTEGER; END; > > > > or maybe just two: > > big endian: Longint.T = RECORD high: some-32bit-signed-type; low: some-32bit-psuedo-unsigned-type; END; > little endian: Longint.T = RECORD low some-32bit-psuedo-unsigned-type; low: some-32bit-signed-type; END; > > > > Ultimately, the very very very general true point is: > extension via library is probably generally easier > BUT only makes for good results in an adequate language, e.g. one with operator overloading! > > > Surely surely the compiler isn't so unmalleable? > ie. we aren't stuck with the language asis because the compiler is too hard to change? > > > I can't argue too strongly in favor of LONGINT. > > > But..definitely there should be some reasonable convenient efficient way for dealing with 64bit integers. > 32bit C implementations have had very good mechanisms for 25+ years. > It does seem a shame we seemingly can't/won't compete. > > > And still. interface Rd/Wr I believe still need work.. > Probably to add a parallel set of functions ending in "L". > > - Jay > > > ---------------------------------------- > > From: hosking at cs.purdue.edu > > Date: Tue, 11 Jan 2011 00:58:35 -0500 > > To: jay.krell at cornell.edu > > CC: m3devel at elegosoft.com > > Subject: Re: [M3devel] codegen error (from Mika, new test p250) > > > > I know what the problem is. The fix is not particularly pretty, and will entail tracking the stack types for integers (Int32 or Int64) throughout code generation. > > > > This all leads me to wonder why we don't simply back LONGINT out of the language. > > [I had mentioned my increasing unease with LONGINT in a prior e-mail a long time ago.] > > > > We can replace LONGINT with Longint and Longword: > > > > Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] > > > > and define signed operations in Longint and unsigned operations in Longword. > > These can be implemented efficiently as wrappers to appropriate C routines operating on "long long" or inlined if performance is a particular concern. We can provide conversion routines to/from INTEGER as needs. > > > > Other than handling 64-bit file offsets, etc., does anyone really make use of LONGINT that argues convincingly for it to be retained? > > > > On Jan 8, 2011, at 6:55 PM, Jay K wrote: > > > > > > > > Thank you much. Please notice there are 2 or 3 similar problems. This shows only 1. > > > See test p250. > > > > > > > > > MODULE Main; > > > > > > PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; > > > > > > PROCEDURE F2() = > > > <*UNUSED*>VAR x: [0L..0L]; > > > BEGIN > > > END F2; > > > > > > PROCEDURE F3() = > > > VAR x: [0L..0L]; > > > BEGIN > > > F1(x); > > > END F3; > > > > > > BEGIN > > > F1(0L); > > > F2(); > > > F3(); > > > END Main. > > > > > > i.e. initializing local 0L..0L. > > > Passing 0L..0L parameter. > > > > > > - Jay > > > > > > > > > ---------------------------------------- > > >> From: hosking at cs.purdue.edu > > >> Date: Sat, 8 Jan 2011 16:59:33 -0500 > > >> To: jay.krell at cornell.edu > > >> CC: m3devel at elegosoft.com > > >> Subject: Re: [M3devel] codegen error (from Mika, new test p250) > > >> > > >> I'll look into this one. > > >> > > >> Antony Hosking | Associate Professor | Computer Science | Purdue University > > >> 305 N. University Street | West Lafayette | IN 47907 | USA > > >> Office +1 765 494 6001 | Mobile +1 765 427 5484 > > >> > > >> > > >> > > >> > > >> On Jan 8, 2011, at 12:17 AM, Jay K wrote: > > >> > > >>> > > >>> fyi, small repro: > > >>> > > >>> > > >>> MODULE Main; > > >>> > > >>> VAR x: [0L..0L]; > > >>> > > >>> PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; > > >>> > > >>> BEGIN > > >>> F2(x); > > >>> END Main. > > >>> > > >>> (32) start_call_direct procedure:0x4 level:0 > > >>> (33) load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 > > >>> (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] > > >>> (35) pop_param type:int_64 > > >>> > > >>> > > >>> - Jay > > >>> > > >>> > > >>> ________________________________ > > >>>> From: jay.krell at cornell.edu > > >>>> To: m3devel at elegosoft.com; mika at async.caltech.edu > > >>>> Subject: RE: codegen error (from Mika, new test p250) > > >>>> Date: Thu, 6 Jan 2011 01:21:00 +0000 > > >>>> > > >>>> fyi: > > >>>> > > >>>> jbook2:p250 jay$ rm -rf I386_DARWIN/ > > >>>> jbook2:p250 jay$ cm3 -keep > > >>>> --- building in I386_DARWIN --- > > >>>> > > >>>> new source -> compiling Main.m3 > > >>>> "../Main.m3", line 1: 1 code generation error > > >>>> 1 error encountered > > >>>> compilation failed => not building program "pgm" > > >>>> Fatal Error: package build failed > > >>>> jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment > > >>>> (4) comment comment:module global constants > > >>>> (6) comment comment:module global data > > >>>> (27) comment comment:F1 > > >>>> (34) comment comment:********* M3CG_Check ERROR > > >>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] > > >>>> (43) comment comment:F2 > > >>>> (73) comment comment:Main_M3 > > >>>> (74) comment comment:module main body Main_M3 > > >>>> (83) comment comment:global constant type descriptor > > >>>> (85) comment comment:global data type descriptor > > >>>> (87) comment comment:module global constants > > >>>> (90) comment comment:procedure names > > >>>> (94) comment comment:procedure table > > >>>> (101) comment comment:file name > > >>>> (103) comment comment:type map for _t0174bdf4 > > >>>> (106) comment comment:type description for _t0174bdf4 > > >>>> (110) comment comment:module global data > > >>>> (120) comment comment:typecell for _t0174bdf4 > > >>>> (141) comment comment:load map > > >>>> (4) comment comment:module global constants > > >>>> (6) comment comment:module global data > > >>>> (27) comment comment:F1 > > >>>> (34) comment comment:********* M3CG_Check ERROR > > >>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] > > >>>> (43) comment comment:F2 > > >>>> (73) comment comment:Main_M3 > > >>>> (74) comment comment:module main body Main_M3 > > >>>> (83) comment comment:global constant type descriptor > > >>>> (85) comment comment:global data type descriptor > > >>>> (87) comment comment:module global constants > > >>>> (90) comment comment:procedure names > > >>>> (94) comment comment:procedure table > > >>>> (101) comment comment:file name > > >>>> (103) comment comment:type map for _t0174bdf4 > > >>>> (106) comment comment:type description for _t0174bdf4 > > >>>> (110) comment comment:module global data > > >>>> (120) comment comment:typecell for _t0174bdf4 > > >>>> (141) comment comment:load map > > >>>> > > >>>> > > >>>> - Jay > > >>>> > > >>>> > > >>>>> Date: Thu, 6 Jan 2011 01:26:15 +0000 > > >>>>> To: m3commit at elegosoft.com > > >>>>> From: jkrell at elego.de > > >>>>> Subject: [M3commit] CVS Update: cm3 > > >>>>> > > >>>>> CVSROOT: /usr/cvs > > >>>>> Changes by: jkrell at birch. 11/01/06 01:26:15 > > >>>>> > > >>>>> Modified files: > > >>>>> cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > > >>>>> > > >>>>> Log message: > > >>>>> slightly simpler, same error > > >>>>> > > >>> > > >> > > > > > > From jay.krell at cornell.edu Tue Jan 11 09:06:58 2011 From: jay.krell at cornell.edu (Jay K) Date: Tue, 11 Jan 2011 08:06:58 +0000 Subject: [M3devel] debugability of AtForkPrepare? Message-ID: ? This makes AtForkPrepare more debuggable, by sometimes indicating mutexes by index instead of pointer. It doesn't otherwise change it. Good/bad? Index: ThreadPThread.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3,v retrieving revision 1.252 diff -u -w -r1.252 ThreadPThread.m3 --- ThreadPThread.m3??? 11 Jan 2011 05:13:59 -0000??? 1.252 +++ ThreadPThread.m3??? 11 Jan 2011 08:03:22 -0000 @@ -1250,23 +1250,26 @@ ?VAR locks := ARRAY [0..4] OF pthread_mutex_t ?? { initMu, heapMu, activeMu, slotsMu, perfMu }; ? -PROCEDURE PThreadLockMutex(mutex: pthread_mutex_t; line: INTEGER) = +PROCEDURE PThreadLockMutex(mutex: pthread_mutex_t; +?????????????????????????? line: INTEGER; +?????????????????????????? index: INTEGER := -1) = ?? BEGIN -??? IF mutex # NIL THEN +??? IF index >= 0 THEN <*ASSERT mutex = NIL*> mutex := locks[index]; END; +??? IF mutex = NIL THEN RETURN; END; ?????? WITH r = pthread_mutex_lock(mutex) DO ???????? IF r # 0 THEN DieI(line, r) END; ?????? END; -??? END; ?? END PThreadLockMutex; ? ?PROCEDURE PThreadUnlockMutex(mutex: pthread_mutex_t; -???????????????????????????? line: INTEGER) = +???????????????????????????? line: INTEGER; +???????????????????????????? index: INTEGER := -1) = ?? BEGIN -??? IF mutex # NIL THEN +??? IF index >= 0 THEN <*ASSERT mutex = NIL*> mutex := locks[index]; END; +??? IF mutex = NIL THEN RETURN; END; ?????? WITH r = pthread_mutex_unlock(mutex) DO ???????? IF r # 0 THEN DieI(line, r) END; ?????? END; -??? END; ?? END PThreadUnlockMutex; ? ?PROCEDURE AtForkPrepare() = @@ -1276,7 +1279,7 @@ ?? BEGIN ???? Acquire(joinMu); ???? FOR i := FIRST(locks) TO LAST(locks) DO -????? PThreadLockMutex(locks[i], ThisLine()); +????? PThreadLockMutex(NIL, ThisLine(), i); ???? END; ???? (* Walk activations and lock all threads, conditions. ????? * NOTE: We have initMu, activeMu, so slots @@ -1308,7 +1311,7 @@ ?????? act := act.next; ???? UNTIL act = me; ???? FOR i := LAST(locks) TO FIRST(locks) BY -1 DO -????? PThreadUnlockMutex(locks[i], ThisLine()); +????? PThreadUnlockMutex(NIL, ThisLine(), i); ???? END; ???? Release(joinMu); ?? END AtForkParent; From mika at async.caltech.edu Tue Jan 11 11:29:23 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Tue, 11 Jan 2011 02:29:23 -0800 Subject: [M3devel] Thread testing program Message-ID: <20110111102923.AF8001A205B@async.async.caltech.edu> Hello everyone, After studying failure modes and implementation of the current threading implementation in CM3, I've developed a little stress-testing program, attached. Currently it crashes in various ways. It takes one command-line argument, the approximate number of threads to create (e.g., 100). It creates threads of three types: reader (reads a file), forker (forks a process), allocator (allocates memory that constantly goes out of scope). Files attached below. Happy 1/11/11. Mika My m3makefile: import ("libm3") implementation ("Main") program ("threadtest") My m3overrides (optional): if defined("CM3_VERSION") /* Critical Mass Modula-3 */ % see http://www.elegosoft.com/cm3/doc/help/cm3/cm3.html % not sure about this: build_standalone() m3_optimize("") end My Main.m3: (* $Id: Main.m3,v 1.1 2011/01/11 10:06:21 mika Exp $ *) MODULE Main; (* threading stress-test *) IMPORT Params, Scan, Thread, Rd, FileRd, Wr, FileWr, Process; VAR n := Scan.Int(Params.Get(1)); PROCEDURE MakeReaderThread() = BEGIN EVAL Thread.Fork(NEW(Thread.Closure, apply := RApply)) END MakeReaderThread; PROCEDURE MakeForkerThread() = BEGIN EVAL Thread.Fork(NEW(Thread.Closure, apply := FApply)) END MakeForkerThread; PROCEDURE MakeAllocatorThread() = BEGIN EVAL Thread.Fork(NEW(Thread.Closure, apply := AApply)) END MakeAllocatorThread; (**********************************************************************) PROCEDURE RApply(cl : Thread.Closure) : REFANY = BEGIN LOOP WITH rd = FileRd.Open(Filename) DO TRY LOOP VAR c := Rd.GetChar(rd); BEGIN END END EXCEPT Rd.EndOfFile => Rd.Close(rd) END END END END RApply; PROCEDURE FApply(cl : Thread.Closure) : REFANY = BEGIN LOOP WITH proc = Process.Create("sleep", ARRAY OF TEXT { "1" }) DO EVAL Process.Wait(proc) END END END FApply; PROCEDURE AApply(cl : Thread.Closure) : REFANY = BEGIN LOOP VAR arr := NEW(REF ARRAY OF INTEGER, 1025); BEGIN FOR i := FIRST(arr^)+1 TO LAST(arr^) DO arr[i] := arr[i] - arr[i-1] END END END END AApply; CONST Filename = "hohum"; PROCEDURE WriteAFile() = BEGIN WITH wr = FileWr.Open(Filename) DO FOR i := 1 TO 256 DO FOR j := 1 TO i DO Wr.PutChar(wr, VAL(ORD('A') + i MOD 25, CHAR)) END; Wr.PutChar(wr, '\n') END END END WriteAFile; BEGIN WriteAFile(); FOR i := 1 TO n DIV 3 DO MakeReaderThread() END; FOR i := 1 TO n DIV 3 DO MakeForkerThread() END; FOR i := 1 TO n DIV 3 DO MakeAllocatorThread() END; LOOP Thread.Pause(1.0d0) END END Main. From mika at async.caltech.edu Tue Jan 11 11:39:41 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Tue, 11 Jan 2011 02:39:41 -0800 Subject: [M3devel] Thread testing program In-Reply-To: <20110111102923.AF8001A205B@async.async.caltech.edu> References: <20110111102923.AF8001A205B@async.async.caltech.edu> Message-ID: <20110111103941.587FD1A205B@async.async.caltech.edu> Hmm, to make that program really useful it needs two enhancements: 1. check that the threads are indeed created (on AMD64_LINUX, the system deadlocks for me after 50) 2. check that the running threads are, indeed, making some sort of progress... As it is it is useful in a debugger but not for any kind of automated or foolproof testing, yet. Mika Mika Nystrom writes: > >Hello everyone, > >After studying failure modes and implementation of the current >threading implementation in CM3, I've developed a little stress-testing >program, attached. Currently it crashes in various ways. > >It takes one command-line argument, the approximate number of threads >to create (e.g., 100). It creates threads of three types: >reader (reads a file), forker (forks a process), allocator (allocates >memory that constantly goes out of scope). > >Files attached below. Happy 1/11/11. > > Mika > >My m3makefile: > >import ("libm3") > >implementation ("Main") > >program ("threadtest") > >My m3overrides (optional): > > if defined("CM3_VERSION") > /* Critical Mass Modula-3 */ >% see http://www.elegosoft.com/cm3/doc/help/cm3/cm3.html > >% not sure about this: > build_standalone() > > m3_optimize("") >end > >My Main.m3: > > >(* $Id: Main.m3,v 1.1 2011/01/11 10:06:21 mika Exp $ *) > >MODULE Main; > >(* threading stress-test *) > >IMPORT Params, Scan, Thread, Rd, FileRd, Wr, FileWr, Process; > >VAR n := Scan.Int(Params.Get(1)); > >PROCEDURE MakeReaderThread() = > BEGIN > EVAL Thread.Fork(NEW(Thread.Closure, apply := RApply)) > END MakeReaderThread; > >PROCEDURE MakeForkerThread() = > BEGIN > EVAL Thread.Fork(NEW(Thread.Closure, apply := FApply)) > END MakeForkerThread; > >PROCEDURE MakeAllocatorThread() = > BEGIN > EVAL Thread.Fork(NEW(Thread.Closure, apply := AApply)) > END MakeAllocatorThread; > >(**********************************************************************) > >PROCEDURE RApply(cl : Thread.Closure) : REFANY = > BEGIN > LOOP > WITH rd = FileRd.Open(Filename) DO > TRY > LOOP > VAR c := Rd.GetChar(rd); BEGIN END > END > EXCEPT > Rd.EndOfFile => Rd.Close(rd) > END > END > END > END RApply; > >PROCEDURE FApply(cl : Thread.Closure) : REFANY = > BEGIN > LOOP > WITH proc = Process.Create("sleep", > ARRAY OF TEXT { "1" }) DO > EVAL Process.Wait(proc) > END > END > END FApply; > >PROCEDURE AApply(cl : Thread.Closure) : REFANY = > BEGIN > LOOP > VAR > arr := NEW(REF ARRAY OF INTEGER, 1025); > BEGIN > FOR i := FIRST(arr^)+1 TO LAST(arr^) DO > arr[i] := arr[i] - arr[i-1] > END > END > END > END AApply; > > >CONST Filename = "hohum"; > >PROCEDURE WriteAFile() = > BEGIN > WITH wr = FileWr.Open(Filename) DO > FOR i := 1 TO 256 DO > FOR j := 1 TO i DO > Wr.PutChar(wr, VAL(ORD('A') + i MOD 25, CHAR)) > END; > Wr.PutChar(wr, '\n') > END > END > END WriteAFile; > >BEGIN > WriteAFile(); > FOR i := 1 TO n DIV 3 DO > MakeReaderThread() > END; > FOR i := 1 TO n DIV 3 DO > MakeForkerThread() > END; > FOR i := 1 TO n DIV 3 DO > MakeAllocatorThread() > END; > > LOOP > Thread.Pause(1.0d0) > END >END Main. > From mika at async.caltech.edu Tue Jan 11 16:53:34 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Tue, 11 Jan 2011 07:53:34 -0800 Subject: [M3devel] thread testing program in CM3 Message-ID: <20110111155334.498471A205B@async.async.caltech.edu> Hi again, I added the thread "stress tester" to the CM3 repository in the following location: m3-libs/m3core/tests/thread It no longer takes any command-line arguments, and now it prints friendly diagnostics. On FreeBSD4 under PM3, I see the following output: (82)pluto:~/t/threadtest/src>../FreeBSD4/threadtest Writing file...done Creating reader threads...done Creating forker threads...done Creating allocator threads...done running... laziest thread is 1294760062 seconds behind laziest thread is 11 seconds behind laziest thread is 9 seconds behind laziest thread is 9 seconds behind laziest thread is 9 seconds behind laziest thread is 9 seconds behind laziest thread is 8 seconds behind laziest thread is 10 seconds behind laziest thread is 7 seconds behind laziest thread is 8 seconds behind (83)pluto:~/t/threadtest/src>m3build -version m3build: PM3 Version 1.1.15 (Tue Sep 5 17:16:07 EDT 2000) (84)pluto:~/t/threadtest/src>uname -a FreeBSD pluto.gcapltd.com 5.5-RELEASE FreeBSD 5.5-RELEASE #0: Mon Sep 24 13:34:44 CDT 2007 root at pluto.gcapltd.com:/usr/src/sys/i386/compile/PLUTO i386 10 seconds is about right for 100 threads and a 0.1-second time quantum (if memory serves, that's what PM3 user threads use?) Mika From rodney_bates at lcwb.coop Tue Jan 11 18:53:00 2011 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Tue, 11 Jan 2011 11:53:00 -0600 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: References: <20110106002615.77E782474003@birch.elegosoft.com>, , , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu> Message-ID: <4D2C98FC.4030104@lcwb.coop> Tony Hosking wrote: > I know what the problem is. The fix is not particularly pretty, and will entail tracking the stack types for integers (Int32 or Int64) throughout code generation. > > This all leads me to wonder why we don't simply back LONGINT out of the language. > [I had mentioned my increasing unease with LONGINT in a prior e-mail a long time ago.] > > We can replace LONGINT with Longint and Longword: > > Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] Hmm, this is tricky. I think the BITS 64 FOR is not what we would want. First, it has no effect at all except when a Longint.T is a field of a record or object or an element of an array. Second, even in those cases, it would force the compiler _not_ to put any alignment padding ahead of the Longint.T field. The compiler could only choose between letting it be misaligned and generating code that would work on it that way, or, more likely, refusing to compile it. It does not force 64-bit alignment. This is all by existing rules of the language. Another thought would be: ARRAY [0..1] OF BITS 32 FOR [16_00000000..16_FFFFFFFF] This would lead to alignment within the array being as wanted, on both 32- and 64-bit machines. But as for the alignment of the entire array, it would not force anything. The alignment of an array type is naturally the alignment of its element type, but a Modula-3 BITS type has no alignment restriction at all, otherwise it could not be used as intended to allow programmer-controlled memory layout. There is another problem here. It stems from the fact that So-called "little endian" is an inconsistent system. It's only partly little-endian. To be consistently little-endian, it would have to read/write i/o streams into/from decreasing memory addresses and fetch instruction streams from decreasing addresses. It would then naturally result in the successively declared fields of records and elements of arrays (of increasing subscripts) being stored in decreasing addresses. So as it is, for either of these array types, we have: MSB LSB 0 1 2 3 4 5 6 7 <- big endian byte numbers in memory 7 6 5 4 3 2 1 0 <- hypothetical true little-endian 3 2 1 0 7 6 5 4 <- actual "little-endian" Actual little-endian numbers right-to-left only within each 32-bit piece, but left-to-right for the elements of the array. If this were a single scalar, instead of an array, the actual little-endian byte numbering would be the same as the middle line above. This means the array type, on a little-endian machine could not be passed to a normally-represented scalar formal parameter in any language. We could have a convention that the 32-bit words in the array were least significant in element zero, but that would just move the problem over to the big-endian machines. We could just require explicit conversion functions to be coded, but what type would they convert to? Note that we have to keep the semantics of BITS n FOR and [lb .. ub] consistent with the existing language, because these type constructors will be used for other purposes than just constructing Longint.T and Longword.T and surly are in lots of preexisting code. I don't see any way to both preserve language semantics and construct a longer integer type with decent properties using only preexisting types. I think we would have to say something like: "The types Longint.T and Longword.T are _just like_ " (but not equal to , so they could have unique rules). This would parallel the existing definition of CARDINAL as "just like [0 .. LAST(INTEGER)]" (but it's nevertheless a distinct type, so it pickles can do size adjustments on it, they way they do with INTEGER.) But once we resort to that and defining operators on it, I doubt it could be any cleaner or simpler than LONGINT. And I doubt it would simplify the subject compilation problem either. > > and define signed operations in Longint and unsigned operations in Longword. > These can be implemented efficiently as wrappers to appropriate C routines operating on "long long" or inlined if performance is a particular concern. We can provide conversion routines to/from INTEGER as needs. > > Other than handling 64-bit file offsets, etc., does anyone really make use of LONGINT that argues convincingly for it to be retained? > From hosking at cs.purdue.edu Tue Jan 11 20:29:09 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 11 Jan 2011 14:29:09 -0500 Subject: [M3devel] Thread testing program In-Reply-To: <20110111102923.AF8001A205B@async.async.caltech.edu> References: <20110111102923.AF8001A205B@async.async.caltech.edu> Message-ID: Did you stress test any older versions of M3? I believe we have had a number of regressions lately. On Jan 11, 2011, at 5:29 AM, Mika Nystrom wrote: > > Hello everyone, > > After studying failure modes and implementation of the current > threading implementation in CM3, I've developed a little stress-testing > program, attached. Currently it crashes in various ways. > > It takes one command-line argument, the approximate number of threads > to create (e.g., 100). It creates threads of three types: > reader (reads a file), forker (forks a process), allocator (allocates > memory that constantly goes out of scope). > > Files attached below. Happy 1/11/11. > > Mika > > My m3makefile: > > import ("libm3") > > implementation ("Main") > > program ("threadtest") > > My m3overrides (optional): > > if defined("CM3_VERSION") > /* Critical Mass Modula-3 */ > % see http://www.elegosoft.com/cm3/doc/help/cm3/cm3.html > > % not sure about this: > build_standalone() > > m3_optimize("") > end > > My Main.m3: > > > (* $Id: Main.m3,v 1.1 2011/01/11 10:06:21 mika Exp $ *) > > MODULE Main; > > (* threading stress-test *) > > IMPORT Params, Scan, Thread, Rd, FileRd, Wr, FileWr, Process; > > VAR n := Scan.Int(Params.Get(1)); > > PROCEDURE MakeReaderThread() = > BEGIN > EVAL Thread.Fork(NEW(Thread.Closure, apply := RApply)) > END MakeReaderThread; > > PROCEDURE MakeForkerThread() = > BEGIN > EVAL Thread.Fork(NEW(Thread.Closure, apply := FApply)) > END MakeForkerThread; > > PROCEDURE MakeAllocatorThread() = > BEGIN > EVAL Thread.Fork(NEW(Thread.Closure, apply := AApply)) > END MakeAllocatorThread; > > (**********************************************************************) > > PROCEDURE RApply(cl : Thread.Closure) : REFANY = > BEGIN > LOOP > WITH rd = FileRd.Open(Filename) DO > TRY > LOOP > VAR c := Rd.GetChar(rd); BEGIN END > END > EXCEPT > Rd.EndOfFile => Rd.Close(rd) > END > END > END > END RApply; > > PROCEDURE FApply(cl : Thread.Closure) : REFANY = > BEGIN > LOOP > WITH proc = Process.Create("sleep", > ARRAY OF TEXT { "1" }) DO > EVAL Process.Wait(proc) > END > END > END FApply; > > PROCEDURE AApply(cl : Thread.Closure) : REFANY = > BEGIN > LOOP > VAR > arr := NEW(REF ARRAY OF INTEGER, 1025); > BEGIN > FOR i := FIRST(arr^)+1 TO LAST(arr^) DO > arr[i] := arr[i] - arr[i-1] > END > END > END > END AApply; > > > CONST Filename = "hohum"; > > PROCEDURE WriteAFile() = > BEGIN > WITH wr = FileWr.Open(Filename) DO > FOR i := 1 TO 256 DO > FOR j := 1 TO i DO > Wr.PutChar(wr, VAL(ORD('A') + i MOD 25, CHAR)) > END; > Wr.PutChar(wr, '\n') > END > END > END WriteAFile; > > BEGIN > WriteAFile(); > FOR i := 1 TO n DIV 3 DO > MakeReaderThread() > END; > FOR i := 1 TO n DIV 3 DO > MakeForkerThread() > END; > FOR i := 1 TO n DIV 3 DO > MakeAllocatorThread() > END; > > LOOP > Thread.Pause(1.0d0) > END > END Main. > From rcolebur at SCIRES.COM Tue Jan 11 20:39:28 2011 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Tue, 11 Jan 2011 14:39:28 -0500 Subject: [M3devel] thread testing program in CM3 In-Reply-To: <20110111155334.498471A205B@async.async.caltech.edu> References: <20110111155334.498471A205B@async.async.caltech.edu> Message-ID: Thought I would give Mika's test program a try on Windows7, but ran into a glitch. I first tried updating everything from HEAD and rebuilding. During 2nd stage of rebuild, I get a failure on creating the DLL for m3core. See below. Jay, any ideas on what is wrong? --Randy Microsoft (R) Incremental Linker Version 10.00.30319.01 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 RealFloat.io LongFloat.io ExtendedFloat.io IEEESpecial.io IEEESpecial.mo Real.mo LongReal.mo Extended.mo DragonInt.io DragonInt.mo DragonT.io DragonT.mo Real.io LongReal.io Extended.io RealFloat.mo LongFloat.mo ExtendedFloat.mo RealRep.io LongRealRep.io FPU.io FPU.mo FloatMode.io FloatMode.mo 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 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 Creating library m3core.lib and object m3core.exp LINK : warning LNK4199: /DELAYLOAD:advapi32.dll ignored; no imports found from advapi32.dll LINK : warning LNK4199: /DELAYLOAD:netapi32.dll ignored; no imports found from netapi32.dll LINK : warning LNK4199: /DELAYLOAD:rpcrt4.dll ignored; no imports found from rpcrt4.dll LINK : warning LNK4199: /DELAYLOAD:iphlpapid.dll ignored; no imports found from iphlpapid.dll RuntimeError.mo : error LNK2001: unresolved external symbol __alloca m3core.dll : fatal error LNK1120: 1 unresolved externals -----Original Message----- From: Mika Nystrom [mailto:mika at async.caltech.edu] Sent: Tuesday, January 11, 2011 10:54 AM To: m3devel at elegosoft.com Cc: jkrell at elego.de Subject: [M3devel] thread testing program in CM3 Hi again, I added the thread "stress tester" to the CM3 repository in the following location: m3-libs/m3core/tests/thread It no longer takes any command-line arguments, and now it prints friendly diagnostics. On FreeBSD4 under PM3, I see the following output: (82)pluto:~/t/threadtest/src>../FreeBSD4/threadtest Writing file...done Creating reader threads...done Creating forker threads...done Creating allocator threads...done running... laziest thread is 1294760062 seconds behind laziest thread is 11 seconds behind laziest thread is 9 seconds behind laziest thread is 9 seconds behind laziest thread is 9 seconds behind laziest thread is 9 seconds behind laziest thread is 8 seconds behind laziest thread is 10 seconds behind laziest thread is 7 seconds behind laziest thread is 8 seconds behind (83)pluto:~/t/threadtest/src>m3build -version m3build: PM3 Version 1.1.15 (Tue Sep 5 17:16:07 EDT 2000) (84)pluto:~/t/threadtest/src>uname -a FreeBSD pluto.gcapltd.com 5.5-RELEASE FreeBSD 5.5-RELEASE #0: Mon Sep 24 13:34:44 CDT 2007 root at pluto.gcapltd.com:/usr/src/sys/i386/compile/PLUTO i386 10 seconds is about right for 100 threads and a 0.1-second time quantum (if memory serves, that's what PM3 user threads use?) Mika From hosking at cs.purdue.edu Tue Jan 11 21:19:32 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 11 Jan 2011 15:19:32 -0500 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: References: <20110106002615.77E782474003@birch.elegosoft.com>, , , , , , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu>, , Message-ID: <0446FCD5-D75A-4D43-89E4-D69BE6208362@cs.purdue.edu> The point is that we want to have an opaque type. One that can only meaningfully be manipulated by predefined library routines. What the bits look like would be immaterial. On Jan 11, 2011, at 2:33 AM, Jay K wrote: > > Quibbling with the details: > > Is this legal, on a 32bit system? > > Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] > > And even if it is legal, it is of dubious correctness, eh? > For implementation of this in Modula-3, you want the low word to be unsigned and the high word to be signed. > Granted, you want full range unsigned, so, like, Word.T, but you want 32 bits. > > There should therefore be, like, interfaces Word32 and Word64 (ok, you already have Long). > > As well, the implementation on 64bit targets will perhaps suffer. > > As well, does it work for 64bit targets? Isn't [00000...FFFFFFFF] 64 bits? > Maybe you'd say: > Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF BITS 32 FOR [16_00000000..16_FFFFFFFF] > > > And then, *really*, you want the order/significance of the words to be endian-specific. > > So, you'd want perhaps 3 implementations: > > 64bit: Longint.T = INTEGER > 32bit big endian: Longint.T = RECORD high: INTEGER; low: Word.T; END; > 32bit little endian: Longint.T = RECORD low: Word.T; high: INTEGER; END; > > > > or maybe just two: > > big endian: Longint.T = RECORD high: some-32bit-signed-type; low: some-32bit-psuedo-unsigned-type; END; > little endian: Longint.T = RECORD low some-32bit-psuedo-unsigned-type; low: some-32bit-signed-type; END; > > > > Ultimately, the very very very general true point is: > extension via library is probably generally easier > BUT only makes for good results in an adequate language, e.g. one with operator overloading! > > > Surely surely the compiler isn't so unmalleable? > ie. we aren't stuck with the language asis because the compiler is too hard to change? > > > I can't argue too strongly in favor of LONGINT. > > > But..definitely there should be some reasonable convenient efficient way for dealing with 64bit integers. > 32bit C implementations have had very good mechanisms for 25+ years. > It does seem a shame we seemingly can't/won't compete. > > > And still. interface Rd/Wr I believe still need work.. > Probably to add a parallel set of functions ending in "L". > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Tue, 11 Jan 2011 00:58:35 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] codegen error (from Mika, new test p250) >> >> I know what the problem is. The fix is not particularly pretty, and will entail tracking the stack types for integers (Int32 or Int64) throughout code generation. >> >> This all leads me to wonder why we don't simply back LONGINT out of the language. >> [I had mentioned my increasing unease with LONGINT in a prior e-mail a long time ago.] >> >> We can replace LONGINT with Longint and Longword: >> >> Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] >> >> and define signed operations in Longint and unsigned operations in Longword. >> These can be implemented efficiently as wrappers to appropriate C routines operating on "long long" or inlined if performance is a particular concern. We can provide conversion routines to/from INTEGER as needs. >> >> Other than handling 64-bit file offsets, etc., does anyone really make use of LONGINT that argues convincingly for it to be retained? >> >> On Jan 8, 2011, at 6:55 PM, Jay K wrote: >> >>> >>> Thank you much. Please notice there are 2 or 3 similar problems. This shows only 1. >>> See test p250. >>> >>> >>> MODULE Main; >>> >>> PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; >>> >>> PROCEDURE F2() = >>> <*UNUSED*>VAR x: [0L..0L]; >>> BEGIN >>> END F2; >>> >>> PROCEDURE F3() = >>> VAR x: [0L..0L]; >>> BEGIN >>> F1(x); >>> END F3; >>> >>> BEGIN >>> F1(0L); >>> F2(); >>> F3(); >>> END Main. >>> >>> i.e. initializing local 0L..0L. >>> Passing 0L..0L parameter. >>> >>> - Jay >>> >>> >>> ---------------------------------------- >>>> From: hosking at cs.purdue.edu >>>> Date: Sat, 8 Jan 2011 16:59:33 -0500 >>>> To: jay.krell at cornell.edu >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] codegen error (from Mika, new test p250) >>>> >>>> I'll look into this one. >>>> >>>> Antony Hosking | Associate Professor | Computer Science | Purdue University >>>> 305 N. University Street | West Lafayette | IN 47907 | USA >>>> Office +1 765 494 6001 | Mobile +1 765 427 5484 >>>> >>>> >>>> >>>> >>>> On Jan 8, 2011, at 12:17 AM, Jay K wrote: >>>> >>>>> >>>>> fyi, small repro: >>>>> >>>>> >>>>> MODULE Main; >>>>> >>>>> VAR x: [0L..0L]; >>>>> >>>>> PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; >>>>> >>>>> BEGIN >>>>> F2(x); >>>>> END Main. >>>>> >>>>> (32) start_call_direct procedure:0x4 level:0 >>>>> (33) load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 >>>>> (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] >>>>> (35) pop_param type:int_64 >>>>> >>>>> >>>>> - Jay >>>>> >>>>> >>>>> ________________________________ >>>>>> From: jay.krell at cornell.edu >>>>>> To: m3devel at elegosoft.com; mika at async.caltech.edu >>>>>> Subject: RE: codegen error (from Mika, new test p250) >>>>>> Date: Thu, 6 Jan 2011 01:21:00 +0000 >>>>>> >>>>>> fyi: >>>>>> >>>>>> jbook2:p250 jay$ rm -rf I386_DARWIN/ >>>>>> jbook2:p250 jay$ cm3 -keep >>>>>> --- building in I386_DARWIN --- >>>>>> >>>>>> new source -> compiling Main.m3 >>>>>> "../Main.m3", line 1: 1 code generation error >>>>>> 1 error encountered >>>>>> compilation failed => not building program "pgm" >>>>>> Fatal Error: package build failed >>>>>> jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment >>>>>> (4) comment comment:module global constants >>>>>> (6) comment comment:module global data >>>>>> (27) comment comment:F1 >>>>>> (34) comment comment:********* M3CG_Check ERROR >>>>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] >>>>>> (43) comment comment:F2 >>>>>> (73) comment comment:Main_M3 >>>>>> (74) comment comment:module main body Main_M3 >>>>>> (83) comment comment:global constant type descriptor >>>>>> (85) comment comment:global data type descriptor >>>>>> (87) comment comment:module global constants >>>>>> (90) comment comment:procedure names >>>>>> (94) comment comment:procedure table >>>>>> (101) comment comment:file name >>>>>> (103) comment comment:type map for _t0174bdf4 >>>>>> (106) comment comment:type description for _t0174bdf4 >>>>>> (110) comment comment:module global data >>>>>> (120) comment comment:typecell for _t0174bdf4 >>>>>> (141) comment comment:load map >>>>>> (4) comment comment:module global constants >>>>>> (6) comment comment:module global data >>>>>> (27) comment comment:F1 >>>>>> (34) comment comment:********* M3CG_Check ERROR >>>>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] >>>>>> (43) comment comment:F2 >>>>>> (73) comment comment:Main_M3 >>>>>> (74) comment comment:module main body Main_M3 >>>>>> (83) comment comment:global constant type descriptor >>>>>> (85) comment comment:global data type descriptor >>>>>> (87) comment comment:module global constants >>>>>> (90) comment comment:procedure names >>>>>> (94) comment comment:procedure table >>>>>> (101) comment comment:file name >>>>>> (103) comment comment:type map for _t0174bdf4 >>>>>> (106) comment comment:type description for _t0174bdf4 >>>>>> (110) comment comment:module global data >>>>>> (120) comment comment:typecell for _t0174bdf4 >>>>>> (141) comment comment:load map >>>>>> >>>>>> >>>>>> - Jay >>>>>> >>>>>> >>>>>>> Date: Thu, 6 Jan 2011 01:26:15 +0000 >>>>>>> To: m3commit at elegosoft.com >>>>>>> From: jkrell at elego.de >>>>>>> Subject: [M3commit] CVS Update: cm3 >>>>>>> >>>>>>> CVSROOT: /usr/cvs >>>>>>> Changes by: jkrell at birch. 11/01/06 01:26:15 >>>>>>> >>>>>>> Modified files: >>>>>>> cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 >>>>>>> >>>>>>> Log message: >>>>>>> slightly simpler, same error >>>>>>> >>>>> >>>> >>> >> > From hosking at cs.purdue.edu Tue Jan 11 21:21:23 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 11 Jan 2011 15:21:23 -0500 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: <4D2C98FC.4030104@lcwb.coop> References: <20110106002615.77E782474003@birch.elegosoft.com>, , , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu> <4D2C98FC.4030104@lcwb.coop> Message-ID: <90FDA6E2-5ACF-429E-B870-CF9941545028@cs.purdue.edu> Sigh. OK, for now I will fix the compiler to track the widths of values on the stack. On Jan 11, 2011, at 12:53 PM, Rodney M. Bates wrote: > > > Tony Hosking wrote: >> I know what the problem is. The fix is not particularly pretty, and will entail tracking the stack types for integers (Int32 or Int64) throughout code generation. >> This all leads me to wonder why we don't simply back LONGINT out of the language. >> [I had mentioned my increasing unease with LONGINT in a prior e-mail a long time ago.] >> We can replace LONGINT with Longint and Longword: >> Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] > > Hmm, this is tricky. I think the BITS 64 FOR is not what we would want. First, it has > no effect at all except when a Longint.T is a field of a record or object or an element > of an array. Second, even in those cases, it would force the compiler _not_ to put any > alignment padding ahead of the Longint.T field. The compiler could only choose between > letting it be misaligned and generating code that would work on it that way, or, more > likely, refusing to compile it. It does not force 64-bit alignment. This is all by > existing rules of the language. > > Another thought would be: > > ARRAY [0..1] OF BITS 32 FOR [16_00000000..16_FFFFFFFF] > > This would lead to alignment within the array being as wanted, on both 32- and 64-bit > machines. But as for the alignment of the entire array, it would not force anything. > The alignment of an array type is naturally the alignment of its element type, but a > Modula-3 BITS type has no alignment restriction at all, otherwise it could not be used > as intended to allow programmer-controlled memory layout. > > There is another problem here. It stems from the fact that > > > So-called "little endian" is an inconsistent system. It's only partly little-endian. > To be consistently little-endian, it would have to read/write i/o streams into/from > decreasing memory addresses and fetch instruction streams from decreasing addresses. > It would then naturally result in the successively declared fields of records and > elements of arrays (of increasing subscripts) being stored in decreasing addresses. > > > So as it is, for either of these array types, we have: > > MSB LSB > 0 1 2 3 4 5 6 7 <- big endian byte numbers in memory > 7 6 5 4 3 2 1 0 <- hypothetical true little-endian > 3 2 1 0 7 6 5 4 <- actual "little-endian" > > Actual little-endian numbers right-to-left only within each 32-bit piece, but > left-to-right for the elements of the array. If this were a single scalar, > instead of an array, the actual little-endian byte numbering would be the > same as the middle line above. > > This means the array type, on a little-endian machine could not be passed to a > normally-represented scalar formal parameter in any language. We could have a > convention that the 32-bit words in the array were least significant in element > zero, but that would just move the problem over to the big-endian machines. > We could just require explicit conversion functions to be coded, but what > type would they convert to? > > Note that we have to keep the semantics of BITS n FOR and [lb .. ub] consistent > with the existing language, because these type constructors will be used for other > purposes than just constructing Longint.T and Longword.T and surly are in lots of > preexisting code. > > I don't see any way to both preserve language semantics and construct a longer > integer type with decent properties using only preexisting types. I think we > would have to say something like: > > "The types Longint.T and Longword.T are _just like_ " > (but not equal to , so they could have unique rules). > > This would parallel the existing definition of CARDINAL as > > "just like [0 .. LAST(INTEGER)]" > (but it's nevertheless a distinct type, so it pickles can do size adjustments > on it, they way they do with INTEGER.) > > But once we resort to that and defining operators on it, I doubt it could be > any cleaner or simpler than LONGINT. And I doubt it would simplify the subject > compilation problem either. > > >> and define signed operations in Longint and unsigned operations in Longword. >> These can be implemented efficiently as wrappers to appropriate C routines operating on "long long" or inlined if performance is a particular concern. We can provide conversion routines to/from INTEGER as needs. >> Other than handling 64-bit file offsets, etc., does anyone really make use of LONGINT that argues convincingly for it to be retained? From hosking at cs.purdue.edu Tue Jan 11 21:18:09 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 11 Jan 2011 15:18:09 -0500 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: References: <20110106002615.77E782474003@birch.elegosoft.com>, , , , , , , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu>, , , Message-ID: <535DF907-85F2-469C-8447-9D7A70B5EF0D@cs.purdue.edu> No, that would be too late. I certainly don't want automatic loopholing in the code generator. I want explicit, checked types, as we currently have, to avoid the sorts of errors it has now thrown up. I do know what the problem is. On Jan 11, 2011, at 2:36 AM, Jay K wrote: > > ps: can M3CG_Check be pushed into service to do the work? > You know, it is already tracking everything and where the detection/error is currently. > Can we make it, like, required, and have it cast/loophole as needed? > Or is this too late and it might miss problems, such as incorrect/unchecked narrowing? > > > - Jay > > > ---------------------------------------- >> From: jay.krell at cornell.edu >> To: hosking at cs.purdue.edu >> CC: m3devel at elegosoft.com >> Subject: RE: [M3devel] codegen error (from Mika, new test p250) >> Date: Tue, 11 Jan 2011 07:33:57 +0000 >> >> >> Quibbling with the details: >> >> Is this legal, on a 32bit system? >> >> Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] >> >> And even if it is legal, it is of dubious correctness, eh? >> For implementation of this in Modula-3, you want the low word to be unsigned and the high word to be signed. >> Granted, you want full range unsigned, so, like, Word.T, but you want 32 bits. >> >> There should therefore be, like, interfaces Word32 and Word64 (ok, you already have Long). >> >> As well, the implementation on 64bit targets will perhaps suffer. >> >> As well, does it work for 64bit targets? Isn't [00000...FFFFFFFF] 64 bits? >> Maybe you'd say: >> Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF BITS 32 FOR [16_00000000..16_FFFFFFFF] >> >> >> And then, *really*, you want the order/significance of the words to be endian-specific. >> >> So, you'd want perhaps 3 implementations: >> >> 64bit: Longint.T = INTEGER >> 32bit big endian: Longint.T = RECORD high: INTEGER; low: Word.T; END; >> 32bit little endian: Longint.T = RECORD low: Word.T; high: INTEGER; END; >> >> >> >> or maybe just two: >> >> big endian: Longint.T = RECORD high: some-32bit-signed-type; low: some-32bit-psuedo-unsigned-type; END; >> little endian: Longint.T = RECORD low some-32bit-psuedo-unsigned-type; low: some-32bit-signed-type; END; >> >> >> >> Ultimately, the very very very general true point is: >> extension via library is probably generally easier >> BUT only makes for good results in an adequate language, e.g. one with operator overloading! >> >> >> Surely surely the compiler isn't so unmalleable? >> ie. we aren't stuck with the language asis because the compiler is too hard to change? >> >> >> I can't argue too strongly in favor of LONGINT. >> >> >> But..definitely there should be some reasonable convenient efficient way for dealing with 64bit integers. >> 32bit C implementations have had very good mechanisms for 25+ years. >> It does seem a shame we seemingly can't/won't compete. >> >> >> And still. interface Rd/Wr I believe still need work.. >> Probably to add a parallel set of functions ending in "L". >> >> - Jay >> >> >> ---------------------------------------- >>> From: hosking at cs.purdue.edu >>> Date: Tue, 11 Jan 2011 00:58:35 -0500 >>> To: jay.krell at cornell.edu >>> CC: m3devel at elegosoft.com >>> Subject: Re: [M3devel] codegen error (from Mika, new test p250) >>> >>> I know what the problem is. The fix is not particularly pretty, and will entail tracking the stack types for integers (Int32 or Int64) throughout code generation. >>> >>> This all leads me to wonder why we don't simply back LONGINT out of the language. >>> [I had mentioned my increasing unease with LONGINT in a prior e-mail a long time ago.] >>> >>> We can replace LONGINT with Longint and Longword: >>> >>> Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] >>> >>> and define signed operations in Longint and unsigned operations in Longword. >>> These can be implemented efficiently as wrappers to appropriate C routines operating on "long long" or inlined if performance is a particular concern. We can provide conversion routines to/from INTEGER as needs. >>> >>> Other than handling 64-bit file offsets, etc., does anyone really make use of LONGINT that argues convincingly for it to be retained? >>> >>> On Jan 8, 2011, at 6:55 PM, Jay K wrote: >>> >>>> >>>> Thank you much. Please notice there are 2 or 3 similar problems. This shows only 1. >>>> See test p250. >>>> >>>> >>>> MODULE Main; >>>> >>>> PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; >>>> >>>> PROCEDURE F2() = >>>> <*UNUSED*>VAR x: [0L..0L]; >>>> BEGIN >>>> END F2; >>>> >>>> PROCEDURE F3() = >>>> VAR x: [0L..0L]; >>>> BEGIN >>>> F1(x); >>>> END F3; >>>> >>>> BEGIN >>>> F1(0L); >>>> F2(); >>>> F3(); >>>> END Main. >>>> >>>> i.e. initializing local 0L..0L. >>>> Passing 0L..0L parameter. >>>> >>>> - Jay >>>> >>>> >>>> ---------------------------------------- >>>>> From: hosking at cs.purdue.edu >>>>> Date: Sat, 8 Jan 2011 16:59:33 -0500 >>>>> To: jay.krell at cornell.edu >>>>> CC: m3devel at elegosoft.com >>>>> Subject: Re: [M3devel] codegen error (from Mika, new test p250) >>>>> >>>>> I'll look into this one. >>>>> >>>>> Antony Hosking | Associate Professor | Computer Science | Purdue University >>>>> 305 N. University Street | West Lafayette | IN 47907 | USA >>>>> Office +1 765 494 6001 | Mobile +1 765 427 5484 >>>>> >>>>> >>>>> >>>>> >>>>> On Jan 8, 2011, at 12:17 AM, Jay K wrote: >>>>> >>>>>> >>>>>> fyi, small repro: >>>>>> >>>>>> >>>>>> MODULE Main; >>>>>> >>>>>> VAR x: [0L..0L]; >>>>>> >>>>>> PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; >>>>>> >>>>>> BEGIN >>>>>> F2(x); >>>>>> END Main. >>>>>> >>>>>> (32) start_call_direct procedure:0x4 level:0 >>>>>> (33) load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 >>>>>> (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] >>>>>> (35) pop_param type:int_64 >>>>>> >>>>>> >>>>>> - Jay >>>>>> >>>>>> >>>>>> ________________________________ >>>>>>> From: jay.krell at cornell.edu >>>>>>> To: m3devel at elegosoft.com; mika at async.caltech.edu >>>>>>> Subject: RE: codegen error (from Mika, new test p250) >>>>>>> Date: Thu, 6 Jan 2011 01:21:00 +0000 >>>>>>> >>>>>>> fyi: >>>>>>> >>>>>>> jbook2:p250 jay$ rm -rf I386_DARWIN/ >>>>>>> jbook2:p250 jay$ cm3 -keep >>>>>>> --- building in I386_DARWIN --- >>>>>>> >>>>>>> new source -> compiling Main.m3 >>>>>>> "../Main.m3", line 1: 1 code generation error >>>>>>> 1 error encountered >>>>>>> compilation failed => not building program "pgm" >>>>>>> Fatal Error: package build failed >>>>>>> jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment >>>>>>> (4) comment comment:module global constants >>>>>>> (6) comment comment:module global data >>>>>>> (27) comment comment:F1 >>>>>>> (34) comment comment:********* M3CG_Check ERROR >>>>>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] >>>>>>> (43) comment comment:F2 >>>>>>> (73) comment comment:Main_M3 >>>>>>> (74) comment comment:module main body Main_M3 >>>>>>> (83) comment comment:global constant type descriptor >>>>>>> (85) comment comment:global data type descriptor >>>>>>> (87) comment comment:module global constants >>>>>>> (90) comment comment:procedure names >>>>>>> (94) comment comment:procedure table >>>>>>> (101) comment comment:file name >>>>>>> (103) comment comment:type map for _t0174bdf4 >>>>>>> (106) comment comment:type description for _t0174bdf4 >>>>>>> (110) comment comment:module global data >>>>>>> (120) comment comment:typecell for _t0174bdf4 >>>>>>> (141) comment comment:load map >>>>>>> (4) comment comment:module global constants >>>>>>> (6) comment comment:module global data >>>>>>> (27) comment comment:F1 >>>>>>> (34) comment comment:********* M3CG_Check ERROR >>>>>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] >>>>>>> (43) comment comment:F2 >>>>>>> (73) comment comment:Main_M3 >>>>>>> (74) comment comment:module main body Main_M3 >>>>>>> (83) comment comment:global constant type descriptor >>>>>>> (85) comment comment:global data type descriptor >>>>>>> (87) comment comment:module global constants >>>>>>> (90) comment comment:procedure names >>>>>>> (94) comment comment:procedure table >>>>>>> (101) comment comment:file name >>>>>>> (103) comment comment:type map for _t0174bdf4 >>>>>>> (106) comment comment:type description for _t0174bdf4 >>>>>>> (110) comment comment:module global data >>>>>>> (120) comment comment:typecell for _t0174bdf4 >>>>>>> (141) comment comment:load map >>>>>>> >>>>>>> >>>>>>> - Jay >>>>>>> >>>>>>> >>>>>>>> Date: Thu, 6 Jan 2011 01:26:15 +0000 >>>>>>>> To: m3commit at elegosoft.com >>>>>>>> From: jkrell at elego.de >>>>>>>> Subject: [M3commit] CVS Update: cm3 >>>>>>>> >>>>>>>> CVSROOT: /usr/cvs >>>>>>>> Changes by: jkrell at birch. 11/01/06 01:26:15 >>>>>>>> >>>>>>>> Modified files: >>>>>>>> cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 >>>>>>>> >>>>>>>> Log message: >>>>>>>> slightly simpler, same error >>>>>>>> >>>>>> >>>>> >>>> >>> >> > From jay.krell at cornell.edu Tue Jan 11 21:48:31 2011 From: jay.krell at cornell.edu (Jay K) Date: Tue, 11 Jan 2011 20:48:31 +0000 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: <535DF907-85F2-469C-8447-9D7A70B5EF0D@cs.purdue.edu> References: <20110106002615.77E782474003@birch.elegosoft.com>, , , ,,, ,,, , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu>, , , , , , , , <535DF907-85F2-469C-8447-9D7A70B5EF0D@cs.purdue.edu> Message-ID: > The point is that we want to have an opaque type I find there is a frequent natural tension between opacity and ease and efficiency of implementation of the functions that do understand and manipulate the type. If the type is heap allocated and only ever passed around by pointer, the tension is fairly cheap to resolve with one pointer-to-pointer cast/loophole. If the type is potentially stack allocated and passed by value, the tension is less cheap to resolve -- the client still needs to know the size. And the code that does know the type inevitably will introduce an indirection in going through the opacity. Fully revealing the type to clients is also not great, as it allows breaking through the abstraction boundary. I can think of a few "good" examples. Word.T for example is easily mis-used. It would be nice if a client could not so easily use operator < on Word.T. However, Word.T's transparency does have some good properties. Another example in C++ is std::vector::iterator. std::vector::iterator is nearly the exact same interface as T*, except that it isn't guaranteed to be assignable/mixable with T*. Some older implementations made it T*, allowing for such accidental mixing. Newer implementations wrap the T* in an arbitrary struct just make it a different type. There is a bit of inconvenience in the implementation therefore, but probably no inefficiency, esp. due to heavy inlinability. This is probably an area that multiple languages could use improvement. Another thing to consider is ABI compatibility with C. Can I pass LONGINT to/from C and map it to "long long" or "__int64"? And alignment as was pointed out -- should alignment be 32 bits or 64 bits on 32bit targets? Generally, 32bit is actually ok. But maybe not for atomic operations. I'd kind of rather the alignment be 64bits, but this is a controversial area, related to how much target-dependent code we have and how we interface with C -- ie: cloning third party headers or cloning our own headers. Can the frontend be better structured to allow for an arbitrary number of integer and floating point types? So that adding "int128" and "float256" won't be difficult? You know -- replace series of ifs or case statements with loops over arrays? - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Tue, 11 Jan 2011 15:18:09 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] codegen error (from Mika, new test p250) > > No, that would be too late. I certainly don't want automatic loopholing in the code generator. I want explicit, checked types, as we currently have, to avoid the sorts of errors it has now thrown up. > > I do know what the problem is. > > On Jan 11, 2011, at 2:36 AM, Jay K wrote: > > > > > ps: can M3CG_Check be pushed into service to do the work? > > You know, it is already tracking everything and where the detection/error is currently. > > Can we make it, like, required, and have it cast/loophole as needed? > > Or is this too late and it might miss problems, such as incorrect/unchecked narrowing? > > > > > > - Jay > > > > > > ---------------------------------------- > >> From: jay.krell at cornell.edu > >> To: hosking at cs.purdue.edu > >> CC: m3devel at elegosoft.com > >> Subject: RE: [M3devel] codegen error (from Mika, new test p250) > >> Date: Tue, 11 Jan 2011 07:33:57 +0000 > >> > >> > >> Quibbling with the details: > >> > >> Is this legal, on a 32bit system? > >> > >> Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] > >> > >> And even if it is legal, it is of dubious correctness, eh? > >> For implementation of this in Modula-3, you want the low word to be unsigned and the high word to be signed. > >> Granted, you want full range unsigned, so, like, Word.T, but you want 32 bits. > >> > >> There should therefore be, like, interfaces Word32 and Word64 (ok, you already have Long). > >> > >> As well, the implementation on 64bit targets will perhaps suffer. > >> > >> As well, does it work for 64bit targets? Isn't [00000...FFFFFFFF] 64 bits? > >> Maybe you'd say: > >> Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF BITS 32 FOR [16_00000000..16_FFFFFFFF] > >> > >> > >> And then, *really*, you want the order/significance of the words to be endian-specific. > >> > >> So, you'd want perhaps 3 implementations: > >> > >> 64bit: Longint.T = INTEGER > >> 32bit big endian: Longint.T = RECORD high: INTEGER; low: Word.T; END; > >> 32bit little endian: Longint.T = RECORD low: Word.T; high: INTEGER; END; > >> > >> > >> > >> or maybe just two: > >> > >> big endian: Longint.T = RECORD high: some-32bit-signed-type; low: some-32bit-psuedo-unsigned-type; END; > >> little endian: Longint.T = RECORD low some-32bit-psuedo-unsigned-type; low: some-32bit-signed-type; END; > >> > >> > >> > >> Ultimately, the very very very general true point is: > >> extension via library is probably generally easier > >> BUT only makes for good results in an adequate language, e.g. one with operator overloading! > >> > >> > >> Surely surely the compiler isn't so unmalleable? > >> ie. we aren't stuck with the language asis because the compiler is too hard to change? > >> > >> > >> I can't argue too strongly in favor of LONGINT. > >> > >> > >> But..definitely there should be some reasonable convenient efficient way for dealing with 64bit integers. > >> 32bit C implementations have had very good mechanisms for 25+ years. > >> It does seem a shame we seemingly can't/won't compete. > >> > >> > >> And still. interface Rd/Wr I believe still need work.. > >> Probably to add a parallel set of functions ending in "L". > >> > >> - Jay > >> > >> > >> ---------------------------------------- > >>> From: hosking at cs.purdue.edu > >>> Date: Tue, 11 Jan 2011 00:58:35 -0500 > >>> To: jay.krell at cornell.edu > >>> CC: m3devel at elegosoft.com > >>> Subject: Re: [M3devel] codegen error (from Mika, new test p250) > >>> > >>> I know what the problem is. The fix is not particularly pretty, and will entail tracking the stack types for integers (Int32 or Int64) throughout code generation. > >>> > >>> This all leads me to wonder why we don't simply back LONGINT out of the language. > >>> [I had mentioned my increasing unease with LONGINT in a prior e-mail a long time ago.] > >>> > >>> We can replace LONGINT with Longint and Longword: > >>> > >>> Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] > >>> > >>> and define signed operations in Longint and unsigned operations in Longword. > >>> These can be implemented efficiently as wrappers to appropriate C routines operating on "long long" or inlined if performance is a particular concern. We can provide conversion routines to/from INTEGER as needs. > >>> > >>> Other than handling 64-bit file offsets, etc., does anyone really make use of LONGINT that argues convincingly for it to be retained? > >>> > >>> On Jan 8, 2011, at 6:55 PM, Jay K wrote: > >>> > >>>> > >>>> Thank you much. Please notice there are 2 or 3 similar problems. This shows only 1. > >>>> See test p250. > >>>> > >>>> > >>>> MODULE Main; > >>>> > >>>> PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; > >>>> > >>>> PROCEDURE F2() = > >>>> <*UNUSED*>VAR x: [0L..0L]; > >>>> BEGIN > >>>> END F2; > >>>> > >>>> PROCEDURE F3() = > >>>> VAR x: [0L..0L]; > >>>> BEGIN > >>>> F1(x); > >>>> END F3; > >>>> > >>>> BEGIN > >>>> F1(0L); > >>>> F2(); > >>>> F3(); > >>>> END Main. > >>>> > >>>> i.e. initializing local 0L..0L. > >>>> Passing 0L..0L parameter. > >>>> > >>>> - Jay > >>>> > >>>> > >>>> ---------------------------------------- > >>>>> From: hosking at cs.purdue.edu > >>>>> Date: Sat, 8 Jan 2011 16:59:33 -0500 > >>>>> To: jay.krell at cornell.edu > >>>>> CC: m3devel at elegosoft.com > >>>>> Subject: Re: [M3devel] codegen error (from Mika, new test p250) > >>>>> > >>>>> I'll look into this one. > >>>>> > >>>>> Antony Hosking | Associate Professor | Computer Science | Purdue University > >>>>> 305 N. University Street | West Lafayette | IN 47907 | USA > >>>>> Office +1 765 494 6001 | Mobile +1 765 427 5484 > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> On Jan 8, 2011, at 12:17 AM, Jay K wrote: > >>>>> > >>>>>> > >>>>>> fyi, small repro: > >>>>>> > >>>>>> > >>>>>> MODULE Main; > >>>>>> > >>>>>> VAR x: [0L..0L]; > >>>>>> > >>>>>> PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; > >>>>>> > >>>>>> BEGIN > >>>>>> F2(x); > >>>>>> END Main. > >>>>>> > >>>>>> (32) start_call_direct procedure:0x4 level:0 > >>>>>> (33) load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 > >>>>>> (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] > >>>>>> (35) pop_param type:int_64 > >>>>>> > >>>>>> > >>>>>> - Jay > >>>>>> > >>>>>> > >>>>>> ________________________________ > >>>>>>> From: jay.krell at cornell.edu > >>>>>>> To: m3devel at elegosoft.com; mika at async.caltech.edu > >>>>>>> Subject: RE: codegen error (from Mika, new test p250) > >>>>>>> Date: Thu, 6 Jan 2011 01:21:00 +0000 > >>>>>>> > >>>>>>> fyi: > >>>>>>> > >>>>>>> jbook2:p250 jay$ rm -rf I386_DARWIN/ > >>>>>>> jbook2:p250 jay$ cm3 -keep > >>>>>>> --- building in I386_DARWIN --- > >>>>>>> > >>>>>>> new source -> compiling Main.m3 > >>>>>>> "../Main.m3", line 1: 1 code generation error > >>>>>>> 1 error encountered > >>>>>>> compilation failed => not building program "pgm" > >>>>>>> Fatal Error: package build failed > >>>>>>> jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment > >>>>>>> (4) comment comment:module global constants > >>>>>>> (6) comment comment:module global data > >>>>>>> (27) comment comment:F1 > >>>>>>> (34) comment comment:********* M3CG_Check ERROR > >>>>>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] > >>>>>>> (43) comment comment:F2 > >>>>>>> (73) comment comment:Main_M3 > >>>>>>> (74) comment comment:module main body Main_M3 > >>>>>>> (83) comment comment:global constant type descriptor > >>>>>>> (85) comment comment:global data type descriptor > >>>>>>> (87) comment comment:module global constants > >>>>>>> (90) comment comment:procedure names > >>>>>>> (94) comment comment:procedure table > >>>>>>> (101) comment comment:file name > >>>>>>> (103) comment comment:type map for _t0174bdf4 > >>>>>>> (106) comment comment:type description for _t0174bdf4 > >>>>>>> (110) comment comment:module global data > >>>>>>> (120) comment comment:typecell for _t0174bdf4 > >>>>>>> (141) comment comment:load map > >>>>>>> (4) comment comment:module global constants > >>>>>>> (6) comment comment:module global data > >>>>>>> (27) comment comment:F1 > >>>>>>> (34) comment comment:********* M3CG_Check ERROR > >>>>>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] > >>>>>>> (43) comment comment:F2 > >>>>>>> (73) comment comment:Main_M3 > >>>>>>> (74) comment comment:module main body Main_M3 > >>>>>>> (83) comment comment:global constant type descriptor > >>>>>>> (85) comment comment:global data type descriptor > >>>>>>> (87) comment comment:module global constants > >>>>>>> (90) comment comment:procedure names > >>>>>>> (94) comment comment:procedure table > >>>>>>> (101) comment comment:file name > >>>>>>> (103) comment comment:type map for _t0174bdf4 > >>>>>>> (106) comment comment:type description for _t0174bdf4 > >>>>>>> (110) comment comment:module global data > >>>>>>> (120) comment comment:typecell for _t0174bdf4 > >>>>>>> (141) comment comment:load map > >>>>>>> > >>>>>>> > >>>>>>> - Jay > >>>>>>> > >>>>>>> > >>>>>>>> Date: Thu, 6 Jan 2011 01:26:15 +0000 > >>>>>>>> To: m3commit at elegosoft.com > >>>>>>>> From: jkrell at elego.de > >>>>>>>> Subject: [M3commit] CVS Update: cm3 > >>>>>>>> > >>>>>>>> CVSROOT: /usr/cvs > >>>>>>>> Changes by: jkrell at birch. 11/01/06 01:26:15 > >>>>>>>> > >>>>>>>> Modified files: > >>>>>>>> cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > >>>>>>>> > >>>>>>>> Log message: > >>>>>>>> slightly simpler, same error > >>>>>>>> > >>>>>> > >>>>> > >>>> > >>> > >> > > > From jay.krell at cornell.edu Tue Jan 11 21:51:15 2011 From: jay.krell at cornell.edu (Jay K) Date: Tue, 11 Jan 2011 20:51:15 +0000 Subject: [M3devel] thread testing program in CM3 In-Reply-To: References: <20110111155334.498471A205B@async.async.caltech.edu>, Message-ID: > RuntimeError.mo : error LNK2001: unresolved external symbol __alloca Understood. Due to last week's significant change to no longer know jmp_buf size in the compiler. Not yet fixed. - Jay ---------------------------------------- > From: rcolebur at SCIRES.COM > To: m3devel at elegosoft.com > Date: Tue, 11 Jan 2011 14:39:28 -0500 > Subject: Re: [M3devel] thread testing program in CM3 > > Thought I would give Mika's test program a try on Windows7, but ran into a glitch. > I first tried updating everything from HEAD and rebuilding. During 2nd stage of rebuild, I get a failure on creating the DLL for m3core. See below. Jay, any ideas on what is wrong? > --Randy > > Microsoft (R) Incremental Linker Version 10.00.30319.01 > 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 > RealFloat.io > LongFloat.io > ExtendedFloat.io > IEEESpecial.io > IEEESpecial.mo > Real.mo > LongReal.mo > Extended.mo > DragonInt.io > DragonInt.mo > DragonT.io > DragonT.mo > Real.io > LongReal.io > Extended.io > RealFloat.mo > LongFloat.mo > ExtendedFloat.mo > RealRep.io > LongRealRep.io > FPU.io > FPU.mo > FloatMode.io > FloatMode.mo > 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 > 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 > Creating library m3core.lib and object m3core.exp > LINK : warning LNK4199: /DELAYLOAD:advapi32.dll ignored; no imports found from advapi32.dll > LINK : warning LNK4199: /DELAYLOAD:netapi32.dll ignored; no imports found from netapi32.dll > LINK : warning LNK4199: /DELAYLOAD:rpcrt4.dll ignored; no imports found from rpcrt4.dll > LINK : warning LNK4199: /DELAYLOAD:iphlpapid.dll ignored; no imports found from iphlpapid.dll > RuntimeError.mo : error LNK2001: unresolved external symbol __alloca > m3core.dll : fatal error LNK1120: 1 unresolved externals > > -----Original Message----- > From: Mika Nystrom [mailto:mika at async.caltech.edu] > Sent: Tuesday, January 11, 2011 10:54 AM > To: m3devel at elegosoft.com > Cc: jkrell at elego.de > Subject: [M3devel] thread testing program in CM3 > > Hi again, > > I added the thread "stress tester" to the CM3 repository in the following > location: > > m3-libs/m3core/tests/thread > > It no longer takes any command-line arguments, and now it prints friendly > diagnostics. > > On FreeBSD4 under PM3, I see the following output: > > (82)pluto:~/t/threadtest/src>../FreeBSD4/threadtest > Writing file...done > Creating reader threads...done > Creating forker threads...done > Creating allocator threads...done > running... > laziest thread is 1294760062 seconds behind > laziest thread is 11 seconds behind > laziest thread is 9 seconds behind > laziest thread is 9 seconds behind > laziest thread is 9 seconds behind > laziest thread is 9 seconds behind > laziest thread is 8 seconds behind > laziest thread is 10 seconds behind > laziest thread is 7 seconds behind > laziest thread is 8 seconds behind > (83)pluto:~/t/threadtest/src>m3build -version > m3build: PM3 Version 1.1.15 (Tue Sep 5 17:16:07 EDT 2000) > (84)pluto:~/t/threadtest/src>uname -a > FreeBSD pluto.gcapltd.com 5.5-RELEASE FreeBSD 5.5-RELEASE #0: Mon Sep 24 13:34:44 CDT 2007 root at pluto.gcapltd.com:/usr/src/sys/i386/compile/PLUTO i386 > > > 10 seconds is about right for 100 threads and a 0.1-second time > quantum (if memory serves, that's what PM3 user threads use?) > > Mika From mika at async.caltech.edu Tue Jan 11 22:09:28 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Tue, 11 Jan 2011 13:09:28 -0800 Subject: [M3devel] Thread testing program In-Reply-To: References: <20110111102923.AF8001A205B@async.async.caltech.edu> Message-ID: <20110111210928.697421A205B@async.async.caltech.edu> AMD64_FREEBSD of some time ago (about a year) also doesn't seem to make any progress. But no, I haven't gone through any old versions systematically. The old PM3 is what I use in "production" systems, and it works... but unfortunately my next "production" system is slated to be a new Debian system. Mika Tony Hosking writes: >Did you stress test any older versions of M3? >I believe we have had a number of regressions lately. > >On Jan 11, 2011, at 5:29 AM, Mika Nystrom wrote: > >> >> Hello everyone, >> >> After studying failure modes and implementation of the current >> threading implementation in CM3, I've developed a little stress-testing >> program, attached. Currently it crashes in various ways. >> >> It takes one command-line argument, the approximate number of threads >> to create (e.g., 100). It creates threads of three types: >> reader (reads a file), forker (forks a process), allocator (allocates >> memory that constantly goes out of scope). >> >> Files attached below. Happy 1/11/11. >> >> Mika >> >> My m3makefile: >> >> import ("libm3") >> >> implementation ("Main") >> >> program ("threadtest") >> >> My m3overrides (optional): >> >> if defined("CM3_VERSION") >> /* Critical Mass Modula-3 */ >> % see http://www.elegosoft.com/cm3/doc/help/cm3/cm3.html >> >> % not sure about this: >> build_standalone() >> >> m3_optimize("") >> end >> >> My Main.m3: >> >> >> (* $Id: Main.m3,v 1.1 2011/01/11 10:06:21 mika Exp $ *) >> >> MODULE Main; >> >> (* threading stress-test *) >> >> IMPORT Params, Scan, Thread, Rd, FileRd, Wr, FileWr, Process; >> >> VAR n := Scan.Int(Params.Get(1)); >> >> PROCEDURE MakeReaderThread() = >> BEGIN >> EVAL Thread.Fork(NEW(Thread.Closure, apply := RApply)) >> END MakeReaderThread; >> >> PROCEDURE MakeForkerThread() = >> BEGIN >> EVAL Thread.Fork(NEW(Thread.Closure, apply := FApply)) >> END MakeForkerThread; >> >> PROCEDURE MakeAllocatorThread() = >> BEGIN >> EVAL Thread.Fork(NEW(Thread.Closure, apply := AApply)) >> END MakeAllocatorThread; >> >> (**********************************************************************) >> >> PROCEDURE RApply(cl : Thread.Closure) : REFANY = >> BEGIN >> LOOP >> WITH rd = FileRd.Open(Filename) DO >> TRY >> LOOP >> VAR c := Rd.GetChar(rd); BEGIN END >> END >> EXCEPT >> Rd.EndOfFile => Rd.Close(rd) >> END >> END >> END >> END RApply; >> >> PROCEDURE FApply(cl : Thread.Closure) : REFANY = >> BEGIN >> LOOP >> WITH proc = Process.Create("sleep", >> ARRAY OF TEXT { "1" }) DO >> EVAL Process.Wait(proc) >> END >> END >> END FApply; >> >> PROCEDURE AApply(cl : Thread.Closure) : REFANY = >> BEGIN > LOOP >> VAR >> arr := NEW(REF ARRAY OF INTEGER, 1025); >> BEGIN >> FOR i := FIRST(arr^)+1 TO LAST(arr^) DO >> arr[i] := arr[i] - arr[i-1] >> END >> END >> END >> END AApply; >> >> >> CONST Filename = "hohum"; >> >> PROCEDURE WriteAFile() = >> BEGIN >> WITH wr = FileWr.Open(Filename) DO >> FOR i := 1 TO 256 DO >> FOR j := 1 TO i DO >> Wr.PutChar(wr, VAL(ORD('A') + i MOD 25, CHAR)) >> END; >> Wr.PutChar(wr, '\n') >> END >> END >> END WriteAFile; >> >> BEGIN >> WriteAFile(); >> FOR i := 1 TO n DIV 3 DO >> MakeReaderThread() >> END; >> FOR i := 1 TO n DIV 3 DO >> MakeForkerThread() >> END; >> FOR i := 1 TO n DIV 3 DO >> MakeAllocatorThread() >> END; >> >> LOOP >> Thread.Pause(1.0d0) >> END >> END Main. >> From jay.krell at cornell.edu Tue Jan 11 22:53:48 2011 From: jay.krell at cornell.edu (Jay K) Date: Tue, 11 Jan 2011 21:53:48 +0000 Subject: [M3devel] Thread testing program In-Reply-To: <20110111210928.697421A205B@async.async.caltech.edu> References: <20110111102923.AF8001A205B@async.async.caltech.edu>, , <20110111210928.697421A205B@async.async.caltech.edu> Message-ID: >Did you stress test any older versions of M3? I recently tried to do anything with some older releases and didn't get far. The "most recent older" releases are somewhat lost (i.e. broken links on elegosoft due to crashed machine/disk; probably people should scrounge around and we might restore some of them, if they work much). Yet older releases largely don't work. Older cminstalls are statically linked (even to libc) and have invalid syscalls in them, and don't get anywhere. Older m3core doesn't build, and if you skip that, well, cm3 output doesn't work. I forget what the symptons were. I'm sure they worked on the OS'es of the day, but they were much to version-unportable imho. Granted, the level of incompatibilities in the newer versions of underlying systems is also quite surprising. Free/Open Unix systems don't seem to take binary compatibility seriously. - Jay ---------------------------------------- > To: hosking at cs.purdue.edu > Date: Tue, 11 Jan 2011 13:09:28 -0800 > From: mika at async.caltech.edu > CC: jkrell at elego.de; m3devel at elegosoft.com > Subject: Re: [M3devel] Thread testing program > > > AMD64_FREEBSD of some time ago (about a year) also doesn't seem to > make any progress. But no, I haven't gone through any old versions > systematically. The old PM3 is what I use in "production" systems, > and it works... but unfortunately my next "production" system is slated > to be a new Debian system. > > Mika > > Tony Hosking writes: > >Did you stress test any older versions of M3? > >I believe we have had a number of regressions lately. > > > >On Jan 11, 2011, at 5:29 AM, Mika Nystrom wrote: > > > >> > >> Hello everyone, > >> > >> After studying failure modes and implementation of the current > >> threading implementation in CM3, I've developed a little stress-testing > >> program, attached. Currently it crashes in various ways. > >> > >> It takes one command-line argument, the approximate number of threads > >> to create (e.g., 100). It creates threads of three types: > >> reader (reads a file), forker (forks a process), allocator (allocates > >> memory that constantly goes out of scope). > >> > >> Files attached below. Happy 1/11/11. > >> > >> Mika > >> > >> My m3makefile: > >> > >> import ("libm3") > >> > >> implementation ("Main") > >> > >> program ("threadtest") > >> > >> My m3overrides (optional): > >> > >> if defined("CM3_VERSION") > >> /* Critical Mass Modula-3 */ > >> % see http://www.elegosoft.com/cm3/doc/help/cm3/cm3.html > >> > >> % not sure about this: > >> build_standalone() > >> > >> m3_optimize("") > >> end > >> > >> My Main.m3: > >> > >> > >> (* $Id: Main.m3,v 1.1 2011/01/11 10:06:21 mika Exp $ *) > >> > >> MODULE Main; > >> > >> (* threading stress-test *) > >> > >> IMPORT Params, Scan, Thread, Rd, FileRd, Wr, FileWr, Process; > >> > >> VAR n := Scan.Int(Params.Get(1)); > >> > >> PROCEDURE MakeReaderThread() = > >> BEGIN > >> EVAL Thread.Fork(NEW(Thread.Closure, apply := RApply)) > >> END MakeReaderThread; > >> > >> PROCEDURE MakeForkerThread() = > >> BEGIN > >> EVAL Thread.Fork(NEW(Thread.Closure, apply := FApply)) > >> END MakeForkerThread; > >> > >> PROCEDURE MakeAllocatorThread() = > >> BEGIN > >> EVAL Thread.Fork(NEW(Thread.Closure, apply := AApply)) > >> END MakeAllocatorThread; > >> > >> (**********************************************************************) > >> > >> PROCEDURE RApply(cl : Thread.Closure) : REFANY = > >> BEGIN > >> LOOP > >> WITH rd = FileRd.Open(Filename) DO > >> TRY > >> LOOP > >> VAR c := Rd.GetChar(rd); BEGIN END > >> END > >> EXCEPT > >> Rd.EndOfFile => Rd.Close(rd) > >> END > >> END > >> END > >> END RApply; > >> > >> PROCEDURE FApply(cl : Thread.Closure) : REFANY = > >> BEGIN > >> LOOP > >> WITH proc = Process.Create("sleep", > >> ARRAY OF TEXT { "1" }) DO > >> EVAL Process.Wait(proc) > >> END > >> END > >> END FApply; > >> > >> PROCEDURE AApply(cl : Thread.Closure) : REFANY = > >> BEGIN > > LOOP > >> VAR > >> arr := NEW(REF ARRAY OF INTEGER, 1025); > >> BEGIN > >> FOR i := FIRST(arr^)+1 TO LAST(arr^) DO > >> arr[i] := arr[i] - arr[i-1] > >> END > >> END > >> END > >> END AApply; > >> > >> > >> CONST Filename = "hohum"; > >> > >> PROCEDURE WriteAFile() = > >> BEGIN > >> WITH wr = FileWr.Open(Filename) DO > >> FOR i := 1 TO 256 DO > >> FOR j := 1 TO i DO > >> Wr.PutChar(wr, VAL(ORD('A') + i MOD 25, CHAR)) > >> END; > >> Wr.PutChar(wr, '\n') > >> END > >> END > >> END WriteAFile; > >> > >> BEGIN > >> WriteAFile(); > >> FOR i := 1 TO n DIV 3 DO > >> MakeReaderThread() > >> END; > >> FOR i := 1 TO n DIV 3 DO > >> MakeForkerThread() > >> END; > >> FOR i := 1 TO n DIV 3 DO > >> MakeAllocatorThread() > >> END; > >> > >> LOOP > >> Thread.Pause(1.0d0) > >> END > >> END Main. > >> From hosking at cs.purdue.edu Wed Jan 12 02:43:19 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 11 Jan 2011 20:43:19 -0500 Subject: [M3devel] Thread testing program In-Reply-To: <20110111210928.697421A205B@async.async.caltech.edu> References: <20110111102923.AF8001A205B@async.async.caltech.edu> <20110111210928.697421A205B@async.async.caltech.edu> Message-ID: <6FB19D61-E757-4A06-878F-DA427142CEE9@cs.purdue.edu> Please try the latest commit. On Jan 11, 2011, at 4:09 PM, Mika Nystrom wrote: > > AMD64_FREEBSD of some time ago (about a year) also doesn't seem to > make any progress. But no, I haven't gone through any old versions > systematically. The old PM3 is what I use in "production" systems, > and it works... but unfortunately my next "production" system is slated > to be a new Debian system. > > Mika > > Tony Hosking writes: >> Did you stress test any older versions of M3? >> I believe we have had a number of regressions lately. >> >> On Jan 11, 2011, at 5:29 AM, Mika Nystrom wrote: >> >>> >>> Hello everyone, >>> >>> After studying failure modes and implementation of the current >>> threading implementation in CM3, I've developed a little stress-testing >>> program, attached. Currently it crashes in various ways. >>> >>> It takes one command-line argument, the approximate number of threads >>> to create (e.g., 100). It creates threads of three types: >>> reader (reads a file), forker (forks a process), allocator (allocates >>> memory that constantly goes out of scope). >>> >>> Files attached below. Happy 1/11/11. >>> >>> Mika >>> >>> My m3makefile: >>> >>> import ("libm3") >>> >>> implementation ("Main") >>> >>> program ("threadtest") >>> >>> My m3overrides (optional): >>> >>> if defined("CM3_VERSION") >>> /* Critical Mass Modula-3 */ >>> % see http://www.elegosoft.com/cm3/doc/help/cm3/cm3.html >>> >>> % not sure about this: >>> build_standalone() >>> >>> m3_optimize("") >>> end >>> >>> My Main.m3: >>> >>> >>> (* $Id: Main.m3,v 1.1 2011/01/11 10:06:21 mika Exp $ *) >>> >>> MODULE Main; >>> >>> (* threading stress-test *) >>> >>> IMPORT Params, Scan, Thread, Rd, FileRd, Wr, FileWr, Process; >>> >>> VAR n := Scan.Int(Params.Get(1)); >>> >>> PROCEDURE MakeReaderThread() = >>> BEGIN >>> EVAL Thread.Fork(NEW(Thread.Closure, apply := RApply)) >>> END MakeReaderThread; >>> >>> PROCEDURE MakeForkerThread() = >>> BEGIN >>> EVAL Thread.Fork(NEW(Thread.Closure, apply := FApply)) >>> END MakeForkerThread; >>> >>> PROCEDURE MakeAllocatorThread() = >>> BEGIN >>> EVAL Thread.Fork(NEW(Thread.Closure, apply := AApply)) >>> END MakeAllocatorThread; >>> >>> (**********************************************************************) >>> >>> PROCEDURE RApply(cl : Thread.Closure) : REFANY = >>> BEGIN >>> LOOP >>> WITH rd = FileRd.Open(Filename) DO >>> TRY >>> LOOP >>> VAR c := Rd.GetChar(rd); BEGIN END >>> END >>> EXCEPT >>> Rd.EndOfFile => Rd.Close(rd) >>> END >>> END >>> END >>> END RApply; >>> >>> PROCEDURE FApply(cl : Thread.Closure) : REFANY = >>> BEGIN >>> LOOP >>> WITH proc = Process.Create("sleep", >>> ARRAY OF TEXT { "1" }) DO >>> EVAL Process.Wait(proc) >>> END >>> END >>> END FApply; >>> >>> PROCEDURE AApply(cl : Thread.Closure) : REFANY = >>> BEGIN >> LOOP >>> VAR >>> arr := NEW(REF ARRAY OF INTEGER, 1025); >>> BEGIN >>> FOR i := FIRST(arr^)+1 TO LAST(arr^) DO >>> arr[i] := arr[i] - arr[i-1] >>> END >>> END >>> END >>> END AApply; >>> >>> >>> CONST Filename = "hohum"; >>> >>> PROCEDURE WriteAFile() = >>> BEGIN >>> WITH wr = FileWr.Open(Filename) DO >>> FOR i := 1 TO 256 DO >>> FOR j := 1 TO i DO >>> Wr.PutChar(wr, VAL(ORD('A') + i MOD 25, CHAR)) >>> END; >>> Wr.PutChar(wr, '\n') >>> END >>> END >>> END WriteAFile; >>> >>> BEGIN >>> WriteAFile(); >>> FOR i := 1 TO n DIV 3 DO >>> MakeReaderThread() >>> END; >>> FOR i := 1 TO n DIV 3 DO >>> MakeForkerThread() >>> END; >>> FOR i := 1 TO n DIV 3 DO >>> MakeAllocatorThread() >>> END; >>> >>> LOOP >>> Thread.Pause(1.0d0) >>> END >>> END Main. >>> From jay.krell at cornell.edu Wed Jan 12 07:28:26 2011 From: jay.krell at cornell.edu (Jay K) Date: Wed, 12 Jan 2011 06:28:26 +0000 Subject: [M3devel] cg.alloca Message-ID: I'd like to make alloca a separate operation in m3cg. Instead of a special function name that we check for. More like the atomics. I know how and can do it myself easily enough. ok? (and then I'll fix NT386) ?- Jay From jay.krell at cornell.edu Wed Jan 12 08:24:28 2011 From: jay.krell at cornell.edu (Jay K) Date: Wed, 12 Jan 2011 07:24:28 +0000 Subject: [M3devel] cg.alloca In-Reply-To: References: Message-ID: proposed diff attached ?- Jay ---------------------------------------- > From: jay.krell at cornell.edu > To: m3devel at elegosoft.com > Date: Wed, 12 Jan 2011 06:28:26 +0000 > Subject: [M3devel] cg.alloca > > > I'd like to make alloca a separate operation in m3cg. > Instead of a special function name that we check for. > More like the atomics. > I know how and can do it myself easily enough. > ok? > > > (and then I'll fix NT386) > > > - Jay > > -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: cg_alloca.txt URL: From hosking at cs.purdue.edu Wed Jan 12 18:08:41 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 12 Jan 2011 12:08:41 -0500 Subject: [M3devel] cg.alloca In-Reply-To: References: Message-ID: Why does it need to be a special function in the CG? gcc is perfectly capable of inlining it as a special builtin. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 12, 2011, at 1:28 AM, Jay K wrote: > > I'd like to make alloca a separate operation in m3cg. > Instead of a special function name that we check for. > More like the atomics. > I know how and can do it myself easily enough. > ok? > > > (and then I'll fix NT386) > > > - Jay > > From hosking at cs.purdue.edu Wed Jan 12 18:10:02 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 12 Jan 2011 12:10:02 -0500 Subject: [M3devel] cg.alloca In-Reply-To: References: Message-ID: <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu> I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 12, 2011, at 2:24 AM, Jay K wrote: > > proposed diff attached > > - Jay > > ---------------------------------------- >> From: jay.krell at cornell.edu >> To: m3devel at elegosoft.com >> Date: Wed, 12 Jan 2011 06:28:26 +0000 >> Subject: [M3devel] cg.alloca >> >> >> I'd like to make alloca a separate operation in m3cg. >> Instead of a special function name that we check for. >> More like the atomics. >> I know how and can do it myself easily enough. >> ok? >> >> >> (and then I'll fix NT386) >> >> >> - Jay >> >> > From jay.krell at cornell.edu Wed Jan 12 19:06:53 2011 From: jay.krell at cornell.edu (Jay K) Date: Wed, 12 Jan 2011 18:06:53 +0000 Subject: [M3devel] cg.alloca In-Reply-To: <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu> References: , , <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu> Message-ID: On NT386 the function is _chkstk, number of bytes in eax, return value in esp. Notice how in parse.c I had to strcmp for the function name. A little gross, but it does work. ? And C/C++ work that way. Notice how you implemented atomics. I half agree though. It could be a function call even for NT386. The atomics could be too. ?- Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Wed, 12 Jan 2011 12:10:02 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] cg.alloca > > I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. > > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 | Mobile +1 765 427 5484 > > > > > On Jan 12, 2011, at 2:24 AM, Jay K wrote: > > > > > proposed diff attached > > > > - Jay > > > > ---------------------------------------- > >> From: jay.krell at cornell.edu > >> To: m3devel at elegosoft.com > >> Date: Wed, 12 Jan 2011 06:28:26 +0000 > >> Subject: [M3devel] cg.alloca > >> > >> > >> I'd like to make alloca a separate operation in m3cg. > >> Instead of a special function name that we check for. > >> More like the atomics. > >> I know how and can do it myself easily enough. > >> ok? > >> > >> > >> (and then I'll fix NT386) > >> > >> > >> - Jay > >> > >> > > > From hosking at cs.purdue.edu Wed Jan 12 19:34:16 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 12 Jan 2011 13:34:16 -0500 Subject: [M3devel] cg.alloca In-Reply-To: References: , , <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu> Message-ID: No, the atomics can't be because they don't map directly to a gcc builtin, whereas alloca *does*. On Jan 12, 2011, at 1:06 PM, Jay K wrote: > > On NT386 the function is _chkstk, number of bytes in eax, return value in esp. > Notice how in parse.c I had to strcmp for the function name. A little gross, but it does work. > And C/C++ work that way. > Notice how you implemented atomics. > > I half agree though. It could be a function call even for NT386. > The atomics could be too. > > - Jay > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Wed, 12 Jan 2011 12:10:02 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] cg.alloca >> >> I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. >> >> >> Antony Hosking | Associate Professor | Computer Science | Purdue University >> 305 N. University Street | West Lafayette | IN 47907 | USA >> Office +1 765 494 6001 | Mobile +1 765 427 5484 >> >> >> >> >> On Jan 12, 2011, at 2:24 AM, Jay K wrote: >> >>> >>> proposed diff attached >>> >>> - Jay >>> >>> ---------------------------------------- >>>> From: jay.krell at cornell.edu >>>> To: m3devel at elegosoft.com >>>> Date: Wed, 12 Jan 2011 06:28:26 +0000 >>>> Subject: [M3devel] cg.alloca >>>> >>>> >>>> I'd like to make alloca a separate operation in m3cg. >>>> Instead of a special function name that we check for. >>>> More like the atomics. >>>> I know how and can do it myself easily enough. >>>> ok? >>>> >>>> >>>> (and then I'll fix NT386) >>>> >>>> >>>> - Jay >>>> >>>> >>> >> > From jay.krell at cornell.edu Wed Jan 12 21:09:43 2011 From: jay.krell at cornell.edu (Jay K) Date: Wed, 12 Jan 2011 20:09:43 +0000 Subject: [M3devel] cg.alloca In-Reply-To: References: , , , , <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu>, , Message-ID: - Are you ok with the ugly/inefficient strcmp? - And what will be a more significant but still not huge transform in m3back? alloca will translate to chkstk -- an actual function call, but renamed The parameter that was already pushed on the stack will be be poped into eax, whereas with an m3cg operation, it would have been put into eax more directly. The return sequence will probably mov esp into..either eax specifically, or any register..I don't think leaving it in esp is easy enough for m3back to deal with. Again a special case in the general function call/return path. (In reality, the transform is quite significant in m3cc, but it is below where we work.) It's a funny thing in general, these "built in functions" that get very special handling and aren't necessarily "functions" (as in "call"/"ret"). Not clear in general to me how to model them. It makes one wonder why add/sub/multiply/div aren't builtin functions? i.e. "everything" could be viewed as a function. - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Wed, 12 Jan 2011 13:34:16 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] cg.alloca > > No, the atomics can't be because they don't map directly to a gcc builtin, whereas alloca *does*. > > On Jan 12, 2011, at 1:06 PM, Jay K wrote: > > > > > On NT386 the function is _chkstk, number of bytes in eax, return value in esp. > > Notice how in parse.c I had to strcmp for the function name. A little gross, but it does work. > > And C/C++ work that way. > > Notice how you implemented atomics. > > > > I half agree though. It could be a function call even for NT386. > > The atomics could be too. > > > > - Jay > > > > ---------------------------------------- > >> From: hosking at cs.purdue.edu > >> Date: Wed, 12 Jan 2011 12:10:02 -0500 > >> To: jay.krell at cornell.edu > >> CC: m3devel at elegosoft.com > >> Subject: Re: [M3devel] cg.alloca > >> > >> I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. > >> > >> > >> Antony Hosking | Associate Professor | Computer Science | Purdue University > >> 305 N. University Street | West Lafayette | IN 47907 | USA > >> Office +1 765 494 6001 | Mobile +1 765 427 5484 > >> > >> > >> > >> > >> On Jan 12, 2011, at 2:24 AM, Jay K wrote: > >> > >>> > >>> proposed diff attached > >>> > >>> - Jay > >>> > >>> ---------------------------------------- > >>>> From: jay.krell at cornell.edu > >>>> To: m3devel at elegosoft.com > >>>> Date: Wed, 12 Jan 2011 06:28:26 +0000 > >>>> Subject: [M3devel] cg.alloca > >>>> > >>>> > >>>> I'd like to make alloca a separate operation in m3cg. > >>>> Instead of a special function name that we check for. > >>>> More like the atomics. > >>>> I know how and can do it myself easily enough. > >>>> ok? > >>>> > >>>> > >>>> (and then I'll fix NT386) > >>>> > >>>> > >>>> - Jay > >>>> > >>>> > >>> > >> > > > From hosking at cs.purdue.edu Wed Jan 12 21:13:40 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 12 Jan 2011 15:13:40 -0500 Subject: [M3devel] cg.alloca In-Reply-To: References: , , , , <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu>, , Message-ID: <9AEF5B45-D6A5-4651-944C-415D3EC595F6@cs.purdue.edu> On Jan 12, 2011, at 3:09 PM, Jay K wrote: > > - Are you ok with the ugly/inefficient strcmp? Where? > > - And what will be a more significant but still not huge transform in m3back? > alloca will translate to chkstk -- an actual function call, but renamed That's fine. I don't want to complicate m3middle for m3back, which is designed for speed not performance of the resulting code. > > The parameter that was already pushed on the stack will be be poped into eax, > whereas with an m3cg operation, it would have been put into eax more directly. > > The return sequence will probably mov esp into..either eax specifically, or any register..I don't think leaving it in esp is easy enough for m3back to deal with. Again a special case in the general function call/return path. > > > (In reality, the transform is quite significant in m3cc, but it is below where we work.) Indeed. > > > It's a funny thing in general, these "built in functions" that get very special handling and aren't necessarily "functions" (as in "call"/"ret"). Not clear in general to me how to model them. > > > It makes one wonder why add/sub/multiply/div aren't builtin functions? > i.e. "everything" could be viewed as a function. > > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Wed, 12 Jan 2011 13:34:16 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] cg.alloca >> >> No, the atomics can't be because they don't map directly to a gcc builtin, whereas alloca *does*. >> >> On Jan 12, 2011, at 1:06 PM, Jay K wrote: >> >>> >>> On NT386 the function is _chkstk, number of bytes in eax, return value in esp. >>> Notice how in parse.c I had to strcmp for the function name. A little gross, but it does work. >>> And C/C++ work that way. >>> Notice how you implemented atomics. >>> >>> I half agree though. It could be a function call even for NT386. >>> The atomics could be too. >>> >>> - Jay >>> >>> ---------------------------------------- >>>> From: hosking at cs.purdue.edu >>>> Date: Wed, 12 Jan 2011 12:10:02 -0500 >>>> To: jay.krell at cornell.edu >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] cg.alloca >>>> >>>> I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. >>>> >>>> >>>> Antony Hosking | Associate Professor | Computer Science | Purdue University >>>> 305 N. University Street | West Lafayette | IN 47907 | USA >>>> Office +1 765 494 6001 | Mobile +1 765 427 5484 >>>> >>>> >>>> >>>> >>>> On Jan 12, 2011, at 2:24 AM, Jay K wrote: >>>> >>>>> >>>>> proposed diff attached >>>>> >>>>> - Jay >>>>> >>>>> ---------------------------------------- >>>>>> From: jay.krell at cornell.edu >>>>>> To: m3devel at elegosoft.com >>>>>> Date: Wed, 12 Jan 2011 06:28:26 +0000 >>>>>> Subject: [M3devel] cg.alloca >>>>>> >>>>>> >>>>>> I'd like to make alloca a separate operation in m3cg. >>>>>> Instead of a special function name that we check for. >>>>>> More like the atomics. >>>>>> I know how and can do it myself easily enough. >>>>>> ok? >>>>>> >>>>>> >>>>>> (and then I'll fix NT386) >>>>>> >>>>>> >>>>>> - Jay >>>>>> >>>>>> >>>>> >>>> >>> >> From jay.krell at cornell.edu Wed Jan 12 21:36:18 2011 From: jay.krell at cornell.edu (Jay K) Date: Wed, 12 Jan 2011 20:36:18 +0000 Subject: [M3devel] cg.alloca In-Reply-To: <9AEF5B45-D6A5-4651-944C-415D3EC595F6@cs.purdue.edu> References: , ,,, , , <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu>, , , , , , <9AEF5B45-D6A5-4651-944C-415D3EC595F6@cs.purdue.edu> Message-ID: http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/m3cc/gcc/gcc/m3cg/parse.c I'm sure it is plenty fast, and I could make it faster probably by checking the length first and doing just one strcmp instead of 3, it's just the cleanliness perhaps.. though this is basically what the regular gcc backend does anyway -- map function names to builtins. m3_convert_function_to_builtin (tree p) { tree *slot = (tree *)htab_find_slot (builtins, p, NO_INSERT); if (slot) { p = *slot; } else { const char *name = IDENTIFIER_POINTER (DECL_NAME (p)); if (name[0] == 'a' || name[0] == '_') { if (strcmp(name, "alloca") == 0 || strcmp(name, "_alloca") == 0 || strcmp(name, "__builtin_alloca") == 0) { p = built_in_decls[BUILT_IN_ALLOCA]; } } } return p; } This might not even be needed -- the backend might do it anyway. What I was partly doing here though is giving myself flexibility in what string to use -- ie. I thought I might get away with "_alloca" and have it "just work" in m3back, and then do the translation here, rather than in Target.i3 have an Alloca: TEXT -- more target-dependent code. Given what I know now about NT/x86 though, this is a lost cause -- the function is "chkstk" and has a custom calling convention, so it won't "just work". That is, I can try using __builtin_alloca and try w/o the special casing above. Special casing in m3back is unavoidable, and what string we use is arguably arbitrary, or arguably should be "_chkstk" -- slight additional target-specificity. But heck, I'm also willing to go back to the old scheme for NT/x86 anyway, with the static allocation. Though I probably won't. I really need to fix the for i := 0 to 10 do try finally end thing -- to not alloca 10 times. - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Wed, 12 Jan 2011 15:13:40 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] cg.alloca > > > On Jan 12, 2011, at 3:09 PM, Jay K wrote: > > > > > - Are you ok with the ugly/inefficient strcmp? > > Where? > > > > > - And what will be a more significant but still not huge transform in m3back? > > alloca will translate to chkstk -- an actual function call, but renamed > > That's fine. I don't want to complicate m3middle for m3back, which is designed for speed not performance of the resulting code. > > > > > The parameter that was already pushed on the stack will be be poped into eax, > > whereas with an m3cg operation, it would have been put into eax more directly. > > > > The return sequence will probably mov esp into..either eax specifically, or any register..I don't think leaving it in esp is easy enough for m3back to deal with. Again a special case in the general function call/return path. > > > > > > (In reality, the transform is quite significant in m3cc, but it is below where we work.) > > Indeed. > > > > > > > It's a funny thing in general, these "built in functions" that get very special handling and aren't necessarily "functions" (as in "call"/"ret"). Not clear in general to me how to model them. > > > > > > It makes one wonder why add/sub/multiply/div aren't builtin functions? > > i.e. "everything" could be viewed as a function. > > > > > > - Jay > > > > > > ---------------------------------------- > >> From: hosking at cs.purdue.edu > >> Date: Wed, 12 Jan 2011 13:34:16 -0500 > >> To: jay.krell at cornell.edu > >> CC: m3devel at elegosoft.com > >> Subject: Re: [M3devel] cg.alloca > >> > >> No, the atomics can't be because they don't map directly to a gcc builtin, whereas alloca *does*. > >> > >> On Jan 12, 2011, at 1:06 PM, Jay K wrote: > >> > >>> > >>> On NT386 the function is _chkstk, number of bytes in eax, return value in esp. > >>> Notice how in parse.c I had to strcmp for the function name. A little gross, but it does work. > >>> And C/C++ work that way. > >>> Notice how you implemented atomics. > >>> > >>> I half agree though. It could be a function call even for NT386. > >>> The atomics could be too. > >>> > >>> - Jay > >>> > >>> ---------------------------------------- > >>>> From: hosking at cs.purdue.edu > >>>> Date: Wed, 12 Jan 2011 12:10:02 -0500 > >>>> To: jay.krell at cornell.edu > >>>> CC: m3devel at elegosoft.com > >>>> Subject: Re: [M3devel] cg.alloca > >>>> > >>>> I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. > >>>> > >>>> > >>>> Antony Hosking | Associate Professor | Computer Science | Purdue University > >>>> 305 N. University Street | West Lafayette | IN 47907 | USA > >>>> Office +1 765 494 6001 | Mobile +1 765 427 5484 > >>>> > >>>> > >>>> > >>>> > >>>> On Jan 12, 2011, at 2:24 AM, Jay K wrote: > >>>> > >>>>> > >>>>> proposed diff attached > >>>>> > >>>>> - Jay > >>>>> > >>>>> ---------------------------------------- > >>>>>> From: jay.krell at cornell.edu > >>>>>> To: m3devel at elegosoft.com > >>>>>> Date: Wed, 12 Jan 2011 06:28:26 +0000 > >>>>>> Subject: [M3devel] cg.alloca > >>>>>> > >>>>>> > >>>>>> I'd like to make alloca a separate operation in m3cg. > >>>>>> Instead of a special function name that we check for. > >>>>>> More like the atomics. > >>>>>> I know how and can do it myself easily enough. > >>>>>> ok? > >>>>>> > >>>>>> > >>>>>> (and then I'll fix NT386) > >>>>>> > >>>>>> > >>>>>> - Jay > >>>>>> > >>>>>> > >>>>> > >>>> > >>> > >> > From hosking at cs.purdue.edu Wed Jan 12 22:02:21 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 12 Jan 2011 16:02:21 -0500 Subject: [M3devel] cg.alloca In-Reply-To: References: , , , , , , <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu>, , , , , , <9AEF5B45-D6A5-4651-944C-415D3EC595F6@cs.purdue.edu> Message-ID: I think that's fine. On Jan 12, 2011, at 3:36 PM, Jay K wrote: > > http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/m3cc/gcc/gcc/m3cg/parse.c > > > I'm sure it is plenty fast, and I could make it faster probably by checking the length first and doing just one strcmp instead of 3, it's just the cleanliness perhaps.. though this is basically what the regular gcc backend does anyway -- map function names to builtins. > > > m3_convert_function_to_builtin (tree p) > { > tree *slot = (tree *)htab_find_slot (builtins, p, NO_INSERT); > if (slot) > { > p = *slot; > } > else > { > const char *name = IDENTIFIER_POINTER (DECL_NAME (p)); > if (name[0] == 'a' || name[0] == '_') > { > if (strcmp(name, "alloca") == 0 > || strcmp(name, "_alloca") == 0 > || strcmp(name, "__builtin_alloca") == 0) > { > p = built_in_decls[BUILT_IN_ALLOCA]; > } > } > } > return p; > } > > > This might not even be needed -- the backend might do it anyway. > What I was partly doing here though is giving myself flexibility in what string to use -- ie. I thought I might get away with "_alloca" and have it "just work" in m3back, and then do the translation here, rather than in Target.i3 have an Alloca: TEXT -- more target-dependent code. > > > Given what I know now about NT/x86 though, this is a lost cause -- the function is "chkstk" and has a custom calling convention, so it won't "just work". > > > That is, I can try using __builtin_alloca and try w/o the special casing above. > Special casing in m3back is unavoidable, and what string we use is arguably arbitrary, or arguably should be "_chkstk" -- slight additional target-specificity. > > > But heck, I'm also willing to go back to the old scheme for NT/x86 anyway, with the static allocation. Though I probably won't. > > > I really need to fix the for i := 0 to 10 do try finally end thing -- to not alloca 10 times. > > > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Wed, 12 Jan 2011 15:13:40 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] cg.alloca >> >> >> On Jan 12, 2011, at 3:09 PM, Jay K wrote: >> >>> >>> - Are you ok with the ugly/inefficient strcmp? >> >> Where? >> >>> >>> - And what will be a more significant but still not huge transform in m3back? >>> alloca will translate to chkstk -- an actual function call, but renamed >> >> That's fine. I don't want to complicate m3middle for m3back, which is designed for speed not performance of the resulting code. >> >>> >>> The parameter that was already pushed on the stack will be be poped into eax, >>> whereas with an m3cg operation, it would have been put into eax more directly. >>> >>> The return sequence will probably mov esp into..either eax specifically, or any register..I don't think leaving it in esp is easy enough for m3back to deal with. Again a special case in the general function call/return path. >>> >>> >>> (In reality, the transform is quite significant in m3cc, but it is below where we work.) >> >> Indeed. >> >>> >>> >>> It's a funny thing in general, these "built in functions" that get very special handling and aren't necessarily "functions" (as in "call"/"ret"). Not clear in general to me how to model them. >>> >>> >>> It makes one wonder why add/sub/multiply/div aren't builtin functions? >>> i.e. "everything" could be viewed as a function. >>> >>> >>> - Jay >>> >>> >>> ---------------------------------------- >>>> From: hosking at cs.purdue.edu >>>> Date: Wed, 12 Jan 2011 13:34:16 -0500 >>>> To: jay.krell at cornell.edu >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] cg.alloca >>>> >>>> No, the atomics can't be because they don't map directly to a gcc builtin, whereas alloca *does*. >>>> >>>> On Jan 12, 2011, at 1:06 PM, Jay K wrote: >>>> >>>>> >>>>> On NT386 the function is _chkstk, number of bytes in eax, return value in esp. >>>>> Notice how in parse.c I had to strcmp for the function name. A little gross, but it does work. >>>>> And C/C++ work that way. >>>>> Notice how you implemented atomics. >>>>> >>>>> I half agree though. It could be a function call even for NT386. >>>>> The atomics could be too. >>>>> >>>>> - Jay >>>>> >>>>> ---------------------------------------- >>>>>> From: hosking at cs.purdue.edu >>>>>> Date: Wed, 12 Jan 2011 12:10:02 -0500 >>>>>> To: jay.krell at cornell.edu >>>>>> CC: m3devel at elegosoft.com >>>>>> Subject: Re: [M3devel] cg.alloca >>>>>> >>>>>> I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. >>>>>> >>>>>> >>>>>> Antony Hosking | Associate Professor | Computer Science | Purdue University >>>>>> 305 N. University Street | West Lafayette | IN 47907 | USA >>>>>> Office +1 765 494 6001 | Mobile +1 765 427 5484 >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Jan 12, 2011, at 2:24 AM, Jay K wrote: >>>>>> >>>>>>> >>>>>>> proposed diff attached >>>>>>> >>>>>>> - Jay >>>>>>> >>>>>>> ---------------------------------------- >>>>>>>> From: jay.krell at cornell.edu >>>>>>>> To: m3devel at elegosoft.com >>>>>>>> Date: Wed, 12 Jan 2011 06:28:26 +0000 >>>>>>>> Subject: [M3devel] cg.alloca >>>>>>>> >>>>>>>> >>>>>>>> I'd like to make alloca a separate operation in m3cg. >>>>>>>> Instead of a special function name that we check for. >>>>>>>> More like the atomics. >>>>>>>> I know how and can do it myself easily enough. >>>>>>>> ok? >>>>>>>> >>>>>>>> >>>>>>>> (and then I'll fix NT386) >>>>>>>> >>>>>>>> >>>>>>>> - Jay >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >> From jay.krell at cornell.edu Wed Jan 12 22:11:29 2011 From: jay.krell at cornell.edu (Jay K) Date: Wed, 12 Jan 2011 21:11:29 +0000 Subject: [M3devel] cg.alloca In-Reply-To: References: , , ,,, , ,,<3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu>, ,,, , , , , , , <9AEF5B45-D6A5-4651-944C-415D3EC595F6@cs.purdue.edu>, , Message-ID: You prefer it asis, using function calls, possibly with special casing at the next level down to change to something else (or further down)? I can try removing the special casing in parse.c, e.g. by using __builtin_alloca in m3front. But you like it asis? No m3cg change? m3back could easily do a slightly better job if m3cg was changed. But granted, it doesn't matter, and if efficiency were paramount, the way it was a week ago was better still. - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Wed, 12 Jan 2011 16:02:21 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] cg.alloca > > I think that's fine. > > On Jan 12, 2011, at 3:36 PM, Jay K wrote: > > > > > http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/m3cc/gcc/gcc/m3cg/parse.c > > > > > > I'm sure it is plenty fast, and I could make it faster probably by checking the length first and doing just one strcmp instead of 3, it's just the cleanliness perhaps.. though this is basically what the regular gcc backend does anyway -- map function names to builtins. > > > > > > m3_convert_function_to_builtin (tree p) > > { > > tree *slot = (tree *)htab_find_slot (builtins, p, NO_INSERT); > > if (slot) > > { > > p = *slot; > > } > > else > > { > > const char *name = IDENTIFIER_POINTER (DECL_NAME (p)); > > if (name[0] == 'a' || name[0] == '_') > > { > > if (strcmp(name, "alloca") == 0 > > || strcmp(name, "_alloca") == 0 > > || strcmp(name, "__builtin_alloca") == 0) > > { > > p = built_in_decls[BUILT_IN_ALLOCA]; > > } > > } > > } > > return p; > > } > > > > > > This might not even be needed -- the backend might do it anyway. > > What I was partly doing here though is giving myself flexibility in what string to use -- ie. I thought I might get away with "_alloca" and have it "just work" in m3back, and then do the translation here, rather than in Target.i3 have an Alloca: TEXT -- more target-dependent code. > > > > > > Given what I know now about NT/x86 though, this is a lost cause -- the function is "chkstk" and has a custom calling convention, so it won't "just work". > > > > > > That is, I can try using __builtin_alloca and try w/o the special casing above. > > Special casing in m3back is unavoidable, and what string we use is arguably arbitrary, or arguably should be "_chkstk" -- slight additional target-specificity. > > > > > > But heck, I'm also willing to go back to the old scheme for NT/x86 anyway, with the static allocation. Though I probably won't. > > > > > > I really need to fix the for i := 0 to 10 do try finally end thing -- to not alloca 10 times. > > > > > > > > - Jay > > > > > > ---------------------------------------- > >> From: hosking at cs.purdue.edu > >> Date: Wed, 12 Jan 2011 15:13:40 -0500 > >> To: jay.krell at cornell.edu > >> CC: m3devel at elegosoft.com > >> Subject: Re: [M3devel] cg.alloca > >> > >> > >> On Jan 12, 2011, at 3:09 PM, Jay K wrote: > >> > >>> > >>> - Are you ok with the ugly/inefficient strcmp? > >> > >> Where? > >> > >>> > >>> - And what will be a more significant but still not huge transform in m3back? > >>> alloca will translate to chkstk -- an actual function call, but renamed > >> > >> That's fine. I don't want to complicate m3middle for m3back, which is designed for speed not performance of the resulting code. > >> > >>> > >>> The parameter that was already pushed on the stack will be be poped into eax, > >>> whereas with an m3cg operation, it would have been put into eax more directly. > >>> > >>> The return sequence will probably mov esp into..either eax specifically, or any register..I don't think leaving it in esp is easy enough for m3back to deal with. Again a special case in the general function call/return path. > >>> > >>> > >>> (In reality, the transform is quite significant in m3cc, but it is below where we work.) > >> > >> Indeed. > >> > >>> > >>> > >>> It's a funny thing in general, these "built in functions" that get very special handling and aren't necessarily "functions" (as in "call"/"ret"). Not clear in general to me how to model them. > >>> > >>> > >>> It makes one wonder why add/sub/multiply/div aren't builtin functions? > >>> i.e. "everything" could be viewed as a function. > >>> > >>> > >>> - Jay > >>> > >>> > >>> ---------------------------------------- > >>>> From: hosking at cs.purdue.edu > >>>> Date: Wed, 12 Jan 2011 13:34:16 -0500 > >>>> To: jay.krell at cornell.edu > >>>> CC: m3devel at elegosoft.com > >>>> Subject: Re: [M3devel] cg.alloca > >>>> > >>>> No, the atomics can't be because they don't map directly to a gcc builtin, whereas alloca *does*. > >>>> > >>>> On Jan 12, 2011, at 1:06 PM, Jay K wrote: > >>>> > >>>>> > >>>>> On NT386 the function is _chkstk, number of bytes in eax, return value in esp. > >>>>> Notice how in parse.c I had to strcmp for the function name. A little gross, but it does work. > >>>>> And C/C++ work that way. > >>>>> Notice how you implemented atomics. > >>>>> > >>>>> I half agree though. It could be a function call even for NT386. > >>>>> The atomics could be too. > >>>>> > >>>>> - Jay > >>>>> > >>>>> ---------------------------------------- > >>>>>> From: hosking at cs.purdue.edu > >>>>>> Date: Wed, 12 Jan 2011 12:10:02 -0500 > >>>>>> To: jay.krell at cornell.edu > >>>>>> CC: m3devel at elegosoft.com > >>>>>> Subject: Re: [M3devel] cg.alloca > >>>>>> > >>>>>> I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. > >>>>>> > >>>>>> > >>>>>> Antony Hosking | Associate Professor | Computer Science | Purdue University > >>>>>> 305 N. University Street | West Lafayette | IN 47907 | USA > >>>>>> Office +1 765 494 6001 | Mobile +1 765 427 5484 > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> On Jan 12, 2011, at 2:24 AM, Jay K wrote: > >>>>>> > >>>>>>> > >>>>>>> proposed diff attached > >>>>>>> > >>>>>>> - Jay > >>>>>>> > >>>>>>> ---------------------------------------- > >>>>>>>> From: jay.krell at cornell.edu > >>>>>>>> To: m3devel at elegosoft.com > >>>>>>>> Date: Wed, 12 Jan 2011 06:28:26 +0000 > >>>>>>>> Subject: [M3devel] cg.alloca > >>>>>>>> > >>>>>>>> > >>>>>>>> I'd like to make alloca a separate operation in m3cg. > >>>>>>>> Instead of a special function name that we check for. > >>>>>>>> More like the atomics. > >>>>>>>> I know how and can do it myself easily enough. > >>>>>>>> ok? > >>>>>>>> > >>>>>>>> > >>>>>>>> (and then I'll fix NT386) > >>>>>>>> > >>>>>>>> > >>>>>>>> - Jay > >>>>>>>> > >>>>>>>> > >>>>>>> > >>>>>> > >>>>> > >>>> > >> > From hosking at cs.purdue.edu Wed Jan 12 22:33:49 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 12 Jan 2011 16:33:49 -0500 Subject: [M3devel] cg.alloca In-Reply-To: References: , , , , , , , , <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu>, , , , , , , , , , <9AEF5B45-D6A5-4651-944C-415D3EC595F6@cs.purdue.edu>, , Message-ID: <4DAF1487-CD07-4890-8D84-288915898241@cs.purdue.edu> Yes, prefer as is. No m3cg change. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 12, 2011, at 4:11 PM, Jay K wrote: > > You prefer it asis, using function calls, possibly with special casing at the next level down to change to something else (or further down)? > > > I can try removing the special casing in parse.c, e.g. by using __builtin_alloca in m3front. > But you like it asis? > No m3cg change? > > > m3back could easily do a slightly better job if m3cg was changed. > But granted, it doesn't matter, and if efficiency were paramount, the way it was a week ago was better still. > > > - Jay > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Wed, 12 Jan 2011 16:02:21 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] cg.alloca >> >> I think that's fine. >> >> On Jan 12, 2011, at 3:36 PM, Jay K wrote: >> >>> >>> http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/m3cc/gcc/gcc/m3cg/parse.c >>> >>> >>> I'm sure it is plenty fast, and I could make it faster probably by checking the length first and doing just one strcmp instead of 3, it's just the cleanliness perhaps.. though this is basically what the regular gcc backend does anyway -- map function names to builtins. >>> >>> >>> m3_convert_function_to_builtin (tree p) >>> { >>> tree *slot = (tree *)htab_find_slot (builtins, p, NO_INSERT); >>> if (slot) >>> { >>> p = *slot; >>> } >>> else >>> { >>> const char *name = IDENTIFIER_POINTER (DECL_NAME (p)); >>> if (name[0] == 'a' || name[0] == '_') >>> { >>> if (strcmp(name, "alloca") == 0 >>> || strcmp(name, "_alloca") == 0 >>> || strcmp(name, "__builtin_alloca") == 0) >>> { >>> p = built_in_decls[BUILT_IN_ALLOCA]; >>> } >>> } >>> } >>> return p; >>> } >>> >>> >>> This might not even be needed -- the backend might do it anyway. >>> What I was partly doing here though is giving myself flexibility in what string to use -- ie. I thought I might get away with "_alloca" and have it "just work" in m3back, and then do the translation here, rather than in Target.i3 have an Alloca: TEXT -- more target-dependent code. >>> >>> >>> Given what I know now about NT/x86 though, this is a lost cause -- the function is "chkstk" and has a custom calling convention, so it won't "just work". >>> >>> >>> That is, I can try using __builtin_alloca and try w/o the special casing above. >>> Special casing in m3back is unavoidable, and what string we use is arguably arbitrary, or arguably should be "_chkstk" -- slight additional target-specificity. >>> >>> >>> But heck, I'm also willing to go back to the old scheme for NT/x86 anyway, with the static allocation. Though I probably won't. >>> >>> >>> I really need to fix the for i := 0 to 10 do try finally end thing -- to not alloca 10 times. >>> >>> >>> >>> - Jay >>> >>> >>> ---------------------------------------- >>>> From: hosking at cs.purdue.edu >>>> Date: Wed, 12 Jan 2011 15:13:40 -0500 >>>> To: jay.krell at cornell.edu >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] cg.alloca >>>> >>>> >>>> On Jan 12, 2011, at 3:09 PM, Jay K wrote: >>>> >>>>> >>>>> - Are you ok with the ugly/inefficient strcmp? >>>> >>>> Where? >>>> >>>>> >>>>> - And what will be a more significant but still not huge transform in m3back? >>>>> alloca will translate to chkstk -- an actual function call, but renamed >>>> >>>> That's fine. I don't want to complicate m3middle for m3back, which is designed for speed not performance of the resulting code. >>>> >>>>> >>>>> The parameter that was already pushed on the stack will be be poped into eax, >>>>> whereas with an m3cg operation, it would have been put into eax more directly. >>>>> >>>>> The return sequence will probably mov esp into..either eax specifically, or any register..I don't think leaving it in esp is easy enough for m3back to deal with. Again a special case in the general function call/return path. >>>>> >>>>> >>>>> (In reality, the transform is quite significant in m3cc, but it is below where we work.) >>>> >>>> Indeed. >>>> >>>>> >>>>> >>>>> It's a funny thing in general, these "built in functions" that get very special handling and aren't necessarily "functions" (as in "call"/"ret"). Not clear in general to me how to model them. >>>>> >>>>> >>>>> It makes one wonder why add/sub/multiply/div aren't builtin functions? >>>>> i.e. "everything" could be viewed as a function. >>>>> >>>>> >>>>> - Jay >>>>> >>>>> >>>>> ---------------------------------------- >>>>>> From: hosking at cs.purdue.edu >>>>>> Date: Wed, 12 Jan 2011 13:34:16 -0500 >>>>>> To: jay.krell at cornell.edu >>>>>> CC: m3devel at elegosoft.com >>>>>> Subject: Re: [M3devel] cg.alloca >>>>>> >>>>>> No, the atomics can't be because they don't map directly to a gcc builtin, whereas alloca *does*. >>>>>> >>>>>> On Jan 12, 2011, at 1:06 PM, Jay K wrote: >>>>>> >>>>>>> >>>>>>> On NT386 the function is _chkstk, number of bytes in eax, return value in esp. >>>>>>> Notice how in parse.c I had to strcmp for the function name. A little gross, but it does work. >>>>>>> And C/C++ work that way. >>>>>>> Notice how you implemented atomics. >>>>>>> >>>>>>> I half agree though. It could be a function call even for NT386. >>>>>>> The atomics could be too. >>>>>>> >>>>>>> - Jay >>>>>>> >>>>>>> ---------------------------------------- >>>>>>>> From: hosking at cs.purdue.edu >>>>>>>> Date: Wed, 12 Jan 2011 12:10:02 -0500 >>>>>>>> To: jay.krell at cornell.edu >>>>>>>> CC: m3devel at elegosoft.com >>>>>>>> Subject: Re: [M3devel] cg.alloca >>>>>>>> >>>>>>>> I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. >>>>>>>> >>>>>>>> >>>>>>>> Antony Hosking | Associate Professor | Computer Science | Purdue University >>>>>>>> 305 N. University Street | West Lafayette | IN 47907 | USA >>>>>>>> Office +1 765 494 6001 | Mobile +1 765 427 5484 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Jan 12, 2011, at 2:24 AM, Jay K wrote: >>>>>>>> >>>>>>>>> >>>>>>>>> proposed diff attached >>>>>>>>> >>>>>>>>> - Jay >>>>>>>>> >>>>>>>>> ---------------------------------------- >>>>>>>>>> From: jay.krell at cornell.edu >>>>>>>>>> To: m3devel at elegosoft.com >>>>>>>>>> Date: Wed, 12 Jan 2011 06:28:26 +0000 >>>>>>>>>> Subject: [M3devel] cg.alloca >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> I'd like to make alloca a separate operation in m3cg. >>>>>>>>>> Instead of a special function name that we check for. >>>>>>>>>> More like the atomics. >>>>>>>>>> I know how and can do it myself easily enough. >>>>>>>>>> ok? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> (and then I'll fix NT386) >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> - Jay >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>> >> From hosking at cs.purdue.edu Thu Jan 13 06:56:27 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 13 Jan 2011 00:56:27 -0500 Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <20110113032413.889001A205B@async.async.caltech.edu> References: <20110112183316.3F661CC37B@birch.elegosoft.com> <20110112215850.7E7851A205B@async.async.caltech.edu> <20110113032413.889001A205B@async.async.caltech.edu> Message-ID: In this trace, there are only a few threads not trying to acquire heapMu for allocation. I don't know what the spin_lock threads are doing... We're left with thread 39 stuck in some spin lock. Thread 35 is stuck in fork (in AtForkPrepare) waiting for heapMu. Thread 31 is stuck in InitMutex trying waiting for heapMu. I can't see any thread that actually holds heapMu. Except, now I see that RTCollector also has AtFork routines, which LockHeap/UnlockHeap. I think this means the atfork routines in ThreadPThread must invoke LockHeap/UnlockHeap to avoid deadlocking with itself! Yikes. I'll check in the change and perhaps you can see if that fixes things. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 12, 2011, at 10:24 PM, Mika Nystrom wrote: > > Tony Hosking writes: >> OK, backing right off. Try the latest. > > Hmm, think we're deadlocked again? > > My application goes catatonic almost right away, but the trace below is > from the threadtest program. > > > Continuing. > > Program received signal SIGINT, Interrupt. > 0x9710b136 in semaphore_wait_trap () ... > Thread 67 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 66 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 65 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 64 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 63 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 62 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 61 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 60 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 59 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 58 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 57 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 56 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 55 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 54 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 53 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 52 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 51 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 50 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 49 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 48 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 47 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 46 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 45 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 44 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 43 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 42 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 41 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 40 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 39 (process 86373): > #0 0xffff0279 in __spin_lock () > #1 0x97137203 in _cthread_fork_prepare () > #2 0x97137155 in fork () > #3 0x00007a21 in ProcessPosixCommon__Create_ForkExec (cmd=0x64334, params=0x64344, env=0x0, wd=0x0, stdin=0x0, stdout=0x0, stderr=0x0) at ../src/os/POSIX/ProcessPosixCommon.m3:75 > #4 0x00008f0b in Process__Create (cmd=0x64334, params=0x64344, env=0x0, wd=0x0, stdin=0x0, stdout=0x0, stderr=0x0) at ../src/os/POSIX/ProcessPosix.m3:21 > #5 0x0000329e in Main__FApply (cl=0xb05bc0) at ../src/Main.m3:56 > #6 0x00041068 in ThreadPThread__RunThread (me=0xe018c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #7 0x00040d97 in ThreadPThread__ThreadBase (param=0xe018c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #8 0x9713885d in _pthread_start () > #9 0x971386e2 in thread_start () > > Thread 38 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 37 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 36 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 35 (process 86373): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x00044929 in ThreadPThread__pthread_mutex_lock (i=0x7e920) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 > #3 0x000436d2 in ThreadPThread__PThreadLockMutex (mutex=0x7e920, line=1274) at ../src/thread/PTHREAD/ThreadPThread.m3:1253 > #4 0x000437b1 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1274 > #5 0x97137217 in _cthread_fork_prepare () > #6 0x97137155 in fork () > #7 0x00007a21 in ProcessPosixCommon__Create_ForkExec (cmd=0x64334, params=0x64344, env=0x0, wd=0x0, stdin=0x0, stdout=0x0, stderr=0x0) at ../src/os/POSIX/ProcessPosixCommon.m3:75 > #8 0x00008f0b in Process__Create (cmd=0x64334, params=0x64344, env=0x0, wd=0x0, stdin=0x0, stdout=0x0, stderr=0x0) at ../src/os/POSIX/ProcessPosix.m3:21 > #9 0x0000329e in Main__FApply (cl=0xb05ae0) at ../src/Main.m3:56 > #10 0x00041068 in ThreadPThread__RunThread (me=0xe01600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x00040d97 in ThreadPThread__ThreadBase (param=0xe01600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 31 (process 86373): > #0 0x9710b136 in semaphore_wait_trap () > #1 0x97110c53 in pthread_mutex_lock () > #2 0x00044929 in ThreadPThread__pthread_mutex_lock (i=0x7e920) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 > #3 0x00043bc4 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 > #4 0x0003f2e6 in ThreadPThread__InitMutex (m=0x2070010, root=0x207000c, Clean=0x3f1b6) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #5 0x0003f38f in ThreadPThread__LockMutex (m=0x207000c) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #6 0x000091e8 in Rd__GetChar (rd=0x207000c) at ../src/rw/Rd.m3:33 > #7 0x0000314d in Main__RApply (cl=0xb05a00) at ../src/Main.m3:42 > #8 0x00041068 in ThreadPThread__RunThread (me=0xe01340) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #9 0x00040d97 in ThreadPThread__ThreadBase (param=0xe01340) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #10 0x9713885d in _pthread_start () > #11 0x971386e2 in thread_start () From jay.krell at cornell.edu Thu Jan 13 16:14:21 2011 From: jay.krell at cornell.edu (Jay K) Date: Thu, 13 Jan 2011 15:14:21 +0000 Subject: [M3devel] parse.c builtins hashtable needed? In-Reply-To: References: <20110113145829.72EAD2474003@birch.elegosoft.com>, , Message-ID: Um. I don't see the point of the hashtable actually. All the calls except "m3_alloca" are translated "directly". I understand that if there were many things like this new m3_alloca, a hashtable would make sense. I understand as well that __builtin_alloca ought to just work w/o special handling, but I didn't debug why. I'm testing the below and expect it will work. Even if atomics are used much. ? Index: m3-sys/m3cc/gcc/gcc/m3cg/parse.c =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3cc/gcc/gcc/m3cg/parse.c,v retrieving revision 1.478 diff -u -r1.478 parse.c --- m3-sys/m3cc/gcc/gcc/m3cg/parse.c 13 Jan 2011 14:58:29 -0000 1.478 +++ m3-sys/m3cc/gcc/gcc/m3cg/parse.c 13 Jan 2011 15:10:35 -0000 @@ -1535,37 +1535,6 @@ return decl; } -/* Return a definition for a builtin function named NAME and whose data type - is TYPE. TYPE should be a function type with argument types. - FUNCTION_CODE tells later passes how to compile calls to this function. - See tree.h for its possible values. - - If LIBRARY_NAME is nonzero, use that for DECL_ASSEMBLER_NAME, - the name to be called if we can't opencode the function. If - ATTRS is nonzero, use that for the function's attribute list. - - copied from gcc/c-decl.c -*/ - -static GTY ((param_is (union tree_node))) htab_t builtins; - -static hashval_t -htab_hash_builtin (const PTR p) -{ - const_tree t = (const_tree)p; - - return htab_hash_pointer (DECL_NAME (t)); -} - -static int -htab_eq_builtin (const PTR p1, const PTR p2) -{ - const_tree t1 = (const_tree)p1; - const_tree t2 = (const_tree)p2; - - return DECL_NAME (t1) == DECL_NAME (t2); -} - static tree builtin_function (PCSTR name, tree type, #if GCC42 @@ -1595,13 +1564,6 @@ gcc_assert (!library_name); } - if (!builtins) - builtins = htab_create_ggc (1021, htab_hash_builtin, - htab_eq_builtin, NULL); - tree* slot = (tree *)htab_find_slot (builtins, decl, INSERT); - gcc_assert (*slot == NULL); - *slot = decl; - TREE_CHAIN (decl) = global_decls; global_decls = decl; @@ -2979,11 +2941,7 @@ static tree m3_convert_function_to_builtin (tree p) { - tree *slot = (tree *)htab_find_slot (builtins, p, NO_INSERT); - - if (slot) - p = *slot; - else if (DECL_NAME (p) == m3_alloca) + if (DECL_NAME (p) == m3_alloca) p = built_in_decls[BUILT_IN_ALLOCA]; return p; } ? - Jay From: jay.krell at cornell.edu To: jkrell at elego.de; m3commit at elegosoft.com Subject: RE: [M3commit] CVS Update: cm3 Date: Thu, 13 Jan 2011 15:06:37 +0000 Hm. I'll try the hashtable instead. - Jay From: jay.krell at cornell.edu To: jkrell at elego.de; m3commit at elegosoft.com Subject: RE: [M3commit] CVS Update: cm3 Date: Thu, 13 Jan 2011 15:00:24 +0000 Index: m3-sys/m3front/src/misc/Marker.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.m3,v retrieving revision 1.8 diff -u -r1.8 Marker.m3 --- m3-sys/m3front/src/misc/Marker.m3 6 Jan 2011 20:40:16 -0000 1.8 +++ m3-sys/m3front/src/misc/Marker.m3 13 Jan 2011 14:56:53 -0000 @@ -248,7 +248,7 @@ END; (* void* _alloca(size_t); *) IF (alloca = NIL) THEN - alloca := CG.Import_procedure (M3ID.Add ("_alloca"), 1, CG.Type.Addr, + alloca := CG.Import_procedure (M3ID.Add ("m3_alloca"), 1, CG.Type.Addr, Target.DefaultCall, new); IF (new) THEN EVAL CG.Declare_param (M3ID.NoID, Target.Word.size, Target.Word.align, Index: m3-sys/m3cc/gcc/gcc/m3cg/parse.c =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3cc/gcc/gcc/m3cg/parse.c,v retrieving revision 1.477 diff -u -r1.477 parse.c --- m3-sys/m3cc/gcc/gcc/m3cg/parse.c 5 Jan 2011 14:34:53 -0000 1.477 +++ m3-sys/m3cc/gcc/gcc/m3cg/parse.c 13 Jan 2011 14:56:53 -0000 @@ -473,6 +473,8 @@ #define t_void void_type_node static GTY (()) tree t_set; +static tree m3_alloca; + static const struct { UINT32 type_id; tree* t; } builtin_uids[] = { { UID_INTEGER, &t_int }, { UID_LONGINT, &t_longint }, @@ -1750,6 +1752,7 @@ bits_per_integer_tree = build_int_cst (t_word, BITS_PER_INTEGER); bytes_per_integer_tree = build_int_cst (t_word, BITS_PER_INTEGER / BITS_PER_UNIT); tree stdcall = get_identifier_with_length (CONSTANT_STRING_AND_LENGTH ("stdcall")); + m3_alloca = get_identifier_with_length (CONSTANT_STRING_AND_LENGTH ("m3_alloca")); stdcall_list = build_tree_list (stdcall, NULL); t_set = m3_build_pointer_type (t_word); @@ -2979,22 +2982,9 @@ tree *slot = (tree *)htab_find_slot (builtins, p, NO_INSERT); if (slot) - { p = *slot; - } - else - { - const char *name = IDENTIFIER_POINTER (DECL_NAME (p)); - if (name[0] == 'a' || name[0] == '_') - { - if (strcmp(name, "alloca") == 0 - || strcmp(name, "_alloca") == 0 - || strcmp(name, "__builtin_alloca") == 0) - { - p = built_in_decls[BUILT_IN_ALLOCA]; - } - } - } + else if (DECL_NAME (p) == m3_alloca) + p = built_in_decls[BUILT_IN_ALLOCA]; return p; } - Jay > Date: Thu, 13 Jan 2011 15:58:29 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 11/01/13 15:58:29 > > Modified files: > cm3/m3-sys/m3front/src/misc/: Marker.m3 > cm3/m3-sys/m3cc/gcc/gcc/m3cg/: parse.c > > Log message: > __builtin_alloca didn't work w/o translation > among alloca, _alloca, __builtin_alloca, make up our own name, m3_alloca > and do the comparison by pointer equality (since gcc uses > string interning) > I'd also go for _m3_alloca, __m3_alloca, or alloca, or darn near > anything else. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.caltech.edu Fri Jan 14 15:21:05 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Fri, 14 Jan 2011 06:21:05 -0800 Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <7023B2A2-F3A8-4381-9250-117CC632CE66@cs.purdue.edu> References: <20110113055848.D4DF02474003@birch.elegosoft.com> <20110113070302.E7E761A205B@async.async.caltech.edu> <20110113175307.0EB651A2061@async.async.caltech.edu> <7023B2A2-F3A8-4381-9250-117CC632CE66@cs.purdue.edu> Message-ID: <20110114142105.4B37A1A207A@async.async.caltech.edu> Tony, Yes on closer reflection I agree with your statement that it isn't surprising it runs slowly. What I have realized is that the simplicity of the user-threads implementation makes that implementation much more fair than the pthreads implementation appears to be. (Which is of course not a real problem but something that shows up in synthetic applications like the thread tester.) I added code to print the youngest and median thread in each of the three categories and I'd agree that what I see is about what you'd expect. The threads also have very different workloads, so under pthreads it's not surprising that some of them make progress faster than others. Here's the typical output now (99 threads, pthreads): [HAL:tests/thread/src] mika% ../I386_DARWIN/threadtest Writing file...done Creating reader threads...done Creating forker threads...done Creating allocator threads...done running...printing oldest/median age/newest laziest thread is 1295014272/0/0 seconds behind (read 1295014272/1295014272/0 fork 0/0/0 alloc 0/0/0) laziest thread is 1295014282/0/0 seconds behind (read 1295014282/7/0 fork 0/0/0 alloc 0/0/0) laziest thread is 1295014292/0/0 seconds behind (read 1295014292/6/0 fork 0/0/0 alloc 0/0/0) laziest thread is 35/1/0 seconds behind (read 35/9/1 fork 1/1/1 alloc 1/1/0) ... With PM3 user threads, the switching is probably just round-robin, and you get: (110)rover:~/cm3-writable/cm3/m3-libs/m3core/tests/thread/src>../FreeBSD4/threadtest Writing file...done Creating reader threads...done Creating forker threads...done Creating allocator threads...done running...printing oldest/median age/newest laziest thread is 9/4/0 seconds behind (read 9/7/4 fork 4/4/4 alloc 4/2/0) laziest thread is 8/4/0 seconds behind (read 8/7/4 fork 4/4/4 alloc 4/2/0) laziest thread is 8/4/0 seconds behind (read 8/6/4 fork 4/4/4 alloc 4/2/0) ... I only rarely see the assertion failure from the C code. I have not been able to reproduce it with @M3noincremental (yet). However I have seen a "more serious" assertion failure: [HAL:tests/thread/src] mika% ../I386_DARWIN/threadtest Writing file...done Creating reader threads...done Creating forker threads...done Creating allocator threads...done running...printing oldest/median age/newest *** *** runtime error: *** Thread client error: 22 *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 120 *** *** *** runtime error: *** An array subscript was out of range. *** file "../src/runtime/common/RTCollector.m3", line 418 *** Abort This happened with n = 9 threads. I tried it again in the debugger and only got the assertion for RTCollector. Here's the traceback for the crashing thread: Thread 10 (process 2811): #0 0x971784fe in __semwait_signal_nocancel () #1 0x971783e2 in nanosleep$NOCANCEL$UNIX2003 () #2 0x971f32aa in usleep$NOCANCEL$UNIX2003 () #3 0x972149c8 in abort () #4 0x000457a4 in Cstdlib__abort () at ../src/C/Common/CstdlibC.c:21 #5 0x0003de10 in RTOS__Crash () at ../src/runtime/POSIX/RTOS.m3:20 #6 0x00037ea4 in RTProcess__Crash (msg=0x0) at ../src/runtime/common/RTProcess.m3:65 #7 0x000362ed in RTError__EndError (crash=1 '\001') at ../src/runtime/common/RTError.m3:118 #8 0x00036005 in RTError__MsgS (file=0x6baa9, line=418, msgA=0x6c748, msgB=0x69890, msgC=0x6c748) at ../src/runtime/common/RTError.m3:40 #9 0x000366da in RTException__Crash (a=0xb0490a64, raises=0 '\0', rte=0x69740) at ../src/runtime/common/RTException.m3:79 #10 0x00036432 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:39 #11 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25 #12 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85 #13 0x000364c3 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:47 #14 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25 #15 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85 #16 0x0002655a in RTHooks__ReportFault (module=0x7b200, info=13378) at ../src/runtime/common/RTHooks.m3:111 #17 0x00033f2f in _m3_fault (arg=13378) at ../src/runtime/common/RTCollector.m3:393 #18 0x0002afb0 in RTCollector__Move (self=0x213000c, cp=0x2030014) at ../src/runtime/common/RTCollector.m3:418 #19 0x0002987f in RTHeapMap__Walk (x=0x2030014, pc=0x66068, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:202 #20 0x0002902a in RTHeapMap__DoWalkRef (t=0x782f4, a=0x2030014, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:62 #21 0x00029001 in RTHeapMap__DoWalkRef (t=0x786f4, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57 #22 0x00029001 in RTHeapMap__DoWalkRef (t=0x78808, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57 #23 0x00028fb4 in RTHeapMap__WalkRef (h=0x2030008, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:47 #24 0x0002d3ab in RTCollector__CleanBetween (h=0x2030008, he=0x2040000, clean=0 '\0') at ../src/runtime/common/RTCollector.m3:1091 #25 0x0002d1e2 in RTCollector__CleanPage (page=0x2030000) at ../src/runtime/common/RTCollector.m3:1064 #26 0x0002c8f9 in RTCollector__CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:885 #27 0x0002c012 in RTCollector__CollectSome () at ../src/runtime/common/RTCollector.m3:720 #28 0x0002bc54 in RTHeapRep__CollectEnough () at ../src/runtime/common/RTCollector.m3:654 #29 0x00027fd9 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa04794) at ../src/runtime/common/RTAllocator.m3:365 #30 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:294 #31 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:143 #32 0x00004001 in Main__AApply (cl=0xb054bc) at ../src/Main.m3:130 #33 0x0004145c in ThreadPThread__RunThread (me=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #34 0x0004118b in ThreadPThread__ThreadBase (param=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #35 0x9713885d in _pthread_start () #36 0x971386e2 in thread_start () Complete traceback attached below. Again, I modified the program from tests/thread/src/Main.m3 to read "nOver3 = 3" to get this behavior. Mika Tony Hosking writes: >I'm not surprised it runs slowly. There is a lot of contention for = >allocation of pages to satisfy all the allocation requests. Plus GC I = >expect. Can you try running with @M3noincremental and see how it goes? = >Weird about the assertion failure. I think we should be checking for = >EBUSY. > >On Jan 13, 2011, at 12:53 PM, Mika Nystrom wrote: > >> Tony, no, the test program=20 >>=20 >> (1) printed the assertion failure. >>=20 >> (2) did NOT deadlock >>=20 >> (3) ran very very slowly (at least some threads did) >>=20 >> (4) kept running after printing the assertion failure and exited = >normally >>=20 >> The actual application may have behaved differently but there seems to = >be >> enough here to constitute one or two bugs...? >>=20 >> My test program seems very effective, by the way. It has had = >objections >> to every version you've checked in so far... :-) >>=20 >> Mika >>=20 Thread 10 (process 2811): #0 0x971784fe in __semwait_signal_nocancel () #1 0x971783e2 in nanosleep$NOCANCEL$UNIX2003 () #2 0x971f32aa in usleep$NOCANCEL$UNIX2003 () #3 0x972149c8 in abort () #4 0x000457a4 in Cstdlib__abort () at ../src/C/Common/CstdlibC.c:21 #5 0x0003de10 in RTOS__Crash () at ../src/runtime/POSIX/RTOS.m3:20 #6 0x00037ea4 in RTProcess__Crash (msg=0x0) at ../src/runtime/common/RTProcess.m3:65 #7 0x000362ed in RTError__EndError (crash=1 '\001') at ../src/runtime/common/RTError.m3:118 #8 0x00036005 in RTError__MsgS (file=0x6baa9, line=418, msgA=0x6c748, msgB=0x69890, msgC=0x6c748) at ../src/runtime/common/RTError.m3:40 #9 0x000366da in RTException__Crash (a=0xb0490a64, raises=0 '\0', rte=0x69740) at ../src/runtime/common/RTException.m3:79 #10 0x00036432 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:39 #11 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25 #12 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85 #13 0x000364c3 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:47 #14 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25 #15 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85 #16 0x0002655a in RTHooks__ReportFault (module=0x7b200, info=13378) at ../src/runtime/common/RTHooks.m3:111 #17 0x00033f2f in _m3_fault (arg=13378) at ../src/runtime/common/RTCollector.m3:393 #18 0x0002afb0 in RTCollector__Move (self=0x213000c, cp=0x2030014) at ../src/runtime/common/RTCollector.m3:418 #19 0x0002987f in RTHeapMap__Walk (x=0x2030014, pc=0x66068, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:202 #20 0x0002902a in RTHeapMap__DoWalkRef (t=0x782f4, a=0x2030014, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:62 #21 0x00029001 in RTHeapMap__DoWalkRef (t=0x786f4, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57 #22 0x00029001 in RTHeapMap__DoWalkRef (t=0x78808, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57 #23 0x00028fb4 in RTHeapMap__WalkRef (h=0x2030008, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:47 #24 0x0002d3ab in RTCollector__CleanBetween (h=0x2030008, he=0x2040000, clean=0 '\0') at ../src/runtime/common/RTCollector.m3:1091 #25 0x0002d1e2 in RTCollector__CleanPage (page=0x2030000) at ../src/runtime/common/RTCollector.m3:1064 #26 0x0002c8f9 in RTCollector__CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:885 #27 0x0002c012 in RTCollector__CollectSome () at ../src/runtime/common/RTCollector.m3:720 #28 0x0002bc54 in RTHeapRep__CollectEnough () at ../src/runtime/common/RTCollector.m3:654 #29 0x00027fd9 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa04794) at ../src/runtime/common/RTAllocator.m3:365 #30 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:294 #31 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:143 #32 0x00004001 in Main__AApply (cl=0xb054bc) at ../src/Main.m3:130 #33 0x0004145c in ThreadPThread__RunThread (me=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #34 0x0004118b in ThreadPThread__ThreadBase (param=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #35 0x9713885d in _pthread_start () #36 0x971386e2 in thread_start () Thread 9 (process 2811): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 #4 0x00027fd4 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa046e4) at ../src/runtime/common/RTAllocator.m3:363 #5 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb040ee90) at ../src/runtime/common/RTAllocator.m3:294 #6 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb040ee90) at ../src/runtime/common/RTAllocator.m3:143 #7 0x00004001 in Main__AApply (cl=0xb05484) at ../src/Main.m3:130 #8 0x0004145c in ThreadPThread__RunThread (me=0xa046a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #9 0x0004118b in ThreadPThread__ThreadBase (param=0xa046a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #10 0x9713885d in _pthread_start () #11 0x971386e2 in thread_start () Thread 8 (process 2811): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 #4 0x00027fd4 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa04634) at ../src/runtime/common/RTAllocator.m3:363 #5 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb038ce90) at ../src/runtime/common/RTAllocator.m3:294 #6 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb038ce90) at ../src/runtime/common/RTAllocator.m3:143 #7 0x00004001 in Main__AApply (cl=0xb0544c) at ../src/Main.m3:130 #8 0x0004145c in ThreadPThread__RunThread (me=0xa045f0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #9 0x0004118b in ThreadPThread__ThreadBase (param=0xa045f0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #10 0x9713885d in _pthread_start () #11 0x971386e2 in thread_start () Thread 7 (process 2811): #0 0x9716c1d6 in __wait4 () #1 0x9716c1c9 in waitpid$UNIX2003 () #2 0x000453e7 in Uexec__waitpid (i=2843, j=0xb030ad8c, k=0) at ../src/unix/Common/Uexec.c:67 #3 0x00042252 in SchedulerPosix__WaitProcess (pid=2843, status=0xb030ad8c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 #4 0x00009928 in Process__Wait (p=0xb9000c) at ../src/os/POSIX/ProcessPosixCommon.m3:275 #5 0x00003e92 in Main__FApply (cl=0xb05414) at ../src/Main.m3:117 #6 0x0004145c in ThreadPThread__RunThread (me=0xa04590) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #7 0x0004118b in ThreadPThread__ThreadBase (param=0xa04590) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #8 0x9713885d in _pthread_start () #9 0x971386e2 in thread_start () Thread 6 (process 2811): #0 0x9716c1d6 in __wait4 () #1 0x9716c1c9 in waitpid$UNIX2003 () #2 0x000453e7 in Uexec__waitpid (i=2842, j=0xb0288d8c, k=0) at ../src/unix/Common/Uexec.c:67 #3 0x00042252 in SchedulerPosix__WaitProcess (pid=2842, status=0xb0288d8c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 #4 0x00009928 in Process__Wait (p=0xc1000c) at ../src/os/POSIX/ProcessPosixCommon.m3:275 #5 0x00003e92 in Main__FApply (cl=0xb053dc) at ../src/Main.m3:117 #6 0x0004145c in ThreadPThread__RunThread (me=0xa043a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #7 0x0004118b in ThreadPThread__ThreadBase (param=0xa043a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #8 0x9713885d in _pthread_start () #9 0x971386e2 in thread_start () Thread 5 (process 2811): #0 0x9716c1d6 in __wait4 () #1 0x9716c1c9 in waitpid$UNIX2003 () #2 0x000453e7 in Uexec__waitpid (i=2841, j=0xb0206d8c, k=0) at ../src/unix/Common/Uexec.c:67 #3 0x00042252 in SchedulerPosix__WaitProcess (pid=2841, status=0xb0206d8c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 #4 0x00009928 in Process__Wait (p=0xb7000c) at ../src/os/POSIX/ProcessPosixCommon.m3:275 #5 0x00003e92 in Main__FApply (cl=0xb053a4) at ../src/Main.m3:117 #6 0x0004145c in ThreadPThread__RunThread (me=0xa042f0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #7 0x0004118b in ThreadPThread__ThreadBase (param=0xa042f0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #8 0x9713885d in _pthread_start () #9 0x971386e2 in thread_start () Thread 4 (process 2811): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 #4 0x0003f6da in ThreadPThread__InitMutex (m=0x2120010, root=0x212000c, Clean=0x3f5aa) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #5 0x0003f783 in ThreadPThread__LockMutex (m=0x212000c) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #6 0x0000a323 in Rd__GetChar (rd=0x212000c) at ../src/rw/Rd.m3:33 #7 0x00003c2e in Main__RApply (cl=0xb0536c) at ../src/Main.m3:95 #8 0x0004145c in ThreadPThread__RunThread (me=0xa04240) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #9 0x0004118b in ThreadPThread__ThreadBase (param=0xa04240) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #10 0x9713885d in _pthread_start () #11 0x971386e2 in thread_start () Thread 3 (process 2811): #0 ThreadPThread__LockMutex (m=0xd0000c) at ../src/thread/PTHREAD/ThreadPThread.m3:122 #1 0x0000a323 in Rd__GetChar (rd=0xd0000c) at ../src/rw/Rd.m3:33 #2 0x00003c2e in Main__RApply (cl=0xb05334) at ../src/Main.m3:95 #3 0x0004145c in ThreadPThread__RunThread (me=0xa04190) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #4 0x0004118b in ThreadPThread__ThreadBase (param=0xa04190) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #5 0x9713885d in _pthread_start () #6 0x971386e2 in thread_start () Thread 2 (process 2811): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 #4 0x00027fd4 in RTAllocator__AllocTraced (dataSize=12, dataAlignment=4, thread=0xa040a4) at ../src/runtime/common/RTAllocator.m3:363 #5 0x00027387 in RTAllocator__GetTracedObj (def=0x77654) at ../src/runtime/common/RTAllocator.m3:224 #6 0x00026e20 in RTHooks__AllocateTracedObj (defn=0x77654) at ../src/runtime/common/RTAllocator.m3:122 #7 0x00005239 in FilePosix__New (fd=5, ds=1) at ../src/os/POSIX/FilePosix.m3:63 #8 0x000067df in FS__OpenFileReadonly (pn=0x64324) at ../src/os/POSIX/FSPosix.m3:182 #9 0x000103e8 in FileRd__Open (p=0x64324) at ../src/rw/FileRd.m3:16 #10 0x00003b9b in Main__RApply (cl=0xb052fc) at ../src/Main.m3:92 #11 0x0004145c in ThreadPThread__RunThread (me=0xa04060) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #12 0x0004118b in ThreadPThread__ThreadBase (param=0xa04060) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #13 0x9713885d in _pthread_start () #14 0x971386e2 in thread_start () Thread 1 (process 2811): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x00044c7c in ThreadPThread__pthread_cond_timedwait (cond=0xa03ca0, mutex=0xa03c70, m3timeout=1295014649.3298399) at ../src/thread/PTHREAD/ThreadPThreadC.c:430 #4 0x00041ca3 in ThreadPThread__XPause (self=0xa03c10, n=10, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x00041d73 in Thread__Pause (n=10) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000046e2 in Main_M3 (mode=1) at ../src/Main.m3:214 #7 0x00035549 in RTLinker__RunMainBody (m=0x76920) at ../src/runtime/common/RTLinker.m3:406 #8 0x000349a5 in RTLinker__AddUnitI (m=0x76920) at ../src/runtime/common/RTLinker.m3:113 #9 0x00034a26 in RTLinker__AddUnit (b=0x455c) at ../src/runtime/common/RTLinker.m3:122 #10 0x000039fc in main (argc=1, argv=0xbffff5cc, envp=0xbffff5d4) at _m3main.c:16 From hosking at cs.purdue.edu Fri Jan 14 17:08:54 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 14 Jan 2011 11:08:54 -0500 Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <20110114142105.4B37A1A207A@async.async.caltech.edu> References: <20110113055848.D4DF02474003@birch.elegosoft.com> <20110113070302.E7E761A205B@async.async.caltech.edu> <20110113175307.0EB651A2061@async.async.caltech.edu> <7023B2A2-F3A8-4381-9250-117CC632CE66@cs.purdue.edu> <20110114142105.4B37A1A207A@async.async.caltech.edu> Message-ID: <6CC44E59-D16C-452E-B9AC-73C19E51216F@cs.purdue.edu> Can you try to get the crash with @M3paranoidgc and report the result? It would be good to capture any abort that occurs in the debugger and show the traceback. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 14, 2011, at 9:21 AM, Mika Nystrom wrote: > Tony, > > Yes on closer reflection I agree with your statement that it isn't > surprising it runs slowly. What I have realized is that the simplicity of > the user-threads implementation makes that implementation much more fair > than the pthreads implementation appears to be. (Which is of course not > a real problem but something that shows up in synthetic applications like > the thread tester.) I added code to print the youngest and median thread > in each of the three categories and I'd agree that what I see is about > what you'd expect. The threads also have very different workloads, so under > pthreads it's not surprising that some of them make progress faster > than others. > > Here's the typical output now (99 threads, pthreads): > > [HAL:tests/thread/src] mika% ../I386_DARWIN/threadtest > Writing file...done > Creating reader threads...done > Creating forker threads...done > Creating allocator threads...done > running...printing oldest/median age/newest > laziest thread is 1295014272/0/0 seconds behind (read 1295014272/1295014272/0 fork 0/0/0 alloc 0/0/0) > laziest thread is 1295014282/0/0 seconds behind (read 1295014282/7/0 fork 0/0/0 alloc 0/0/0) > laziest thread is 1295014292/0/0 seconds behind (read 1295014292/6/0 fork 0/0/0 alloc 0/0/0) > laziest thread is 35/1/0 seconds behind (read 35/9/1 fork 1/1/1 alloc 1/1/0) > ... > > With PM3 user threads, the switching is probably just round-robin, and you get: > > (110)rover:~/cm3-writable/cm3/m3-libs/m3core/tests/thread/src>../FreeBSD4/threadtest > Writing file...done > Creating reader threads...done > Creating forker threads...done > Creating allocator threads...done > running...printing oldest/median age/newest > laziest thread is 9/4/0 seconds behind (read 9/7/4 fork 4/4/4 alloc 4/2/0) > laziest thread is 8/4/0 seconds behind (read 8/7/4 fork 4/4/4 alloc 4/2/0) > laziest thread is 8/4/0 seconds behind (read 8/6/4 fork 4/4/4 alloc 4/2/0) > ... > > I only rarely see the assertion failure from the C code. I have not been able > to reproduce it with @M3noincremental (yet). However I have seen a "more serious" > assertion failure: > > [HAL:tests/thread/src] mika% ../I386_DARWIN/threadtest > Writing file...done > Creating reader threads...done > Creating forker threads...done > Creating allocator threads...done > running...printing oldest/median age/newest > > > *** > *** runtime error: > *** Thread client error: 22 > *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 120 > *** > > > > *** > *** runtime error: > *** An array subscript was out of range. > *** file "../src/runtime/common/RTCollector.m3", line 418 > *** > > Abort > > This happened with n = 9 threads. > > I tried it again in the debugger and only got the assertion for RTCollector. > > Here's the traceback for the crashing thread: > > Thread 10 (process 2811): > #0 0x971784fe in __semwait_signal_nocancel () > #1 0x971783e2 in nanosleep$NOCANCEL$UNIX2003 () > #2 0x971f32aa in usleep$NOCANCEL$UNIX2003 () > #3 0x972149c8 in abort () > #4 0x000457a4 in Cstdlib__abort () at ../src/C/Common/CstdlibC.c:21 > #5 0x0003de10 in RTOS__Crash () at ../src/runtime/POSIX/RTOS.m3:20 > #6 0x00037ea4 in RTProcess__Crash (msg=0x0) at ../src/runtime/common/RTProcess.m3:65 > #7 0x000362ed in RTError__EndError (crash=1 '\001') at ../src/runtime/common/RTError.m3:118 > #8 0x00036005 in RTError__MsgS (file=0x6baa9, line=418, msgA=0x6c748, msgB=0x69890, msgC=0x6c748) at ../src/runtime/common/RTError.m3:40 > #9 0x000366da in RTException__Crash (a=0xb0490a64, raises=0 '\0', rte=0x69740) at ../src/runtime/common/RTException.m3:79 > #10 0x00036432 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:39 > #11 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25 > #12 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85 > #13 0x000364c3 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:47 > #14 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25 > #15 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85 > #16 0x0002655a in RTHooks__ReportFault (module=0x7b200, info=13378) at ../src/runtime/common/RTHooks.m3:111 > #17 0x00033f2f in _m3_fault (arg=13378) at ../src/runtime/common/RTCollector.m3:393 > #18 0x0002afb0 in RTCollector__Move (self=0x213000c, cp=0x2030014) at ../src/runtime/common/RTCollector.m3:418 > #19 0x0002987f in RTHeapMap__Walk (x=0x2030014, pc=0x66068, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:202 > #20 0x0002902a in RTHeapMap__DoWalkRef (t=0x782f4, a=0x2030014, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:62 > #21 0x00029001 in RTHeapMap__DoWalkRef (t=0x786f4, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57 > #22 0x00029001 in RTHeapMap__DoWalkRef (t=0x78808, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57 > #23 0x00028fb4 in RTHeapMap__WalkRef (h=0x2030008, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:47 > #24 0x0002d3ab in RTCollector__CleanBetween (h=0x2030008, he=0x2040000, clean=0 '\0') at ../src/runtime/common/RTCollector.m3:1091 > #25 0x0002d1e2 in RTCollector__CleanPage (page=0x2030000) at ../src/runtime/common/RTCollector.m3:1064 > #26 0x0002c8f9 in RTCollector__CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:885 > #27 0x0002c012 in RTCollector__CollectSome () at ../src/runtime/common/RTCollector.m3:720 > #28 0x0002bc54 in RTHeapRep__CollectEnough () at ../src/runtime/common/RTCollector.m3:654 > #29 0x00027fd9 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa04794) at ../src/runtime/common/RTAllocator.m3:365 > #30 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:294 > #31 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:143 > #32 0x00004001 in Main__AApply (cl=0xb054bc) at ../src/Main.m3:130 > #33 0x0004145c in ThreadPThread__RunThread (me=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #34 0x0004118b in ThreadPThread__ThreadBase (param=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #35 0x9713885d in _pthread_start () > #36 0x971386e2 in thread_start () > > > Complete traceback attached below. Again, I modified the program from > tests/thread/src/Main.m3 to read "nOver3 = 3" to get this behavior. > > Mika > > > > > Tony Hosking writes: >> I'm not surprised it runs slowly. There is a lot of contention for = >> allocation of pages to satisfy all the allocation requests. Plus GC I = >> expect. Can you try running with @M3noincremental and see how it goes? = >> Weird about the assertion failure. I think we should be checking for = >> EBUSY. >> >> On Jan 13, 2011, at 12:53 PM, Mika Nystrom wrote: >> >>> Tony, no, the test program=20 >>> =20 >>> (1) printed the assertion failure. >>> =20 >>> (2) did NOT deadlock >>> =20 >>> (3) ran very very slowly (at least some threads did) >>> =20 >>> (4) kept running after printing the assertion failure and exited = >> normally >>> =20 >>> The actual application may have behaved differently but there seems to = >> be >>> enough here to constitute one or two bugs...? >>> =20 >>> My test program seems very effective, by the way. It has had = >> objections >>> to every version you've checked in so far... :-) >>> =20 >>> Mika >>> =20 > > > Thread 10 (process 2811): > #0 0x971784fe in __semwait_signal_nocancel () > #1 0x971783e2 in nanosleep$NOCANCEL$UNIX2003 () > #2 0x971f32aa in usleep$NOCANCEL$UNIX2003 () > #3 0x972149c8 in abort () > #4 0x000457a4 in Cstdlib__abort () at ../src/C/Common/CstdlibC.c:21 > #5 0x0003de10 in RTOS__Crash () at ../src/runtime/POSIX/RTOS.m3:20 > #6 0x00037ea4 in RTProcess__Crash (msg=0x0) at ../src/runtime/common/RTProcess.m3:65 > #7 0x000362ed in RTError__EndError (crash=1 '\001') at ../src/runtime/common/RTError.m3:118 > #8 0x00036005 in RTError__MsgS (file=0x6baa9, line=418, msgA=0x6c748, msgB=0x69890, msgC=0x6c748) at ../src/runtime/common/RTError.m3:40 > #9 0x000366da in RTException__Crash (a=0xb0490a64, raises=0 '\0', rte=0x69740) at ../src/runtime/common/RTException.m3:79 > #10 0x00036432 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:39 > #11 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25 > #12 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85 > #13 0x000364c3 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:47 > #14 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25 > #15 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85 > #16 0x0002655a in RTHooks__ReportFault (module=0x7b200, info=13378) at ../src/runtime/common/RTHooks.m3:111 > #17 0x00033f2f in _m3_fault (arg=13378) at ../src/runtime/common/RTCollector.m3:393 > #18 0x0002afb0 in RTCollector__Move (self=0x213000c, cp=0x2030014) at ../src/runtime/common/RTCollector.m3:418 > #19 0x0002987f in RTHeapMap__Walk (x=0x2030014, pc=0x66068, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:202 > #20 0x0002902a in RTHeapMap__DoWalkRef (t=0x782f4, a=0x2030014, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:62 > #21 0x00029001 in RTHeapMap__DoWalkRef (t=0x786f4, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57 > #22 0x00029001 in RTHeapMap__DoWalkRef (t=0x78808, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57 > #23 0x00028fb4 in RTHeapMap__WalkRef (h=0x2030008, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:47 > #24 0x0002d3ab in RTCollector__CleanBetween (h=0x2030008, he=0x2040000, clean=0 '\0') at ../src/runtime/common/RTCollector.m3:1091 > #25 0x0002d1e2 in RTCollector__CleanPage (page=0x2030000) at ../src/runtime/common/RTCollector.m3:1064 > #26 0x0002c8f9 in RTCollector__CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:885 > #27 0x0002c012 in RTCollector__CollectSome () at ../src/runtime/common/RTCollector.m3:720 > #28 0x0002bc54 in RTHeapRep__CollectEnough () at ../src/runtime/common/RTCollector.m3:654 > #29 0x00027fd9 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa04794) at ../src/runtime/common/RTAllocator.m3:365 > #30 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:294 > #31 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:143 > #32 0x00004001 in Main__AApply (cl=0xb054bc) at ../src/Main.m3:130 > #33 0x0004145c in ThreadPThread__RunThread (me=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #34 0x0004118b in ThreadPThread__ThreadBase (param=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #35 0x9713885d in _pthread_start () > #36 0x971386e2 in thread_start () > > Thread 9 (process 2811): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 > #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 > #4 0x00027fd4 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa046e4) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb040ee90) at ../src/runtime/common/RTAllocator.m3:294 > #6 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb040ee90) at ../src/runtime/common/RTAllocator.m3:143 > #7 0x00004001 in Main__AApply (cl=0xb05484) at ../src/Main.m3:130 > #8 0x0004145c in ThreadPThread__RunThread (me=0xa046a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #9 0x0004118b in ThreadPThread__ThreadBase (param=0xa046a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #10 0x9713885d in _pthread_start () > #11 0x971386e2 in thread_start () > > Thread 8 (process 2811): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 > #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 > #4 0x00027fd4 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa04634) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb038ce90) at ../src/runtime/common/RTAllocator.m3:294 > #6 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb038ce90) at ../src/runtime/common/RTAllocator.m3:143 > #7 0x00004001 in Main__AApply (cl=0xb0544c) at ../src/Main.m3:130 > #8 0x0004145c in ThreadPThread__RunThread (me=0xa045f0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #9 0x0004118b in ThreadPThread__ThreadBase (param=0xa045f0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #10 0x9713885d in _pthread_start () > #11 0x971386e2 in thread_start () > > Thread 7 (process 2811): > #0 0x9716c1d6 in __wait4 () > #1 0x9716c1c9 in waitpid$UNIX2003 () > #2 0x000453e7 in Uexec__waitpid (i=2843, j=0xb030ad8c, k=0) at ../src/unix/Common/Uexec.c:67 > #3 0x00042252 in SchedulerPosix__WaitProcess (pid=2843, status=0xb030ad8c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 > #4 0x00009928 in Process__Wait (p=0xb9000c) at ../src/os/POSIX/ProcessPosixCommon.m3:275 > #5 0x00003e92 in Main__FApply (cl=0xb05414) at ../src/Main.m3:117 > #6 0x0004145c in ThreadPThread__RunThread (me=0xa04590) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #7 0x0004118b in ThreadPThread__ThreadBase (param=0xa04590) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #8 0x9713885d in _pthread_start () > #9 0x971386e2 in thread_start () > > Thread 6 (process 2811): > #0 0x9716c1d6 in __wait4 () > #1 0x9716c1c9 in waitpid$UNIX2003 () > #2 0x000453e7 in Uexec__waitpid (i=2842, j=0xb0288d8c, k=0) at ../src/unix/Common/Uexec.c:67 > #3 0x00042252 in SchedulerPosix__WaitProcess (pid=2842, status=0xb0288d8c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 > #4 0x00009928 in Process__Wait (p=0xc1000c) at ../src/os/POSIX/ProcessPosixCommon.m3:275 > #5 0x00003e92 in Main__FApply (cl=0xb053dc) at ../src/Main.m3:117 > #6 0x0004145c in ThreadPThread__RunThread (me=0xa043a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #7 0x0004118b in ThreadPThread__ThreadBase (param=0xa043a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #8 0x9713885d in _pthread_start () > #9 0x971386e2 in thread_start () > > Thread 5 (process 2811): > #0 0x9716c1d6 in __wait4 () > #1 0x9716c1c9 in waitpid$UNIX2003 () > #2 0x000453e7 in Uexec__waitpid (i=2841, j=0xb0206d8c, k=0) at ../src/unix/Common/Uexec.c:67 > #3 0x00042252 in SchedulerPosix__WaitProcess (pid=2841, status=0xb0206d8c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 > #4 0x00009928 in Process__Wait (p=0xb7000c) at ../src/os/POSIX/ProcessPosixCommon.m3:275 > #5 0x00003e92 in Main__FApply (cl=0xb053a4) at ../src/Main.m3:117 > #6 0x0004145c in ThreadPThread__RunThread (me=0xa042f0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #7 0x0004118b in ThreadPThread__ThreadBase (param=0xa042f0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #8 0x9713885d in _pthread_start () > #9 0x971386e2 in thread_start () > > Thread 4 (process 2811): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 > #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 > #4 0x0003f6da in ThreadPThread__InitMutex (m=0x2120010, root=0x212000c, Clean=0x3f5aa) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #5 0x0003f783 in ThreadPThread__LockMutex (m=0x212000c) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #6 0x0000a323 in Rd__GetChar (rd=0x212000c) at ../src/rw/Rd.m3:33 > #7 0x00003c2e in Main__RApply (cl=0xb0536c) at ../src/Main.m3:95 > #8 0x0004145c in ThreadPThread__RunThread (me=0xa04240) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #9 0x0004118b in ThreadPThread__ThreadBase (param=0xa04240) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #10 0x9713885d in _pthread_start () > #11 0x971386e2 in thread_start () > > Thread 3 (process 2811): > #0 ThreadPThread__LockMutex (m=0xd0000c) at ../src/thread/PTHREAD/ThreadPThread.m3:122 > #1 0x0000a323 in Rd__GetChar (rd=0xd0000c) at ../src/rw/Rd.m3:33 > #2 0x00003c2e in Main__RApply (cl=0xb05334) at ../src/Main.m3:95 > #3 0x0004145c in ThreadPThread__RunThread (me=0xa04190) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #4 0x0004118b in ThreadPThread__ThreadBase (param=0xa04190) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #5 0x9713885d in _pthread_start () > #6 0x971386e2 in thread_start () > > Thread 2 (process 2811): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 > #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 > #4 0x00027fd4 in RTAllocator__AllocTraced (dataSize=12, dataAlignment=4, thread=0xa040a4) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x00027387 in RTAllocator__GetTracedObj (def=0x77654) at ../src/runtime/common/RTAllocator.m3:224 > #6 0x00026e20 in RTHooks__AllocateTracedObj (defn=0x77654) at ../src/runtime/common/RTAllocator.m3:122 > #7 0x00005239 in FilePosix__New (fd=5, ds=1) at ../src/os/POSIX/FilePosix.m3:63 > #8 0x000067df in FS__OpenFileReadonly (pn=0x64324) at ../src/os/POSIX/FSPosix.m3:182 > #9 0x000103e8 in FileRd__Open (p=0x64324) at ../src/rw/FileRd.m3:16 > #10 0x00003b9b in Main__RApply (cl=0xb052fc) at ../src/Main.m3:92 > #11 0x0004145c in ThreadPThread__RunThread (me=0xa04060) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x0004118b in ThreadPThread__ThreadBase (param=0xa04060) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > Thread 1 (process 2811): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x00044c7c in ThreadPThread__pthread_cond_timedwait (cond=0xa03ca0, mutex=0xa03c70, m3timeout=1295014649.3298399) at ../src/thread/PTHREAD/ThreadPThreadC.c:430 > #4 0x00041ca3 in ThreadPThread__XPause (self=0xa03c10, n=10, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x00041d73 in Thread__Pause (n=10) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000046e2 in Main_M3 (mode=1) at ../src/Main.m3:214 > #7 0x00035549 in RTLinker__RunMainBody (m=0x76920) at ../src/runtime/common/RTLinker.m3:406 > #8 0x000349a5 in RTLinker__AddUnitI (m=0x76920) at ../src/runtime/common/RTLinker.m3:113 > #9 0x00034a26 in RTLinker__AddUnit (b=0x455c) at ../src/runtime/common/RTLinker.m3:122 > #10 0x000039fc in main (argc=1, argv=0xbffff5cc, envp=0xbffff5d4) at _m3main.c:16 From dabenavidesd at yahoo.es Sun Jan 16 03:27:40 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sun, 16 Jan 2011 02:27:40 +0000 (GMT) Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <20110116011827.DD31F2474003@birch.elegosoft.com> Message-ID: <19786.44534.qm@web29702.mail.ird.yahoo.com> Hi all: Yes, sure just that we need also for range checks and type checks, I mean, I guess the problem are not the client programs by itself if so why do you think they crashed unsafely? The problem is to test the implementation more deeply, perhaps Tony is the best man to do that part of the job I think. However unsafe code there is guaranteed by others to be right, I tend to feel that in those cases a more detailed test compliance is needed, I mean, we don't guarantee every platform behaves exactly as we think of it. Perhaps Jay could be indicated for that part of the job, I think. Thanks in advance --- El s?b, 15/1/11, Mika Nystrom escribi?: > De: Mika Nystrom > Asunto: [M3commit] CVS Update: cm3 > Para: m3commit at elegosoft.com > Fecha: s?bado, 15 de enero, 2011 21:18 > CVSROOT: /usr/cvs > Changes by: mika at birch. > 11/01/16 02:18:27 > > Modified files: > cm3/m3-libs/m3core/tests/thread/src/: > Main.m3 > > Log message: > give the user something to look at while > the program runs (also shows off deadlock well) > > From dabenavidesd at yahoo.es Sun Jan 16 04:36:23 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sun, 16 Jan 2011 03:36:23 +0000 (GMT) Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <19786.44534.qm@web29702.mail.ird.yahoo.com> Message-ID: <878606.72309.qm@web29713.mail.ird.yahoo.com> Hi all: The best source of a check for both cases is a test set for Modula-3 vs C threading programs. I mean what source of it might come to crash if we allow just normal range and type checking by itself on the Modula-3 programs, just C part that we don't have, I assume the Modula-3 parts touching it are thread safe as it's the collector, if a program is to crash badly, it should crash in the Modula-3 version and be unsafely crashed at a certain level on C in some cases (sort of the exceptional cases), I'm more interested that it doesn't crash on both sides, sort of being a good M3 behaved guy, that is, what it would mean is we do have a problem on the threading library implementation (not tested, unmarked exception, or uncaught ones?), given platforms behave well, that sometimes I think they do, but we don't know, that's why we need test some assertions if so (not generate the code if you want to run assembly smoothly sure). Perhaps the best approach here is just to test it right goes into C mode and then is just part of the safe modules to guard type check the bad inputs or outputs ISTYPE() is a good way of doing it if you may allow me say. Thanks in advance. --- El s?b, 15/1/11, Daniel Alejandro Benavides D. escribi?: > De: Daniel Alejandro Benavides D. > Asunto: Re: [M3devel] [M3commit] CVS Update: cm3 > Para: m3commit at elegosoft.com, mika at elego.de, m3devel at elegosoft.com > Fecha: s?bado, 15 de enero, 2011 21:27 > Hi all: > Yes, sure just that we need also for range checks and type > checks, I mean, I guess the problem are not the client > programs by itself if so why do you think they crashed > unsafely? > The problem is to test the implementation more deeply, > perhaps Tony is the best man to do that part of the job I > think. > However unsafe code there is guaranteed by others to be > right, I tend to feel that in those cases a more detailed > test compliance is needed, I mean, we don't guarantee every > platform behaves exactly as we think of it. Perhaps Jay > could be indicated for that part of the job, I think. > Thanks in advance > > --- El s?b, 15/1/11, Mika Nystrom > escribi?: > > > De: Mika Nystrom > > Asunto: [M3commit] CVS Update: cm3 > > Para: m3commit at elegosoft.com > > Fecha: s?bado, 15 de enero, 2011 21:18 > > CVSROOT: /usr/cvs > > Changes by: > mika at birch. > > 11/01/16 02:18:27 > > > > Modified files: > > > cm3/m3-libs/m3core/tests/thread/src/: > > Main.m3 > > > > Log message: > > give the user something to > look at while > > the program runs (also shows off deadlock well) > > > > > > > > From mark at wickensonline.co.uk Mon Jan 17 01:01:36 2011 From: mark at wickensonline.co.uk (Mark Wickens) Date: Mon, 17 Jan 2011 00:01:36 +0000 Subject: [M3devel] Just to prove I've been paying attention for a long time Message-ID: <4D3386E0.20609@wickensonline.co.uk> Thought this might bring a little nostalgia for some - it certainly did for me! Although I only dabbled in Modula-3 I did listen in to the mailing list of the time... From daemon Tue Nov 14 01:36:05 1995 Status: RO X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil] ["2877" "Mon" "13" "November" "1995" "11:58:44" "-0800" "heydon at pa.dec.com" "heydon at pa.dec.com" nil "89" "Re: Modula3 Postcard under Linux Slackware 3.0" "^From:" nil nil "11" nil nil (number " " mark " heydon at pa.dec.com Nov 13 89/2877 " thread-indent "\"Re: Modula3 Postcard under Linux Slackware 3.0\"\n") nil] nil) Received: from jess.luton.ac.uk by ellen.luton.ac.uk; (5.65v3.2/1.1.8.2/09Nov95-0144PM) id AA01562; Tue, 14 Nov 1995 01:36:03 GMT Received: from mail1.digital.com (mail1.digital.com [204.123.2.50]) by jess.luton.ac.uk (8.6.12/8.6.9) with SMTP id BAA01082 for ; Tue, 14 Nov 1995 01:34:41 GMT Received: from src-mail.pa.dec.com by mail1.digital.com; (5.65 EXP 4/12/95 for V3.2/1.0/WV) id AA05303; Mon, 13 Nov 1995 17:20:40 -0800 Received: by src-mail.pa.dec.com; id AA27318; Mon, 13 Nov 95 17:19:14 -0800 Received: by src-news.pa.dec.com; id AA07755; Mon, 13 Nov 95 17:19:13 -0800 Received: by src-news.pa.dec.com; id AA07750; Mon, 13 Nov 95 17:19:12 -0800 Newsgroups: comp.lang.modula3 Path: src.dec.com!heydon Message-Id: <9511131958.AA03371 at juniper.pa.dec.com> In-Reply-To: m3-request at src.dec.com Distribution: world X-Received: by juniper.pa.dec.com; id AA03371; Mon, 13 Nov 1995 11:58:45 -0800 X-Received: by src-news.pa.dec.com; id AA19102; Mon, 13 Nov 95 11:58:46 -0800 X-Mts: smtp Lines: 89 From: heydon at pa.dec.com To: omalley at ics.uci.edu Cc: comp.lang.modula3.usenet at pa.dec.com Subject: Re: Modula3 Postcard under Linux Slackware 3.0 Date: Mon, 13 Nov 95 11:58:44 -0800 Owen, You asked: > However, it is dying in linking Postcard because it can't find > getdirentries. I'm not surprised that the linker can't find it, > because I can't find it either. (There is an extern definition in the > header file, but it doesn't seem to be in any of the libraries.) Am I > missing it somewhere? Is there a newer version of libc that actually > has getdirentries? We've fixed the "getdirentries" problem in the sources at SRC, so it should be included in the next release. In the meantime, you can fix the problem yourself by removing the following declarations from the file named "src/OSUtils.m3" in the "postcard" package: FROM Utypes IMPORT u_short, ino_t; CONST MaxDirNameLen = 64; TYPE DirEntry = RECORD (* directory types somehow missing from Unix.i3 *) d_ino: ino_t; d_reclen: u_short; d_namelen: u_short; d_name: ARRAY [0..MaxDirNameLen-1] OF CHAR; END; <*UNUSED*> PROCEDURE OldEnumerate (path: Text.T): TextList.T RAISES {FileError} = VAR head: TextList.T := NIL; tail, this: TextList.T; t: TEXT; length: int; buffer: ARRAY [0..1023] OF CHAR; de: UNTRACED REF DirEntry; pbase: long; i: INTEGER; p := ConvertPath(path); f := Unix.open(p, Unix.O_RDONLY, 0); BEGIN IF f < 0 THEN RAISE FileError(ErrorMessage(Uerror.errno)); END; TRY LOOP length := Unix.getdirentries( f, ADR(buffer), BYTESIZE(buffer), pbase); IF length < 0 THEN RAISE FileError(ErrorMessage(Uerror.errno)); END; IF length = 0 THEN EXIT; END; i := 0; LOOP de := LOOPHOLE(ADR(buffer[i]), UNTRACED REF DirEntry); IF (de^.d_ino # 0) THEN t := M3toC.CopyStoT (ADR(de^.d_name)); IF NOT (Text.Equal (t, ".") OR Text.Equal (t, "..")) THEN this := TextList.Cons(t, NIL); IF head = NIL THEN head := this; ELSE tail.tail := this; END; tail := this; END; END; INC(i, de^.d_reclen); IF i >= length THEN EXIT; END; END; END; FINALLY EVAL Unix.close(f); END; RETURN head END OldEnumerate; The call to "getdirentries" is in the "OldEnumerate" procedure, but that procedure is never called. The other IMPORT, CONST, and TYPE declarations are only used by "OldEnumerate", so they should be removed to keep the compiler from issuing a warning. Let me know if you apply this patch and still have any problems. - Allan -------------------------------------------------------------------- Allan Heydon Digital Equipment Corporation heydon at pa.dec.com Systems Research Center (415) 853-2142 130 Lytton Avenue (415) 853-2104 (FAX) Palo Alto, CA 94301 From mika at async.caltech.edu Mon Jan 17 18:44:43 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Mon, 17 Jan 2011 09:44:43 -0800 Subject: [M3devel] JSON Message-ID: <20110117174443.B8E3A1A207A@async.async.caltech.edu> Hello m3devel, Does anyone out there have a JSON parser/generator for Modula-3? Mika From dabenavidesd at yahoo.es Tue Jan 18 03:08:14 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Tue, 18 Jan 2011 02:08:14 +0000 (GMT) Subject: [M3devel] JSON In-Reply-To: <20110117174443.B8E3A1A207A@async.async.caltech.edu> Message-ID: <957736.88198.qm@web29718.mail.ird.yahoo.com> Hi all: I think I saw when doing some research on JavaScript, that there was sort or something like an implementation tool from Scheme to JavaScript compiler, however I don't know about exactly what about that. I think it was FOSS, just that didn't fill my purposes (type inference) at that time. Perhaps you can interface easily with JavaScript from the Scheme interpreter if it was written in Scheme (the JavaScript generator I'm talking about). However I must tell you, the next big change in JavaScript is comprehensive, so perhaps you want to look at literature for that. Hope it helps. If not, just don't know what else could be useful than that, thanks in advance --- El lun, 17/1/11, Mika Nystrom escribi?: > De: Mika Nystrom > Asunto: [M3devel] JSON > Para: m3devel at elegosoft.com > Fecha: lunes, 17 de enero, 2011 12:44 > Hello m3devel, > > Does anyone out there have a JSON parser/generator for > Modula-3? > > Mika > From darko at darko.org Tue Jan 18 04:51:43 2011 From: darko at darko.org (Darko) Date: Mon, 17 Jan 2011 19:51:43 -0800 Subject: [M3devel] JSON In-Reply-To: <20110117174443.B8E3A1A207A@async.async.caltech.edu> References: <20110117174443.B8E3A1A207A@async.async.caltech.edu> Message-ID: I have a little programmable expression parser which will take anything you can express in operators (prefix, infix, postfix), function calls and "groupfix" operators, which are basically a comma seperated list between two symbols. Do you have a grammar? On 17/01/2011, at 9:44 AM, Mika Nystrom wrote: > Hello m3devel, > > Does anyone out there have a JSON parser/generator for Modula-3? > > Mika From lemming at henning-thielemann.de Thu Jan 20 13:23:39 2011 From: lemming at henning-thielemann.de (Henning Thielemann) Date: Thu, 20 Jan 2011 13:23:39 +0100 Subject: [M3devel] operator overloading? In-Reply-To: References: Message-ID: <4D38294B.9080705@henning-thielemann.de> Jay K wrote: > Is it really so difficult to add operator overloading to the language? > > From a user's point of view, I know it is very useful in certain > situations. I have a dejavu. This must have been discussed here several times. I remember Rodney Bates' coining "syntactic heroin". "Operator overloading" is actually two extensions: 1. Allowing to write functions in an infix way, preferably using symbols instead of letters. 2. Allow to reuse the same function name depending on context. The first issue is a syntactic one, but a hard one. For infix operators you must define associativity and precedence. If you define it within a module, the parser must adapt to the precedence rules, as it parses them. Alternatively you could define precedence in different syntax descriptions files using a custom language - also bad because you need a new language and management for a new kind of source file. You can no longer just run m3pp from within your editor on a draft of your program, because formatting also depends on precedences. You rather want expressions formatted as long_expresssion + other_long_expression * last_long_expression instead of long_expresssion + other_long_expression * last_long_expression In Haskell precedences are defined by numbers from 0 to 9 and you can declare left-, right- and no associativity. That does not scale well. In PROLOG you have numeric precedences in the range 1-1000 or so, and a little more fine grained associativity rules. In Agda you have numeric precedences also in a quite large range (1-1000 or so) and mixfix notation, that is, a function with three arguments can be written according to a pattern like (if _ then _ else _). I still think that the most natural way to define precedences is by relations like "'-' shall bind as much as '+', whereas '*' should bind stronger than '+'". Those numeric precedences are to maintain, just like line numbers in old BASICs. The second issue is the resolution of ambiguous names. Modula-3 has no support for this, currently. Haskell solves this cleanly using 'type classes', that despite the name do not have much in common with object-oriented classes. But these type classes are based on Hindley-Milner type system that allows e.g. to assert that two operands have the same type, another thing that Modula-3 does not have and that cannot easily be added. In short, I think both infix or mixfix notation and resolution of ambiguous names require fundamental changes to Modula-3. If they are essential for you, it might be easier for you to use a language that supports them well. -- Mit freundlichen Gruessen Henning Thielemann Viele Gruesse Henning Martin-Luther-Universitaet Halle-Wittenberg, Institut fuer Informatik Tel. +49 - 345 - 55 24773 Fax +49 - 345 - 55 27333 From dragisha at m3w.org Thu Jan 20 14:34:02 2011 From: dragisha at m3w.org (=?utf-8?Q?Dragi=C5=A1a_Duri=C4=87?=) Date: Thu, 20 Jan 2011 14:34:02 +0100 Subject: [M3devel] operator overloading? [no, please!] In-Reply-To: <4D38294B.9080705@henning-thielemann.de> References: <4D38294B.9080705@henning-thielemann.de> Message-ID: <16D538BA-8279-4326-B37D-420F8DEC29FE@m3w.org> I hope this subject will die, and fast :). With operator overloading it is not Modula-3 anymore. Not nearly. I have scripting language, developed in-house and influenced by Modula-3 and a need for some more dynamic features, need which arises from time to time. It is extensible extension language, parsed to AST and interpreted from there. When I get time, I'll generate something object from it, but it works as it is. One of my plans is to extend it to used ObjectiveC objects and runtime... All outside of Modula-3 but near enough to be fully useable. Please don't kill Modula-3! On Jan 20, 2011, at 1:23 PM, Henning Thielemann wrote: ... From schlepptop at henning-thielemann.de Thu Jan 20 21:30:17 2011 From: schlepptop at henning-thielemann.de (Henning Thielemann) Date: Thu, 20 Jan 2011 21:30:17 +0100 Subject: [M3devel] operator overloading? In-Reply-To: References: <08B4C568-4EF9-40A5-9144-606D3A5CF1E0@cs.purdue.edu> <20101121192734.DB4761A208C@async.async.caltech.edu> Message-ID: <4D389B59.20009@henning-thielemann.de> Tony Hosking schrieb: > > > On Nov 21, 2010, at 3:11 PM, Jay K wrote: > >> > I'm now starting to wish that we had left LONGINT out, >> >> >> Just now? :) >> (This is another reason I'm somewhat open to tediously using >> Target.Int in frontend, >> in case we do lose LONGINT.) > > What it really suggests is that we need a proper infinite precision > integer library. Do we have one somewhere already? I have coded BigInteger in arithmetic package. It is not tuned in any way (no Fourier transform and such tricks) and may contain bugs. You may better call GNU multi precision library GMP. From dragisha at m3w.org Thu Jan 20 22:46:13 2011 From: dragisha at m3w.org (=?utf-8?Q?Dragi=C5=A1a_Duri=C4=87?=) Date: Thu, 20 Jan 2011 22:46:13 +0100 Subject: [M3devel] operator overloading? In-Reply-To: <4D389B59.20009@henning-thielemann.de> References: <08B4C568-4EF9-40A5-9144-606D3A5CF1E0@cs.purdue.edu> <20101121192734.DB4761A208C@async.async.caltech.edu> <4D389B59.20009@henning-thielemann.de> Message-ID: openssl library implements arbitrary precision integers, and I am using it on Windows, Linux and OSX. My binding is not complete but is useful, and I can submit it to cm3 for use/extending/... dd On Jan 20, 2011, at 9:30 PM, Henning Thielemann wrote: > Tony Hosking schrieb: >> >> >> On Nov 21, 2010, at 3:11 PM, Jay K wrote: >> >>>> I'm now starting to wish that we had left LONGINT out, >>> >>> >>> Just now? :) >>> (This is another reason I'm somewhat open to tediously using >>> Target.Int in frontend, >>> in case we do lose LONGINT.) >> >> What it really suggests is that we need a proper infinite precision >> integer library. Do we have one somewhere already? > > I have coded BigInteger in arithmetic package. It is not tuned in any > way (no Fourier transform and such tricks) and may contain bugs. You may > better call GNU multi precision library GMP. > From dabenavidesd at yahoo.es Fri Jan 21 18:40:54 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Fri, 21 Jan 2011 17:40:54 +0000 (GMT) Subject: [M3devel] operator overloading? In-Reply-To: Message-ID: <982895.94898.qm@web29716.mail.ird.yahoo.com> Hi all: I think besides is a needed feature and is in the Green Book to have arithmetic overflow. The longer I see this, I came to see that we would need to simulate each arithmetic overflow case to see whether is ALU or FPU model we have that. This requires simulation overhead in the compiler but I guess the option would be have this infrastructure for source language compliance, thus allowing not compliant hardware to solve this issues with something like this, see: http://nvl.nist.gov/pub/nistpubs/jres/101/2/j2anut.pdf In any case there might not be too much delay for architectures such as VLSI. Thanks in advance --- El jue, 20/1/11, Dragi?a Duri? escribi?: > De: Dragi?a Duri? > Asunto: Re: [M3devel] operator overloading? > Para: "Henning Thielemann" > CC: "m3devel" > Fecha: jueves, 20 de enero, 2011 16:46 > openssl library implements arbitrary > precision integers, and I am using it on Windows, Linux and > OSX. My binding is not complete but is useful, and I can > submit it to cm3 for use/extending/... > > dd > > On Jan 20, 2011, at 9:30 PM, Henning Thielemann wrote: > > > Tony Hosking schrieb: > >> > >> > >> On Nov 21, 2010, at 3:11 PM, Jay K wrote: > >> > >>>> I'm now starting to wish that we had left > LONGINT out, > >>> > >>> > >>> Just now? :) > >>> (This is another reason I'm somewhat open to > tediously using > >>> Target.Int in frontend, > >>> in case we do lose LONGINT.) > >> > >> What it really suggests is that we need a proper > infinite precision > >> integer library. Do we have one somewhere > already? > > > > I have coded BigInteger in arithmetic package. It is > not tuned in any > > way (no Fourier transform and such tricks) and may > contain bugs. You may > > better call GNU multi precision library GMP. > > > > From dabenavidesd at yahoo.es Fri Jan 21 20:54:05 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Fri, 21 Jan 2011 19:54:05 +0000 (GMT) Subject: [M3devel] operator overloading? In-Reply-To: <982895.94898.qm@web29716.mail.ird.yahoo.com> Message-ID: <989777.56540.qm@web29708.mail.ird.yahoo.com> Hi all: there are some tools already to do that kind of computing like in the Modula-3* (see: http://books.google.com/books?id=D67qFdGbrw0C&lpg=PA276&ots=-0xGnTICFX&dq=vlsi%20modula3&pg=PA276#v=onepage&q&f=false ), Model Language (see: http://www.isys.uni-klu.ac.at/PDF/1996-0020-StBo.pdf ) or the Modula-3D (see: ftp://ftp.cs.caltech.edu/tr/cs-tr-93-15.ps.Z ), indeed for that kind of problems too, which address the source level language part automatically, semi-automatically, or syntactically-oriented correspondingly, they could be managed as like language expression extensions or addressed as special language pragmas, so can be run on any kind or types of machines, like without FPU see Modula-3D report, etc. Besides that there is a source compatible framework which allows to detect such type of programming more comprehensibly and automatically if so that could be extended too, click on Look inside on: http://www.springerlink.com/content/2k65413251m333rp/ We do have the distributed framework CM3-IDE to offer that additional kind service if so Thanks in advance --- El vie, 21/1/11, Daniel Alejandro Benavides D. escribi?: > De: Daniel Alejandro Benavides D. > Asunto: Re: [M3devel] operator overloading? > Para: "Henning Thielemann" , "Dragi?a Duri?" > CC: "m3devel" > Fecha: viernes, 21 de enero, 2011 12:40 > Hi all: > I think besides is a needed feature and is in the Green > Book to have arithmetic overflow. > The longer I see this, I came to see that we would need to > simulate each arithmetic overflow case to see whether is ALU > or FPU model we have that. This requires simulation overhead > in the compiler but I guess the option would be have this > infrastructure for source language compliance, thus allowing > not compliant hardware to solve this issues with something > like this, see: > http://nvl.nist.gov/pub/nistpubs/jres/101/2/j2anut.pdf > In any case there might not be too much delay for > architectures such as VLSI. > Thanks in advance > > --- El jue, 20/1/11, Dragi?a Duri? > escribi?: > > > De: Dragi?a Duri? > > Asunto: Re: [M3devel] operator overloading? > > Para: "Henning Thielemann" > > CC: "m3devel" > > Fecha: jueves, 20 de enero, 2011 16:46 > > openssl library implements arbitrary > > precision integers, and I am using it on Windows, > Linux and > > OSX. My binding is not complete but is useful, and I > can > > submit it to cm3 for use/extending/... > > > > dd > > > > On Jan 20, 2011, at 9:30 PM, Henning Thielemann > wrote: > > > > > Tony Hosking schrieb: > > >> > > >> > > >> On Nov 21, 2010, at 3:11 PM, Jay K wrote: > > >> > > >>>> I'm now starting to wish that we had > left > > LONGINT out, > > >>> > > >>> > > >>> Just now? :) > > >>> (This is another reason I'm somewhat open > to > > tediously using > > >>> Target.Int in frontend, > > >>> in case we do lose LONGINT.) > > >> > > >> What it really suggests is that we need a > proper > > infinite precision > > >> integer library. Do we have one > somewhere > > already? > > > > > > I have coded BigInteger in arithmetic package. It > is > > not tuned in any > > > way (no Fourier transform and such tricks) and > may > > contain bugs. You may > > > better call GNU multi precision library GMP. > > > > > > > > > > > From dabenavidesd at yahoo.es Sat Jan 22 02:27:11 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sat, 22 Jan 2011 01:27:11 +0000 (GMT) Subject: [M3devel] operator overloading? In-Reply-To: <989777.56540.qm@web29708.mail.ird.yahoo.com> Message-ID: <302227.69373.qm@web29711.mail.ird.yahoo.com> Hi all: I think the basic building blocks are ready, just that need assembling. One must see however how it must be the model for each non-compliant hardware platform, the Modula-3 system works in such advanced simulations fortunately, like for cache mechanisms and computer models: http://www.liacs.nl/CS/HPC/apparc-deliverables/PME4a.html and http://www.liacs.nl/CS/HPC/apparc-deliverables/HwA6.html however are not parallel per-se but a later version was to be built to do that. Also to note that there is some work on GPGPU.org, although its in initial state they are pushing for getting the platform running accelerated in it. Thank in advance --- El vie, 21/1/11, Daniel Alejandro Benavides D. escribi?: > De: Daniel Alejandro Benavides D. > Asunto: Re: [M3devel] operator overloading? > Para: "Henning Thielemann" , "Dragi?a Duri?" > CC: "m3devel" > Fecha: viernes, 21 de enero, 2011 14:54 > Hi all: > there are some tools already to do that kind of computing > like in the Modula-3* (see: http://books.google.com/books?id=D67qFdGbrw0C&lpg=PA276&ots=-0xGnTICFX&dq=vlsi%20modula3&pg=PA276#v=onepage&q&f=false > ), Model Language (see: http://www.isys.uni-klu.ac.at/PDF/1996-0020-StBo.pdf ) > or the Modula-3D (see: ftp://ftp.cs.caltech.edu/tr/cs-tr-93-15.ps.Z > ), indeed for that kind of problems too, which address the > source level language part automatically, > semi-automatically, or syntactically-oriented > correspondingly, they could be managed as like language > expression extensions or addressed as special language > pragmas, so can be run on any kind or types of machines, > like without FPU see Modula-3D report, etc. > Besides that there is a source compatible framework which > allows to detect such type of programming more > comprehensibly and automatically if so that could be > extended too, click on Look inside on: > http://www.springerlink.com/content/2k65413251m333rp/ > We do have the distributed framework CM3-IDE to offer that > additional kind service if so > > Thanks in advance > > --- El vie, 21/1/11, Daniel Alejandro Benavides D. > escribi?: > > > De: Daniel Alejandro Benavides D. > > Asunto: Re: [M3devel] operator overloading? > > Para: "Henning Thielemann" , > "Dragi?a Duri?" > > CC: "m3devel" > > Fecha: viernes, 21 de enero, 2011 12:40 > > Hi all: > > I think besides is a needed feature and is in the > Green > > Book to have arithmetic overflow. > > The longer I see this, I came to see that we would > need to > > simulate each arithmetic overflow case to see whether > is ALU > > or FPU model we have that. This requires simulation > overhead > > in the compiler but I guess the option would be have > this > > infrastructure for source language compliance, thus > allowing > > not compliant hardware to solve this issues with > something > > like this, see: > > http://nvl.nist.gov/pub/nistpubs/jres/101/2/j2anut.pdf > > In any case there might not be too much delay for > > architectures such as VLSI. > > Thanks in advance > > > > --- El jue, 20/1/11, Dragi?a Duri? > > escribi?: > > > > > De: Dragi?a Duri? > > > Asunto: Re: [M3devel] operator overloading? > > > Para: "Henning Thielemann" > > > CC: "m3devel" > > > Fecha: jueves, 20 de enero, 2011 16:46 > > > openssl library implements arbitrary > > > precision integers, and I am using it on > Windows, > > Linux and > > > OSX. My binding is not complete but is useful, > and I > > can > > > submit it to cm3 for use/extending/... > > > > > > dd > > > > > > On Jan 20, 2011, at 9:30 PM, Henning Thielemann > > wrote: > > > > > > > Tony Hosking schrieb: > > > >> > > > >> > > > >> On Nov 21, 2010, at 3:11 PM, Jay K > wrote: > > > >> > > > >>>> I'm now starting to wish that we > had > > left > > > LONGINT out, > > > >>> > > > >>> > > > >>> Just now? :) > > > >>> (This is another reason I'm somewhat > open > > to > > > tediously using > > > >>> Target.Int in frontend, > > > >>> in case we do lose LONGINT.) > > > >> > > > >> What it really suggests is that we need > a > > proper > > > infinite precision > > > >> integer library. Do we have one > > somewhere > > > already? > > > > > > > > I have coded BigInteger in arithmetic > package. It > > is > > > not tuned in any > > > > way (no Fourier transform and such tricks) > and > > may > > > contain bugs. You may > > > > better call GNU multi precision library > GMP. > > > > > > > > > > > > > > > > > > > > > > From mika at async.caltech.edu Sat Jan 22 03:15:03 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Fri, 21 Jan 2011 18:15:03 -0800 Subject: [M3devel] compile problem on LINUXLIBC6 Message-ID: <20110122021503.615621A205B@async.async.caltech.edu> On the following system: Linux ballista 2.6.34.7-0.5-desktop #1 SMP PREEMPT 2010-10-25 08:40:12 +0200 i686 i686 i386 GNU/Linux gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/i586-suse-linux/4.5/lto-wrapper Target: i586-suse-linux Configured with: ../configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib --libexecdir=/usr/lib --enable-languages=c,c++,objc,fortran,obj-c++,java,ada --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.5 --enable-ssp --disable-libssp --disable-plugin --with-bugurl=http://bugs.opensuse.org/ --with-pkgversion='SUSE Linux' --disable-libgcj --disable-libmudflap --with-slibdir=/lib --with-system-zlib --enable-__cxa_atexit --enable-libstdcxx-allocator=new --disable-libstdcxx-pch --enable-version-specific-runtime-libs --program-suffix=-4.5 --enable-linux-futex --without-system-libunwind --enable-gold --with-plugin-ld=/usr/bin/gold --with-arch-32=i586 --with-tune=generic --build=i586-suse-linux Thread model: posix gcc version 4.5.0 20100604 [gcc-4_5-branch revision 160292] (SUSE Linux) Installing 5.8.6 from the web and then attempting to compile the CVS head using "upgrade.py" leads to the following: echo ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o ./sha1.o ./alloca.o ./argv.o ./choose-temp.o ./concat.o ./cp-demint.o ./crc32.o ./dyn-string.o ./fdmatch.o ./fibheap.o ./filename_cmp.o ./floatformat.o ./fnmatch.o ./fopen_unlocked.o ./getopt.o ./getopt1.o ./getpwd.o ./getruntime.o ./hashtab.o ./hex.o ./lbasename.o ./lrealpath.o ./make-relative-prefix.o ./make-temp-file.o ./objalloc.o ./obstack.o ./partition.o ./pexecute.o ./physmem.o ./pex-common.o ./pex-one.o ./pex-unix.o ./safe-ctype.o ./sort.o ./spaces.o ./splay-tree.o ./strerror.o ./strsignal.o ./unlink-if-ordinary.o ./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o ./xstrerror.o ./xstrndup.o > required-list make[2]: Entering directory `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' make[1]: Leaving directory `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty' cd . && cd libcpp && make MAKE=make AUTOCONF=: AUTOMAKE=: LEX='touch lex.yy.c' MAKEINFO=: libcpp.a cd . && cd libcpp && make MAKE=make AUTOCONF=: AUTOMAKE=: LEX='touch lex.yy.c' MAKEINFO=: libcpp.a g++ -I../../gcc-4.5/libcpp -I. -I../../gcc-4.5/libcpp/../include -I../../gcc-4.5/libcpp/include -g -O2 -W -Wall -Wwrite-strings -Wmissing-format-attribute -pedantic -Wno-long-long -I../../gcc-4.5/libcpp -I. -I../../gcc-4.5/libcpp/../include -I../../gcc-4.5/libcpp/include -c -o charset.o -MT charset.o -MMD -MP -MF .deps/charset.Tpo ../../gcc-4.5/libcpp/charset.c In file included from ../../gcc-4.5/libcpp/system.h:335:0, from ../../gcc-4.5/libcpp/charset.c:24: ../../gcc-4.5/libcpp/../include/libiberty.h:106:36: error: new declaration ? /usr/include/string.h:601:28: error: ambiguates old declaration ? make: *** [charset.o] Error 1 "/home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile", line 273: quake runtime error: exit 2: cd . && cd libcpp && make MAKE=make AUTOCONF=: AUTOMAKE=: LEX='touch lex.yy.c' MAKEINFO=: libcpp.a --procedure-- -line- -file--- exec -- m3cc_Run 273 /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile include_dir 518 /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile 5 /home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/m3make.args Fatal Error: package build failed *** execution of [, ] failed *** It looks like a clash between a declaration in libiberty.h and one in string.h Mika From dabenavidesd at yahoo.es Sat Jan 22 16:48:59 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sat, 22 Jan 2011 15:48:59 +0000 (GMT) Subject: [M3devel] compile problem on LINUXLIBC6 In-Reply-To: <20110122021503.615621A205B@async.async.caltech.edu> Message-ID: <957815.3691.qm@web29701.mail.ird.yahoo.com> Hi all: I wonder why it's making libcpp, does it some tool use it? just for c this days? anyway it would be good if you can test it just with another compiler version, perhaps the clash is product of incompability of version 4.50, 4.5.1 -><- perhaps you can try to build the gcc trunk to see how it builds, if it builds then you have a problem of compability in your gcc headers, This is why is this C code is sort of not portable, you don't know when you get a compiler error after thinking it is OK. Then if so, try to use gcc trunk instead to build in your cm3 building. Thanks in advance --- El vie, 21/1/11, Mika Nystrom escribi?: > De: Mika Nystrom > Asunto: [M3devel] compile problem on LINUXLIBC6 > Para: m3devel at elegosoft.com > Fecha: viernes, 21 de enero, 2011 21:15 > > On the following system: > > Linux ballista 2.6.34.7-0.5-desktop #1 SMP PREEMPT > 2010-10-25 08:40:12 +0200 i686 i686 i386 GNU/Linux > > gcc -v > Using built-in specs. > COLLECT_GCC=gcc > COLLECT_LTO_WRAPPER=/usr/lib/gcc/i586-suse-linux/4.5/lto-wrapper > Target: i586-suse-linux > Configured with: ../configure --prefix=/usr > --infodir=/usr/share/info --mandir=/usr/share/man > --libdir=/usr/lib --libexecdir=/usr/lib > --enable-languages=c,c++,objc,fortran,obj-c++,java,ada > --enable-checking=release > --with-gxx-include-dir=/usr/include/c++/4.5 --enable-ssp > --disable-libssp --disable-plugin --with-bugurl=http://bugs.opensuse.org/ --with-pkgversion='SUSE > Linux' --disable-libgcj --disable-libmudflap > --with-slibdir=/lib --with-system-zlib --enable-__cxa_atexit > --enable-libstdcxx-allocator=new --disable-libstdcxx-pch > --enable-version-specific-runtime-libs --program-suffix=-4.5 > --enable-linux-futex --without-system-libunwind > --enable-gold --with-plugin-ld=/usr/bin/gold > --with-arch-32=i586 --with-tune=generic > --build=i586-suse-linux > Thread model: posix > gcc version 4.5.0 20100604 [gcc-4_5-branch revision 160292] > (SUSE Linux) > > Installing 5.8.6 from the web and then attempting to > compile the CVS head using "upgrade.py" leads > to the following: > > echo ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o > ./sha1.o ./alloca.o ./argv.o ./choose-temp.o ./concat.o > ./cp-demint.o ./crc32.o ./dyn-string.o ./fdmatch.o > ./fibheap.o ./filename_cmp.o ./floatformat.o ./fnmatch.o > ./fopen_unlocked.o ./getopt.o ./getopt1.o ./getpwd.o > ./getruntime.o ./hashtab.o ./hex.o ./lbasename.o > ./lrealpath.o ./make-relative-prefix.o ./make-temp-file.o > ./objalloc.o ./obstack.o ./partition.o ./pexecute.o > ./physmem.o ./pex-common.o ./pex-one.o ./pex-unix.o > ./safe-ctype.o ./sort.o ./spaces.o ./splay-tree.o > ./strerror.o ./strsignal.o ./unlink-if-ordinary.o > ./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o > ./xstrerror.o ./xstrndup.o > required-list > make[2]: Entering directory > `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' > make[2]: Nothing to be done for `all'. > make[2]: Leaving directory > `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' > make[1]: Leaving directory > `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty' > cd . && cd libcpp && make > MAKE=make AUTOCONF=: AUTOMAKE=: LEX='touch lex.yy.c' > MAKEINFO=: libcpp.a > cd . && cd libcpp && make > MAKE=make AUTOCONF=: AUTOMAKE=: LEX='touch lex.yy.c' > MAKEINFO=: libcpp.a > g++ -I../../gcc-4.5/libcpp -I. > -I../../gcc-4.5/libcpp/../include > -I../../gcc-4.5/libcpp/include -g -O2 -W -Wall > -Wwrite-strings -Wmissing-format-attribute -pedantic > -Wno-long-long -I../../gcc-4.5/libcpp -I. > -I../../gcc-4.5/libcpp/../include > -I../../gcc-4.5/libcpp/include -c -o charset.o -MT > charset.o -MMD -MP -MF .deps/charset.Tpo > ../../gcc-4.5/libcpp/charset.c > In file included from ../../gcc-4.5/libcpp/system.h:335:0, > > from ../../gcc-4.5/libcpp/charset.c:24: > ../../gcc-4.5/libcpp/../include/libiberty.h:106:36: error: > new declaration ? > /usr/include/string.h:601:28: error: ambiguates old > declaration ? > make: *** [charset.o] Error 1 > "/home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile", line > 273: quake runtime error: exit 2: cd . && cd libcpp > && make MAKE=make AUTOCONF=: AUTOMAKE=: > LEX='touch lex.yy.c' MAKEINFO=: libcpp.a > > --procedure-- -line- -file--- > exec > -- > m3cc_Run 273 > /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile > include_dir 518 > /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile > > 5 > /home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/m3make.args > > Fatal Error: package build failed > *** execution of [ 0x814db54>, ] > failed *** > > It looks like a clash between a declaration in libiberty.h > and one in string.h > > Mika > From mika at async.caltech.edu Sat Jan 22 17:31:29 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Sat, 22 Jan 2011 08:31:29 -0800 Subject: [M3devel] compile problem on LINUXLIBC6 In-Reply-To: <957815.3691.qm@web29701.mail.ird.yahoo.com> References: <957815.3691.qm@web29701.mail.ird.yahoo.com> Message-ID: <20110122163129.927431A205B@async.async.caltech.edu> In order to build m3cc, all I had to do was remove the declaration for basename() from /usr/cvs/cm3/m3-sys/m3cc/gcc-4.5/include/libiberty.h I find it a bit odd since my system uses gcc 4.5.0 but am not quite sure what should be done about it. Mika "Daniel Alejandro Benavides D." writes: >Hi all: >I wonder why it's making libcpp, does it some tool use it? just for c this = >days? anyway it would be good if you can test it just with another compiler= > version, perhaps the clash is product of incompability of version 4.50, 4.= >5.1 -><- perhaps you can try to build the gcc trunk to see how it builds, i= >f it builds then you have a problem of compability in your gcc headers, Thi= >s is why is this C code is sort of not portable, you don't know when you ge= >t a compiler error after thinking it is OK. >Then if so, try to use gcc trunk instead to build in your cm3 building. >Thanks in advance > >--- El vie, 21/1/11, Mika Nystrom escribi=F3: > >> De: Mika Nystrom >> Asunto: [M3devel] compile problem on LINUXLIBC6 >> Para: m3devel at elegosoft.com >> Fecha: viernes, 21 de enero, 2011 21:15 >>=20 >> On the following system: >>=20 >> Linux ballista 2.6.34.7-0.5-desktop #1 SMP PREEMPT >> 2010-10-25 08:40:12 +0200 i686 i686 i386 GNU/Linux >>=20 >> gcc -v >> Using built-in specs. >> COLLECT_GCC=3Dgcc >> COLLECT_LTO_WRAPPER=3D/usr/lib/gcc/i586-suse-linux/4.5/lto-wrapper >> Target: i586-suse-linux >> Configured with: ../configure --prefix=3D/usr >> --infodir=3D/usr/share/info --mandir=3D/usr/share/man >> --libdir=3D/usr/lib --libexecdir=3D/usr/lib >> --enable-languages=3Dc,c++,objc,fortran,obj-c++,java,ada >> --enable-checking=3Drelease >> --with-gxx-include-dir=3D/usr/include/c++/4.5 --enable-ssp >> --disable-libssp --disable-plugin --with-bugurl=3Dhttp://bugs.opensuse.or= >g/ --with-pkgversion=3D'SUSE >> Linux' --disable-libgcj --disable-libmudflap >> --with-slibdir=3D/lib --with-system-zlib --enable-__cxa_atexit >> --enable-libstdcxx-allocator=3Dnew --disable-libstdcxx-pch >> --enable-version-specific-runtime-libs --program-suffix=3D-4.5 >> --enable-linux-futex --without-system-libunwind >> --enable-gold --with-plugin-ld=3D/usr/bin/gold >> --with-arch-32=3Di586 --with-tune=3Dgeneric >> --build=3Di586-suse-linux >> Thread model: posix >> gcc version 4.5.0 20100604 [gcc-4_5-branch revision 160292] >> (SUSE Linux) >>=20 >> Installing 5.8.6 from the web and then attempting to >> compile the CVS head using "upgrade.py" leads >> to the following: >>=20 >> echo ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o >> ./sha1.o ./alloca.o ./argv.o ./choose-temp.o ./concat.o >> ./cp-demint.o ./crc32.o ./dyn-string.o ./fdmatch.o >> ./fibheap.o ./filename_cmp.o ./floatformat.o ./fnmatch.o >> ./fopen_unlocked.o ./getopt.o ./getopt1.o ./getpwd.o >> ./getruntime.o ./hashtab.o ./hex.o ./lbasename.o >> ./lrealpath.o ./make-relative-prefix.o ./make-temp-file.o >> ./objalloc.o ./obstack.o ./partition.o ./pexecute.o >> ./physmem.o ./pex-common.o ./pex-one.o ./pex-unix.o >> ./safe-ctype.o ./sort.o ./spaces.o ./splay-tree.o >> ./strerror.o ./strsignal.o ./unlink-if-ordinary.o >> ./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o >> ./xstrerror.o ./xstrndup.o > required-list >> make[2]: Entering directory >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' >> make[2]: Nothing to be done for `all'. >> make[2]: Leaving directory >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' >> make[1]: Leaving directory >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty' >> cd . && cd libcpp && make=20 >> MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: LEX=3D'touch lex.yy.c' >> MAKEINFO=3D: libcpp.a >> cd . && cd libcpp && make=20 >> MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: LEX=3D'touch lex.yy.c' >> MAKEINFO=3D: libcpp.a >> g++ -I../../gcc-4.5/libcpp -I. >> -I../../gcc-4.5/libcpp/../include >> -I../../gcc-4.5/libcpp/include -g -O2 -W -Wall >> -Wwrite-strings -Wmissing-format-attribute -pedantic >> -Wno-long-long -I../../gcc-4.5/libcpp -I. >> -I../../gcc-4.5/libcpp/../include >> -I../../gcc-4.5/libcpp/include -c -o charset.o -MT >> charset.o -MMD -MP -MF .deps/charset.Tpo >> ../../gcc-4.5/libcpp/charset.c >> In file included from ../../gcc-4.5/libcpp/system.h:335:0, >> =20 >> from ../../gcc-4.5/libcpp/charset.c:24: >> ../../gcc-4.5/libcpp/../include/libiberty.h:106:36: error: >> new declaration =E2 >> /usr/include/string.h:601:28: error: ambiguates old >> declaration =E2 >> make: *** [charset.o] Error 1 >> "/home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile", line >> 273: quake runtime error: exit 2: cd . && cd libcpp >> && make MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: >> LEX=3D'touch lex.yy.c' MAKEINFO=3D: libcpp.a >>=20 >> --procedure-- -line- -file--- >> exec =20 >> -- >> m3cc_Run 273=20 >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile >> include_dir 518=20 >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile >> =20 >> 5=20 >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/m3make.args >>=20 >> Fatal Error: package build failed >> *** execution of [> 0x814db54>, ] >> failed *** >>=20 >> It looks like a clash between a declaration in libiberty.h >> and one in string.h >>=20 >> Mika >> =0A=0A=0A From jay.krell at cornell.edu Sat Jan 22 20:44:58 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 22 Jan 2011 19:44:58 +0000 Subject: [M3devel] compile problem on LINUXLIBC6 In-Reply-To: <20110122163129.927431A205B@async.async.caltech.edu> References: <957815.3691.qm@web29701.mail.ird.yahoo.com>, <20110122163129.927431A205B@async.async.caltech.edu> Message-ID: libcpp is part of any gcc frontend/backend. I have reduced it significantly, but it is still there. Maybe it was caused by this: 2010-12-26 18:50 jkrell * m3-sys/m3cc/src/clean_marker.txt: system.h: all systems have: stddef.h limits.h abort realloc ... anyway, I made a change that should resolve this. Let me know. I'll try to keep up with Hudson, but things have changed semi-permanently very significantly for me..less time on Modula-3 probably forever now... (I'll still try to fix the jumpbuf over-use and maybe stack-walker absence...) - Jay > To: dabenavidesd at yahoo.es > Date: Sat, 22 Jan 2011 08:31:29 -0800 > From: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] compile problem on LINUXLIBC6 > > In order to build m3cc, all I had to do was remove the declaration for > basename() from /usr/cvs/cm3/m3-sys/m3cc/gcc-4.5/include/libiberty.h > > I find it a bit odd since my system uses gcc 4.5.0 but am not quite sure > what should be done about it. > > Mika > > "Daniel Alejandro Benavides D." writes: > >Hi all: > >I wonder why it's making libcpp, does it some tool use it? just for c this = > >days? anyway it would be good if you can test it just with another compiler= > > version, perhaps the clash is product of incompability of version 4.50, 4.= > >5.1 -><- perhaps you can try to build the gcc trunk to see how it builds, i= > >f it builds then you have a problem of compability in your gcc headers, Thi= > >s is why is this C code is sort of not portable, you don't know when you ge= > >t a compiler error after thinking it is OK. > >Then if so, try to use gcc trunk instead to build in your cm3 building. > >Thanks in advance > > > >--- El vie, 21/1/11, Mika Nystrom escribi=F3: > > > >> De: Mika Nystrom > >> Asunto: [M3devel] compile problem on LINUXLIBC6 > >> Para: m3devel at elegosoft.com > >> Fecha: viernes, 21 de enero, 2011 21:15 > >>=20 > >> On the following system: > >>=20 > >> Linux ballista 2.6.34.7-0.5-desktop #1 SMP PREEMPT > >> 2010-10-25 08:40:12 +0200 i686 i686 i386 GNU/Linux > >>=20 > >> gcc -v > >> Using built-in specs. > >> COLLECT_GCC=3Dgcc > >> COLLECT_LTO_WRAPPER=3D/usr/lib/gcc/i586-suse-linux/4.5/lto-wrapper > >> Target: i586-suse-linux > >> Configured with: ../configure --prefix=3D/usr > >> --infodir=3D/usr/share/info --mandir=3D/usr/share/man > >> --libdir=3D/usr/lib --libexecdir=3D/usr/lib > >> --enable-languages=3Dc,c++,objc,fortran,obj-c++,java,ada > >> --enable-checking=3Drelease > >> --with-gxx-include-dir=3D/usr/include/c++/4.5 --enable-ssp > >> --disable-libssp --disable-plugin --with-bugurl=3Dhttp://bugs.opensuse.or= > >g/ --with-pkgversion=3D'SUSE > >> Linux' --disable-libgcj --disable-libmudflap > >> --with-slibdir=3D/lib --with-system-zlib --enable-__cxa_atexit > >> --enable-libstdcxx-allocator=3Dnew --disable-libstdcxx-pch > >> --enable-version-specific-runtime-libs --program-suffix=3D-4.5 > >> --enable-linux-futex --without-system-libunwind > >> --enable-gold --with-plugin-ld=3D/usr/bin/gold > >> --with-arch-32=3Di586 --with-tune=3Dgeneric > >> --build=3Di586-suse-linux > >> Thread model: posix > >> gcc version 4.5.0 20100604 [gcc-4_5-branch revision 160292] > >> (SUSE Linux) > >>=20 > >> Installing 5.8.6 from the web and then attempting to > >> compile the CVS head using "upgrade.py" leads > >> to the following: > >>=20 > >> echo ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o > >> ./sha1.o ./alloca.o ./argv.o ./choose-temp.o ./concat.o > >> ./cp-demint.o ./crc32.o ./dyn-string.o ./fdmatch.o > >> ./fibheap.o ./filename_cmp.o ./floatformat.o ./fnmatch.o > >> ./fopen_unlocked.o ./getopt.o ./getopt1.o ./getpwd.o > >> ./getruntime.o ./hashtab.o ./hex.o ./lbasename.o > >> ./lrealpath.o ./make-relative-prefix.o ./make-temp-file.o > >> ./objalloc.o ./obstack.o ./partition.o ./pexecute.o > >> ./physmem.o ./pex-common.o ./pex-one.o ./pex-unix.o > >> ./safe-ctype.o ./sort.o ./spaces.o ./splay-tree.o > >> ./strerror.o ./strsignal.o ./unlink-if-ordinary.o > >> ./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o > >> ./xstrerror.o ./xstrndup.o > required-list > >> make[2]: Entering directory > >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' > >> make[2]: Nothing to be done for `all'. > >> make[2]: Leaving directory > >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' > >> make[1]: Leaving directory > >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty' > >> cd . && cd libcpp && make=20 > >> MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: LEX=3D'touch lex.yy.c' > >> MAKEINFO=3D: libcpp.a > >> cd . && cd libcpp && make=20 > >> MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: LEX=3D'touch lex.yy.c' > >> MAKEINFO=3D: libcpp.a > >> g++ -I../../gcc-4.5/libcpp -I. > >> -I../../gcc-4.5/libcpp/../include > >> -I../../gcc-4.5/libcpp/include -g -O2 -W -Wall > >> -Wwrite-strings -Wmissing-format-attribute -pedantic > >> -Wno-long-long -I../../gcc-4.5/libcpp -I. > >> -I../../gcc-4.5/libcpp/../include > >> -I../../gcc-4.5/libcpp/include -c -o charset.o -MT > >> charset.o -MMD -MP -MF .deps/charset.Tpo > >> ../../gcc-4.5/libcpp/charset.c > >> In file included from ../../gcc-4.5/libcpp/system.h:335:0, > >> =20 > >> from ../../gcc-4.5/libcpp/charset.c:24: > >> ../../gcc-4.5/libcpp/../include/libiberty.h:106:36: error: > >> new declaration =E2 > >> /usr/include/string.h:601:28: error: ambiguates old > >> declaration =E2 > >> make: *** [charset.o] Error 1 > >> "/home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile", line > >> 273: quake runtime error: exit 2: cd . && cd libcpp > >> && make MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: > >> LEX=3D'touch lex.yy.c' MAKEINFO=3D: libcpp.a > >>=20 > >> --procedure-- -line- -file--- > >> exec =20 > >> -- > >> m3cc_Run 273=20 > >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile > >> include_dir 518=20 > >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile > >> =20 > >> 5=20 > >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/m3make.args > >>=20 > >> Fatal Error: package build failed > >> *** execution of [ >> 0x814db54>, ] > >> failed *** > >>=20 > >> It looks like a clash between a declaration in libiberty.h > >> and one in string.h > >>=20 > >> Mika > >> =0A=0A=0A -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Sun Jan 23 08:08:29 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sun, 23 Jan 2011 07:08:29 +0000 (GMT) Subject: [M3devel] compile problem on LINUXLIBC6 In-Reply-To: Message-ID: <121185.91775.qm@web29703.mail.ird.yahoo.com> hi all: yes I think you are correct in that too, ok. About your time/effort paradigm. Let me tell you something if you allow me: here in my country I was talking with another co partner, here, we have this kind of thinking : "you don't need to be talented, you just need to work hard", and certainly I have read lot of times perhaps that the harder things are, more worth they are. Certainly both of them are surely right, but let me tell you what a "neuro linguist" programmer says about that (I don't remember his name though he gives international conferences): "most of people think that the harder you work the more work you get done, but I tell you something is better to work intelligently than harder, if you are intelligent worker you get things done and are more worth the value, this is a paradigm you need to work your entire life to get something done and you realize how much trouble you can get solve if you are smarter than hard worker". I think also is true, the last point I mean, why we should spend the all night reading other people's code, even if they are worth, we should be better than that. My point is this, ok let's do some hard work in an intelligent way, we will be smarter than others by following the smarter things they had on harder things, but doing hard work on it if you don't need that last thing then you have a point. Then now, in this thing, let's be clear IA prominent guys are working towards making and u turn (maybe just and an "ear" turn here we say too). If I interpret this guys well, without too much knowledge of the ideas I do now something; at some point they should be going a little backwards to start over from where they went to work in fields that are not worth today, you see, a lot of work doesn't imply worth results even if finished, but intelligent work even if not absolutely complete is more worth the value than those they did. So I was reading a Computer magazine, March 1982, a local copy courtesy of somebody here. And what where doing Japanese Fifth Computer Generation Computer Systems plans at those days, planning the according following next decade of computing, the computers fifth generation FGCS. Basically what they were trying to do in order to do the major tasks, to build a complete framework up to a complete stack of technology in some of its subtasks (I know, but why should we worry if others are working nicely on the other parts, tell me if so): technology systematization, which compromised the following points: "Specifically this involve: (1) Modular programming and verification technology (2) A theory to specify description and program synthesis (3) A system for program synthesis, and program verfication and a program base (4) A system to maintain, improve and manage programs (5) A consultant system for program design " ____________SYSTEMATIZATION TECHNOLOGY_________________ Intelligent???????? | Knowledge |? Systematization | Database programming?? | base design | for computer????? | and distributed system?????????????? |? system?????? |?? architecture????? | database system ________________________________________________________________ in [1] Treleaven and Lima, ?Japan's Fifth Generation Computer Systems,? Computer, vol. 15, no. 8, pp. 79-88, 1982. Basically they wanted to build automatic language translators for languages like japanese to english, etc, a system to receive speech, and system to retrieve images. They main problem was that when arrived in the next decade they didn't get the expected rate or objective of efficiency was: 1-10 BIPS with a computer of 1G-10G of memory =? (though first goal was 1200'000.000 logical inferences per second, LIPS. 1 LIPS = [100..300] MIPS) = 400 000 MIPS and in full goal = 333'333.333 LIPS however they got was for first goal: 30.000 LIPS = 100 MIPS. The long term goal was not achieved but because of technical problem in the theory and semantic of concurrent languages. You can read about this on http://en.wikipedia.org/wiki/Fifth_generation_computer and: http://books.google.com/books?id=BlRrHHpoxLgC&lpg=PA14&ots=ArxnlvBiyx&dq=inference%20machine%20-learning&pg=PA15#v=onepage&q&f=false But for the long term project was getting just 200 000 LIPS < 700 MIPS ? Obviously this is not god like 100 times slower than thought, so they stopped funding the project and continue a sequel in another one. And NEC was one of the participants, precisely they wrote back in 1995 a bayesian algorithm in? Modula-3, looking for a chess contest (see http://www.nzdl.org/gsdlmod?e=d-00000-00---off-0tcc--00-0----0-10-0---0---0direct-10---4-------0-1l--11-en-50---20-about---00-0-1-00-0-0-11-1-0utfZz-8-10-0-0-11-1-0utfZz-8-00&a=d&c=tcc&cl=CL2.5&d=HASH01ddef928d9edae8cb47030b.5) Surely you are worried about this kind of issues, but I tell you I think we have a point if so, there are good opportunities they are just waiting for us and good looking for good chance of making it. Thanks in advance --- El s?b, 22/1/11, Jay K escribi?: De: Jay K Asunto: RE: [M3devel] compile problem on LINUXLIBC6 Para: "Mika Nystrom" , dabenavidesd at yahoo.es CC: "m3devel" Fecha: s?bado, 22 de enero, 2011 14:44 libcpp is part of any gcc frontend/backend. I have reduced it significantly, but it is still there. Maybe it was caused by this: 2010-12-26 18:50 jkrell * m3-sys/m3cc/src/clean_marker.txt: system.h: all systems have: stddef.h limits.h abort realloc ... anyway, I made a change that should resolve this. Let me know. I'll try to keep up with Hudson, but things have changed semi-permanently very significantly for me..less time on Modula-3 probably forever now... (I'll still try to fix the jumpbuf over-use and maybe stack-walker absence...) ?- Jay > To: dabenavidesd at yahoo.es > Date: Sat, 22 Jan 2011 08:31:29 -0800 > From: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] compile problem on LINUXLIBC6 > > In order to build m3cc, all I had to do was remove the declaration for > basename() from /usr/cvs/cm3/m3-sys/m3cc/gcc-4.5/include/libiberty.h > > I find it a bit odd since my system uses gcc 4.5.0 but am not quite sure > what should be done about it. > > Mika > > "Daniel Alejandro Benavides D." writes: > >Hi all: > >I wonder why it's making libcpp, does it some tool use it? just for c this = > >days? anyway it would be good if you can test it just with another compiler= > > version, perhaps the clash is product of incompability of version 4.50, 4.= > >5.1 -><- perhaps you can try to build the gcc trunk to see how it builds, i= > >f it builds then you have a problem of compability in your gcc headers, Thi= > >s is why is this C code is sort of not portable, you don't know when you ge= > >t a compiler error after thinking it is OK. > >Then if so, try to use gcc trunk instead to build in your cm3 building. > >Thanks in advance > > > >--- El vie, 21/1/11, Mika Nystrom escribi=F3: > > > >> De: Mika Nystrom > >> Asunto: [M3devel] compile problem on LINUXLIBC6 > >> Para: m3devel at elegosoft.com > >> Fecha: viernes, 21 de enero, 2011 21:15 > >>=20 > >> On the following system: > >>=20 > >> Linux ballista 2.6.34.7-0.5-desktop #1 SMP PREEMPT > >> 2010-10-25 08:40:12 +0200 i686 i686 i386 GNU/Linux > >>=20 > >> gcc -v > >> Using built-in specs. > >> COLLECT_GCC=3Dgcc > >> COLLECT_LTO_WRAPPER=3D/usr/lib/gcc/i586-suse-linux/4.5/lto-wrapper > >> Target: i586-suse-linux > >> Configured with: ../configure --prefix=3D/usr > >> --infodir=3D/usr/share/info --mandir=3D/usr/share/man > >> --libdir=3D/usr/lib --libexecdir=3D/usr/lib > >> --enable-languages=3Dc,c++,objc,fortran,obj-c++,java,ada > >> --enable-checking=3Drelease > >> --with-gxx-include-dir=3D/usr/include/c++/4.5 --enable-ssp > >> --disable-libssp --disable-plugin --with-bugurl=3Dhttp://bugs.opensuse.or= > >g/ --with-pkgversion=3D'SUSE > >> Linux' --disable-libgcj --disable-libmudflap > >> --with-slibdir=3D/lib --with-system-zlib --enable-__cxa_atexit > >> --enable-libstdcxx-allocator=3Dnew --disable-libstdcxx-pch > >> --enable-version-specific-runtime-libs --program-suffix=3D-4.5 > >> --enable-linux-futex --without-system-libunwind > >> --enable-gold --with-plugin-ld=3D/usr/bin/gold > >> --with-arch-32=3Di586 --with-tune=3Dgeneric > >> --build=3Di586-suse-linux > >> Thread model: posix > >> gcc version 4.5.0 20100604 [gcc-4_5-branch revision 160292] > >> (SUSE Linux) > >>=20 > >> Installing 5.8.6 from the web and then attempting to > >> compile the CVS head using "upgrade.py" leads > >> to the following: > >>=20 > >> echo ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o > >> ./sha1.o ./alloca.o ./argv.o ./choose-temp.o ./concat.o > >> ./cp-demint.o ./crc32.o ./dyn-string.o ./fdmatch.o > >> ./fibheap.o ./filename_cmp.o ./floatformat.o ./fnmatch.o > >> ./fopen_unlocked.o ./getopt.o ./getopt1.o ./getpwd.o > >> ./getruntime.o ./hashtab.o ./hex.o ./lbasename.o > >> ./lrealpath.o ./make-relative-prefix.o ./make-temp-file.o > >> ./objalloc.o ./obstack.o ./partition.o ./pexecute.o > >> ./physmem.o ./pex-common.o ./pex-one.o ./pex-unix.o > >> ./safe-ctype.o ./sort.o ./spaces.o ./splay-tree.o > >> ./strerror.o ./strsignal.o ./unlink-if-ordinary.o > >> ./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o > >> ./xstrerror.o ./xstrndup.o > required-list > >> make[2]: Entering directory > >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' > >> make[2]: Nothing to be done for `all'. > >> make[2]: Leaving directory > >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' > >> make[1]: Leaving directory > >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty' > >> cd . && cd libcpp && make=20 > >> MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: LEX=3D'touch lex.yy.c' > >> MAKEINFO=3D: libcpp.a > >> cd . && cd libcpp && make=20 > >> MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: LEX=3D'touch lex.yy.c' > >> MAKEINFO=3D: libcpp.a > >> g++ -I../../gcc-4.5/libcpp -I. > >> -I../../gcc-4.5/libcpp/../include > >> -I../../gcc-4.5/libcpp/include -g -O2 -W -Wall > >> -Wwrite-strings -Wmissing-format-attribute -pedantic > >> -Wno-long-long -I../../gcc-4.5/libcpp -I. > >> -I../../gcc-4.5/libcpp/../include > >> -I../../gcc-4.5/libcpp/include -c -o charset.o -MT > >> charset.o -MMD -MP -MF .deps/charset.Tpo > >> ../../gcc-4.5/libcpp/charset.c > >> In file included from ../../gcc-4.5/libcpp/system.h:335:0, > >> =20 > >> from ../../gcc-4.5/libcpp/charset.c:24: > >> ../../gcc-4.5/libcpp/../include/libiberty.h:106:36: error: > >> new declaration =E2 > >> /usr/include/string.h:601:28: error: ambiguates old > >> declaration =E2 > >> make: *** [charset.o] Error 1 > >> "/home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile", line > >> 273: quake runtime error: exit 2: cd . && cd libcpp > >> && make MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: > >> LEX=3D'touch lex.yy.c' MAKEINFO=3D: libcpp.a > >>=20 > >> --procedure-- -line- -file--- > >> exec =20 > >> -- > >> m3cc_Run 273=20 > >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile > >> include_dir 518=20 > >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile > >> =20 > >> 5=20 > >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/m3make.args > >>=20 > >> Fatal Error: package build failed > >> *** execution of [ >> 0x814db54>, ] > >> failed *** > >>=20 > >> It looks like a clash between a declaration in libiberty.h > >> and one in string.h > >>=20 > >> Mika > >> =0A=0A=0A -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Jan 29 11:40:42 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 29 Jan 2011 10:40:42 +0000 Subject: [M3devel] hardware clearance -- Sparc/solaris Message-ID: http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=120677831684 This was the Solaris/sparc Hudson node for a while. It doesn't seem needed now that we have the opencsw machines, unless we want to be "independent". ? Anyone here can have it for shipping or half shipping. Thanks, - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Sun Jan 30 03:18:37 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sun, 30 Jan 2011 02:18:37 +0000 (GMT) Subject: [M3devel] About Juno-2 and automating debugging software Message-ID: <299610.86962.qm@web29707.mail.ird.yahoo.com> Hi all: I was watching a book, sort of wondering what your ideas you might have about that. The idea behind this book, is sort of the same in some point to what it is ESC/Modula-3. in [1] W. R. Murray, Automatic program debugging for intelligent tutoring systems. Pitman, 1988. A technical report here, get it: ftp://ftp.cs.utexas.edu/pub/AI-Lab/tech-reports/UT-AI-TR-86-27.pdf You will see its rationale is that a program must be capable of catching more bugs and errors from the program, than a syntactical analyzer, which is the idea behind ESC/Modula-3, even if not a fully decidable problem as Greg Neslon says. Well I just put it there so we may see how about such a thing an Automatic debugger in Juno-2, as the Automatic Program Debugger is a declarative language Lisp subset and a subset of Lisp implementation is available, sort of nice thing to have already and Boyer-Moore underneath it theorem prover also available, see on: http://www.cs.utexas.edu/~moore/best-ideas/nqthm/index.html (Unreacheable code, etc like program errors, etc). Sort of nice having strong competence in the arena (see on: http://www.cs.cmu.edu/afs/cs/project/jair/pub/volume4/bhansali96a-html/paper.htm ) with sketchup and stuff, and Juno-2 alternative JVM already written backend and so (not for animations but sort amenable for dynamic code generation?). Only missing thing was just Prolog logical compiler but also being written one for proof of soundness of modula-3 type system typechecking Thanks in advance From dabenavidesd at yahoo.es Sun Jan 30 06:43:13 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sun, 30 Jan 2011 05:43:13 +0000 (GMT) Subject: [M3devel] About Juno-2 and automating debugging software In-Reply-To: <299610.86962.qm@web29707.mail.ird.yahoo.com> Message-ID: <459675.89026.qm@web29709.mail.ird.yahoo.com> Hi all: I think the speed improvement we might have in Juno-2 (to prove the concept) is to develop an interface for the constraint equational non-linear solving, perhaps done in CUDA see: http://en.wikipedia.org/wiki/CUDA like interface or OpenCL if so, and perhaps create a model for it under SOFA, see: http://en.wikipedia.org/wiki/SOFA_(Simulation_Open_Framework_Architecture) like model as some solvers already do that: http://www.sofa-framework.org/docs/sofa-tled-isbms08.pdf Also a FPU model would be needed of it or added to current modes of operation of Float point types, besides tohers like legacy x87 support, and newer ones. In this way we could prove the interface and give a proof of the concept. Indeed is heavy work and might not be reasonable to put first in a TODO list, but be aware this guys of GPGPU are creating so many things like large array of clusters to processing any kind of data, we might try to do that or some of it. And you know time is running for all and every should be keeping the pace. Perhaps this would require some sophistication in the needed machinery like 2 or three GPGPU or so, but still worth the value I think Thanks in advance, PD please if anybody has a CUDA or OpenCL interface design or already in mind or any ideas on this please speak up --- El s?b, 29/1/11, Daniel Alejandro Benavides D. escribi?: > De: Daniel Alejandro Benavides D. > Asunto: [M3devel] About Juno-2 and automating debugging software > Para: m3devel at elegosoft.com > Fecha: s?bado, 29 de enero, 2011 21:18 > Hi all: > I was watching a book, sort of wondering what your ideas > you might have about that. > The idea behind this book, is sort of the same in some > point to what it is ESC/Modula-3. > in > [1] W. R. Murray, Automatic program debugging for > intelligent tutoring systems. Pitman, 1988. > A technical report here, get it: > ftp://ftp.cs.utexas.edu/pub/AI-Lab/tech-reports/UT-AI-TR-86-27.pdf > > You will see its rationale is that a program must be > capable of catching more bugs and errors from the program, > than a syntactical analyzer, which is the idea behind > ESC/Modula-3, even if not a fully decidable problem as Greg > Neslon says. > > Well I just put it there so we may see how about such a > thing an Automatic debugger in Juno-2, as the Automatic > Program Debugger is a declarative language Lisp subset and a > subset of Lisp implementation is available, sort of nice > thing to have already and Boyer-Moore underneath it theorem > prover also available, see on: > http://www.cs.utexas.edu/~moore/best-ideas/nqthm/index.html > (Unreacheable code, etc like program errors, etc). > > Sort of nice having strong competence in the arena (see > on: > http://www.cs.cmu.edu/afs/cs/project/jair/pub/volume4/bhansali96a-html/paper.htm > ) with sketchup and stuff, and Juno-2 alternative JVM > already written backend and so (not for animations but sort > amenable for dynamic code generation?). > Only missing thing was just Prolog logical compiler but > also being written one for proof of soundness of modula-3 > type system typechecking > Thanks in advance > > > > From jay.krell at cornell.edu Sun Jan 30 11:45:17 2011 From: jay.krell at cornell.edu (Jay K) Date: Sun, 30 Jan 2011 10:45:17 +0000 Subject: [M3devel] fixing try/setjmp in a loop? Message-ID: I'm trying to fix the inadvertant change I made where FOR i := 1 TO 10 DO TRY FINALLY END will call alloca 10 times. I'm not familiar with the frontend, and it is hard for me to understand. It seems like it is probably very well factored, written by someone who really knew what they were doing, but it is dense, and not verbosely commented. Something like this?? But this doesn't work. What am I missing? And, we should go the next step and merge the jmpbuf pointer variable with the jmpbuf field in the EF1, right? ? 1.txt Index: src/misc/Marker.i3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.i3,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 Marker.i3 --- src/misc/Marker.i3 14 Jan 2001 13:40:31 -0000 1.1.1.1 +++ src/misc/Marker.i3 30 Jan 2011 10:41:18 -0000 @@ -64,9 +64,12 @@ PROCEDURE SetLock (acquire: BOOLEAN; var: CG.Var; offset: INTEGER); (* generate the call to acquire or release a mutex *) -PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label); +PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label; + jumpbuf: Variable.T); (* call 'setjmp' on 'frame's jmpbuf and branch to 'handler' on re-returns. *) PROCEDURE Reset (); +PROCEDURE NewJumpbuf (): Variable.T; + END Marker. Index: src/misc/Marker.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.m3,v retrieving revision 1.9 diff -u -r1.9 Marker.m3 --- src/misc/Marker.m3 13 Jan 2011 14:58:28 -0000 1.9 +++ src/misc/Marker.m3 30 Jan 2011 10:41:18 -0000 @@ -10,7 +10,7 @@ MODULE Marker; IMPORT CG, Error, Type, Variable, ProcType, ESet, Expr, AssignStmt; -IMPORT M3ID, M3RT, Target, Module, RunTyme, Procedure, Host; +IMPORT M3ID, M3RT, Target, Module, RunTyme, Procedure, Host, Addr; TYPE Kind = { zFINALLY, zFINALLYPROC, zLOCK, zEXIT, zTRY, zTRYELSE, @@ -231,8 +231,10 @@ END; END CallFinallyHandler; -PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label) = +PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label; + jumpbuf: Variable.T) = VAR new: BOOLEAN; + label := CG.Next_label (); BEGIN (* int setjmp(void* ); *) IF (setjmp = NIL) THEN @@ -262,13 +264,33 @@ Target.Word.size, Target.Word.align, Target.Word.cg_type, 0); END; - - (* frame.jmpbuf = alloca(Csetjmp__Jumpbuf_size); *) + + (* IF jumpuf # NIL THEN + * frame.jmpbuf = alloca(Csetjmp__Jumpbuf_size); + * END + *) + + CG.Load_nil (); + Variable.Load (jumpbuf); + CG.If_compare (CG.Type.Addr, CG.Cmp.NE, label, CG.Maybe); + CG.Start_call_direct (alloca, 0, Target.Address.cg_type); CG.Load_int (Target.Word.cg_type, Jumpbuf_size); CG.Pop_param (Target.Word.cg_type); CG.Call_direct (alloca, Target.Address.cg_type); + + (* FUTURE: We should actually have a Variable + * for the entire EF1, including initializing the jumpbuf + * in it. That would save us this extra load/store, + * and save a local variable. + *) + Variable.LoadLValue (jumpbuf); + CG.Swap (); + CG.Store_indirect (CG.Type.Addr, 0, Target.Address.size); + Variable.Load (jumpbuf); + CG.Store_addr (frame, M3RT.EF1_jmpbuf); + CG.Set_label (label); (* setmp(frame.jmpbuf) *) CG.Start_call_direct (setjmp, 0, Target.Integer.cg_type); @@ -806,5 +828,15 @@ tos := 0; END Reset; +PROCEDURE NewJumpbuf (): Variable.T = + VAR jumpbuf: Variable.T; + BEGIN + jumpbuf := Variable.New (M3ID.NoID, TRUE); + Variable.BindType (jumpbuf, Addr.T, indirect := FALSE, + readonly := FALSE, open_array_ok := FALSE, + needs_init := TRUE); + RETURN jumpbuf; + END NewJumpbuf; + BEGIN END Marker. Index: src/stmts/TryFinStmt.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/stmts/TryFinStmt.m3,v retrieving revision 1.6 diff -u -r1.6 TryFinStmt.m3 --- src/stmts/TryFinStmt.m3 5 Jan 2011 14:34:54 -0000 1.6 +++ src/stmts/TryFinStmt.m3 30 Jan 2011 10:41:18 -0000 @@ -10,6 +10,7 @@ IMPORT M3ID, CG, Token, Scanner, Stmt, StmtRep, Marker, Target, Type, Addr; IMPORT RunTyme, Procedure, ProcBody, M3RT, Scope, Fmt, Host, TryStmt, Module; +IMPORT Variable; FROM Stmt IMPORT Outcome; TYPE @@ -20,6 +21,7 @@ viaProc : BOOLEAN; scope : Scope.T; handler : HandlerProc; + jumpbuf : Variable.T := NIL; OVERRIDES check := Check; compile := Compile; @@ -63,6 +65,11 @@ RETURN p; END Parse; +PROCEDURE UsesSetjmp (p: P): BOOLEAN = + BEGIN + RETURN NOT (Target.Has_stack_walker OR p.viaProc); + END UsesSetjmp; + PROCEDURE Check (p: P; VAR cs: Stmt.CheckState) = VAR zz: Scope.T; oc: Stmt.Outcomes; name: INTEGER; BEGIN @@ -95,6 +102,9 @@ END; END; TryStmt.PopHandler (); + IF UsesSetjmp (p) THEN + p.jumpbuf := Marker.NewJumpbuf (); + END; END Check; PROCEDURE HandlerName (uid: INTEGER): TEXT = @@ -106,11 +116,16 @@ END HandlerName; PROCEDURE Compile (p: P): Stmt.Outcomes = + VAR usesSetjmp := FALSE; + result: Stmt.Outcomes; BEGIN - IF Target.Has_stack_walker THEN RETURN Compile1 (p); - ELSIF p.viaProc THEN RETURN Compile2 (p); - ELSE RETURN Compile3 (p); + IF Target.Has_stack_walker THEN result := Compile1 (p); + ELSIF p.viaProc THEN result := Compile2 (p); + ELSE usesSetjmp := TRUE; + result := Compile3 (p); END; + <* ASSERT usesSetjmp = UsesSetjmp (p) *> + RETURN result; END Compile; PROCEDURE Compile1 (p: P): Stmt.Outcomes = @@ -302,7 +317,9 @@ l := CG.Next_label (3); CG.Set_label (l, barrier := TRUE); Marker.PushFrame (frame, M3RT.HandlerClass.Finally); - Marker.CaptureState (frame, l+1); + <* ASSERT UsesSetjmp (p) *> + <* ASSERT p.jumpbuf # NIL *> + Marker.CaptureState (frame, l+1, p.jumpbuf); (* compile the body *) Marker.PushFinally (l, l+1, frame); Index: src/stmts/TryStmt.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/stmts/TryStmt.m3,v retrieving revision 1.3 diff -u -r1.3 TryStmt.m3 --- src/stmts/TryStmt.m3 5 Jan 2011 14:34:54 -0000 1.3 +++ src/stmts/TryStmt.m3 30 Jan 2011 10:41:18 -0000 @@ -22,6 +22,7 @@ hasElse : BOOLEAN; elseBody : Stmt.T; handled : ESet.T; + jumpbuf : Variable.T := NIL; OVERRIDES check := Check; compile := Compile; @@ -153,6 +154,14 @@ p.handles := h3; END ReverseHandlers; +PROCEDURE UsesSetjmp (p: P): BOOLEAN = + BEGIN + IF (p.handles = NIL) AND (NOT p.hasElse) THEN + RETURN FALSE; + END; + RETURN NOT Target.Has_stack_walker; + END UsesSetjmp; + PROCEDURE Check (p: P; VAR cs: Stmt.CheckState) = VAR h: Handler; handled: ESet.T; BEGIN @@ -182,6 +191,10 @@ WHILE (h # NIL) DO CheckHandler (h, cs); h := h.next; END; Stmt.TypeCheck (p.elseBody, cs); PopHandler (); + + IF UsesSetjmp (p) THEN + p.jumpbuf := Marker.NewJumpbuf (); + END; END Check; PROCEDURE CheckLabels (h: Handler; scope: Scope.T; VAR cs: Stmt.CheckState) = @@ -245,14 +258,19 @@ END CheckHandler; PROCEDURE Compile (p: P): Stmt.Outcomes = + VAR usesSetjmp := FALSE; + result: Stmt.Outcomes; BEGIN IF (p.handles = NIL) AND (NOT p.hasElse) THEN - RETURN Stmt.Compile (p.body); - END; - IF Target.Has_stack_walker - THEN RETURN Compile1 (p); - ELSE RETURN Compile2 (p); + result := Stmt.Compile (p.body); + ELSIF Target.Has_stack_walker THEN + result := Compile1 (p); + ELSE + usesSetjmp := TRUE; + result := Compile2 (p); END; + <* ASSERT usesSetjmp = UsesSetjmp (p) *> + RETURN result; END Compile; PROCEDURE Compile1 (p: P): Stmt.Outcomes = @@ -423,7 +441,9 @@ END; (* capture the machine state *) - Marker.CaptureState (frame, l+1); + <* ASSERT UsesSetjmp (p) *> + <* ASSERT p.jumpbuf # NIL *> + Marker.CaptureState (frame, l+1, p.jumpbuf); (* compile the body *) oc := Stmt.Compile (p.body); Thanks, - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Mon Jan 31 05:20:58 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Mon, 31 Jan 2011 04:20:58 +0000 (GMT) Subject: [M3devel] About Juno-2 and automating debugging software In-Reply-To: <459675.89026.qm@web29709.mail.ird.yahoo.com> Message-ID: <22454.41538.qm@web29715.mail.ird.yahoo.com> Hi all: yes, I believe is doable especially if you think this issue comes again in another form, the AI guys thinking what went wrong, well nothing went wrong as I realize now, there is a lot of research certainly, but in the end is just the same thing like before, and you can see this like the reuse of concepts of prior knowledge as is mentioned between other by Dr Andrew Tanenbaum, it just happens when something like this: see, the GPGPU GPU stuff alike is a nother come of the concept of explicit parallelism and its implication in computing fields, surely more developed in terms of the hardware this was I believe, but at the end is just another way of calling Transputers in earlier times, is just like it, then it was not an abandoned thing like before, just a reuse of the concept, and in practical terms this what it is the Occam Occam2 and alike languages; there is one in particular of my interest here the one built for drawing using CSP of Hoare, the language is called Armadillo see a slide show here, specially check for the Computer magazine backcover in p. 6 in: https://lsl.unal.edu.co/fl18/conferencias/09.20_ArmadilloTortugav02.pdf (Also its Armadillo, small, but kind of sweet animal and very nicely armored, it is found here in the wildness parts here in the sea costs of the Atlantic Caribbean sea in the north of south America, but also a kind domestic animal if you live in some country like this here too) I believe I have no seen this animal in any Oreilly front cover book, I believe from the ones I have seen (am I correct?). Well to state this less profound, the called abstraction for machine generation of this sort of derivate of Lisp Logo CSP and Modula-3 uses the Modula-3 structural equivalence type system part of Modula-3 type checking and the most part of it dynamically typecheking of it, so its Object Oriented if you can say that. Still it has records as in Modula-3 and fell like you were there, never the less, all sort of non-imperative forms of the language, like floating point types and sort of Arithmetic ones, well sort of the integer I believe, though It might be expandable if one just arranges that as well I believe in its core runtime. It's not supposed to be interactively run but to be to run semi-interpretable as an Armacode binary representation up to a tree which takes not so much time to build up and run to the execution time, also it has an option to be dynamically interpreted as a core of a JIT inserted calls to runtime functions I think. It serves well for the purpose of checking it with a possible ESC/Armadillo checker but also permits same kind of applicable and beyond Modula-3 optimizations also via an hypothetical super optimizer code generator for Modula-3 language as linker and loader module subsystem. Instead of having if its own interpretation subsystem by itself, it lives and relies on the connection with other parts of the system like m3-ui and function from Modula-3 IO to rightly process nice and fast graphics by its own self extension libraries and data types, like turtle, etc. Well, I just thought this might be helpful to find a better way to analyze a possible upgraded middle end interface for future CUDA or OpenCL platforms in the way it works for Modula-3 threads and types, with such an abstraction which perhaps does allow to create an accurate creative Juno-2 optimizations and stuff from there too that might be useful to speed up it too. It might be useful to note the product mentioned in the slide in the terms it writes as a Multi-transputer, sort of a multi-user high middle-end server which came with open OS soured and customizable processor interconnection and compatibility to other operating systems via LAN NICs. Sort even nicer profilability than one may think, very advanced for this days I still would say, or at least sophisticated for its time (compared to this times), see an explanation of its architecture: http://www-users.cs.york.ac.uk/susan/bib/ss/occam/multit.htm In any sense it is not intended to create a bigger scene just short pictures the bigger problem to dedicate more time to less independent functionality like interoperability between both platforms and stuff alike. Well, hope it's bit of contribution makes a good chance to create workable for real platform for the intent to continue this eventually, some of its last effort was I see: http://books.google.com/books?id=fpKF8r9ithQC&lpg=PP1&pg=PP1#v=onepage&q&f=false which sort of an amenable way of coping with its development research, see for the Transterpreter part or Multi-Transterpreter :) Thanks in advance --- El dom, 30/1/11, Daniel Alejandro Benavides D. escribi?: > De: Daniel Alejandro Benavides D. > Asunto: Re: [M3devel] About Juno-2 and automating debugging software > Para: m3devel at elegosoft.com > Fecha: domingo, 30 de enero, 2011 00:43 > Hi all: > I think the speed improvement we might have in Juno-2 (to > prove the concept) is to develop an interface for the > constraint equational non-linear solving, perhaps done in > CUDA see: > http://en.wikipedia.org/wiki/CUDA > > like interface or OpenCL if so, and perhaps create a model > for it under SOFA, see: > http://en.wikipedia.org/wiki/SOFA_(Simulation_Open_Framework_Architecture) > > like model as some solvers already do that: > http://www.sofa-framework.org/docs/sofa-tled-isbms08.pdf > > Also a FPU model would be needed of it or added to current > modes of operation of Float point types, besides tohers like > legacy x87 support, and newer ones. > In this way we could prove the interface and give a proof > of the concept. > Indeed is heavy work and might not be reasonable to put > first in a TODO list, but be aware this guys of GPGPU are > creating so many things like large array of clusters to > processing any kind of data, we might try to do that or some > of it. And you know time is running for all and every should > be keeping the pace. > Perhaps this would require some sophistication in the > needed machinery like 2 or three GPGPU or so, but still > worth the value I think > Thanks in advance, > > PD please if anybody has a CUDA or OpenCL interface design > or already in mind or any ideas on this please speak up > > --- El s?b, 29/1/11, Daniel Alejandro Benavides D. > escribi?: > > > De: Daniel Alejandro Benavides D. > > Asunto: [M3devel] About Juno-2 and automating > debugging software > > Para: m3devel at elegosoft.com > > Fecha: s?bado, 29 de enero, 2011 21:18 > > Hi all: > > I was watching a book, sort of wondering what your > ideas > > you might have about that. > > The idea behind this book, is sort of the same in > some > > point to what it is ESC/Modula-3. > > in > > [1] W. R. Murray, Automatic program debugging for > > intelligent tutoring systems. Pitman, 1988. > > A technical report here, get it: > > ftp://ftp.cs.utexas.edu/pub/AI-Lab/tech-reports/UT-AI-TR-86-27.pdf > > > > You will see its rationale is that a program must be > > capable of catching more bugs and errors from the > program, > > than a syntactical analyzer, which is the idea behind > > ESC/Modula-3, even if not a fully decidable problem as > Greg > > Neslon says. > > > > Well I just put it there so we may see how about such > a > > thing an Automatic debugger in Juno-2, as the > Automatic > > Program Debugger is a declarative language Lisp subset > and a > > subset of Lisp implementation is available, sort of > nice > > thing to have already and Boyer-Moore underneath it > theorem > > prover also available, see on: > > http://www.cs.utexas.edu/~moore/best-ideas/nqthm/index.html > > (Unreacheable code, etc like program errors, etc). > > > > Sort of nice having strong competence in the arena > (see > > on: > > http://www.cs.cmu.edu/afs/cs/project/jair/pub/volume4/bhansali96a-html/paper.htm > > ) with sketchup and stuff, and Juno-2 > alternative JVM > > already written backend and so (not for animations but > sort > > amenable for dynamic code generation?). > > Only missing thing was just Prolog logical compiler > but > > also being written one for proof of soundness of > modula-3 > > type system typechecking > > Thanks in advance > > > > > > > > > > > > From hosking at cs.purdue.edu Mon Jan 31 18:14:09 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 31 Jan 2011 12:14:09 -0500 Subject: [M3devel] fixing try/setjmp in a loop? In-Reply-To: References: Message-ID: <36BA1892-1828-43A7-B706-AE87B3D98EA1@cs.purdue.edu> Hi Jay, I've not had a chance to digest this, but I do understand the problem. We need the Variable to be entered into the outermost scope of the procedure in which the TRY appears so that it will have initialization code (assigning NIL) generated for it on entry to the procedure. Then your usage of the variable should simply check for NIL and alloca if it is, as you already appear to do here. It would be possible to have the initialization code perform the alloca but then we would have an alloca for every TRY block in a procedure even if they never execute. Probably not the best plan. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 30, 2011, at 5:45 AM, Jay K wrote: > I'm trying to fix the inadvertant change I made where > FOR i := 1 TO 10 DO TRY FINALLY END > > will call alloca 10 times. > > I'm not familiar with the frontend, and it is hard for me to understand. > It seems like it is probably very well factored, written by someone who really knew what they were doing, > but it is dense, and not verbosely commented. > > Something like this?? But this doesn't work. What am I missing? > And, we should go the next step and merge the jmpbuf pointer variable with the jmpbuf field in the EF1, right? > > > ? 1.txt > Index: src/misc/Marker.i3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.i3,v > retrieving revision 1.1.1.1 > diff -u -r1.1.1.1 Marker.i3 > --- src/misc/Marker.i3 14 Jan 2001 13:40:31 -0000 1.1.1.1 > +++ src/misc/Marker.i3 30 Jan 2011 10:41:18 -0000 > @@ -64,9 +64,12 @@ > PROCEDURE SetLock (acquire: BOOLEAN; var: CG.Var; offset: INTEGER); > (* generate the call to acquire or release a mutex *) > > -PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label); > +PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label; > + jumpbuf: Variable.T); > (* call 'setjmp' on 'frame's jmpbuf and branch to 'handler' on re-returns. *) > > PROCEDURE Reset (); > > +PROCEDURE NewJumpbuf (): Variable.T; > + > END Marker. > Index: src/misc/Marker.m3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.m3,v > retrieving revision 1.9 > diff -u -r1.9 Marker.m3 > --- src/misc/Marker.m3 13 Jan 2011 14:58:28 -0000 1.9 > +++ src/misc/Marker.m3 30 Jan 2011 10:41:18 -0000 > @@ -10,7 +10,7 @@ > MODULE Marker; > > IMPORT CG, Error, Type, Variable, ProcType, ESet, Expr, AssignStmt; > -IMPORT M3ID, M3RT, Target, Module, RunTyme, Procedure, Host; > +IMPORT M3ID, M3RT, Target, Module, RunTyme, Procedure, Host, Addr; > > TYPE > Kind = { zFINALLY, zFINALLYPROC, zLOCK, zEXIT, zTRY, zTRYELSE, > @@ -231,8 +231,10 @@ > END; > END CallFinallyHandler; > > -PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label) = > +PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label; > + jumpbuf: Variable.T) = > VAR new: BOOLEAN; > + label := CG.Next_label (); > BEGIN > (* int setjmp(void* ); *) > IF (setjmp = NIL) THEN > @@ -262,13 +264,33 @@ > Target.Word.size, Target.Word.align, > Target.Word.cg_type, 0); > END; > - > - (* frame.jmpbuf = alloca(Csetjmp__Jumpbuf_size); *) > + > + (* IF jumpuf # NIL THEN > + * frame.jmpbuf = alloca(Csetjmp__Jumpbuf_size); > + * END > + *) > + > + CG.Load_nil (); > + Variable.Load (jumpbuf); > + CG.If_compare (CG.Type.Addr, CG.Cmp.NE, label, CG.Maybe); > + > CG.Start_call_direct (alloca, 0, Target.Address.cg_type); > CG.Load_int (Target.Word.cg_type, Jumpbuf_size); > CG.Pop_param (Target.Word.cg_type); > CG.Call_direct (alloca, Target.Address.cg_type); > + > + (* FUTURE: We should actually have a Variable > + * for the entire EF1, including initializing the jumpbuf > + * in it. That would save us this extra load/store, > + * and save a local variable. > + *) > + Variable.LoadLValue (jumpbuf); > + CG.Swap (); > + CG.Store_indirect (CG.Type.Addr, 0, Target.Address.size); > + Variable.Load (jumpbuf); > + > CG.Store_addr (frame, M3RT.EF1_jmpbuf); > + CG.Set_label (label); > > (* setmp(frame.jmpbuf) *) > CG.Start_call_direct (setjmp, 0, Target.Integer.cg_type); > @@ -806,5 +828,15 @@ > tos := 0; > END Reset; > > +PROCEDURE NewJumpbuf (): Variable.T = > + VAR jumpbuf: Variable.T; > + BEGIN > + jumpbuf := Variable.New (M3ID.NoID, TRUE); > + Variable.BindType (jumpbuf, Addr.T, indirect := FALSE, > + readonly := FALSE, open_array_ok := FALSE, > + needs_init := TRUE); > + RETURN jumpbuf; > + END NewJumpbuf; > + > BEGIN > END Marker. > Index: src/stmts/TryFinStmt.m3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-sys/m3front/src/stmts/TryFinStmt.m3,v > retrieving revision 1.6 > diff -u -r1.6 TryFinStmt.m3 > --- src/stmts/TryFinStmt.m3 5 Jan 2011 14:34:54 -0000 1.6 > +++ src/stmts/TryFinStmt.m3 30 Jan 2011 10:41:18 -0000 > @@ -10,6 +10,7 @@ > > IMPORT M3ID, CG, Token, Scanner, Stmt, StmtRep, Marker, Target, Type, Addr; > IMPORT RunTyme, Procedure, ProcBody, M3RT, Scope, Fmt, Host, TryStmt, Module; > +IMPORT Variable; > FROM Stmt IMPORT Outcome; > > TYPE > @@ -20,6 +21,7 @@ > viaProc : BOOLEAN; > scope : Scope.T; > handler : HandlerProc; > + jumpbuf : Variable.T := NIL; > OVERRIDES > check := Check; > compile := Compile; > @@ -63,6 +65,11 @@ > RETURN p; > END Parse; > > +PROCEDURE UsesSetjmp (p: P): BOOLEAN = > + BEGIN > + RETURN NOT (Target.Has_stack_walker OR p.viaProc); > + END UsesSetjmp; > + > PROCEDURE Check (p: P; VAR cs: Stmt.CheckState) = > VAR zz: Scope.T; oc: Stmt.Outcomes; name: INTEGER; > BEGIN > @@ -95,6 +102,9 @@ > END; > END; > TryStmt.PopHandler (); > + IF UsesSetjmp (p) THEN > + p.jumpbuf := Marker.NewJumpbuf (); > + END; > END Check; > > PROCEDURE HandlerName (uid: INTEGER): TEXT = > @@ -106,11 +116,16 @@ > END HandlerName; > > PROCEDURE Compile (p: P): Stmt.Outcomes = > + VAR usesSetjmp := FALSE; > + result: Stmt.Outcomes; > BEGIN > - IF Target.Has_stack_walker THEN RETURN Compile1 (p); > - ELSIF p.viaProc THEN RETURN Compile2 (p); > - ELSE RETURN Compile3 (p); > + IF Target.Has_stack_walker THEN result := Compile1 (p); > + ELSIF p.viaProc THEN result := Compile2 (p); > + ELSE usesSetjmp := TRUE; > + result := Compile3 (p); > END; > + <* ASSERT usesSetjmp = UsesSetjmp (p) *> > + RETURN result; > END Compile; > > PROCEDURE Compile1 (p: P): Stmt.Outcomes = > @@ -302,7 +317,9 @@ > l := CG.Next_label (3); > CG.Set_label (l, barrier := TRUE); > Marker.PushFrame (frame, M3RT.HandlerClass.Finally); > - Marker.CaptureState (frame, l+1); > + <* ASSERT UsesSetjmp (p) *> > + <* ASSERT p.jumpbuf # NIL *> > + Marker.CaptureState (frame, l+1, p.jumpbuf); > > (* compile the body *) > Marker.PushFinally (l, l+1, frame); > Index: src/stmts/TryStmt.m3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-sys/m3front/src/stmts/TryStmt.m3,v > retrieving revision 1.3 > diff -u -r1.3 TryStmt.m3 > --- src/stmts/TryStmt.m3 5 Jan 2011 14:34:54 -0000 1.3 > +++ src/stmts/TryStmt.m3 30 Jan 2011 10:41:18 -0000 > @@ -22,6 +22,7 @@ > hasElse : BOOLEAN; > elseBody : Stmt.T; > handled : ESet.T; > + jumpbuf : Variable.T := NIL; > OVERRIDES > check := Check; > compile := Compile; > @@ -153,6 +154,14 @@ > p.handles := h3; > END ReverseHandlers; > > +PROCEDURE UsesSetjmp (p: P): BOOLEAN = > + BEGIN > + IF (p.handles = NIL) AND (NOT p.hasElse) THEN > + RETURN FALSE; > + END; > + RETURN NOT Target.Has_stack_walker; > + END UsesSetjmp; > + > PROCEDURE Check (p: P; VAR cs: Stmt.CheckState) = > VAR h: Handler; handled: ESet.T; > BEGIN > @@ -182,6 +191,10 @@ > WHILE (h # NIL) DO CheckHandler (h, cs); h := h.next; END; > Stmt.TypeCheck (p.elseBody, cs); > PopHandler (); > + > + IF UsesSetjmp (p) THEN > + p.jumpbuf := Marker.NewJumpbuf (); > + END; > END Check; > > PROCEDURE CheckLabels (h: Handler; scope: Scope.T; VAR cs: Stmt.CheckState) = > @@ -245,14 +258,19 @@ > END CheckHandler; > > PROCEDURE Compile (p: P): Stmt.Outcomes = > + VAR usesSetjmp := FALSE; > + result: Stmt.Outcomes; > BEGIN > IF (p.handles = NIL) AND (NOT p.hasElse) THEN > - RETURN Stmt.Compile (p.body); > - END; > - IF Target.Has_stack_walker > - THEN RETURN Compile1 (p); > - ELSE RETURN Compile2 (p); > + result := Stmt.Compile (p.body); > + ELSIF Target.Has_stack_walker THEN > + result := Compile1 (p); > + ELSE > + usesSetjmp := TRUE; > + result := Compile2 (p); > END; > + <* ASSERT usesSetjmp = UsesSetjmp (p) *> > + RETURN result; > END Compile; > > PROCEDURE Compile1 (p: P): Stmt.Outcomes = > @@ -423,7 +441,9 @@ > END; > > (* capture the machine state *) > - Marker.CaptureState (frame, l+1); > + <* ASSERT UsesSetjmp (p) *> > + <* ASSERT p.jumpbuf # NIL *> > + Marker.CaptureState (frame, l+1, p.jumpbuf); > > (* compile the body *) > oc := Stmt.Compile (p.body); > > Thanks, > - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Jan 31 20:19:51 2011 From: jay.krell at cornell.edu (Jay K) Date: Mon, 31 Jan 2011 19:19:51 +0000 Subject: [M3devel] fixing try/setjmp in a loop? In-Reply-To: <36BA1892-1828-43A7-B706-AE87B3D98EA1@cs.purdue.edu> References: , <36BA1892-1828-43A7-B706-AE87B3D98EA1@cs.purdue.edu> Message-ID: Right..I also tried Scope.Insert, didn't seem to help. But I think I might be doing it too late. I'll try doing it in Parse instead of Check. Though I don't recall if Parse knows enough -- if it knows if CaptureState will be called. I agree/disagree about alloca up front, with the obvious reasons -- it is smaller code to alloca up front, and it somewhat more closely resembles the old pattern: IF Foo() THEN RETURN ELSE TRY FINALLY in the old way would use the stack, so we could too. But the allocation is slower/larger now (alloca possibly aligning up more than needed). Anyway, this point isn't the problem. The problem is my inability to work with m3front. I'll look at it a bit more -- i.e. as I said, moving the code to Parse. The other improvement I'd like to make: currently, if I had it working, what I'm aiming for is: struct EF1{ ... jmpbuf* jb } ef1; jmpbuf* jb = 0; jb = jb ? jb : alloca(sizeof(*jb)); ef1.jb = jb; setjmp(ef1.jb); but it'd be better to have: struct EF1{ ... jmpbuf* jb } ef1; ef1.jb = 0; ef1.jb = ef1.jb ? ef1.jb : alloca(sizeof(*jb)); setjmp(ef1.jb); ie. we don't need the extra pointer variable, the pointer in the record should suffice. [not sure where to put this in email] I tried figuring out how to determine the current vs. topmost-in-current-function scope. I'm not sure if Scope.Top is about in a function or if it is module scope, or even perhaps some outside-all-modules scope. But Scope.Insert doesn't let you specify a scope, so I kinda hoped it'd just use the correct scope. Anyway, I'll look again at introducing the Variable.New and Scope.Insert during Parse. Even if it doesn't get used, that might be ok, since there is tracking of use, and declaring it might not cause any waste if it isn't used. Thanks, - Jay From: hosking at cs.purdue.edu Date: Mon, 31 Jan 2011 12:14:09 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com Subject: Re: [M3devel] fixing try/setjmp in a loop? Hi Jay, I've not had a chance to digest this, but I do understand the problem. We need the Variable to be entered into the outermost scope of the procedure in which the TRY appears so that it will have initialization code (assigning NIL) generated for it on entry to the procedure. Then your usage of the variable should simply check for NIL and alloca if it is, as you already appear to do here. It would be possible to have the initialization code perform the alloca but then we would have an alloca for every TRY block in a procedure even if they never execute. Probably not the best plan. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 30, 2011, at 5:45 AM, Jay K wrote: I'm trying to fix the inadvertant change I made where FOR i := 1 TO 10 DO TRY FINALLY END will call alloca 10 times. I'm not familiar with the frontend, and it is hard for me to understand. It seems like it is probably very well factored, written by someone who really knew what they were doing, but it is dense, and not verbosely commented. Something like this?? But this doesn't work. What am I missing? And, we should go the next step and merge the jmpbuf pointer variable with the jmpbuf field in the EF1, right? ? 1.txt Index: src/misc/Marker.i3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.i3,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 Marker.i3 --- src/misc/Marker.i3 14 Jan 2001 13:40:31 -0000 1.1.1.1 +++ src/misc/Marker.i3 30 Jan 2011 10:41:18 -0000 @@ -64,9 +64,12 @@ PROCEDURE SetLock (acquire: BOOLEAN; var: CG.Var; offset: INTEGER); (* generate the call to acquire or release a mutex *) -PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label); +PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label; + jumpbuf: Variable.T); (* call 'setjmp' on 'frame's jmpbuf and branch to 'handler' on re-returns. *) PROCEDURE Reset (); +PROCEDURE NewJumpbuf (): Variable.T; + END Marker. Index: src/misc/Marker.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.m3,v retrieving revision 1.9 diff -u -r1.9 Marker.m3 --- src/misc/Marker.m3 13 Jan 2011 14:58:28 -0000 1.9 +++ src/misc/Marker.m3 30 Jan 2011 10:41:18 -0000 @@ -10,7 +10,7 @@ MODULE Marker; IMPORT CG, Error, Type, Variable, ProcType, ESet, Expr, AssignStmt; -IMPORT M3ID, M3RT, Target, Module, RunTyme, Procedure, Host; +IMPORT M3ID, M3RT, Target, Module, RunTyme, Procedure, Host, Addr; TYPE Kind = { zFINALLY, zFINALLYPROC, zLOCK, zEXIT, zTRY, zTRYELSE, @@ -231,8 +231,10 @@ END; END CallFinallyHandler; -PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label) = +PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label; + jumpbuf: Variable.T) = VAR new: BOOLEAN; + label := CG.Next_label (); BEGIN (* int setjmp(void* ); *) IF (setjmp = NIL) THEN @@ -262,13 +264,33 @@ Target.Word.size, Target.Word.align, Target.Word.cg_type, 0); END; - - (* frame.jmpbuf = alloca(Csetjmp__Jumpbuf_size); *) + + (* IF jumpuf # NIL THEN + * frame.jmpbuf = alloca(Csetjmp__Jumpbuf_size); + * END + *) + + CG.Load_nil (); + Variable.Load (jumpbuf); + CG.If_compare (CG.Type.Addr, CG.Cmp.NE, label, CG.Maybe); + CG.Start_call_direct (alloca, 0, Target.Address.cg_type); CG.Load_int (Target.Word.cg_type, Jumpbuf_size); CG.Pop_param (Target.Word.cg_type); CG.Call_direct (alloca, Target.Address.cg_type); + + (* FUTURE: We should actually have a Variable + * for the entire EF1, including initializing the jumpbuf + * in it. That would save us this extra load/store, + * and save a local variable. + *) + Variable.LoadLValue (jumpbuf); + CG.Swap (); + CG.Store_indirect (CG.Type.Addr, 0, Target.Address.size); + Variable.Load (jumpbuf); + CG.Store_addr (frame, M3RT.EF1_jmpbuf); + CG.Set_label (label); (* setmp(frame.jmpbuf) *) CG.Start_call_direct (setjmp, 0, Target.Integer.cg_type); @@ -806,5 +828,15 @@ tos := 0; END Reset; +PROCEDURE NewJumpbuf (): Variable.T = + VAR jumpbuf: Variable.T; + BEGIN + jumpbuf := Variable.New (M3ID.NoID, TRUE); + Variable.BindType (jumpbuf, Addr.T, indirect := FALSE, + readonly := FALSE, open_array_ok := FALSE, + needs_init := TRUE); + RETURN jumpbuf; + END NewJumpbuf; + BEGIN END Marker. Index: src/stmts/TryFinStmt.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/stmts/TryFinStmt.m3,v retrieving revision 1.6 diff -u -r1.6 TryFinStmt.m3 --- src/stmts/TryFinStmt.m3 5 Jan 2011 14:34:54 -0000 1.6 +++ src/stmts/TryFinStmt.m3 30 Jan 2011 10:41:18 -0000 @@ -10,6 +10,7 @@ IMPORT M3ID, CG, Token, Scanner, Stmt, StmtRep, Marker, Target, Type, Addr; IMPORT RunTyme, Procedure, ProcBody, M3RT, Scope, Fmt, Host, TryStmt, Module; +IMPORT Variable; FROM Stmt IMPORT Outcome; TYPE @@ -20,6 +21,7 @@ viaProc : BOOLEAN; scope : Scope.T; handler : HandlerProc; + jumpbuf : Variable.T := NIL; OVERRIDES check := Check; compile := Compile; @@ -63,6 +65,11 @@ RETURN p; END Parse; +PROCEDURE UsesSetjmp (p: P): BOOLEAN = + BEGIN + RETURN NOT (Target.Has_stack_walker OR p.viaProc); + END UsesSetjmp; + PROCEDURE Check (p: P; VAR cs: Stmt.CheckState) = VAR zz: Scope.T; oc: Stmt.Outcomes; name: INTEGER; BEGIN @@ -95,6 +102,9 @@ END; END; TryStmt.PopHandler (); + IF UsesSetjmp (p) THEN + p.jumpbuf := Marker.NewJumpbuf (); + END; END Check; PROCEDURE HandlerName (uid: INTEGER): TEXT = @@ -106,11 +116,16 @@ END HandlerName; PROCEDURE Compile (p: P): Stmt.Outcomes = + VAR usesSetjmp := FALSE; + result: Stmt.Outcomes; BEGIN - IF Target.Has_stack_walker THEN RETURN Compile1 (p); - ELSIF p.viaProc THEN RETURN Compile2 (p); - ELSE RETURN Compile3 (p); + IF Target.Has_stack_walker THEN result := Compile1 (p); + ELSIF p.viaProc THEN result := Compile2 (p); + ELSE usesSetjmp := TRUE; + result := Compile3 (p); END; + <* ASSERT usesSetjmp = UsesSetjmp (p) *> + RETURN result; END Compile; PROCEDURE Compile1 (p: P): Stmt.Outcomes = @@ -302,7 +317,9 @@ l := CG.Next_label (3); CG.Set_label (l, barrier := TRUE); Marker.PushFrame (frame, M3RT.HandlerClass.Finally); - Marker.CaptureState (frame, l+1); + <* ASSERT UsesSetjmp (p) *> + <* ASSERT p.jumpbuf # NIL *> + Marker.CaptureState (frame, l+1, p.jumpbuf); (* compile the body *) Marker.PushFinally (l, l+1, frame); Index: src/stmts/TryStmt.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/stmts/TryStmt.m3,v retrieving revision 1.3 diff -u -r1.3 TryStmt.m3 --- src/stmts/TryStmt.m3 5 Jan 2011 14:34:54 -0000 1.3 +++ src/stmts/TryStmt.m3 30 Jan 2011 10:41:18 -0000 @@ -22,6 +22,7 @@ hasElse : BOOLEAN; elseBody : Stmt.T; handled : ESet.T; + jumpbuf : Variable.T := NIL; OVERRIDES check := Check; compile := Compile; @@ -153,6 +154,14 @@ p.handles := h3; END ReverseHandlers; +PROCEDURE UsesSetjmp (p: P): BOOLEAN = + BEGIN + IF (p.handles = NIL) AND (NOT p.hasElse) THEN + RETURN FALSE; + END; + RETURN NOT Target.Has_stack_walker; + END UsesSetjmp; + PROCEDURE Check (p: P; VAR cs: Stmt.CheckState) = VAR h: Handler; handled: ESet.T; BEGIN @@ -182,6 +191,10 @@ WHILE (h # NIL) DO CheckHandler (h, cs); h := h.next; END; Stmt.TypeCheck (p.elseBody, cs); PopHandler (); + + IF UsesSetjmp (p) THEN + p.jumpbuf := Marker.NewJumpbuf (); + END; END Check; PROCEDURE CheckLabels (h: Handler; scope: Scope.T; VAR cs: Stmt.CheckState) = @@ -245,14 +258,19 @@ END CheckHandler; PROCEDURE Compile (p: P): Stmt.Outcomes = + VAR usesSetjmp := FALSE; + result: Stmt.Outcomes; BEGIN IF (p.handles = NIL) AND (NOT p.hasElse) THEN - RETURN Stmt.Compile (p.body); - END; - IF Target.Has_stack_walker - THEN RETURN Compile1 (p); - ELSE RETURN Compile2 (p); + result := Stmt.Compile (p.body); + ELSIF Target.Has_stack_walker THEN + result := Compile1 (p); + ELSE + usesSetjmp := TRUE; + result := Compile2 (p); END; + <* ASSERT usesSetjmp = UsesSetjmp (p) *> + RETURN result; END Compile; PROCEDURE Compile1 (p: P): Stmt.Outcomes = @@ -423,7 +441,9 @@ END; (* capture the machine state *) - Marker.CaptureState (frame, l+1); + <* ASSERT UsesSetjmp (p) *> + <* ASSERT p.jumpbuf # NIL *> + Marker.CaptureState (frame, l+1, p.jumpbuf); (* compile the body *) oc := Stmt.Compile (p.body); Thanks, - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Jan 31 21:26:20 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 31 Jan 2011 15:26:20 -0500 Subject: [M3devel] fixing try/setjmp in a loop? In-Reply-To: References: , <36BA1892-1828-43A7-B706-AE87B3D98EA1@cs.purdue.edu> Message-ID: I think we need to have a way to get the scope of the containing procedure. TryStmt.Parse is not the right place. If I get some time soon I can take a look at this. On Jan 31, 2011, at 2:19 PM, Jay K wrote: > Right..I also tried Scope.Insert, didn't seem to help. > > But I think I might be doing it too late. I'll try doing it in Parse instead of Check. > Though I don't recall if Parse knows enough -- if it knows if CaptureState will be called. > I agree/disagree about alloca up front, with the obvious reasons -- it is smaller code to alloca up front, and it somewhat > more closely resembles the old pattern: > > IF Foo() THEN > RETURN > ELSE TRY FINALLY > > in the old way would use the stack, so we could too. > But the allocation is slower/larger now (alloca possibly aligning up more than needed). > Anyway, this point isn't the problem. The problem is my inability to work with m3front. > I'll look at it a bit more -- i.e. as I said, moving the code to Parse. > > The other improvement I'd like to make: > > currently, if I had it working, what I'm aiming for is: > struct EF1{ ... jmpbuf* jb } ef1; > jmpbuf* jb = 0; > > jb = jb ? jb : alloca(sizeof(*jb)); > ef1.jb = jb; > setjmp(ef1.jb); > > but it'd be better to have: > > struct EF1{ ... jmpbuf* jb } ef1; > ef1.jb = 0; > > ef1.jb = ef1.jb ? ef1.jb : alloca(sizeof(*jb)); > setjmp(ef1.jb); > > > ie. we don't need the extra pointer variable, the pointer in the record should suffice. > > > [not sure where to put this in email] > I tried figuring out how to determine the current vs. topmost-in-current-function scope. > I'm not sure if Scope.Top is about in a function or if it is module scope, or even perhaps > some outside-all-modules scope. But Scope.Insert doesn't let you specify a scope, > so I kinda hoped it'd just use the correct scope. > > > Anyway, I'll look again at introducing the Variable.New and Scope.Insert during Parse. > Even if it doesn't get used, that might be ok, since there is tracking of use, and > declaring it might not cause any waste if it isn't used. > > > Thanks, > - Jay > > > From: hosking at cs.purdue.edu > Date: Mon, 31 Jan 2011 12:14:09 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] fixing try/setjmp in a loop? > > Hi Jay, > > I've not had a chance to digest this, but I do understand the problem. We need the Variable to be entered into the outermost scope of the procedure in which the TRY appears so that it will have initialization code (assigning NIL) generated for it on entry to the procedure. Then your usage of the variable should simply check for NIL and alloca if it is, as you already appear to do here. It would be possible to have the initialization code perform the alloca but then we would have an alloca for every TRY block in a procedure even if they never execute. Probably not the best plan. > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 | Mobile +1 765 427 5484 > > > > > On Jan 30, 2011, at 5:45 AM, Jay K wrote: > > I'm trying to fix the inadvertant change I made where > FOR i := 1 TO 10 DO TRY FINALLY END > > will call alloca 10 times. > > I'm not familiar with the frontend, and it is hard for me to understand. > It seems like it is probably very well factored, written by someone who really knew what they were doing, > but it is dense, and not verbosely commented. > > Something like this?? But this doesn't work. What am I missing? > And, we should go the next step and merge the jmpbuf pointer variable with the jmpbuf field in the EF1, right? > > > ? 1.txt > Index: src/misc/Marker.i3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.i3,v > retrieving revision 1.1.1.1 > diff -u -r1.1.1.1 Marker.i3 > --- src/misc/Marker.i3 14 Jan 2001 13:40:31 -0000 1.1.1.1 > +++ src/misc/Marker.i3 30 Jan 2011 10:41:18 -0000 > @@ -64,9 +64,12 @@ > PROCEDURE SetLock (acquire: BOOLEAN; var: CG.Var; offset: INTEGER); > (* generate the call to acquire or release a mutex *) > > -PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label); > +PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label; > + jumpbuf: Variable.T); > (* call 'setjmp' on 'frame's jmpbuf and branch to 'handler' on re-returns. *) > > PROCEDURE Reset (); > > +PROCEDURE NewJumpbuf (): Variable.T; > + > END Marker. > Index: src/misc/Marker.m3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.m3,v > retrieving revision 1.9 > diff -u -r1.9 Marker.m3 > --- src/misc/Marker.m3 13 Jan 2011 14:58:28 -0000 1.9 > +++ src/misc/Marker.m3 30 Jan 2011 10:41:18 -0000 > @@ -10,7 +10,7 @@ > MODULE Marker; > > IMPORT CG, Error, Type, Variable, ProcType, ESet, Expr, AssignStmt; > -IMPORT M3ID, M3RT, Target, Module, RunTyme, Procedure, Host; > +IMPORT M3ID, M3RT, Target, Module, RunTyme, Procedure, Host, Addr; > > TYPE > Kind = { zFINALLY, zFINALLYPROC, zLOCK, zEXIT, zTRY, zTRYELSE, > @@ -231,8 +231,10 @@ > END; > END CallFinallyHandler; > > -PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label) = > +PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label; > + jumpbuf: Variable.T) = > VAR new: BOOLEAN; > + label := CG.Next_label (); > BEGIN > (* int setjmp(void* ); *) > IF (setjmp = NIL) THEN > @@ -262,13 +264,33 @@ > Target.Word.size, Target.Word.align, > Target.Word.cg_type, 0); > END; > - > - (* frame.jmpbuf = alloca(Csetjmp__Jumpbuf_size); *) > + > + (* IF jumpuf # NIL THEN > + * frame.jmpbuf = alloca(Csetjmp__Jumpbuf_size); > + * END > + *) > + > + CG.Load_nil (); > + Variable.Load (jumpbuf); > + CG.If_compare (CG.Type.Addr, CG.Cmp.NE, label, CG.Maybe); > + > CG.Start_call_direct (alloca, 0, Target.Address.cg_type); > CG.Load_int (Target.Word.cg_type, Jumpbuf_size); > CG.Pop_param (Target.Word.cg_type); > CG.Call_direct (alloca, Target.Address.cg_type); > + > + (* FUTURE: We should actually have a Variable > + * for the entire EF1, including initializing the jumpbuf > + * in it. That would save us this extra load/store, > + * and save a local variable. > + *) > + Variable.LoadLValue (jumpbuf); > + CG.Swap (); > + CG.Store_indirect (CG.Type.Addr, 0, Target.Address.size); > + Variable.Load (jumpbuf); > + > CG.Store_addr (frame, M3RT.EF1_jmpbuf); > + CG.Set_label (label); > > (* setmp(frame.jmpbuf) *) > CG.Start_call_direct (setjmp, 0, Target.Integer.cg_type); > @@ -806,5 +828,15 @@ > tos := 0; > END Reset; > > +PROCEDURE NewJumpbuf (): Variable.T = > + VAR jumpbuf: Variable.T; > + BEGIN > + jumpbuf := Variable.New (M3ID.NoID, TRUE); > + Variable.BindType (jumpbuf, Addr.T, indirect := FALSE, > + readonly := FALSE, open_array_ok := FALSE, > + needs_init := TRUE); > + RETURN jumpbuf; > + END NewJumpbuf; > + > BEGIN > END Marker. > Index: src/stmts/TryFinStmt.m3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-sys/m3front/src/stmts/TryFinStmt.m3,v > retrieving revision 1.6 > diff -u -r1.6 TryFinStmt.m3 > --- src/stmts/TryFinStmt.m3 5 Jan 2011 14:34:54 -0000 1.6 > +++ src/stmts/TryFinStmt.m3 30 Jan 2011 10:41:18 -0000 > @@ -10,6 +10,7 @@ > > IMPORT M3ID, CG, Token, Scanner, Stmt, StmtRep, Marker, Target, Type, Addr; > IMPORT RunTyme, Procedure, ProcBody, M3RT, Scope, Fmt, Host, TryStmt, Module; > +IMPORT Variable; > FROM Stmt IMPORT Outcome; > > TYPE > @@ -20,6 +21,7 @@ > viaProc : BOOLEAN; > scope : Scope.T; > handler : HandlerProc; > + jumpbuf : Variable.T := NIL; > OVERRIDES > check := Check; > compile := Compile; > @@ -63,6 +65,11 @@ > RETURN p; > END Parse; > > +PROCEDURE UsesSetjmp (p: P): BOOLEAN = > + BEGIN > + RETURN NOT (Target.Has_stack_walker OR p.viaProc); > + END UsesSetjmp; > + > PROCEDURE Check (p: P; VAR cs: Stmt.CheckState) = > VAR zz: Scope.T; oc: Stmt.Outcomes; name: INTEGER; > BEGIN > @@ -95,6 +102,9 @@ > END; > END; > TryStmt.PopHandler (); > + IF UsesSetjmp (p) THEN > + p.jumpbuf := Marker.NewJumpbuf (); > + END; > END Check; > > PROCEDURE HandlerName (uid: INTEGER): TEXT = > @@ -106,11 +116,16 @@ > END HandlerName; > > PROCEDURE Compile (p: P): Stmt.Outcomes = > + VAR usesSetjmp := FALSE; > + result: Stmt.Outcomes; > BEGIN > - IF Target.Has_stack_walker THEN RETURN Compile1 (p); > - ELSIF p.viaProc THEN RETURN Compile2 (p); > - ELSE RETURN Compile3 (p); > + IF Target.Has_stack_walker THEN result := Compile1 (p); > + ELSIF p.viaProc THEN result := Compile2 (p); > + ELSE usesSetjmp := TRUE; > + result := Compile3 (p); > END; > + <* ASSERT usesSetjmp = UsesSetjmp (p) *> > + RETURN result; > END Compile; > > PROCEDURE Compile1 (p: P): Stmt.Outcomes = > @@ -302,7 +317,9 @@ > l := CG.Next_label (3); > CG.Set_label (l, barrier := TRUE); > Marker.PushFrame (frame, M3RT.HandlerClass.Finally); > - Marker.CaptureState (frame, l+1); > + <* ASSERT UsesSetjmp (p) *> > + <* ASSERT p.jumpbuf # NIL *> > + Marker.CaptureState (frame, l+1, p.jumpbuf); > > (* compile the body *) > Marker.PushFinally (l, l+1, frame); > Index: src/stmts/TryStmt.m3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-sys/m3front/src/stmts/TryStmt.m3,v > retrieving revision 1.3 > diff -u -r1.3 TryStmt.m3 > --- src/stmts/TryStmt.m3 5 Jan 2011 14:34:54 -0000 1.3 > +++ src/stmts/TryStmt.m3 30 Jan 2011 10:41:18 -0000 > @@ -22,6 +22,7 @@ > hasElse : BOOLEAN; > elseBody : Stmt.T; > handled : ESet.T; > + jumpbuf : Variable.T := NIL; > OVERRIDES > check := Check; > compile := Compile; > @@ -153,6 +154,14 @@ > p.handles := h3; > END ReverseHandlers; > > +PROCEDURE UsesSetjmp (p: P): BOOLEAN = > + BEGIN > + IF (p.handles = NIL) AND (NOT p.hasElse) THEN > + RETURN FALSE; > + END; > + RETURN NOT Target.Has_stack_walker; > + END UsesSetjmp; > + > PROCEDURE Check (p: P; VAR cs: Stmt.CheckState) = > VAR h: Handler; handled: ESet.T; > BEGIN > @@ -182,6 +191,10 @@ > WHILE (h # NIL) DO CheckHandler (h, cs); h := h.next; END; > Stmt.TypeCheck (p.elseBody, cs); > PopHandler (); > + > + IF UsesSetjmp (p) THEN > + p.jumpbuf := Marker.NewJumpbuf (); > + END; > END Check; > > PROCEDURE CheckLabels (h: Handler; scope: Scope.T; VAR cs: Stmt.CheckState) = > @@ -245,14 +258,19 @@ > END CheckHandler; > > PROCEDURE Compile (p: P): Stmt.Outcomes = > + VAR usesSetjmp := FALSE; > + result: Stmt.Outcomes; > BEGIN > IF (p.handles = NIL) AND (NOT p.hasElse) THEN > - RETURN Stmt.Compile (p.body); > - END; > - IF Target.Has_stack_walker > - THEN RETURN Compile1 (p); > - ELSE RETURN Compile2 (p); > + result := Stmt.Compile (p.body); > + ELSIF Target.Has_stack_walker THEN > + result := Compile1 (p); > + ELSE > + usesSetjmp := TRUE; > + result := Compile2 (p); > END; > + <* ASSERT usesSetjmp = UsesSetjmp (p) *> > + RETURN result; > END Compile; > > PROCEDURE Compile1 (p: P): Stmt.Outcomes = > @@ -423,7 +441,9 @@ > END; > > (* capture the machine state *) > - Marker.CaptureState (frame, l+1); > + <* ASSERT UsesSetjmp (p) *> > + <* ASSERT p.jumpbuf # NIL *> > + Marker.CaptureState (frame, l+1, p.jumpbuf); > > (* compile the body *) > oc := Stmt.Compile (p.body); > > Thanks, > - Jay > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Jan 1 04:06:34 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 1 Jan 2011 03:06:34 +0000 Subject: [M3devel] emac In-Reply-To: <20101231222650.GB2428@topoi.pooq.com> References: <20101231222650.GB2428@topoi.pooq.com> Message-ID: Olaf already has provided a PowerPC Mac running I think MacOSX 10.3. Which provides most of any value for any PowerPC Mac. What is "missing" -- hypothetically in some more grandiose but possibly wasteful world -- might include: running older versions of MacOS X (10.0, 10.1, 10.2) running newer versions of MacOS X (10.4, 10.5) personally I haven't noticed much change since 10.2, except for dropping the 68K support circa 10.5, adding x86 circa 10.4, dropping PowerPC circa 10.6. running MacOS 7/8/9/Classic -- ie: pre-MacOS X, either in the "Classic emulator", or "directly", as well as the 68K emulator therein. (For anyone interested in a 68K port though, NetBSD, OpenBSD, Linux are probably drastically easier (OpenBSD dropped support recently, Debian dropped support long ago, NetBSD still supports). I'd be willing to give the Posix systems a shot, given ssh access.) My ongoing hardware clearance has not gotten to any laptops but at some point I'll probably offer up some free/cheap PowerPC Mac laptops, if anyone here wants to spend the time/space/energy on them. Ultimately..broken record..if we output fairly portable C++, the cross product work and testing can dramatically go away. YOu know -- let's say I have "hello, world", I don't bother porting it or testing it on any systems but the one I have. Most software is much closer to that than we are currently. I'd like to get close to that. - Jay ---------------------------------------- > Date: Fri, 31 Dec 2010 17:26:50 -0500 > From: hendrik at topoi.pooq.com > To: m3devel at elegosoft.com > Subject: [M3devel] emac > > I may be acquiring an emac, which is a small (but heavy -- 50 pounds) > power-PC-based Apple Mac, if I've been informed correctly, running a > somewhat obsolete OS. If I end up with it, would there be anything I > can usefully test on it that's not being adequately tested already? > > -- hendrik > From jay.krell at cornell.edu Sat Jan 1 04:17:12 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 1 Jan 2011 03:17:12 +0000 Subject: [M3devel] emac In-Reply-To: References: <20101231222650.GB2428@topoi.pooq.com>, Message-ID: oh: ps, run Linux on it? Please? Replacing my PowerPC/Linux Hudson node? That would be good. It is easy enough. I've been using Debian across various architectures: x86, amd64, hppa, alpha, ia64, powerpc. (though Alpha support is going away; might be good to try Gentoo again...) Support for NetBSD/powerpc and OpenBSD/powerpc should be easy enough. I had at least one of those working. But there is no Java for these, so no Hudson. Anyone that wants, one person, I can ship out a PowerPC Mac laptop to take over Linux/powerpc for Hudson. (Ditto for MacOSX if Olaf doesn't want to keep his going.) - Jay ---------------------------------------- > From: jay.krell at cornell.edu > To: hendrik at topoi.pooq.com; m3devel at elegosoft.com > Date: Sat, 1 Jan 2011 03:06:34 +0000 > Subject: Re: [M3devel] emac > > > Olaf already has provided a PowerPC Mac running I think MacOSX 10.3. > Which provides most of any value for any PowerPC Mac. > > > > > What is "missing" -- hypothetically in some more grandiose but possibly wasteful world -- might include: > running older versions of MacOS X (10.0, 10.1, 10.2) > running newer versions of MacOS X (10.4, 10.5) > personally I haven't noticed much change since 10.2, except for dropping the 68K support circa 10.5, adding x86 circa 10.4, dropping PowerPC circa 10.6. > running MacOS 7/8/9/Classic -- ie: pre-MacOS X, either in the "Classic emulator", or "directly", as well as the 68K emulator therein. > (For anyone interested in a 68K port though, NetBSD, OpenBSD, Linux are probably drastically easier (OpenBSD dropped support recently, Debian dropped support long ago, NetBSD still supports). I'd be willing to give the Posix systems a shot, given ssh access.) > > > > My ongoing hardware clearance has not gotten to any laptops but at some point I'll probably offer up some free/cheap PowerPC Mac laptops, if anyone here wants to spend the time/space/energy on them. > > > > Ultimately..broken record..if we output fairly portable C++, the cross product work and testing can dramatically go away. YOu know -- let's say I have "hello, world", I don't bother porting it or testing it on any systems but the one I have. Most software is much closer to that than we are currently. I'd like to get close to that. > > > - Jay > > > ---------------------------------------- > > Date: Fri, 31 Dec 2010 17:26:50 -0500 > > From: hendrik at topoi.pooq.com > > To: m3devel at elegosoft.com > > Subject: [M3devel] emac > > > > I may be acquiring an emac, which is a small (but heavy -- 50 pounds) > > power-PC-based Apple Mac, if I've been informed correctly, running a > > somewhat obsolete OS. If I end up with it, would there be anything I > > can usefully test on it that's not being adequately tested already? > > > > -- hendrik > > From jay.krell at cornell.edu Sun Jan 2 09:29:05 2011 From: jay.krell at cornell.edu (Jay K) Date: Sun, 2 Jan 2011 08:29:05 +0000 Subject: [M3devel] how to use gcc exception/unwind support? Message-ID: Tony et. al. do you have much idea already in mind of what using gcc exception and/or unwind support would look like? In particular, do you think we could/should/would use TRY_CATCH_EXPR, TRY_FINALLY_EXPR? I'm not sure (see below). Do you understand the difference between WITH_CLEANUP_EXPR and TRY_FINALLY_EXPR? I don't. Maybe WITH_CLEANUP_EXPR captures a common case is very similar? Regarding TRY_CATCH_EXPR, TRY_FINALLY_EXPR, they sound very promising. But does CATCH_EXPR provide the right construct for deciding to catch or not, and passing the exception properly to the handler? Or should we use RTExStack nearly or completely unchanged, but: 1) have it call libgcc/libunwind, via interface RTStack. 2) in the backend mimic TRY_CATCH_EXPR, TRY_FINALLY_EXPR's affects/pessimisations on the control flow graph and such? Related question is how to model throwing an exception in the backend. This I had looked at even less (e.g. trying to understand how g++ uses this stuff) but is clearly important. g++ clearly sometimes calls __cxa_throw, not clear if it always does. Not clear it does anything else in terms of informing the backend. It looks like not. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Jan 3 00:19:36 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 2 Jan 2011 18:19:36 -0500 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: References: Message-ID: My take was that we would use the unwind support with RTExStack along with recording the flow constraints for the IR. They were never that tricky. On Jan 2, 2011, at 3:29 AM, Jay K wrote: > Tony et. al. do you have much idea already in mind of what using gcc exception and/or unwind support would look like? > > > In particular, do you think we could/should/would use > TRY_CATCH_EXPR, TRY_FINALLY_EXPR? I'm not sure (see below). > > > Do you understand the difference between WITH_CLEANUP_EXPR and TRY_FINALLY_EXPR? > I don't. Maybe WITH_CLEANUP_EXPR captures a common case is very similar? > > > Regarding TRY_CATCH_EXPR, TRY_FINALLY_EXPR, they sound very promising. > But does CATCH_EXPR provide the right construct for deciding to catch or not, > and passing the exception properly to the handler? > > > Or should we use RTExStack nearly or completely unchanged, but: > 1) have it call libgcc/libunwind, via interface RTStack. > 2) in the backend mimic TRY_CATCH_EXPR, TRY_FINALLY_EXPR's affects/pessimisations > on the control flow graph and such? > > > Related question is how to model throwing an exception in the backend. > This I had looked at even less (e.g. trying to understand how g++ uses this stuff) but is clearly important. > g++ clearly sometimes calls __cxa_throw, not clear if it always does. > Not clear it does anything else in terms of informing the backend. It looks like not. > > > - Jay > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Jan 3 02:57:42 2011 From: jay.krell at cornell.edu (Jay K) Date: Mon, 3 Jan 2011 01:57:42 +0000 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: References: , Message-ID: I understand partly and agree as far as I understand. For example..I think it is important, interesting, and subtle that C++ throw resolves to a function call generated by the C++ front end, with the implication that the backend has a certain ignorance as to how it works, with the additional implication that we can (continue to) call our own function to throw/raise an exception. Where I get confused however is esp. resolving "TRY_CATCH", that the backend is given a list of handlers. What is a "handler"? And then..there is also a list of types..but ah, I think I start to see. I think the list of types are meaningless in tree/gimple, only a C++ thing, and the handlers are probably merely pieces of code to connect control flow edges too? I have another idea though...I was thinking...if this is true, if it is just about flow graph... I think there might be two useful intermediate steps toward implementing this. The first implementation would not change the compiler at all, just write the new RTException.m3, and only work with no optimizations. Get this to work. The second implementation would sprinkle volatile on all locals in functions that have "try". Or heck, just as an *experiment* put volatile everywhere like it was before, enable -O3, see that that seems to work. Neither of those two versions would likely be commited, except maybe requiring non-default compiler switches. And then tell the backend about the control flow via the eh stuff in tree.def, and enable optimizations. Make some sense? The first step is at least a good necessary/easy experiment I think. Not so easy, but necessary anyway. Furthermore..give me a bit more time to consider all this, instead of going back to 4.3? Granted, SPARC32_SOLARIS might not ever get this. You know -- what is the availability of the gcc unwinder on Solaris? Surely it is there if you use gcc. But if you use cc? Then to wonder, how does Sun CC work? But I think if we had this working on Darwin, and then Linux, and then FreeBSD, and then OpenBSD and NetBSD, maybe Cygwin, it wouldn't be so awful for Solaris, et. al. to still use setjmp. NT386 could easily remain with setjmp a while too. - Jay From: hosking at cs.purdue.edu Date: Sun, 2 Jan 2011 18:19:36 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com Subject: Re: [M3devel] how to use gcc exception/unwind support? My take was that we would use the unwind support with RTExStack along with recording the flow constraints for the IR. They were never that tricky. On Jan 2, 2011, at 3:29 AM, Jay K wrote:Tony et. al. do you have much idea already in mind of what using gcc exception and/or unwind support would look like? In particular, do you think we could/should/would use TRY_CATCH_EXPR, TRY_FINALLY_EXPR? I'm not sure (see below). Do you understand the difference between WITH_CLEANUP_EXPR and TRY_FINALLY_EXPR? I don't. Maybe WITH_CLEANUP_EXPR captures a common case is very similar? Regarding TRY_CATCH_EXPR, TRY_FINALLY_EXPR, they sound very promising. But does CATCH_EXPR provide the right construct for deciding to catch or not, and passing the exception properly to the handler? Or should we use RTExStack nearly or completely unchanged, but: 1) have it call libgcc/libunwind, via interface RTStack. 2) in the backend mimic TRY_CATCH_EXPR, TRY_FINALLY_EXPR's affects/pessimisations on the control flow graph and such? Related question is how to model throwing an exception in the backend. This I had looked at even less (e.g. trying to understand how g++ uses this stuff) but is clearly important. g++ clearly sometimes calls __cxa_throw, not clear if it always does. Not clear it does anything else in terms of informing the backend. It looks like not. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Jan 3 22:33:53 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 3 Jan 2011 16:33:53 -0500 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: References: , Message-ID: I don't understand why we can't continue to use the same approach we had with gcc 4.3, except utilizing the gcc unwind mechanisms. On Jan 2, 2011, at 8:57 PM, Jay K wrote: > I understand partly and agree as far as I understand. > > > For example..I think it is important, interesting, and subtle that C++ throw resolves to a function call generated > by the C++ front end, with the implication that the backend has a certain ignorance as to how it works, > with the additional implication that we can (continue to) call our own function to throw/raise an exception. > > > Where I get confused however is esp. resolving "TRY_CATCH", that the backend is given > a list of handlers. What is a "handler"? > > > And then..there is also a list of types..but ah, I think I start to see. > I think the list of types are meaningless in tree/gimple, only a C++ thing, > and the handlers are probably merely pieces of code to connect control flow edges too? > > > I have another idea though...I was thinking...if this is true, if it is just about flow graph... > I think there might be two useful intermediate steps toward implementing this. > > > The first implementation would not change the compiler at all, just write the new RTException.m3, and > only work with no optimizations. Get this to work. > > > The second implementation would sprinkle volatile on all locals in functions > that have "try". Or heck, just as an *experiment* put volatile everywhere like > it was before, enable -O3, see that that seems to work. > > > Neither of those two versions would likely be commited, except maybe requiring non-default compiler switches. > > > And then tell the backend about the control flow via the eh stuff in tree.def, and enable optimizations. > > > Make some sense? > > > The first step is at least a good necessary/easy experiment I think. > Not so easy, but necessary anyway. > > > Furthermore..give me a bit more time to consider all this, instead of going > back to 4.3? > > > Granted, SPARC32_SOLARIS might not ever get this. > You know -- what is the availability of the gcc unwinder on Solaris? But we do use gcc as the M3 backend on Sparc, so not a problem. > Surely it is there if you use gcc. But if you use cc? > > > Then to wonder, how does Sun CC work? > > > But I think if we had this working on Darwin, and then Linux, and then FreeBSD, > and then OpenBSD and NetBSD, maybe Cygwin, it wouldn't be so awful for Solaris, et. al. to still use setjmp. > NT386 could easily remain with setjmp a while too. > > > - Jay > > > > From: hosking at cs.purdue.edu > Date: Sun, 2 Jan 2011 18:19:36 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] how to use gcc exception/unwind support? > > My take was that we would use the unwind support with RTExStack along with recording the flow constraints for the IR. They were never that tricky. > > On Jan 2, 2011, at 3:29 AM, Jay K wrote: > > Tony et. al. do you have much idea already in mind of what using gcc exception and/or unwind support would look like? > > > In particular, do you think we could/should/would use > TRY_CATCH_EXPR, TRY_FINALLY_EXPR? I'm not sure (see below). > > > Do you understand the difference between WITH_CLEANUP_EXPR and TRY_FINALLY_EXPR? > I don't. Maybe WITH_CLEANUP_EXPR captures a common case is very similar? > > > Regarding TRY_CATCH_EXPR, TRY_FINALLY_EXPR, they sound very promising. > But does CATCH_EXPR provide the right construct for deciding to catch or not, > and passing the exception properly to the handler? > > > Or should we use RTExStack nearly or completely unchanged, but: > 1) have it call libgcc/libunwind, via interface RTStack. > 2) in the backend mimic TRY_CATCH_EXPR, TRY_FINALLY_EXPR's affects/pessimisations > on the control flow graph and such? > > > Related question is how to model throwing an exception in the backend. > This I had looked at even less (e.g. trying to understand how g++ uses this stuff) but is clearly important. > g++ clearly sometimes calls __cxa_throw, not clear if it always does. > Not clear it does anything else in terms of informing the backend. It looks like not. > > > - Jay > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Tue Jan 4 00:57:05 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Mon, 3 Jan 2011 23:57:05 +0000 (GMT) Subject: [M3devel] elegosoft.com working? Message-ID: <9724.73584.qm@web29715.mail.ird.yahoo.com> Hi all: I'm may be wrong but it seems elegosoft.com web service takes longer than usual to retrieve data, though the server respponds ICMP requests quickly: test at fbd-desktop:~/Documentos/books/MedicineCompunetics$ ping elegosoft.com PING elegosoft.com (88.198.39.217) 56(84) bytes of data. 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=1 ttl=60 time=207 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=2 ttl=60 time=207 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=3 ttl=60 time=209 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=4 ttl=60 time=209 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=5 ttl=60 time=206 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=6 ttl=60 time=209 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=7 ttl=60 time=206 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=8 ttl=60 time=206 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=9 ttl=60 time=209 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=10 ttl=60 time=208 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=11 ttl=60 time=210 ms --- elegosoft.com ping statistics --- 11 packets transmitted, 11 received, 0% packet loss, time 10003ms rtt min/avg/max/mdev = 206.190/208.306/210.390/1.533 ms like if it was full load or is not running at all from here. Can you check for us please? the ports seem to be open, maybe that services are just too much loaded? Interesting ports on birch.elego.de (88.198.39.217): Not shown: 1703 filtered ports PORT STATE SERVICE 20/tcp closed ftp-data 21/tcp open ftp 22/tcp open ssh 25/tcp open smtp 53/tcp open domain 80/tcp open http 443/tcp open https 2401/tcp open cvspserver 5999/tcp open ncd-conf 8080/tcp open http-proxy 9103/tcp closed jetdirect Read data files from: /usr/share/nmap Nmap done: 1 IP address (1 host up) scanned in 34.914 seconds Raw packets sent: 3423 (150.592KB) | Rcvd: 17 (810B) Thanks in advance From jay.krell at cornell.edu Tue Jan 4 12:09:16 2011 From: jay.krell at cornell.edu (Jay K) Date: Tue, 4 Jan 2011 11:09:16 +0000 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: References: , , , , Message-ID: Tony, Are you suggesting we don't use __Unwind_RaiseException and don't provide a "personality routine" but just use, like, unw_step? e.g. http://www.nongnu.org/libunwind/man/libunwind%283%29.html vs. http://www.codesourcery.com/public/cxx-abi/abi-eh.html#base-context Problem is...unw_step appears not in the base API in libgcc. It appears we really should use __Unwind_RaiseException and a personality routine. As well, experience with gcc 4.5 + Solaris/sparc, suggests there are problems, but we'll see. Problems I think solved by using the gcc tree codes to inform of it where try/finally (lock) and try/catch are. Again, our sparc32 stack walker doesn't even work with unoptimized gcc 4.5 code, which I do find surprising. > You know -- what is the availability of the gcc unwinder on Solaris? > But we do use gcc as the M3 backend on Sparc, so not a problem. The gcc unwinder is usually in libgcc/libgcc_s, which the gcc driver arranges to link in. It might be elsewhere on Darwin, but still, it is there at a low level and the gcc driver gives it to you. We don't use the gcc driver. Solaris does ship with gcc these days, so maybe just to look at what it does.. - Jay From: hosking at cs.purdue.edu Date: Mon, 3 Jan 2011 16:33:53 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com Subject: Re: [M3devel] how to use gcc exception/unwind support? I don't understand why we can't continue to use the same approach we had with gcc 4.3, except utilizing the gcc unwind mechanisms. On Jan 2, 2011, at 8:57 PM, Jay K wrote:I understand partly and agree as far as I understand. For example..I think it is important, interesting, and subtle that C++ throw resolves to a function call generated by the C++ front end, with the implication that the backend has a certain ignorance as to how it works, with the additional implication that we can (continue to) call our own function to throw/raise an exception. Where I get confused however is esp. resolving "TRY_CATCH", that the backend is given a list of handlers. What is a "handler"? And then..there is also a list of types..but ah, I think I start to see. I think the list of types are meaningless in tree/gimple, only a C++ thing, and the handlers are probably merely pieces of code to connect control flow edges too? I have another idea though...I was thinking...if this is true, if it is just about flow graph... I think there might be two useful intermediate steps toward implementing this. The first implementation would not change the compiler at all, just write the new RTException.m3, and only work with no optimizations. Get this to work. The second implementation would sprinkle volatile on all locals in functions that have "try". Or heck, just as an *experiment* put volatile everywhere like it was before, enable -O3, see that that seems to work. Neither of those two versions would likely be commited, except maybe requiring non-default compiler switches. And then tell the backend about the control flow via the eh stuff in tree.def, and enable optimizations. Make some sense? The first step is at least a good necessary/easy experiment I think. Not so easy, but necessary anyway. Furthermore..give me a bit more time to consider all this, instead of going back to 4.3? Granted, SPARC32_SOLARIS might not ever get this. You know -- what is the availability of the gcc unwinder on Solaris? But we do use gcc as the M3 backend on Sparc, so not a problem. Surely it is there if you use gcc. But if you use cc? Then to wonder, how does Sun CC work? But I think if we had this working on Darwin, and then Linux, and then FreeBSD, and then OpenBSD and NetBSD, maybe Cygwin, it wouldn't be so awful for Solaris, et. al. to still use setjmp. NT386 could easily remain with setjmp a while too. - Jay From: hosking at cs.purdue.edu Date: Sun, 2 Jan 2011 18:19:36 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com Subject: Re: [M3devel] how to use gcc exception/unwind support? My take was that we would use the unwind support with RTExStack along with recording the flow constraints for the IR. They were never that tricky. On Jan 2, 2011, at 3:29 AM, Jay K wrote:Tony et. al. do you have much idea already in mind of what using gcc exception and/or unwind support would look like? In particular, do you think we could/should/would use TRY_CATCH_EXPR, TRY_FINALLY_EXPR? I'm not sure (see below). Do you understand the difference between WITH_CLEANUP_EXPR and TRY_FINALLY_EXPR? I don't. Maybe WITH_CLEANUP_EXPR captures a common case is very similar? Regarding TRY_CATCH_EXPR, TRY_FINALLY_EXPR, they sound very promising. But does CATCH_EXPR provide the right construct for deciding to catch or not, and passing the exception properly to the handler? Or should we use RTExStack nearly or completely unchanged, but: 1) have it call libgcc/libunwind, via interface RTStack. 2) in the backend mimic TRY_CATCH_EXPR, TRY_FINALLY_EXPR's affects/pessimisations on the control flow graph and such? Related question is how to model throwing an exception in the backend. This I had looked at even less (e.g. trying to understand how g++ uses this stuff) but is clearly important. g++ clearly sometimes calls __cxa_throw, not clear if it always does. Not clear it does anything else in terms of informing the backend. It looks like not. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Tue Jan 4 15:05:52 2011 From: wagner at elegosoft.com (Olaf Wagner) Date: Tue, 04 Jan 2011 15:05:52 +0100 Subject: [M3devel] elegosoft.com working? In-Reply-To: <9724.73584.qm@web29715.mail.ird.yahoo.com> References: <9724.73584.qm@web29715.mail.ird.yahoo.com> Message-ID: <20110104150552.0v50fkju0wowggw0@mail.elegosoft.com> Quoting "Daniel Alejandro Benavides D." : > Hi all: > I'm may be wrong but it seems elegosoft.com web service takes longer > than usual to retrieve data, though the server respponds ICMP > requests quickly: [...] > 11 packets transmitted, 11 received, 0% packet loss, time 10003ms > rtt min/avg/max/mdev = 206.190/208.306/210.390/1.533 ms > > like if it was full load or is not running at all from here. Can you > check for us please? the ports seem to be open, maybe that services > are just too much loaded? There are still load issues due to concurrent CVS checkouts and backup processes on birch now and then with which the I/O system cannot cope, though they have been much reduced. In these cases all you can do is wait some time, as repeating the requests will only make matters worse. A final solution (the complete migration of web services to a new machine) is still pending. Olaf -- Olaf Wagner -- elego Software Solutions GmbH Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 From dabenavidesd at yahoo.es Tue Jan 4 19:55:01 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Tue, 4 Jan 2011 18:55:01 +0000 (GMT) Subject: [M3devel] elegosoft.com working? In-Reply-To: <20110104150552.0v50fkju0wowggw0@mail.elegosoft.com> Message-ID: <776710.92190.qm@web29712.mail.ird.yahoo.com> Hi all: thanks for the info, some time after it went on again working, but still if there is some escalation issue because of the compiler checks specially with the computation time, like ESC and so, perhaps like in night builds, what would be the machine needs for that process and the results to allow? Based on some experience like in compilers we would have access to the checks in more or less time if so I guess we would need optimization anyway at source level and execution level. Meanwhile more checks will likely to be introduced, so it would a balance of both needs. Thanks in advance --- El mar, 4/1/11, Olaf Wagner escribi?: > De: Olaf Wagner > Asunto: Re: [M3devel] elegosoft.com working? > Para: "Daniel Alejandro Benavides D." > CC: m3devel at elegosoft.com > Fecha: martes, 4 de enero, 2011 09:05 > Quoting "Daniel Alejandro Benavides > D." : > > > Hi all: > > I'm may be wrong but it seems elegosoft.com web > service takes longer than usual to retrieve data, > though the server respponds ICMP requests quickly: > [...] > > 11 packets transmitted, 11 received, 0% packet loss, > time 10003ms > > rtt min/avg/max/mdev = 206.190/208.306/210.390/1.533 > ms > > > > like if it was full load or is not running at all from > here. Can you check for us please? the ports seem to > be open, maybe that services are just too much > loaded? > > There are still load issues due to concurrent CVS checkouts > and > backup processes on birch now and then with which the I/O > system cannot > cope, though they have been much reduced. > > In these cases all you can do is wait some time, as > repeating the > requests will only make matters worse. A final solution > (the complete > migration of web services to a new machine) is still > pending. > > Olaf > --Olaf Wagner -- elego Software Solutions GmbH > > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 > Berlin, Germany > phone: +49 30 23 45 86 96 mobile: +49 177 2345 > 869 fax: +49 30 23 45 86 95 > http://www.elegosoft.com | > Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | > USt-IdNr: DE163214194 > > From hosking at cs.purdue.edu Wed Jan 5 03:50:59 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 4 Jan 2011 21:50:59 -0500 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: References: , , , , Message-ID: <7574D14D-BA09-44DE-98CE-6127CAEE7E8B@cs.purdue.edu> Yes, indeed. We don't need all the overhead of the C++ exception handling mechanism. On Jan 4, 2011, at 6:09 AM, Jay K wrote: > Tony, > > Are you suggesting we don't use __Unwind_RaiseException > and don't provide a "personality routine" > but just use, like, unw_step? > > > e.g. http://www.nongnu.org/libunwind/man/libunwind%283%29.html > vs. http://www.codesourcery.com/public/cxx-abi/abi-eh.html#base-context > > > Problem is...unw_step appears not in the base API in libgcc. > It appears we really should use __Unwind_RaiseException > and a personality routine. > > > As well, experience with gcc 4.5 + Solaris/sparc, suggests > there are problems, but we'll see. Problems I think solved > by using the gcc tree codes to inform of it where try/finally (lock) > and try/catch are. Again, our sparc32 stack walker doesn't > even work with unoptimized gcc 4.5 code, which I do find surprising. We need to make sure that "Set_label" IR instructions that are barriers influence the gcc labels accordingly. > > You know -- what is the availability of the gcc unwinder on Solaris? > > But we do use gcc as the M3 backend on Sparc, so not a problem. > > The gcc unwinder is usually in libgcc/libgcc_s, which the gcc driver > arranges to link in. > It might be elsewhere on Darwin, but still, it is there > at a low level and the gcc driver gives it to you. > We don't use the gcc driver. > Solaris does ship with gcc these days, so maybe just to look at what it does.. We could simply link using gcc. > > > - Jay > > > > > > > > From: hosking at cs.purdue.edu > Date: Mon, 3 Jan 2011 16:33:53 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] how to use gcc exception/unwind support? > > I don't understand why we can't continue to use the same approach we had with gcc 4.3, except utilizing the gcc unwind mechanisms. > > On Jan 2, 2011, at 8:57 PM, Jay K wrote: > > I understand partly and agree as far as I understand. > > > For example..I think it is important, interesting, and subtle that C++ throw resolves to a function call generated > by the C++ front end, with the implication that the backend has a certain ignorance as to how it works, > with the additional implication that we can (continue to) call our own function to throw/raise an exception. > > > Where I get confused however is esp. resolving "TRY_CATCH", that the backend is given > a list of handlers. What is a "handler"? > > > And then..there is also a list of types..but ah, I think I start to see. > I think the list of types are meaningless in tree/gimple, only a C++ thing, > and the handlers are probably merely pieces of code to connect control flow edges too? > > > I have another idea though...I was thinking...if this is true, if it is just about flow graph... > I think there might be two useful intermediate steps toward implementing this. > > > The first implementation would not change the compiler at all, just write the new RTException.m3, and > only work with no optimizations. Get this to work. > > > The second implementation would sprinkle volatile on all locals in functions > that have "try". Or heck, just as an *experiment* put volatile everywhere like > it was before, enable -O3, see that that seems to work. > > > Neither of those two versions would likely be commited, except maybe requiring non-default compiler switches. > > > And then tell the backend about the control flow via the eh stuff in tree.def, and enable optimizations. > > > Make some sense? > > > The first step is at least a good necessary/easy experiment I think. > Not so easy, but necessary anyway. > > > Furthermore..give me a bit more time to consider all this, instead of going > back to 4.3? > > > Granted, SPARC32_SOLARIS might not ever get this. > You know -- what is the availability of the gcc unwinder on Solaris? > > But we do use gcc as the M3 backend on Sparc, so not a problem. > > Surely it is there if you use gcc. But if you use cc? > > > Then to wonder, how does Sun CC work? > > > But I think if we had this working on Darwin, and then Linux, and then FreeBSD, > and then OpenBSD and NetBSD, maybe Cygwin, it wouldn't be so awful for Solaris, et. al. to still use setjmp. > NT386 could easily remain with setjmp a while too. > > > - Jay > > > > From: hosking at cs.purdue.edu > Date: Sun, 2 Jan 2011 18:19:36 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] how to use gcc exception/unwind support? > > My take was that we would use the unwind support with RTExStack along with recording the flow constraints for the IR. They were never that tricky. > > On Jan 2, 2011, at 3:29 AM, Jay K wrote: > > Tony et. al. do you have much idea already in mind of what using gcc exception and/or unwind support would look like? > > > In particular, do you think we could/should/would use > TRY_CATCH_EXPR, TRY_FINALLY_EXPR? I'm not sure (see below). > > > Do you understand the difference between WITH_CLEANUP_EXPR and TRY_FINALLY_EXPR? > I don't. Maybe WITH_CLEANUP_EXPR captures a common case is very similar? > > > Regarding TRY_CATCH_EXPR, TRY_FINALLY_EXPR, they sound very promising. > But does CATCH_EXPR provide the right construct for deciding to catch or not, > and passing the exception properly to the handler? > > > Or should we use RTExStack nearly or completely unchanged, but: > 1) have it call libgcc/libunwind, via interface RTStack. > 2) in the backend mimic TRY_CATCH_EXPR, TRY_FINALLY_EXPR's affects/pessimisations > on the control flow graph and such? > > > Related question is how to model throwing an exception in the backend. > This I had looked at even less (e.g. trying to understand how g++ uses this stuff) but is clearly important. > g++ clearly sometimes calls __cxa_throw, not clear if it always does. > Not clear it does anything else in terms of informing the backend. It looks like not. > > > - Jay > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Jan 5 04:45:34 2011 From: jay.krell at cornell.edu (Jay K) Date: Wed, 5 Jan 2011 03:45:34 +0000 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: <7574D14D-BA09-44DE-98CE-6127CAEE7E8B@cs.purdue.edu> References: , , , , , , , , , <7574D14D-BA09-44DE-98CE-6127CAEE7E8B@cs.purdue.edu> Message-ID: > Yes, indeed. We don't need all the overhead of the C++ exception handling mechanism. It is so much? Well, it maybe is more to understand. But the unw_step code isn't clearly exposed, only higher level stuff is. > sparc stack walker > We need to make sure that "Set_label" IR instructions that are barriers influence the gcc labels accordingly. Even w/o optimization? I did never figure out som of the gcc 4.5 analogs to the gcc 4.3 code, regarding barrier labels. > You know -- what is the availability of the gcc unwinder on Solaris? > But we do use gcc as the M3 backend on Sparc, so not a problem. > We don't use the gcc driver. > Solaris does ship with gcc these days, so maybe just to look at what it does.. > We could simply link using gcc. Maybe. I think some of the opencsw machines actually move or remove gcc, but maybe a bit of testing and autoconf-like probing and we can always find it.. or maybe it comes with static libgcc.a, and maybe therefore we can/should build static libgcc.a with cm3cg. Anyway, I'll be quite pleased if if I can get Darwin/Linux/*BSD working, Solaris can wait quite a while.. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Wed Jan 5 10:04:38 2011 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 05 Jan 2011 10:04:38 +0100 Subject: [M3devel] elegosoft.com working? In-Reply-To: <776710.92190.qm@web29712.mail.ird.yahoo.com> References: <776710.92190.qm@web29712.mail.ird.yahoo.com> Message-ID: <20110105100438.6lsghju1c8k000k0@mail.elegosoft.com> Quoting "Daniel Alejandro Benavides D." : > Hi all: > thanks for the info, some time after it went on again working, but > still if there is some escalation issue because of the compiler > checks specially with the computation time, like ESC and so, perhaps > like in night builds, what would be the machine needs for that > process and the results to allow? > Based on some experience like in compilers we would have access to > the checks in more or less time if so I guess we would need > optimization anyway at source level and execution level. Meanwhile > more checks will likely to be introduced, so it would a balance of > both needs. > Thanks in advance I'm not sure if I understand correctly what you're aiming at, but I guess you worry that we need to introduce more checks/tests like ESC. Apart from my estimation that we won't get access to the ESC M3 sources, CPU time would not be a bottleneck, as (a) the bottleneck on birch is the I/O system and (b) we could easily delegate such a task to another server via Hudson. Anyway, once the web service has been moved to another machine there shouldn't be any more problems with our use of birch. Olaf -- Olaf Wagner -- elego Software Solutions GmbH Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 From dabenavidesd at yahoo.es Wed Jan 5 17:28:11 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 5 Jan 2011 16:28:11 +0000 (GMT) Subject: [M3devel] elegosoft.com working? In-Reply-To: <20110105100438.6lsghju1c8k000k0@mail.elegosoft.com> Message-ID: <348665.25192.qm@web29710.mail.ird.yahoo.com> Hi all: yes, I think we should get access to building with cm3 at least, not sure if the sources according to the latest news on that. In the other hand whether we get this I hope sooner or later, I think it would be a m3quake directive like "esc()" to activate it from inside the building task process, so it can be integrated on the same building machine or another will need to have access to the same CM3 build and source repository and check it on the way, the only thing here, is that ESC need to build M3 sources with m3tk and if so, it will that aprox. by the same time cm3 compiler building software ends that ESC will feed itself with cm3 M3Build .M3IMPTAB import table not generated file now times for external compilers. I'm not sure anyway if that's the order of ESC input anyway, or will need first the .M3IMPPTAB back again perhaps will need to upgrade down or make a better independent procedure to expose this for it, see Revision 1.24: http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/cm3/src/M3Build.m3?annotate=1.24 if that's the case we would need to wait anyway for cm3 builds or call it from the IMPORTS to get it. Please if one can check that if it's need it and I will likely to see that too. I also think this would be a nice way of making a dependence analyzer (if so perhaps I think is better doing it with m3tk, what do you think? Besides its worth for Obliq and others too like cm3ide, etc) program for our and other clients too information IMHO. Thanks in advance P.D: according to Dr Greg Nelson the compiler is usually 10x times faster than the ESC process (not sure for the ESC/Java or the ESC/Moddula3), but this is mostly because of the Simplify theorem prover checking see: http://www.uwtv.org/programs/displayevent.aspx?rID=2761 Also for simplify see: http://portal.acm.org/citation.cfm?id=1066100.1066102&preflayout=flat whican can be downlaoded report from here: http://www.hpl.hp.com/techreports/2003/HPL-2003-148.html and benchmarks from here: http://goedel.cs.uiowa.edu/smtlib/benchmarks/pending/simplify_benchmarks.tar.gz --- El mi?, 5/1/11, Olaf Wagner escribi?: > De: Olaf Wagner > Asunto: Re: [M3devel] elegosoft.com working? > Para: "Daniel Alejandro Benavides D." > CC: m3devel at elegosoft.com > Fecha: mi?rcoles, 5 de enero, 2011 04:04 > Quoting "Daniel Alejandro Benavides > D." : > > > Hi all: > > thanks for the info, some time after it went on again > working, but still if there is some escalation issue > because of the compiler checks specially with the > computation time, like ESC and so, perhaps like in > night builds, what would be the machine needs for that > process and the results to allow? > > Based on some experience like in compilers we would > have access to the checks in more or less time if so I > guess we would need optimization anyway at source > level and execution level. Meanwhile more checks will > likely to be introduced, so it would a balance of both > needs. > > Thanks in advance > > I'm not sure if I understand correctly what you're aiming > at, but > I guess you worry that we need to introduce more > checks/tests like > ESC. Apart from my estimation that we won't get access to > the ESC M3 > sources, CPU time would not be a bottleneck, as (a) the > bottleneck on > birch is the I/O system and (b) we could easily delegate > such a task > to another server via Hudson. Anyway, once the web service > has been > moved to another machine there shouldn't be any more > problems with > our use of birch. > > Olaf > --Olaf Wagner -- elego Software Solutions GmbH > > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 > Berlin, Germany > phone: +49 30 23 45 86 96 mobile: +49 177 2345 > 869 fax: +49 30 23 45 86 95 > http://www.elegosoft.com | > Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | > USt-IdNr: DE163214194 > > From jay.krell at cornell.edu Wed Jan 5 18:35:35 2011 From: jay.krell at cornell.edu (Jay K) Date: Wed, 5 Jan 2011 17:35:35 +0000 Subject: [M3devel] missing error check or maybe just stdout/err out of order? Message-ID: http://hudson.modula3.com:8080/job/cm3-current-build-SOLsun-opencsw-current9s/166/console Has a small bunch of output after the error. But I think it might just be out of order, not actually continuing on? Throw in "2>&1"? Anyway, I fixed the error itself. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Wed Jan 5 19:01:49 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 5 Jan 2011 18:01:49 +0000 (GMT) Subject: [M3devel] elegosoft.com working? In-Reply-To: <348665.25192.qm@web29710.mail.ird.yahoo.com> Message-ID: <28801.31834.qm@web29717.mail.ird.yahoo.com> Hi all: I recall now that the current rend is run this theorem provers distributedly, rather than standalone, so we might given that we have already this in our hands the Simplify theorem prover, for a network instance, not sure if the I/O will be affected in that case, perhaps the most important thing is to verify full integrity of transfers. See about that issue: http://nexus.realtimepublishers.com/ttgmft.php (is a work in progress so if interested keep and eye on it, you can register if you want) Given that simplify is not written object oriented, perhaps that must be thought to be like that. The thing is given it takes more than double times the time of the compile build process we might (the Greg nelson comment at 53:00 on the linked video) is it is a kind of slow process or of high length but ok to be run on nights. Perhaps given that the compiler building could take 2x a compiler build and the theorem proving 5x times that, which is we can run it each 5 runs in terms of the of two builds, i.e m3tk included. The thing is, if the source has not changed that is would be the case in some runs it could be in terms of less runs, so we can check in at least each 5 building tasks runs (of all platforms, i.e 5 parallel building tasks), I guess this tasks are programmed in some way, I don't recall where are the policies of this written, if someone can tell that for me or point me that, thanks in advance --- El mi?, 5/1/11, Daniel Alejandro Benavides D. escribi?: > De: Daniel Alejandro Benavides D. > Asunto: Re: [M3devel] elegosoft.com working? > Para: "Olaf Wagner" > CC: m3devel at elegosoft.com > Fecha: mi?rcoles, 5 de enero, 2011 11:28 > Hi all: > yes, I think we should get access to building with cm3 at > least, not sure if the sources according to the latest news > on that. > In the other hand whether we get this I hope sooner or > later, I think it would be a m3quake directive like "esc()" > to activate it from inside the building task process, so it > can be integrated on the same building machine or another > will need to have access to the same CM3 build and source > repository and check it on the way, the only thing here, is > that ESC need to build M3 sources with m3tk and if so, it > will that aprox. by the same time cm3 compiler building > software ends that ESC will feed itself with cm3 M3Build > .M3IMPTAB import table not generated file now times for > external compilers. I'm not sure anyway if that's the order > of ESC input anyway, or will need first the .M3IMPPTAB back > again perhaps will need to upgrade down or make a better > independent procedure to expose this for it, see Revision > 1.24: > http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/cm3/src/M3Build.m3?annotate=1.24 > if that's the case we would need to wait anyway for cm3 > builds or call it from the IMPORTS to get it. Please if one > can check that if it's need it and I will likely to see that > too. I also think this would be a nice way of making a > dependence analyzer (if so perhaps I think is better doing > it with m3tk, what do you think? Besides its worth for Obliq > and others too like cm3ide, etc) program for our and > other clients too information IMHO. > Thanks in advance > > P.D: according to Dr Greg Nelson the compiler is usually > 10x times faster than the ESC process (not sure for the > ESC/Java or the ESC/Moddula3), but this is mostly because of > the Simplify theorem prover checking see: > http://www.uwtv.org/programs/displayevent.aspx?rID=2761 > Also for simplify see: > http://portal.acm.org/citation.cfm?id=1066100.1066102&preflayout=flat > whican can be downlaoded report from here: > http://www.hpl.hp.com/techreports/2003/HPL-2003-148.html > and benchmarks from here: > http://goedel.cs.uiowa.edu/smtlib/benchmarks/pending/simplify_benchmarks.tar.gz > > > --- El mi?, 5/1/11, Olaf Wagner > escribi?: > > > De: Olaf Wagner > > Asunto: Re: [M3devel] elegosoft.com working? > > Para: "Daniel Alejandro Benavides D." > > CC: m3devel at elegosoft.com > > Fecha: mi?rcoles, 5 de enero, 2011 04:04 > > Quoting "Daniel Alejandro Benavides > > D." : > > > > > Hi all: > > > thanks for the info, some time after it went on > again > > working, but still if there is some escalation > issue > > because of the compiler checks specially with > the > > computation time, like ESC and so, perhaps like > in > > night builds, what would be the machine needs for that > > > process and the results to allow? > > > Based on some experience like in compilers we > would > > have access to the checks in more or less time > if so I > > guess we would need optimization anyway at > source > > level and execution level. Meanwhile more checks > will > > likely to be introduced, so it would a balance > of both > > needs. > > > Thanks in advance > > > > I'm not sure if I understand correctly what you're > aiming > > at, but > > I guess you worry that we need to introduce more > > checks/tests like > > ESC. Apart from my estimation that we won't get access > to > > the ESC M3 > > sources, CPU time would not be a bottleneck, as (a) > the > > bottleneck on > > birch is the I/O system and (b) we could easily > delegate > > such a task > > to another server via Hudson. Anyway, once the web > service > > has been > > moved to another machine there shouldn't be any more > > problems with > > our use of birch. > > > > Olaf > > --Olaf Wagner -- elego Software Solutions GmbH > > > > Gustav-Meyer-Allee 25 / Geb?ude 12, > 13355 > > Berlin, Germany > > phone: +49 30 23 45 86 96 mobile: +49 177 2345 > > 869 fax: +49 30 23 45 86 95 > > http://www.elegosoft.com | > > Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > > Handelregister: Amtsgericht Charlottenburg HRB 77719 > | > > USt-IdNr: DE163214194 > > > > > > > > From dabenavidesd at yahoo.es Wed Jan 5 19:16:48 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 5 Jan 2011 18:16:48 +0000 (GMT) Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <20110105173201.5A1742474003@birch.elegosoft.com> Message-ID: <345382.27809.qm@web29704.mail.ird.yahoo.com> Hi all: Are this failures linked to a trac ticket with an appropriate tag, would be a quality of service improvement to link to it automatically? I think if the failures of compiler, system compiler, compiler back end, linker, system linker or checker and/or theorem prover, we should produce automatically a ticket assigned for the "guilty" or some else if so, so one can be warned more directly and solve it accordingly, what do you think? I assume some simple changes are or can be back up if so there is a clear compile time error cause and solution. But for everything else is good? I mean might be the ideal with wiki service open we can improve documentation and process on it. Thanks in advance --- El mi?, 5/1/11, Jay Krell escribi?: > De: Jay Krell > Asunto: [M3commit] CVS Update: cm3 > Para: m3commit at elegosoft.com > Fecha: mi?rcoles, 5 de enero, 2011 13:32 > CVSROOT: /usr/cvs > Changes by: > jkrell at birch. 11/01/05 18:32:01 > > Modified files: > cm3/m3-libs/m3core/src/thread/PTHREAD/: > ThreadPThreadC.c > > Log message: > Don't use __thread on Solaris. > It failed to link. > See: > http://hudson.modula3.com:8080/job/cm3-current-build-SOLsun-opencsw-current9s/166/console > > From dabenavidesd at yahoo.es Wed Jan 5 20:02:41 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 5 Jan 2011 19:02:41 +0000 (GMT) Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <345382.27809.qm@web29704.mail.ird.yahoo.com> Message-ID: <666417.80484.qm@web29705.mail.ird.yahoo.com> HI all: all of this Amen that all of developers are carefully following the ESC error correction actions we wouldn't worry about the runtime errors. I don't think it would take so much time that to cover the current repository (we would need also some repository and building and checking time and check in statistics to see the development growing, I now this see: http://libresoft.dat.escet.urjc.es/cvsanal/pm3-cvs/index.php?menu=Index and: https://projects.libresoft.es/wiki/cvsanaly or others you may want to use). Thanks in advance --- El mi?, 5/1/11, Daniel Alejandro Benavides D. escribi?: > De: Daniel Alejandro Benavides D. > Asunto: Re: [M3devel] [M3commit] CVS Update: cm3 > Para: m3devel at elegosoft.com > Fecha: mi?rcoles, 5 de enero, 2011 13:16 > Hi all: > Are this failures linked to a trac ticket with an > appropriate tag, would be a quality of service improvement > to link to it automatically? I think if the failures of > compiler, system compiler, compiler back end, linker, system > linker or checker and/or theorem prover, we should produce > automatically a ticket assigned for the "guilty" or some > else if so, so one can be warned more directly and solve it > accordingly, what do you think? > I assume some simple changes are or can be back up if so > there is a clear compile time error cause and solution. But > for everything else is good? I mean might be the ideal with > wiki service open we can improve documentation and process > on it. > Thanks in advance > > --- El mi?, 5/1/11, Jay Krell > escribi?: > > > De: Jay Krell > > Asunto: [M3commit] CVS Update: cm3 > > Para: m3commit at elegosoft.com > > Fecha: mi?rcoles, 5 de enero, 2011 13:32 > > CVSROOT: /usr/cvs > > Changes by: > > jkrell at birch. 11/01/05 18:32:01 > > > > Modified files: > > > cm3/m3-libs/m3core/src/thread/PTHREAD/: > > ThreadPThreadC.c > > > > Log message: > > Don't use __thread on > Solaris. > > It failed to link. > > See: > > http://hudson.modula3.com:8080/job/cm3-current-build-SOLsun-opencsw-current9s/166/console > > > > > > > > From jay.krell at cornell.edu Thu Jan 6 02:21:00 2011 From: jay.krell at cornell.edu (Jay K) Date: Thu, 6 Jan 2011 01:21:00 +0000 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: <20110106002615.77E782474003@birch.elegosoft.com> References: <20110106002615.77E782474003@birch.elegosoft.com> Message-ID: fyi: jbook2:p250 jay$ rm -rf I386_DARWIN/ jbook2:p250 jay$ cm3 -keep --- building in I386_DARWIN --- new source -> compiling Main.m3 "../Main.m3", line 1: 1 code generation error 1 error encountered compilation failed => not building program "pgm" Fatal Error: package build failed jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment (4) comment comment:module global constants (6) comment comment:module global data (27) comment comment:F1 (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] (43) comment comment:F2 (73) comment comment:Main_M3 (74) comment comment:module main body Main_M3 (83) comment comment:global constant type descriptor (85) comment comment:global data type descriptor (87) comment comment:module global constants (90) comment comment:procedure names (94) comment comment:procedure table (101) comment comment:file name (103) comment comment:type map for _t0174bdf4 (106) comment comment:type description for _t0174bdf4 (110) comment comment:module global data (120) comment comment:typecell for _t0174bdf4 (141) comment comment:load map (4) comment comment:module global constants (6) comment comment:module global data (27) comment comment:F1 (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] (43) comment comment:F2 (73) comment comment:Main_M3 (74) comment comment:module main body Main_M3 (83) comment comment:global constant type descriptor (85) comment comment:global data type descriptor (87) comment comment:module global constants (90) comment comment:procedure names (94) comment comment:procedure table (101) comment comment:file name (103) comment comment:type map for _t0174bdf4 (106) comment comment:type description for _t0174bdf4 (110) comment comment:module global data (120) comment comment:typecell for _t0174bdf4 (141) comment comment:load map - Jay > Date: Thu, 6 Jan 2011 01:26:15 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 11/01/06 01:26:15 > > Modified files: > cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > > Log message: > slightly simpler, same error > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 6 08:21:10 2011 From: jay.krell at cornell.edu (Jay K) Date: Thu, 6 Jan 2011 07:21:10 +0000 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: References: ,,, , , ,,, , , , , , , <7574D14D-BA09-44DE-98CE-6127CAEE7E8B@cs.purdue.edu>, Message-ID: >> Yes, indeed. We don't need all the overhead of the C++ exception handling mechanism. > It is so much? Well, it maybe is more to understand. There is also a very good chance that raising a Modula-3 exception will run C++ destructors for intervening threads, which is desirable, if we do this "right". Likewise, C++ exceptions running Modula-3 unlock/finally blocks. Interop can be good. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Thu Jan 6 12:56:16 2011 From: wagner at elegosoft.com (Olaf Wagner) Date: Thu, 06 Jan 2011 12:56:16 +0100 Subject: [M3devel] elegosoft.com working? In-Reply-To: <28801.31834.qm@web29717.mail.ird.yahoo.com> References: <28801.31834.qm@web29717.mail.ird.yahoo.com> Message-ID: <20110106125616.yufiz9edm8ssccks@mail.elegosoft.com> Let's worry about ESC integration when we get access to it. Anyway, I wouldn't run such checks in every build, but perform it on a certain machine e.g. once a day. Olaf Quoting "Daniel Alejandro Benavides D." : > Hi all: > I recall now that the current rend is run this theorem provers > distributedly, rather than standalone, so we might given that we > have already this in our hands the Simplify theorem prover, for a > network instance, not sure if the I/O will be affected in that case, > perhaps the most important thing is to verify full integrity of > transfers. See about that issue: > http://nexus.realtimepublishers.com/ttgmft.php > (is a work in progress so if interested keep and eye on it, you can > register if you want) > Given that simplify is not written object oriented, perhaps that > must be thought to be like that. The thing is given it takes more > than double times the time of the compile build process we might > (the Greg nelson comment at 53:00 on the linked video) is it is a > kind of slow process or of high length but ok to be run on nights. > Perhaps given that the compiler building could take 2x a compiler > build and the theorem proving 5x times that, which is we can run it > each 5 runs in terms of the of two builds, i.e m3tk included. The > thing is, if the source has not changed that is would be the case in > some runs it could be in terms of less runs, so we can check in at > least each 5 building tasks runs (of all platforms, i.e 5 parallel > building tasks), I guess this tasks are programmed in some way, I > don't recall where are the policies of this written, if someone can > tell that for me or point me that, thanks in advance > > > --- El mi?, 5/1/11, Daniel Alejandro Benavides D. > escribi?: > >> De: Daniel Alejandro Benavides D. >> Asunto: Re: [M3devel] elegosoft.com working? >> Para: "Olaf Wagner" >> CC: m3devel at elegosoft.com >> Fecha: mi?rcoles, 5 de enero, 2011 11:28 >> Hi all: >> yes, I think we should get access to building with cm3 at >> least, not sure if the sources according to the latest news >> on that. >> In the other hand whether we get this I hope sooner or >> later, I think it would be a m3quake directive like "esc()" >> to activate it from inside the building task process, so it >> can be integrated on the same building machine or another >> will need to have access to the same CM3 build and source >> repository and check it on the way, the only thing here, is >> that ESC need to build M3 sources with m3tk and if so, it >> will that aprox. by the same time cm3 compiler building >> software ends that ESC will feed itself with cm3 M3Build >> .M3IMPTAB import table not generated file now times for >> external compilers. I'm not sure anyway if that's the order >> of ESC input anyway, or will need first the .M3IMPPTAB back >> again perhaps will need to upgrade down or make a better >> independent procedure to expose this for it, see Revision >> 1.24: >> http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/cm3/src/M3Build.m3?annotate=1.24 >> if that's the case we would need to wait anyway for cm3 >> builds or call it from the IMPORTS to get it. Please if one >> can check that if it's need it and I will likely to see that >> too. I also think this would be a nice way of making a >> dependence analyzer (if so perhaps I think is better doing >> it with m3tk, what do you think? Besides its worth for Obliq >> and others too like cm3ide, etc) program for our and >> other clients too information IMHO. >> Thanks in advance >> >> P.D: according to Dr Greg Nelson the compiler is usually >> 10x times faster than the ESC process (not sure for the >> ESC/Java or the ESC/Moddula3), but this is mostly because of >> the Simplify theorem prover checking see: >> http://www.uwtv.org/programs/displayevent.aspx?rID=2761 >> Also for simplify see: >> http://portal.acm.org/citation.cfm?id=1066100.1066102&preflayout=flat >> whican can be downlaoded report from here: >> http://www.hpl.hp.com/techreports/2003/HPL-2003-148.html >> and benchmarks from here: >> http://goedel.cs.uiowa.edu/smtlib/benchmarks/pending/simplify_benchmarks.tar.gz >> >> >> --- El mi?, 5/1/11, Olaf Wagner >> escribi?: >> >> > De: Olaf Wagner >> > Asunto: Re: [M3devel] elegosoft.com working? >> > Para: "Daniel Alejandro Benavides D." >> > CC: m3devel at elegosoft.com >> > Fecha: mi?rcoles, 5 de enero, 2011 04:04 >> > Quoting "Daniel Alejandro Benavides >> > D." : >> > >> > > Hi all: >> > > thanks for the info, some time after it went on >> again >> > working, but still if there is some escalation >> issue >> > because of the compiler checks specially with >> the >> > computation time, like ESC and so, perhaps like >> in >> > night builds, what would be the machine needs for that >> >> > process and the results to allow? >> > > Based on some experience like in compilers we >> would >> > have access to the checks in more or less time >> if so I >> > guess we would need optimization anyway at >> source >> > level and execution level. Meanwhile more checks >> will >> > likely to be introduced, so it would a balance >> of both >> > needs. >> > > Thanks in advance >> > >> > I'm not sure if I understand correctly what you're >> aiming >> > at, but >> > I guess you worry that we need to introduce more >> > checks/tests like >> > ESC. Apart from my estimation that we won't get access >> to >> > the ESC M3 >> > sources, CPU time would not be a bottleneck, as (a) >> the >> > bottleneck on >> > birch is the I/O system and (b) we could easily >> delegate >> > such a task >> > to another server via Hudson. Anyway, once the web >> service >> > has been >> > moved to another machine there shouldn't be any more >> > problems with >> > our use of birch. >> > >> > Olaf >> > --Olaf Wagner -- elego Software Solutions GmbH >> > >> > Gustav-Meyer-Allee 25 / Geb?ude 12, >> 13355 >> > Berlin, Germany >> > phone: +49 30 23 45 86 96 mobile: +49 177 2345 >> > 869 fax: +49 30 23 45 86 95 >> > http://www.elegosoft.com | >> > Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin >> > Handelregister: Amtsgericht Charlottenburg HRB 77719 >> | >> > USt-IdNr: DE163214194 >> > >> > >> >> >> >> > > > > -- Olaf Wagner -- elego Software Solutions GmbH Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 From dabenavidesd at yahoo.es Thu Jan 6 14:28:18 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Thu, 6 Jan 2011 13:28:18 +0000 (GMT) Subject: [M3devel] elegosoft.com working? In-Reply-To: <20110106125616.yufiz9edm8ssccks@mail.elegosoft.com> Message-ID: <588751.8201.qm@web29712.mail.ird.yahoo.com> Hi all: yes, but maybe when if we got around an optimizing compiler we would need the verification condition generator to use the theorem prover, so the same deal again, and if so we would need also build machines dedicated also to that, I mean what is the point of having them to keeping idle while something in contrast would highly optimized it instead. I bet even the compiler is also to have optimization by it self, I guess everything would need to and so the optimization framework would need to run the theorem prover to work in each build. Even the Simplify, so we must keep and eye on it too meanwhile. Thanks in advance --- El jue, 6/1/11, Olaf Wagner escribi?: > De: Olaf Wagner > Asunto: Re: [M3devel] elegosoft.com working? > Para: "Daniel Alejandro Benavides D." > CC: m3devel at elegosoft.com > Fecha: jueves, 6 de enero, 2011 06:56 > Let's worry about ESC integration > when we get access to it. > Anyway, I wouldn't run such checks in every build, but > perform it > on a certain machine e.g. once a day. > > Olaf > > Quoting "Daniel Alejandro Benavides D." : > > > Hi all: > > I recall now that the current rend is run this theorem > provers distributedly, rather than standalone, so we > might given that we have already this in our hands the > Simplify theorem prover, for a network instance, not > sure if the I/O will be affected in that case, perhaps > the most important thing is to verify full integrity > of transfers. See about that issue: > > http://nexus.realtimepublishers.com/ttgmft.php > > (is a work in progress so if interested keep and eye > on it, you can register if you want) > > Given that simplify is not written object oriented, > perhaps that must be thought to be like that. The > thing is given it takes more than double times the > time of the compile build process we might (the Greg > nelson comment at 53:00 on the linked video) is it is > a kind of slow process or of high length but ok to be > run on nights. Perhaps given that the compiler > building could take 2x a compiler build and the > theorem proving 5x times that, which is we can run it > each 5 runs in terms of the of two builds, i.e m3tk > included. The thing is, if the source has not changed > that is would be the case in some runs it could be in > terms of less runs, so we can check in at least each 5 > building tasks runs (of all platforms, i.e 5 parallel > building tasks), I guess this tasks are programmed in some > way, I don't recall where are the policies of this > written, if someone can tell that for me or point me > that, thanks in advance > > > > > > --- El mi?, 5/1/11, Daniel Alejandro Benavides > D. > escribi?: > > > >> De: Daniel Alejandro Benavides D. > >> Asunto: Re: [M3devel] elegosoft.com working? > >> Para: "Olaf Wagner" > >> CC: m3devel at elegosoft.com > >> Fecha: mi?rcoles, 5 de enero, 2011 11:28 > >> Hi all: > >> yes, I think we should get access to building with > cm3 at > >> least, not sure if the sources according to the > latest news > >> on that. > >> In the other hand whether we get this I hope > sooner or > >> later, I think it would be a m3quake directive > like "esc()" > >> to activate it from inside the building task > process, so it > >> can be integrated on the same building machine or > another > >> will need to have access to the same CM3 build and > source > >> repository and check it on the way, the only thing > here, is > >> that ESC need to build M3 sources with m3tk and if > so, it > >> will that aprox. by the same time cm3 compiler > building > >> software ends that ESC will feed itself with cm3 > M3Build > >> .M3IMPTAB import table not generated file now > times for > >> external compilers. I'm not sure anyway if that's > the order > >> of ESC input anyway, or will need first the > .M3IMPPTAB back > >> again perhaps will need to upgrade down or make a > better > >> independent procedure to expose this for it, see > Revision > >> 1.24: > >> http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/cm3/src/M3Build.m3?annotate=1.24 > >> if that's the case we would need to wait anyway > for cm3 > >> builds or call it from the IMPORTS to get it. > Please if one > >> can check that if it's need it and I will likely > to see that > >> too. I also think this would be a nice way of > making a > >> dependence analyzer (if so perhaps I think is > better doing > >> it with m3tk, what do you think? Besides its worth > for Obliq > >> and others too like cm3ide, etc) program for > our and > >> other clients too information IMHO. > >> Thanks in advance > >> > >> P.D: according to Dr Greg Nelson the compiler is > usually > >> 10x times faster than the ESC process (not sure > for the > >> ESC/Java or the ESC/Moddula3), but this is mostly > because of > >> the Simplify theorem prover checking see: > >> http://www.uwtv.org/programs/displayevent.aspx?rID=2761 > >> Also for simplify see: > >> http://portal.acm.org/citation.cfm?id=1066100.1066102&preflayout=flat > >> whican can be downlaoded report from here: > >> http://www.hpl.hp.com/techreports/2003/HPL-2003-148.html > >> and benchmarks from here: > >> http://goedel.cs.uiowa.edu/smtlib/benchmarks/pending/simplify_benchmarks.tar.gz > >> > >> > >> --- El mi?, 5/1/11, Olaf Wagner > >> escribi?: > >> > >> > De: Olaf Wagner > >> > Asunto: Re: [M3devel] elegosoft.com working? > >> > Para: "Daniel Alejandro Benavides D." > >> > CC: m3devel at elegosoft.com > >> > Fecha: mi?rcoles, 5 de enero, 2011 04:04 > >> > Quoting "Daniel Alejandro Benavides > >> > D." : > >> > > >> > > Hi all: > >> > > thanks for the info, some time after it > went on > >> again > >> > working, but still if there is some > escalation > >> issue > >> > because of the compiler checks > specially with > >> the > >> > computation time, like ESC and so, > perhaps like > >> in > >> > night builds, what would be the machine needs > for that > >> > >> > process and the results to allow? > >> > > Based on some experience like in > compilers we > >> would > >> > have access to the checks in more or > less time > >> if so I > >> > guess we would need optimization anyway > at > >> source > >> > level and execution level. Meanwhile > more checks > >> will > >> > likely to be introduced, so it would a > balance > >> of both > >> > needs. > >> > > Thanks in advance > >> > > >> > I'm not sure if I understand correctly what > you're > >> aiming > >> > at, but > >> > I guess you worry that we need to introduce > more > >> > checks/tests like > >> > ESC. Apart from my estimation that we won't > get access > >> to > >> > the ESC M3 > >> > sources, CPU time would not be a bottleneck, > as (a) > >> the > >> > bottleneck on > >> > birch is the I/O system and (b) we could > easily > >> delegate > >> > such a task > >> > to another server via Hudson. Anyway, once > the web > >> service > >> > has been > >> > moved to another machine there shouldn't be > any more > >> > problems with > >> > our use of birch. > >> > > >> > Olaf > >> > --Olaf Wagner -- elego Software Solutions > GmbH > >> > > >> > Gustav-Meyer-Allee 25 / Geb?ude > 12, > >> 13355 > >> > Berlin, Germany > >> > phone: +49 30 23 45 86 96 mobile: +49 > 177 2345 > >> > 869 fax: +49 30 23 45 86 95 > >> > http://www.elegosoft.com | > >> > Gesch?ftsf?hrer: Olaf Wagner | Sitz: > Berlin > >> > Handelregister: Amtsgericht Charlottenburg > HRB 77719 > >> | > >> > USt-IdNr: DE163214194 > >> > > >> > > >> > >> > >> > >> > > > > > > > > > > > > --Olaf Wagner -- elego Software Solutions GmbH > > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 > Berlin, Germany > phone: +49 30 23 45 86 96 mobile: +49 177 2345 > 869 fax: +49 30 23 45 86 95 > http://www.elegosoft.com | > Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | > USt-IdNr: DE163214194 > > From hosking at cs.purdue.edu Thu Jan 6 15:27:03 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 6 Jan 2011 09:27:03 -0500 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: References: , , , , , , , , , , , , , , <7574D14D-BA09-44DE-98CE-6127CAEE7E8B@cs.purdue.edu>, Message-ID: <5F258385-C84D-4103-9EBF-8B2C475D1BE0@cs.purdue.edu> I am just leery of getting too much more entangled with the gcc runtime. It makes our compiler even more non-portable. On Jan 6, 2011, at 2:21 AM, Jay K wrote: > >> Yes, indeed. We don't need all the overhead of the C++ exception handling mechanism. > > > > It is so much? Well, it maybe is more to understand. > > > There is also a very good chance that raising a Modula-3 exception > will run C++ destructors for intervening threads, which is desirable, > if we do this "right". > Likewise, C++ exceptions running Modula-3 unlock/finally blocks. > Interop can be good. > > > - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 6 16:56:49 2011 From: jay.krell at cornell.edu (Jay K) Date: Thu, 6 Jan 2011 15:56:49 +0000 Subject: [M3devel] elegosoft.com working? In-Reply-To: <588751.8201.qm@web29712.mail.ird.yahoo.com> References: <20110106125616.yufiz9edm8ssccks@mail.elegosoft.com>, <588751.8201.qm@web29712.mail.ird.yahoo.com> Message-ID: The gcc compiler is already optimizing. The integrated backend always optimizes a bit and produces half decent code. Fairly local optimizations though, very very very simple analysis. I'd like the machines to be powered off when idle, not find more ways to keep them busy. As well, most of the analysis is "portable" -- only needs to be one for one target, not all, so unless it is really large and easily distributed, just one machine. If we really are interested static analysis, a C or C++ or heck C# or Java generating backend plus throwing their static analyzers around is the way to go. There is far more energy thrown at other languages, and actually significant results, despite the starting point. Some tools might analyze binaries. valgrind? Modula-3 and ESC were ahead of their time at some point, but the world has largely caught up and in many ways surpassed. For example, Modula-3 was perhaps perhaps better than DCOM and CORBA, but these days, connected remoting has been deemed non-scalable and disconnected remoting is largely used, esp. via http. - Jay > Date: Thu, 6 Jan 2011 13:28:18 +0000 > From: dabenavidesd at yahoo.es > To: wagner at elegosoft.com > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] elegosoft.com working? > > Hi all: > yes, but maybe when if we got around an optimizing compiler we would need the verification condition generator to use the theorem prover, so the same deal again, and if so we would need also build machines dedicated also to that, I mean what is the point of having them to keeping idle while something in contrast would highly optimized it instead. I bet even the compiler is also to have optimization by it self, I guess everything would need to and so the optimization framework would need to run the theorem prover to work in each build. Even the Simplify, so we must keep and eye on it too meanwhile. > > Thanks in advance > > --- El jue, 6/1/11, Olaf Wagner escribi?: > > > De: Olaf Wagner > > Asunto: Re: [M3devel] elegosoft.com working? > > Para: "Daniel Alejandro Benavides D." > > CC: m3devel at elegosoft.com > > Fecha: jueves, 6 de enero, 2011 06:56 > > Let's worry about ESC integration > > when we get access to it. > > Anyway, I wouldn't run such checks in every build, but > > perform it > > on a certain machine e.g. once a day. > > > > Olaf > > > > Quoting "Daniel Alejandro Benavides D." : > > > > > Hi all: > > > I recall now that the current rend is run this theorem > > provers distributedly, rather than standalone, so we > > might given that we have already this in our hands the > > Simplify theorem prover, for a network instance, not > > sure if the I/O will be affected in that case, perhaps > > the most important thing is to verify full integrity > > of transfers. See about that issue: > > > http://nexus.realtimepublishers.com/ttgmft.php > > > (is a work in progress so if interested keep and eye > > on it, you can register if you want) > > > Given that simplify is not written object oriented, > > perhaps that must be thought to be like that. The > > thing is given it takes more than double times the > > time of the compile build process we might (the Greg > > nelson comment at 53:00 on the linked video) is it is > > a kind of slow process or of high length but ok to be > > run on nights. Perhaps given that the compiler > > building could take 2x a compiler build and the > > theorem proving 5x times that, which is we can run it > > each 5 runs in terms of the of two builds, i.e m3tk > > included. The thing is, if the source has not changed > > that is would be the case in some runs it could be in > > terms of less runs, so we can check in at least each 5 > > building tasks runs (of all platforms, i.e 5 parallel > > building tasks), I guess this tasks are programmed in some > > way, I don't recall where are the policies of this > > written, if someone can tell that for me or point me > > that, thanks in advance > > > > > > > > > --- El mi?, 5/1/11, Daniel Alejandro Benavides > > D. > > escribi?: > > > > > >> De: Daniel Alejandro Benavides D. > > >> Asunto: Re: [M3devel] elegosoft.com working? > > >> Para: "Olaf Wagner" > > >> CC: m3devel at elegosoft.com > > >> Fecha: mi?rcoles, 5 de enero, 2011 11:28 > > >> Hi all: > > >> yes, I think we should get access to building with > > cm3 at > > >> least, not sure if the sources according to the > > latest news > > >> on that. > > >> In the other hand whether we get this I hope > > sooner or > > >> later, I think it would be a m3quake directive > > like "esc()" > > >> to activate it from inside the building task > > process, so it > > >> can be integrated on the same building machine or > > another > > >> will need to have access to the same CM3 build and > > source > > >> repository and check it on the way, the only thing > > here, is > > >> that ESC need to build M3 sources with m3tk and if > > so, it > > >> will that aprox. by the same time cm3 compiler > > building > > >> software ends that ESC will feed itself with cm3 > > M3Build > > >> .M3IMPTAB import table not generated file now > > times for > > >> external compilers. I'm not sure anyway if that's > > the order > > >> of ESC input anyway, or will need first the > > .M3IMPPTAB back > > >> again perhaps will need to upgrade down or make a > > better > > >> independent procedure to expose this for it, see > > Revision > > >> 1.24: > > >> http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/cm3/src/M3Build.m3?annotate=1.24 > > >> if that's the case we would need to wait anyway > > for cm3 > > >> builds or call it from the IMPORTS to get it. > > Please if one > > >> can check that if it's need it and I will likely > > to see that > > >> too. I also think this would be a nice way of > > making a > > >> dependence analyzer (if so perhaps I think is > > better doing > > >> it with m3tk, what do you think? Besides its worth > > for Obliq > > >> and others too like cm3ide, etc) program for > > our and > > >> other clients too information IMHO. > > >> Thanks in advance > > >> > > >> P.D: according to Dr Greg Nelson the compiler is > > usually > > >> 10x times faster than the ESC process (not sure > > for the > > >> ESC/Java or the ESC/Moddula3), but this is mostly > > because of > > >> the Simplify theorem prover checking see: > > >> http://www.uwtv.org/programs/displayevent.aspx?rID=2761 > > >> Also for simplify see: > > >> http://portal.acm.org/citation.cfm?id=1066100.1066102&preflayout=flat > > >> whican can be downlaoded report from here: > > >> http://www.hpl.hp.com/techreports/2003/HPL-2003-148.html > > >> and benchmarks from here: > > >> http://goedel.cs.uiowa.edu/smtlib/benchmarks/pending/simplify_benchmarks.tar.gz > > >> > > >> > > >> --- El mi?, 5/1/11, Olaf Wagner > > >> escribi?: > > >> > > >> > De: Olaf Wagner > > >> > Asunto: Re: [M3devel] elegosoft.com working? > > >> > Para: "Daniel Alejandro Benavides D." > > >> > CC: m3devel at elegosoft.com > > >> > Fecha: mi?rcoles, 5 de enero, 2011 04:04 > > >> > Quoting "Daniel Alejandro Benavides > > >> > D." : > > >> > > > >> > > Hi all: > > >> > > thanks for the info, some time after it > > went on > > >> again > > >> > working, but still if there is some > > escalation > > >> issue > > >> > because of the compiler checks > > specially with > > >> the > > >> > computation time, like ESC and so, > > perhaps like > > >> in > > >> > night builds, what would be the machine needs > > for that > > >> > > >> > process and the results to allow? > > >> > > Based on some experience like in > > compilers we > > >> would > > >> > have access to the checks in more or > > less time > > >> if so I > > >> > guess we would need optimization anyway > > at > > >> source > > >> > level and execution level. Meanwhile > > more checks > > >> will > > >> > likely to be introduced, so it would a > > balance > > >> of both > > >> > needs. > > >> > > Thanks in advance > > >> > > > >> > I'm not sure if I understand correctly what > > you're > > >> aiming > > >> > at, but > > >> > I guess you worry that we need to introduce > > more > > >> > checks/tests like > > >> > ESC. Apart from my estimation that we won't > > get access > > >> to > > >> > the ESC M3 > > >> > sources, CPU time would not be a bottleneck, > > as (a) > > >> the > > >> > bottleneck on > > >> > birch is the I/O system and (b) we could > > easily > > >> delegate > > >> > such a task > > >> > to another server via Hudson. Anyway, once > > the web > > >> service > > >> > has been > > >> > moved to another machine there shouldn't be > > any more > > >> > problems with > > >> > our use of birch. > > >> > > > >> > Olaf > > >> > --Olaf Wagner -- elego Software Solutions > > GmbH > > >> > > > >> > Gustav-Meyer-Allee 25 / Geb?ude > > 12, > > >> 13355 > > >> > Berlin, Germany > > >> > phone: +49 30 23 45 86 96 mobile: +49 > > 177 2345 > > >> > 869 fax: +49 30 23 45 86 95 > > >> > http://www.elegosoft.com | > > >> > Gesch?ftsf?hrer: Olaf Wagner | Sitz: > > Berlin > > >> > Handelregister: Amtsgericht Charlottenburg > > HRB 77719 > > >> | > > >> > USt-IdNr: DE163214194 > > >> > > > >> > > > >> > > >> > > >> > > >> > > > > > > > > > > > > > > > > > > > > --Olaf Wagner -- elego Software Solutions GmbH > > > > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 > > Berlin, Germany > > phone: +49 30 23 45 86 96 mobile: +49 177 2345 > > 869 fax: +49 30 23 45 86 95 > > http://www.elegosoft.com | > > Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > > Handelregister: Amtsgericht Charlottenburg HRB 77719 | > > USt-IdNr: DE163214194 > > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 6 16:57:55 2011 From: jay.krell at cornell.edu (Jay K) Date: Thu, 6 Jan 2011 15:57:55 +0000 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: <5F258385-C84D-4103-9EBF-8B2C475D1BE0@cs.purdue.edu> References: , , , ,,, , ,,, , ,,, ,,, , , <7574D14D-BA09-44DE-98CE-6127CAEE7E8B@cs.purdue.edu>, , , , <5F258385-C84D-4103-9EBF-8B2C475D1BE0@cs.purdue.edu> Message-ID: I think _Unwind_RaiseException is the way to go. It is the Linux runtime, the Darwin runtime, the *BSD runtime. There still remains the setjmp option for portability. libunwind is sort of an option, carrying it around, but I think probably not preferred. - Jay From: hosking at cs.purdue.edu Date: Thu, 6 Jan 2011 09:27:03 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com Subject: Re: [M3devel] how to use gcc exception/unwind support? I am just leery of getting too much more entangled with the gcc runtime.It makes our compiler even more non-portable. On Jan 6, 2011, at 2:21 AM, Jay K wrote: >> Yes, indeed. We don't need all the overhead of the C++ exception handling mechanism. > It is so much? Well, it maybe is more to understand. There is also a very good chance that raising a Modula-3 exception will run C++ destructors for intervening threads, which is desirable, if we do this "right". Likewise, C++ exceptions running Modula-3 unlock/finally blocks. Interop can be good. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Jan 6 19:51:18 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 6 Jan 2011 13:51:18 -0500 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: References: , , , , , , , , , , , , , , , , , , , <7574D14D-BA09-44DE-98CE-6127CAEE7E8B@cs.purdue.edu>, , , , <5F258385-C84D-4103-9EBF-8B2C475D1BE0@cs.purdue.edu> Message-ID: I'd like something that allows us to use the existing RTExStack exception tables and does not depend on the compiler back-end to emit exception tables, except for assurances that code will not move around labels that define exception scopes. The advantage of this is that we can retain portability to different back-ends, so long as the runtime supports the necessary RTStack routines. On Jan 6, 2011, at 10:57 AM, Jay K wrote: > I think _Unwind_RaiseException is the way to go. > It is the Linux runtime, the Darwin runtime, the *BSD runtime. > There still remains the setjmp option for portability. > libunwind is sort of an option, carrying it around, but I think probably not preferred. > > - Jay > > From: hosking at cs.purdue.edu > Date: Thu, 6 Jan 2011 09:27:03 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] how to use gcc exception/unwind support? > > I am just leery of getting too much more entangled with the gcc runtime. > It makes our compiler even more non-portable. > > On Jan 6, 2011, at 2:21 AM, Jay K wrote: > > >> Yes, indeed. We don't need all the overhead of the C++ exception handling mechanism. > > > > It is so much? Well, it maybe is more to understand. > > > There is also a very good chance that raising a Modula-3 exception > will run C++ destructors for intervening threads, which is desirable, > if we do this "right". > Likewise, C++ exceptions running Modula-3 unlock/finally blocks. > Interop can be good. > > > - Jay > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Thu Jan 6 23:04:43 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Thu, 6 Jan 2011 22:04:43 +0000 (GMT) Subject: [M3devel] elegosoft.com working? In-Reply-To: Message-ID: <801408.24402.qm@web29713.mail.ird.yahoo.com> Hi all: yes, I think the current is to run the testing distributed, rather than standalone, this is because of memory and essentially because it aims to be like that distributed rather than standalone runs in those cases we have that scenario, perhaps the one most feasible if so, because inside the prover there is a logic programming language, so the idea of writing solvers in Java, etc, is not bad, anyway there is a interpreter in it, but we have a good tool already, a good language and seeing it more now it seems to be object oriented at some of it (I have now a compiler error <*NOWARN*> used to avoid somehow before when compiling the prover library), I read they were a compact team of developers but same comments I have read about Modula-3 not being so much object oriented restrictive language, and they have a reason language is not just object oriented I think, if we needed it to run distributed, we would likely to do it with and automatic parallelization, with a Compiler Static Analyzer to produce a concurrent server, see: http://www.usenix.org/publications/library/proceedings/sedms4/sims.html then I guess we could think how to distribute that, which guarantees the semantics of the system won't be touched, then if we just write in terms of another checker, like an ESC/Obliq, the semantics will be not touched and be happy about type checks because it has type inference or reconstruction so that guarantees that the type checking would be not needed and it will just have in terms of checks the simplify process as normal but also of a more object oriented fashion which is what the others are aiming to optimization, specially in C# and Java solvers. Perhaps that's the way to go, I guess the basics we could mimic and the internal structure put in Core Libraries of Modula-3 we would have safe distributed checking inside the Language itself and the better approach with this would be to solve first a test of the system performance: there was an experiment of the constraint solver procedure inside the Juno-2, done by Greg Nelson, during development of the project, they needed to make sure they would have scalable constraint resolution in large programs to be able to be doable in those, so did an experiment with it in the project Juno development, it however didn't prove too much but because of its continuous development but did make realize the system http://modula3.elegosoft.com/cm3/doc/help/gen_html/juno-machine/src/JunoByteCode.i3.html was performing some how, due changes because they need to proof the real performance for the sessions interactivity they need to render in the screen while doing the Juno modifications, they would needed the binaries size so made information useless. It is suggested that a log with a symbol table would allow the logs to be useful even if modifications happened, by storing the binaries if necessary. In ESC/Obliq and Simplify, Obliq hypothetic development case just an amount of effort to check the prover scalability will be needed given the uneeded binary information, although further improvement would allow a JIT for core parts I guess. see: see: ftp://gatekeeper.pa.dec.com/pub/DEC/SRC/research-reports/SRC-153.pdf (I realize late the relation between juno-machine and the Obliq interpreter) Other approaches than those I guess would like to see the within the tool in compile time manner, that's why I think in a more fashionable yet correct form of doing ESC looking for that opportunity would in that safe manners help us. Thanks in advance --- El jue, 6/1/11, Jay K escribi?: De: Jay K Asunto: RE: [M3devel] elegosoft.com working? Para: dabenavidesd at yahoo.es, "Olaf" CC: "m3devel" Fecha: jueves, 6 de enero, 2011 10:56 The gcc compiler is already optimizing. The integrated backend always optimizes a bit and produces half decent code. Fairly local optimizations though, very very very simple analysis. I'd like the machines to be powered off when idle, not find more ways to keep them busy. As well, most of the analysis is "portable" -- only needs to be one for one target, not all, so unless it is really large and easily distributed, just one machine. If we really are interested static analysis, a C or C++ or heck C# or Java generating backend plus throwing their static analyzers around is the way to go. ? There is far more energy thrown at other languages, and actually significant results, despite the starting point. ? Some tools might analyze binaries. valgrind? Modula-3 and ESC were ahead of their time at some point, but the world has largely caught up and in many ways surpassed. For example, Modula-3 was perhaps perhaps better than DCOM and CORBA, but these days, connected remoting has been deemed non-scalable and disconnected remoting is largely used, esp. via http. ?- Jay > Date: Thu, 6 Jan 2011 13:28:18 +0000 > From: dabenavidesd at yahoo.es > To: wagner at elegosoft.com > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] elegosoft.com working? > > Hi all: > yes, but maybe when if we got around an optimizing compiler we would need the verification condition generator to use the theorem prover, so the same deal again, and if so we would need also build machines dedicated also to that, I mean what is the point of having them to keeping idle while something in contrast would highly optimized it instead. I bet even the compiler is also to have optimization by it self, I guess everything would need to and so the optimization framework would need to run the theorem prover to work in each build. Even the Simplify, so we must keep and eye on it too meanwhile. > > Thanks in advance > > --- El jue, 6/1/11, Olaf Wagner escribi?: > > > De: Olaf Wagner > > Asunto: Re: [M3devel] elegosoft.com working? > > Para: "Daniel Alejandro Benavides D." > > CC: m3devel at elegosoft.com > > Fecha: jueves, 6 de enero, 2011 06:56 > > Let's worry about ESC integration > > when we get access to it. > > Anyway, I wouldn't run such checks in every build, but > > perform it > > on a certain machine e.g. once a day. > > > > Olaf > > > > Quoting "Daniel Alejandro Benavides D." : > > > > > Hi all: > > > I recall now that the current rend is run this theorem > > provers distributedly, rather than standalone, so we > > might given that we have already this in our hands the > > Simplify theorem prover, for a network instance, not > > sure if the I/O will be affected in that case, perhaps > > the most important thing is to verify full integrity > > of transfers. See about that issue: > > > http://nexus.realtimepublishers.com/ttgmft.php > > > (is a work in progress so if interested keep and eye > > on it, you can register if you want) > > > Given that simplify is not written object oriented, > > perhaps that must be thought to be like that. The > > thing is given it takes more than double times the > > time of the compile build process we might (the Greg > > nelson comment at 53:00 on the linked video) is it is > > a kind of slow process or of high length but ok to be > > run on nights. Perhaps given that the compiler > > building could take 2x a compiler build and the > > theorem proving 5x times that, which is we can run it > > each 5 runs in terms of the of two builds, i.e m3tk > > included. The thing is, if the source has not changed > > that is would be the case in some runs it could be in > > terms of less runs, so we can check in at least each 5 > > building tasks runs (of all platforms, i.e 5 parallel > > building tasks), I guess this tasks are programmed in some > > way, I don't recall where are the policies of this > > written, if someone can tell that for me or point me > > that, thanks in advance > > > > > > > > > --- El mi?, 5/1/11, Daniel Alejandro Benavides > > D. > > escribi?: > > > > > >> De: Daniel Alejandro Benavides D. > > >> Asunto: Re: [M3devel] elegosoft.com working? > > >> Para: "Olaf Wagner" > > >> CC: m3devel at elegosoft.com > > >> Fecha: mi?rcoles, 5 de enero, 2011 11:28 > > >> Hi all: > > >> yes, I think we should get access to building with > > cm3 at > > >> least, not sure if the sources according to the > > latest news > > >> on that. > > >> In the other hand whether we get this I hope > > sooner or > > >> later, I think it would be a m3quake directive > > like "esc()" > > >> to activate it from inside the building task > > process, so it > > >> can be integrated on the same building machine or > > another > > >> will need to have access to the same CM3 build and > > source > > >> repository and check it on the way, the only thing > > here, is > > >> that ESC need to build M3 sources with m3tk and if > > so, it > > >> will that aprox. by the same time cm3 compiler > > building > > >> software ends that ESC will feed itself with cm3 > > M3Build > > >> .M3IMPTAB import table not generated file now > > times for > > >> external compilers. I'm not sure anyway if that's > > the order > > >> of ESC input anyway, or will need first the > > .M3IMPPTAB back > > >> again perhaps will need to upgrade down or make a > > better > > >> independent procedure to expose this for it, see > > Revision > > >> 1.24: > > >> http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/cm3/src/M3Build.m3?annotate=1.24 > > >> if that's the case we would need to wait anyway > > for cm3 > > >> builds or call it from the IMPORTS to get it. > > Please if one > > >> can check that if it's need it and I will likely > > to see that > > >> too. I also think this would be a nice way of > > making a > > >> dependence analyzer (if so perhaps I think is > > better doing > > >> it with m3tk, what do you think? Besides its worth > > for Obliq > > >> and others too like cm3ide, etc) program for > > our and > > >> other clients too information IMHO. > > >> Thanks in advance > > >> > > >> P.D: according to Dr Greg Nelson the compiler is > > usually > > >> 10x times faster than the ESC process (not sure > > for the > > >> ESC/Java or the ESC/Moddula3), but this is mostly > > because of > > >> the Simplify theorem prover checking see: > > >> http://www.uwtv.org/programs/displayevent.aspx?rID=2761 > > >> Also for simplify see: > > >> http://portal.acm.org/citation.cfm?id=1066100.1066102&preflayout=flat > > >> whican can be downlaoded report from here: > > >> http://www.hpl.hp.com/techreports/2003/HPL-2003-148.html > > >> and benchmarks from here: > > >> http://goedel.cs.uiowa.edu/smtlib/benchmarks/pending/simplify_benchmarks.tar.gz > > >> > > >> > > >> --- El mi?, 5/1/11, Olaf Wagner > > >> escribi?: > > >> > > >> > De: Olaf Wagner > > >> > Asunto: Re: [M3devel] elegosoft.com working? > > >> > Para: "Daniel Alejandro Benavides D." > > >> > CC: m3devel at elegosoft.com > > >> > Fecha: mi?rcoles, 5 de enero, 2011 04:04 > > >> > Quoting "Daniel Alejandro Benavides > > >> > D." : > > >> > > > >> > > Hi all: > > >> > > thanks for the info, some time after it > > went on > > >> again > > >> > working, but still if there is some > > escalation > > >> issue > > >> > because of the compiler checks > > specially with > > >> the > > >> > computation time, like ESC and so, > > perhaps like > > >> in > > >> > night builds, what would be the machine needs > > for that > > >> > > >> > process and the results to allow? > > >> > > Based on some experience like in > > compilers we > > >> would > > >> > have access to the checks in more or > > less time > > >> if so I > > >> > guess we would need optimization anyway > > at > > >> source > > >> > level and execution level. Meanwhile > > more checks > > >> will > > >> > likely to be introduced, so it would a > > balance > > >> of both > > >> > needs. > > >> > > Thanks in advance > > >> > > > >> > I'm not sure if I understand correctly what > > you're > > >> aiming > > >> > at, but > > >> > I guess you worry that we need to introduce > > more > > >> > checks/tests like > > >> > ESC. Apart from my estimation that we won't > > get access > > >> to > > >> > the ESC M3 > > >> > sources, CPU time would not be a bottleneck, > > as (a) > > >> the > > >> > bottleneck on > > >> > birch is the I/O system and (b) we could > > easily > > >> delegate > > >> > such a task > > >> > to another server via Hudson. Anyway, once > > the web > > >> service > > >> > has been > > >> > moved to another machine there shouldn't be > > any more > > >> > problems with > > >> > our use of birch. > > >> > > > >> > Olaf > > >> > --Olaf Wagner -- elego Software Solutions > > GmbH > > >> > > > >> > Gustav-Meyer-Allee 25 / Geb?ude > > 12, > > >> 13355 > > >> > Berlin, Germany > > >> > phone: +49 30 23 45 86 96 mobile: +49 > > 177 2345 > > >> > 869 fax: +49 30 23 45 86 95 > > >> > http://www.elegosoft.com | > > >> > Gesch?ftsf?hrer: Olaf Wagner | Sitz: > > Berlin > > >> > Handelregister: Amtsgericht Charlottenburg > > HRB 77719 > > >> | > > >> > USt-IdNr: DE163214194 > > >> > > > >> > > > >> > > >> > > >> > > >> > > > > > > > > > > > > > > > > > > > > --Olaf Wagner -- elego Software Solutions GmbH > > > > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 > > Berlin, Germany > > phone: +49 30 23 45 86 96 mobile: +49 177 2345 > > 869 fax: +49 30 23 45 86 95 > > http://www.elegosoft.com | > > Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > > Handelregister: Amtsgericht Charlottenburg HRB 77719 | > > USt-IdNr: DE163214194 > > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.anderson at elego.de Fri Jan 7 11:43:32 2011 From: michael.anderson at elego.de (Michael Anderson) Date: Fri, 07 Jan 2011 11:43:32 +0100 Subject: [M3devel] [elego Server Maintenance] Friday 07.01.2011 20:30 CEST Message-ID: <4D26EE54.7030402@elego.de> Hello, On Friday, Januar 7 at 8:30 PM CEST, we will perform scheduled maintenance on our servers. Brief interruptions of service may occur. Expected duration: 120 Min. We apologize for any inconvenience. - the elego Admins am Freitag, den 07.01, werden ab 20.30 Uhr CEST planm??ige Wartungsma?nahmen an unseren Servern durchgef?hrt. Es kann zur kurzzeitigen Unterbrechung mancher Dienste kommen. Voraussichtliche Dauer der Wartung: 120 Min. Wir bitten um Verst?ndnis. - die elego Admins -- Michael Anderson IT Services & Support elego Software Solutions GmbH Gustav-Meyer-Allee 25 Building 12.3 (BIG) room 227 13355 Berlin, Germany phone +49 30 23 45 86 96 michael.anderson at elegosoft.com fax +49 30 23 45 86 95 http://www.elegosoft.com Geschaeftsfuehrer: Olaf Wagner, Sitz Berlin Amtsgericht Berlin-Charlottenburg, HRB 77719, USt-IdNr: DE163214194 From mika at async.caltech.edu Fri Jan 7 16:14:11 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Fri, 07 Jan 2011 07:14:11 -0800 Subject: [M3devel] deadlock... in ThreadPThread.m3? Message-ID: <20110107151412.026651A205B@async.async.caltech.edu> Hi m3devel (especially Tony), I'm having a problem with a Modula-3 program that seems to deadlock with one of my 60+ threads stuck in Process.Create. Is it possible there is a bug in ThreadPThread.m3? (Would be really nice to have a deadlock detector here, you know... rather than have the program go catatonic when there's a deadlock. Deadlock is stable so the detector could run very infrequently---i.e., be very inefficient---and still be extremely useful....) I don't think there is anything I ought to be able to do from "user code" that would cause Process.Create to be part of a deadlock cycle. Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) possibly exhibit itself as a failure of Process.Create to complete?? Below are backtraces of the threads stuck in some sort of locking activity, platform is I386_DARWIN at head as of a couple of weeks ago. (I deleted the threads that are up to other things than locking.) Mika Thread 68 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 #5 0x97137217 in _cthread_fork_prepare () #6 0x97137155 in fork () #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC ommon.m3:75 #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #13 0x9713885d in _pthread_start () #14 0x971386e2 in thread_start () Thread 65 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #33 0x9713885d in _pthread_start () #34 0x971386e2 in thread_start () Thread 64 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #28 0x9713885d in _pthread_start () #29 0x971386e2 in thread_start () Thread 60 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 59 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #19 0x9713885d in _pthread_start () #20 0x971386e2 in thread_start () Thread 52 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #14 0x9713885d in _pthread_start () #15 0x971386e2 in thread_start () Thread 51 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #14 0x9713885d in _pthread_start () #15 0x971386e2 in thread_start () Thread 27 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 2 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #13 0x9713885d in _pthread_start () #14 0x971386e2 in thread_start () From hosking at cs.purdue.edu Fri Jan 7 16:23:58 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 7 Jan 2011 10:23:58 -0500 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: <20110107151412.026651A205B@async.async.caltech.edu> References: <20110107151412.026651A205B@async.async.caltech.edu> Message-ID: <81AE882C-6A4F-4460-90D3-CA570D294E5E@cs.purdue.edu> Is this release or CVS head? On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: > Hi m3devel (especially Tony), > > I'm having a problem with a Modula-3 program that seems to deadlock > with one of my 60+ threads stuck in Process.Create. Is it possible > there is a bug in ThreadPThread.m3? (Would be really nice to have a > deadlock detector here, you know... rather than have the program go > catatonic when there's a deadlock. Deadlock is stable so the detector > could run very infrequently---i.e., be very inefficient---and still be > extremely useful....) > > I don't think there is anything I ought to be able to do from "user > code" that would cause Process.Create to be part of a deadlock cycle. > Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) > possibly exhibit itself as a failure of Process.Create to complete?? > > Below are backtraces of the threads stuck in some sort of locking > activity, platform is I386_DARWIN at head as of a couple of weeks ago. > (I deleted the threads that are up to other things than locking.) > > Mika > > Thread 68 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 > #5 0x97137217 in _cthread_fork_prepare () > #6 0x97137155 in fork () > #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC > ommon.m3:75 > #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > Thread 65 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 > #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 > #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 > #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 > #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 > #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 > #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 > #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 > #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 > #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 > #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 > #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 > #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 > #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 > #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 > #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #33 0x9713885d in _pthread_start () > #34 0x971386e2 in thread_start () > > Thread 64 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 > #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 > #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 > #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 > #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 > #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 > #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 > #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 > #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 > #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 > #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 > #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #28 0x9713885d in _pthread_start () > #29 0x971386e2 in thread_start () > > Thread 60 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 > #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 > #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 > #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 59 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 > #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 > #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 > #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 > #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 > #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 > #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 > #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 > #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #19 0x9713885d in _pthread_start () > #20 0x971386e2 in thread_start () > > Thread 52 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 > #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 > #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 > #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #14 0x9713885d in _pthread_start () > #15 0x971386e2 in thread_start () > > Thread 51 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 > #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 > #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 > #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 > #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #14 0x9713885d in _pthread_start () > #15 0x971386e2 in thread_start () > > Thread 27 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 2 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 > #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 > #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 > #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 > #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > From hosking at cs.purdue.edu Fri Jan 7 16:42:38 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 7 Jan 2011 10:42:38 -0500 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: <20110107151412.026651A205B@async.async.caltech.edu> References: <20110107151412.026651A205B@async.async.caltech.edu> Message-ID: <10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu> This has something to do with the fork handlers Jay introduced, which run when a process is forked. They invoke LockHeap in the parent before the fork, and UnlockHeap in the parent after the fork. It appears that your threads are stuck waiting on LockHeap. Also, we have two threads in your trace trying to acquire initMu. Jay, I think we have a deadlock caused by AtForkPrepare. Ideas? On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: > Hi m3devel (especially Tony), > > I'm having a problem with a Modula-3 program that seems to deadlock > with one of my 60+ threads stuck in Process.Create. Is it possible > there is a bug in ThreadPThread.m3? (Would be really nice to have a > deadlock detector here, you know... rather than have the program go > catatonic when there's a deadlock. Deadlock is stable so the detector > could run very infrequently---i.e., be very inefficient---and still be > extremely useful....) > > I don't think there is anything I ought to be able to do from "user > code" that would cause Process.Create to be part of a deadlock cycle. > Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) > possibly exhibit itself as a failure of Process.Create to complete?? > > Below are backtraces of the threads stuck in some sort of locking > activity, platform is I386_DARWIN at head as of a couple of weeks ago. > (I deleted the threads that are up to other things than locking.) > > Mika > > Thread 68 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 > #5 0x97137217 in _cthread_fork_prepare () > #6 0x97137155 in fork () > #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC > ommon.m3:75 > #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > Thread 65 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 > #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 > #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 > #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 > #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 > #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 > #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 > #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 > #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 > #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 > #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 > #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 > #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 > #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 > #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 > #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #33 0x9713885d in _pthread_start () > #34 0x971386e2 in thread_start () > > Thread 64 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 > #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 > #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 > #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 > #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 > #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 > #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 > #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 > #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 > #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 > #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 > #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #28 0x9713885d in _pthread_start () > #29 0x971386e2 in thread_start () > > Thread 60 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 > #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 > #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 > #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 59 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 > #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 > #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 > #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 > #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 > #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 > #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 > #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 > #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #19 0x9713885d in _pthread_start () > #20 0x971386e2 in thread_start () > > Thread 52 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 > #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 > #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 > #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #14 0x9713885d in _pthread_start () > #15 0x971386e2 in thread_start () > > Thread 51 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 > #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 > #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 > #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 > #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #14 0x9713885d in _pthread_start () > #15 0x971386e2 in thread_start () > > Thread 27 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 2 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 > #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 > #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 > #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 > #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > From jay.krell at cornell.edu Fri Jan 7 21:31:00 2011 From: jay.krell at cornell.edu (Jay K) Date: Fri, 7 Jan 2011 20:31:00 +0000 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: <10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu> References: <20110107151412.026651A205B@async.async.caltech.edu>, <10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu> Message-ID: We need a lock order. I guessed. Maybe poorly. I/we should study the code and these stacks more and determine its validity. Here is the code, *slightly* altered just now for debuggability. VAR ? locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; PROCEDURE AtForkPrepare() = ? VAR me := GetActivation(); ????? act: Activation; ????? cond: Condition; ? BEGIN ??? Acquire(joinMu); ??? LockHeap(); ??? FOR i := FIRST(locks) TO LAST(locks) DO ????? PThreadLockMutex(locks[i], ThisLine(), i); ??? END; ??? (* Walk activations and lock all threads, conditions. ???? * NOTE: We have initMu, activeMu, so slots ???? * won't change, conditions and mutexes ???? * won't be initialized on-demand. ???? *) ??? act := me; ??? REPEAT ????? PThreadLockMutex(act.mutex, ThisLine(), -1); ????? (*PThreadLockMutex(act.waitingOn, ThisLine());*) ????? cond := slots[act.slot].join; ????? IF cond # NIL THEN PThreadLockMutex(cond.mutex, ThisLine(), -2) END; ????? act := act.next; ??? UNTIL act = me; ? END AtForkPrepare; Mika, if this easy to reproduce, please try again from head. The problem is not fixed, but there's a little more information that will appear. ?- Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Fri, 7 Jan 2011 10:42:38 -0500 > To: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > This has something to do with the fork handlers Jay introduced, which run when a process is forked. They invoke LockHeap in the parent before the fork, and UnlockHeap in the parent after the fork. It appears that your threads are stuck waiting on LockHeap. Also, we have two threads in your trace trying to acquire initMu. Jay, I think we have a deadlock caused by AtForkPrepare. Ideas? > > On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: > > > Hi m3devel (especially Tony), > > > > I'm having a problem with a Modula-3 program that seems to deadlock > > with one of my 60+ threads stuck in Process.Create. Is it possible > > there is a bug in ThreadPThread.m3? (Would be really nice to have a > > deadlock detector here, you know... rather than have the program go > > catatonic when there's a deadlock. Deadlock is stable so the detector > > could run very infrequently---i.e., be very inefficient---and still be > > extremely useful....) > > > > I don't think there is anything I ought to be able to do from "user > > code" that would cause Process.Create to be part of a deadlock cycle. > > Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) > > possibly exhibit itself as a failure of Process.Create to complete?? > > > > Below are backtraces of the threads stuck in some sort of locking > > activity, platform is I386_DARWIN at head as of a couple of weeks ago. > > (I deleted the threads that are up to other things than locking.) > > > > Mika > > > > Thread 68 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > > #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 > > #5 0x97137217 in _cthread_fork_prepare () > > #6 0x97137155 in fork () > > #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC > > ommon.m3:75 > > #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > > #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > > #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 > > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #13 0x9713885d in _pthread_start () > > #14 0x971386e2 in thread_start () > > > > Thread 65 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 > > #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 > > #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 > > #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > > #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 > > #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 > > #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 > > #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 > > #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 > > #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 > > #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 > > #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 > > #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 > > #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 > > #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 > > #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > > #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > > #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > > #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 > > #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #33 0x9713885d in _pthread_start () > > #34 0x971386e2 in thread_start () > > > > Thread 64 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 > > #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 > > #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 > > #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > > #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 > > #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 > > #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 > > #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 > > #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 > > #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 > > #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 > > #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > > #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > > #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > > #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 > > #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #28 0x9713885d in _pthread_start () > > #29 0x971386e2 in thread_start () > > > > Thread 60 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > > #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > > #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 > > #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 > > #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 > > #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > > #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 > > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #12 0x9713885d in _pthread_start () > > #13 0x971386e2 in thread_start () > > > > Thread 59 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > > #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 > > #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 > > #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 > > #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 > > #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 > > #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 > > #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 > > #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > > #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > > #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > > #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 > > #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #19 0x9713885d in _pthread_start () > > #20 0x971386e2 in thread_start () > > > > Thread 52 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > > #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 > > #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 > > #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 > > #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > > #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > > #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > > #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 > > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #14 0x9713885d in _pthread_start () > > #15 0x971386e2 in thread_start () > > > > Thread 51 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > > #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 > > #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 > > #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > > #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > > #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 > > #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 > > #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 > > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #14 0x9713885d in _pthread_start () > > #15 0x971386e2 in thread_start () > > > > Thread 27 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > > #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > > #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > > #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 > > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #9 0x9713885d in _pthread_start () > > #10 0x971386e2 in thread_start () > > > > Thread 2 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 > > #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 > > #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 > > #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 > > #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 > > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #13 0x9713885d in _pthread_start () > > #14 0x971386e2 in thread_start () > > > > > From jay.krell at cornell.edu Sat Jan 8 00:51:16 2011 From: jay.krell at cornell.edu (Jay K) Date: Fri, 7 Jan 2011 23:51:16 +0000 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: References: <20110107151412.026651A205B@async.async.caltech.edu>, <10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu>, Message-ID: Btw, I didn't entirely guess, but it looks like my analysis was incomplete. Mostly the locks aren't taken together. But not entirely.. I think I see the problem or almost. > > Thread 64 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 has initMu and is trying to LockHeap We can release initMu before calling RegisterFinalCleanup here, right? And then AtForkPrepare locks the heap before initMu. ? locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; PROCEDURE AtForkPrepare() = ? VAR me := GetActivation(); ????? act: Activation; ????? cond: Condition; ? BEGIN ??? Acquire(joinMu); ??? LockHeap(); ??? FOR i := FIRST(locks) TO LAST(locks) DO ????? PThreadLockMutex(locks[i], ThisLine(), i); ??? END; ?- Jay ---------------------------------------- > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu; mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: RE: [M3devel] deadlock... in ThreadPThread.m3? > Date: Fri, 7 Jan 2011 20:31:00 +0000 > > > We need a lock order. I guessed. Maybe poorly. I/we should study the code and these stacks more and determine its validity. > > > Here is the code, *slightly* altered just now for debuggability. > > > VAR > locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; > > > > PROCEDURE AtForkPrepare() = > VAR me := GetActivation(); > act: Activation; > cond: Condition; > BEGIN > Acquire(joinMu); > LockHeap(); > FOR i := FIRST(locks) TO LAST(locks) DO > PThreadLockMutex(locks[i], ThisLine(), i); > END; > (* Walk activations and lock all threads, conditions. > * NOTE: We have initMu, activeMu, so slots > * won't change, conditions and mutexes > * won't be initialized on-demand. > *) > act := me; > REPEAT > PThreadLockMutex(act.mutex, ThisLine(), -1); > (*PThreadLockMutex(act.waitingOn, ThisLine());*) > cond := slots[act.slot].join; > IF cond # NIL THEN PThreadLockMutex(cond.mutex, ThisLine(), -2) END; > act := act.next; > UNTIL act = me; > END AtForkPrepare; > > > > Mika, if this easy to reproduce, please try again from head. > The problem is not fixed, but there's a little more information that will appear. > > > - Jay > > > > ---------------------------------------- > > From: hosking at cs.purdue.edu > > Date: Fri, 7 Jan 2011 10:42:38 -0500 > > To: mika at async.caltech.edu > > CC: m3devel at elegosoft.com > > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > > > This has something to do with the fork handlers Jay introduced, which run when a process is forked. They invoke LockHeap in the parent before the fork, and UnlockHeap in the parent after the fork. It appears that your threads are stuck waiting on LockHeap. Also, we have two threads in your trace trying to acquire initMu. Jay, I think we have a deadlock caused by AtForkPrepare. Ideas? > > > > On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: > > > > > Hi m3devel (especially Tony), > > > > > > I'm having a problem with a Modula-3 program that seems to deadlock > > > with one of my 60+ threads stuck in Process.Create. Is it possible > > > there is a bug in ThreadPThread.m3? (Would be really nice to have a > > > deadlock detector here, you know... rather than have the program go > > > catatonic when there's a deadlock. Deadlock is stable so the detector > > > could run very infrequently---i.e., be very inefficient---and still be > > > extremely useful....) > > > > > > I don't think there is anything I ought to be able to do from "user > > > code" that would cause Process.Create to be part of a deadlock cycle. > > > Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) > > > possibly exhibit itself as a failure of Process.Create to complete?? > > > > > > Below are backtraces of the threads stuck in some sort of locking > > > activity, platform is I386_DARWIN at head as of a couple of weeks ago. > > > (I deleted the threads that are up to other things than locking.) > > > > > > Mika > > > > > > Thread 68 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > > > #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 > > > #5 0x97137217 in _cthread_fork_prepare () > > > #6 0x97137155 in fork () > > > #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC > > > ommon.m3:75 > > > #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > > > #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > > > #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 > > > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #13 0x9713885d in _pthread_start () > > > #14 0x971386e2 in thread_start () > > > > > > Thread 65 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > > #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 > > > #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > > #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 > > > #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 > > > #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > > > #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 > > > #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 > > > #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 > > > #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 > > > #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 > > > #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 > > > #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 > > > #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 > > > #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 > > > #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 > > > #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 > > > #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > > > #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > > > #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > > > #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 > > > #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #33 0x9713885d in _pthread_start () > > > #34 0x971386e2 in thread_start () > > > > > > Thread 64 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > > > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > > > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 > > > #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > > #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 > > > #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 > > > #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > > > #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 > > > #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 > > > #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > > #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 > > > #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > > #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 > > > #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > > #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 > > > #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 > > > #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 > > > #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > > > #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > > > #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > > > #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 > > > #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #28 0x9713885d in _pthread_start () > > > #29 0x971386e2 in thread_start () > > > > > > Thread 60 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > > > #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > > > #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 > > > #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 > > > #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 > > > #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > > > #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 > > > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #12 0x9713885d in _pthread_start () > > > #13 0x971386e2 in thread_start () > > > > > > Thread 59 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > > #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > > > #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 > > > #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 > > > #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 > > > #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 > > > #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 > > > #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 > > > #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 > > > #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > > > #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > > > #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > > > #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 > > > #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #19 0x9713885d in _pthread_start () > > > #20 0x971386e2 in thread_start () > > > > > > Thread 52 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > > > #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 > > > #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 > > > #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 > > > #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > > > #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > > > #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > > > #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 > > > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #14 0x9713885d in _pthread_start () > > > #15 0x971386e2 in thread_start () > > > > > > Thread 51 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > > > #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 > > > #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 > > > #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > > > #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > > > #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 > > > #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 > > > #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 > > > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #14 0x9713885d in _pthread_start () > > > #15 0x971386e2 in thread_start () > > > > > > Thread 27 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > > > #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > > > #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > > > #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 > > > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #9 0x9713885d in _pthread_start () > > > #10 0x971386e2 in thread_start () > > > > > > Thread 2 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > > #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 > > > #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > > #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 > > > #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 > > > #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 > > > #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 > > > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #13 0x9713885d in _pthread_start () > > > #14 0x971386e2 in thread_start () > > > > > > > > > From jay.krell at cornell.edu Sat Jan 8 01:24:53 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 00:24:53 +0000 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: References: <20110107151412.026651A205B@async.async.caltech.edu>, , <10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu>, , , Message-ID: ? Index: PTHREAD/ThreadPThread.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3,v retrieving revision 1.244 diff -u -w -r1.244 ThreadPThread.m3 --- PTHREAD/ThreadPThread.m3??? 7 Jan 2011 20:28:59 -0000??? 1.244 +++ PTHREAD/ThreadPThread.m3??? 8 Jan 2011 00:24:26 -0000 @@ -97,8 +97,10 @@ ????????????????????? Clean: PROCEDURE(root: REFANY)) = ?? VAR mutex := pthread_mutex_new(); ?? BEGIN +??? LockHeap(); ???? TRY ?????? WITH r = pthread_mutex_lock(initMu) DO <*ASSERT r=0*> END; +????? TRY ?????? (* Did someone else win? *) ?????? IF m # NIL THEN RETURN END; ?????? (* We won, but we might have failed to allocate! *) @@ -109,6 +111,9 @@ ???? FINALLY ?????? WITH r = pthread_mutex_unlock(initMu) DO <*ASSERT r=0*> END; ?????? pthread_mutex_delete(mutex); +????? END +??? FINALLY +????? UnlockHeap(); ???? END; ?? END InitMutex; ? I'll try this. ?- Jay ---------------------------------------- > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu; mika at async.caltech.edu > Date: Fri, 7 Jan 2011 23:51:16 +0000 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > > Btw, I didn't entirely guess, but it looks like my analysis was incomplete. > Mostly the locks aren't taken together. But not entirely.. > > > I think I see the problem or almost. > > > > > Thread 64 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > > > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > > > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > has initMu and is trying to LockHeap > > > We can release initMu before calling RegisterFinalCleanup here, right? > > > And then AtForkPrepare locks the heap before initMu. > > > locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; > > > PROCEDURE AtForkPrepare() = > VAR me := GetActivation(); > act: Activation; > cond: Condition; > BEGIN > Acquire(joinMu); > LockHeap(); > FOR i := FIRST(locks) TO LAST(locks) DO > PThreadLockMutex(locks[i], ThisLine(), i); > END; > > > - Jay > > > > > > > > > > > ---------------------------------------- > > From: jay.krell at cornell.edu > > To: hosking at cs.purdue.edu; mika at async.caltech.edu > > CC: m3devel at elegosoft.com > > Subject: RE: [M3devel] deadlock... in ThreadPThread.m3? > > Date: Fri, 7 Jan 2011 20:31:00 +0000 > > > > > > We need a lock order. I guessed. Maybe poorly. I/we should study the code and these stacks more and determine its validity. > > > > > > Here is the code, *slightly* altered just now for debuggability. > > > > > > VAR > > locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; > > > > > > > > PROCEDURE AtForkPrepare() = > > VAR me := GetActivation(); > > act: Activation; > > cond: Condition; > > BEGIN > > Acquire(joinMu); > > LockHeap(); > > FOR i := FIRST(locks) TO LAST(locks) DO > > PThreadLockMutex(locks[i], ThisLine(), i); > > END; > > (* Walk activations and lock all threads, conditions. > > * NOTE: We have initMu, activeMu, so slots > > * won't change, conditions and mutexes > > * won't be initialized on-demand. > > *) > > act := me; > > REPEAT > > PThreadLockMutex(act.mutex, ThisLine(), -1); > > (*PThreadLockMutex(act.waitingOn, ThisLine());*) > > cond := slots[act.slot].join; > > IF cond # NIL THEN PThreadLockMutex(cond.mutex, ThisLine(), -2) END; > > act := act.next; > > UNTIL act = me; > > END AtForkPrepare; > > > > > > > > Mika, if this easy to reproduce, please try again from head. > > The problem is not fixed, but there's a little more information that will appear. > > > > > > - Jay > > > > > > > > ---------------------------------------- > > > From: hosking at cs.purdue.edu > > > Date: Fri, 7 Jan 2011 10:42:38 -0500 > > > To: mika at async.caltech.edu > > > CC: m3devel at elegosoft.com > > > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > > > > > This has something to do with the fork handlers Jay introduced, which run when a process is forked. They invoke LockHeap in the parent before the fork, and UnlockHeap in the parent after the fork. It appears that your threads are stuck waiting on LockHeap. Also, we have two threads in your trace trying to acquire initMu. Jay, I think we have a deadlock caused by AtForkPrepare. Ideas? > > > > > > On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: > > > > > > > Hi m3devel (especially Tony), > > > > > > > > I'm having a problem with a Modula-3 program that seems to deadlock > > > > with one of my 60+ threads stuck in Process.Create. Is it possible > > > > there is a bug in ThreadPThread.m3? (Would be really nice to have a > > > > deadlock detector here, you know... rather than have the program go > > > > catatonic when there's a deadlock. Deadlock is stable so the detector > > > > could run very infrequently---i.e., be very inefficient---and still be > > > > extremely useful....) > > > > > > > > I don't think there is anything I ought to be able to do from "user > > > > code" that would cause Process.Create to be part of a deadlock cycle. > > > > Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) > > > > possibly exhibit itself as a failure of Process.Create to complete?? > > > > > > > > Below are backtraces of the threads stuck in some sort of locking > > > > activity, platform is I386_DARWIN at head as of a couple of weeks ago. > > > > (I deleted the threads that are up to other things than locking.) > > > > > > > > Mika > > > > > > > > Thread 68 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > > > > #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 > > > > #5 0x97137217 in _cthread_fork_prepare () > > > > #6 0x97137155 in fork () > > > > #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC > > > > ommon.m3:75 > > > > #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > > > > #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > > > > #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 > > > > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #13 0x9713885d in _pthread_start () > > > > #14 0x971386e2 in thread_start () > > > > > > > > Thread 65 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > > > #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > > #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 > > > > #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > > > #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 > > > > #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 > > > > #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > > > > #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 > > > > #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 > > > > #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > > #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 > > > > #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 > > > > #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > > #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 > > > > #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > > #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 > > > > #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > > #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 > > > > #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > > #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 > > > > #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > > #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 > > > > #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 > > > > #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 > > > > #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > > > > #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > > > > #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > > > > #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 > > > > #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #33 0x9713885d in _pthread_start () > > > > #34 0x971386e2 in thread_start () > > > > > > > > Thread 64 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > > > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > > > > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > > > > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > > #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 > > > > #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > > > #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 > > > > #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 > > > > #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > > > > #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 > > > > #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 > > > > #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > > > #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 > > > > #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > > > #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 > > > > #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > > > #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 > > > > #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 > > > > #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 > > > > #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > > > > #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > > > > #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > > > > #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 > > > > #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #28 0x9713885d in _pthread_start () > > > > #29 0x971386e2 in thread_start () > > > > > > > > Thread 60 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > > > > #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > > > > #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 > > > > #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 > > > > #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 > > > > #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > > > > #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 > > > > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #12 0x9713885d in _pthread_start () > > > > #13 0x971386e2 in thread_start () > > > > > > > > Thread 59 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > > > #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > > #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > > > > #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 > > > > #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 > > > > #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 > > > > #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 > > > > #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 > > > > #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 > > > > #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 > > > > #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > > > > #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > > > > #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > > > > #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 > > > > #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #19 0x9713885d in _pthread_start () > > > > #20 0x971386e2 in thread_start () > > > > > > > > Thread 52 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > > > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > > > > #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 > > > > #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 > > > > #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 > > > > #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > > > > #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > > > > #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > > > > #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 > > > > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #14 0x9713885d in _pthread_start () > > > > #15 0x971386e2 in thread_start () > > > > > > > > Thread 51 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > > > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > > > > #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 > > > > #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 > > > > #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > > > > #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > > > > #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 > > > > #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 > > > > #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 > > > > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #14 0x9713885d in _pthread_start () > > > > #15 0x971386e2 in thread_start () > > > > > > > > Thread 27 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > > > > #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > > > > #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > > > > #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 > > > > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #9 0x9713885d in _pthread_start () > > > > #10 0x971386e2 in thread_start () > > > > > > > > Thread 2 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > > > #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > > #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 > > > > #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > > > #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 > > > > #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 > > > > #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 > > > > #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 > > > > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #13 0x9713885d in _pthread_start () > > > > #14 0x971386e2 in thread_start () > > > > > > > > > > > > > > From hosking at cs.purdue.edu Sat Jan 8 02:31:36 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 7 Jan 2011 20:31:36 -0500 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: References: <20110107151412.026651A205B@async.async.caltech.edu>, , <10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu>, , , Message-ID: <0A37C595-C896-4B66-9EDF-61BB30645321@cs.purdue.edu> No, we don't want that since it can cause other problems. Better is not to be holding LockHeap when you acquire initMu in AtForkPrepare. Also, do we really need to hold LockHeap across the fork? I don't see the need for it. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 7, 2011, at 7:24 PM, Jay K wrote: > > ? > > Index: PTHREAD/ThreadPThread.m3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3,v > retrieving revision 1.244 > diff -u -w -r1.244 ThreadPThread.m3 > --- PTHREAD/ThreadPThread.m3 7 Jan 2011 20:28:59 -0000 1.244 > +++ PTHREAD/ThreadPThread.m3 8 Jan 2011 00:24:26 -0000 > @@ -97,8 +97,10 @@ > Clean: PROCEDURE(root: REFANY)) = > VAR mutex := pthread_mutex_new(); > BEGIN > + LockHeap(); > TRY > WITH r = pthread_mutex_lock(initMu) DO <*ASSERT r=0*> END; > + TRY > (* Did someone else win? *) > IF m # NIL THEN RETURN END; > (* We won, but we might have failed to allocate! *) > @@ -109,6 +111,9 @@ > FINALLY > WITH r = pthread_mutex_unlock(initMu) DO <*ASSERT r=0*> END; > pthread_mutex_delete(mutex); > + END > + FINALLY > + UnlockHeap(); > END; > END InitMutex; > > > > I'll try this. > > > - Jay > > > ---------------------------------------- >> From: jay.krell at cornell.edu >> To: hosking at cs.purdue.edu; mika at async.caltech.edu >> Date: Fri, 7 Jan 2011 23:51:16 +0000 >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? >> >> >> Btw, I didn't entirely guess, but it looks like my analysis was incomplete. >> Mostly the locks aren't taken together. But not entirely.. >> >> >> I think I see the problem or almost. >> >> >>>> Thread 64 (process 32362): >>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>> #1 0x97110c46 in pthread_mutex_lock () >>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 >>>> #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 >>>> #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 >>>> #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >> >> >> has initMu and is trying to LockHeap >> >> >> We can release initMu before calling RegisterFinalCleanup here, right? >> >> >> And then AtForkPrepare locks the heap before initMu. >> >> >> locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; >> >> >> PROCEDURE AtForkPrepare() = >> VAR me := GetActivation(); >> act: Activation; >> cond: Condition; >> BEGIN >> Acquire(joinMu); >> LockHeap(); >> FOR i := FIRST(locks) TO LAST(locks) DO >> PThreadLockMutex(locks[i], ThisLine(), i); >> END; >> >> >> - Jay >> >> >> >> >> >> >> >> >> >> >> ---------------------------------------- >>> From: jay.krell at cornell.edu >>> To: hosking at cs.purdue.edu; mika at async.caltech.edu >>> CC: m3devel at elegosoft.com >>> Subject: RE: [M3devel] deadlock... in ThreadPThread.m3? >>> Date: Fri, 7 Jan 2011 20:31:00 +0000 >>> >>> >>> We need a lock order. I guessed. Maybe poorly. I/we should study the code and these stacks more and determine its validity. >>> >>> >>> Here is the code, *slightly* altered just now for debuggability. >>> >>> >>> VAR >>> locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; >>> >>> >>> >>> PROCEDURE AtForkPrepare() = >>> VAR me := GetActivation(); >>> act: Activation; >>> cond: Condition; >>> BEGIN >>> Acquire(joinMu); >>> LockHeap(); >>> FOR i := FIRST(locks) TO LAST(locks) DO >>> PThreadLockMutex(locks[i], ThisLine(), i); >>> END; >>> (* Walk activations and lock all threads, conditions. >>> * NOTE: We have initMu, activeMu, so slots >>> * won't change, conditions and mutexes >>> * won't be initialized on-demand. >>> *) >>> act := me; >>> REPEAT >>> PThreadLockMutex(act.mutex, ThisLine(), -1); >>> (*PThreadLockMutex(act.waitingOn, ThisLine());*) >>> cond := slots[act.slot].join; >>> IF cond # NIL THEN PThreadLockMutex(cond.mutex, ThisLine(), -2) END; >>> act := act.next; >>> UNTIL act = me; >>> END AtForkPrepare; >>> >>> >>> >>> Mika, if this easy to reproduce, please try again from head. >>> The problem is not fixed, but there's a little more information that will appear. >>> >>> >>> - Jay >>> >>> >>> >>> ---------------------------------------- >>>> From: hosking at cs.purdue.edu >>>> Date: Fri, 7 Jan 2011 10:42:38 -0500 >>>> To: mika at async.caltech.edu >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? >>>> >>>> This has something to do with the fork handlers Jay introduced, which run when a process is forked. They invoke LockHeap in the parent before the fork, and UnlockHeap in the parent after the fork. It appears that your threads are stuck waiting on LockHeap. Also, we have two threads in your trace trying to acquire initMu. Jay, I think we have a deadlock caused by AtForkPrepare. Ideas? >>>> >>>> On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: >>>> >>>>> Hi m3devel (especially Tony), >>>>> >>>>> I'm having a problem with a Modula-3 program that seems to deadlock >>>>> with one of my 60+ threads stuck in Process.Create. Is it possible >>>>> there is a bug in ThreadPThread.m3? (Would be really nice to have a >>>>> deadlock detector here, you know... rather than have the program go >>>>> catatonic when there's a deadlock. Deadlock is stable so the detector >>>>> could run very infrequently---i.e., be very inefficient---and still be >>>>> extremely useful....) >>>>> >>>>> I don't think there is anything I ought to be able to do from "user >>>>> code" that would cause Process.Create to be part of a deadlock cycle. >>>>> Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) >>>>> possibly exhibit itself as a failure of Process.Create to complete?? >>>>> >>>>> Below are backtraces of the threads stuck in some sort of locking >>>>> activity, platform is I386_DARWIN at head as of a couple of weeks ago. >>>>> (I deleted the threads that are up to other things than locking.) >>>>> >>>>> Mika >>>>> >>>>> Thread 68 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 >>>>> #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 >>>>> #5 0x97137217 in _cthread_fork_prepare () >>>>> #6 0x97137155 in fork () >>>>> #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC >>>>> ommon.m3:75 >>>>> #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 >>>>> #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 >>>>> #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 >>>>> #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #13 0x9713885d in _pthread_start () >>>>> #14 0x971386e2 in thread_start () >>>>> >>>>> Thread 65 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >>>>> #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >>>>> #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 >>>>> #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 >>>>> #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 >>>>> #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 >>>>> #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 >>>>> #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 >>>>> #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 >>>>> #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>>>> #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 >>>>> #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 >>>>> #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>>>> #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 >>>>> #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>>>> #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 >>>>> #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>>>> #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 >>>>> #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>>>> #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 >>>>> #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>>>> #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 >>>>> #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 >>>>> #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 >>>>> #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 >>>>> #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 >>>>> #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 >>>>> #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 >>>>> #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #33 0x9713885d in _pthread_start () >>>>> #34 0x971386e2 in thread_start () >>>>> >>>>> Thread 64 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 >>>>> #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 >>>>> #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 >>>>> #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >>>>> #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 >>>>> #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 >>>>> #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 >>>>> #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 >>>>> #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 >>>>> #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 >>>>> #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 >>>>> #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 >>>>> #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 >>>>> #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 >>>>> #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 >>>>> #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 >>>>> #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 >>>>> #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 >>>>> #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 >>>>> #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 >>>>> #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 >>>>> #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 >>>>> #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 >>>>> #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #28 0x9713885d in _pthread_start () >>>>> #29 0x971386e2 in thread_start () >>>>> >>>>> Thread 60 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 >>>>> #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 >>>>> #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 >>>>> #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 >>>>> #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 >>>>> #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 >>>>> #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 >>>>> #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #12 0x9713885d in _pthread_start () >>>>> #13 0x971386e2 in thread_start () >>>>> >>>>> Thread 59 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >>>>> #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >>>>> #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 >>>>> #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 >>>>> #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 >>>>> #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 >>>>> #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 >>>>> #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 >>>>> #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 >>>>> #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 >>>>> #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 >>>>> #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 >>>>> #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 >>>>> #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 >>>>> #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #19 0x9713885d in _pthread_start () >>>>> #20 0x971386e2 in thread_start () >>>>> >>>>> Thread 52 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 >>>>> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 >>>>> #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 >>>>> #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 >>>>> #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 >>>>> #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 >>>>> #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 >>>>> #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 >>>>> #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 >>>>> #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #14 0x9713885d in _pthread_start () >>>>> #15 0x971386e2 in thread_start () >>>>> >>>>> Thread 51 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 >>>>> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 >>>>> #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 >>>>> #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 >>>>> #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 >>>>> #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 >>>>> #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 >>>>> #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 >>>>> #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 >>>>> #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #14 0x9713885d in _pthread_start () >>>>> #15 0x971386e2 in thread_start () >>>>> >>>>> Thread 27 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 >>>>> #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 >>>>> #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 >>>>> #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 >>>>> #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #9 0x9713885d in _pthread_start () >>>>> #10 0x971386e2 in thread_start () >>>>> >>>>> Thread 2 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >>>>> #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >>>>> #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 >>>>> #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 >>>>> #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 >>>>> #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 >>>>> #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 >>>>> #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 >>>>> #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #13 0x9713885d in _pthread_start () >>>>> #14 0x971386e2 in thread_start () >>>>> >>>>> >>>> >>> >> > From jay.krell at cornell.edu Sat Jan 8 03:08:26 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 02:08:26 +0000 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: <0A37C595-C896-4B66-9EDF-61BB30645321@cs.purdue.edu> References: <20110107151412.026651A205B@async.async.caltech.edu>, ,,<10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu>, , , , , , , <0A37C595-C896-4B66-9EDF-61BB30645321@cs.purdue.edu> Message-ID: The basic requirement, I know it sounds wierd at first, but is to hold *all* mutexes across the fork. Consider a multi-threaded program, that calls fork, possibly on multiple threads. If some threads are doing "random" work and some are calling fork, then the state of the mutexes will be arbitrary in the child process and the child process will inevitably hand/deadlock upon attempted to use them. The model in mind is that there is not any central "control". Arbitrary code, in aribtrary threads, can be calling fork at arbitrary times. And it makes a fair amount of sense, I think. Any "component" (library, module, etc.) that uses any mutexes should register a fork prepare and takes all of its mutexes. What problems would it cause to take the heap lock around the mutex init? upgrade and build-all works, which does excerise this path some. ? Granted, the compiler isn't aggressively multithreaded, but does have the GC thread. I guess we can release initMu before registering the cleanup?? ?- Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Fri, 7 Jan 2011 20:31:36 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > No, we don't want that since it can cause other problems. Better is not to be holding LockHeap when you acquire initMu in AtForkPrepare. > Also, do we really need to hold LockHeap across the fork? I don't see the need for it. > > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 | Mobile +1 765 427 5484 > > > > > On Jan 7, 2011, at 7:24 PM, Jay K wrote: > > > > > ? > > > > Index: PTHREAD/ThreadPThread.m3 > > =================================================================== > > RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3,v > > retrieving revision 1.244 > > diff -u -w -r1.244 ThreadPThread.m3 > > --- PTHREAD/ThreadPThread.m3 7 Jan 2011 20:28:59 -0000 1.244 > > +++ PTHREAD/ThreadPThread.m3 8 Jan 2011 00:24:26 -0000 > > @@ -97,8 +97,10 @@ > > Clean: PROCEDURE(root: REFANY)) = > > VAR mutex := pthread_mutex_new(); > > BEGIN > > + LockHeap(); > > TRY > > WITH r = pthread_mutex_lock(initMu) DO <*ASSERT r=0*> END; > > + TRY > > (* Did someone else win? *) > > IF m # NIL THEN RETURN END; > > (* We won, but we might have failed to allocate! *) > > @@ -109,6 +111,9 @@ > > FINALLY > > WITH r = pthread_mutex_unlock(initMu) DO <*ASSERT r=0*> END; > > pthread_mutex_delete(mutex); > > + END > > + FINALLY > > + UnlockHeap(); > > END; > > END InitMutex; > > > > > > > > I'll try this. > > > > > > - Jay > > > > > > ---------------------------------------- > >> From: jay.krell at cornell.edu > >> To: hosking at cs.purdue.edu; mika at async.caltech.edu > >> Date: Fri, 7 Jan 2011 23:51:16 +0000 > >> CC: m3devel at elegosoft.com > >> Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > >> > >> > >> Btw, I didn't entirely guess, but it looks like my analysis was incomplete. > >> Mostly the locks aren't taken together. But not entirely.. > >> > >> > >> I think I see the problem or almost. > >> > >> > >>>> Thread 64 (process 32362): > >>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>> #1 0x97110c46 in pthread_mutex_lock () > >>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > >>>> #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > >>>> #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > >>>> #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > >> > >> > >> has initMu and is trying to LockHeap > >> > >> > >> We can release initMu before calling RegisterFinalCleanup here, right? > >> > >> > >> And then AtForkPrepare locks the heap before initMu. > >> > >> > >> locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; > >> > >> > >> PROCEDURE AtForkPrepare() = > >> VAR me := GetActivation(); > >> act: Activation; > >> cond: Condition; > >> BEGIN > >> Acquire(joinMu); > >> LockHeap(); > >> FOR i := FIRST(locks) TO LAST(locks) DO > >> PThreadLockMutex(locks[i], ThisLine(), i); > >> END; > >> > >> > >> - Jay > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> ---------------------------------------- > >>> From: jay.krell at cornell.edu > >>> To: hosking at cs.purdue.edu; mika at async.caltech.edu > >>> CC: m3devel at elegosoft.com > >>> Subject: RE: [M3devel] deadlock... in ThreadPThread.m3? > >>> Date: Fri, 7 Jan 2011 20:31:00 +0000 > >>> > >>> > >>> We need a lock order. I guessed. Maybe poorly. I/we should study the code and these stacks more and determine its validity. > >>> > >>> > >>> Here is the code, *slightly* altered just now for debuggability. > >>> > >>> > >>> VAR > >>> locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; > >>> > >>> > >>> > >>> PROCEDURE AtForkPrepare() = > >>> VAR me := GetActivation(); > >>> act: Activation; > >>> cond: Condition; > >>> BEGIN > >>> Acquire(joinMu); > >>> LockHeap(); > >>> FOR i := FIRST(locks) TO LAST(locks) DO > >>> PThreadLockMutex(locks[i], ThisLine(), i); > >>> END; > >>> (* Walk activations and lock all threads, conditions. > >>> * NOTE: We have initMu, activeMu, so slots > >>> * won't change, conditions and mutexes > >>> * won't be initialized on-demand. > >>> *) > >>> act := me; > >>> REPEAT > >>> PThreadLockMutex(act.mutex, ThisLine(), -1); > >>> (*PThreadLockMutex(act.waitingOn, ThisLine());*) > >>> cond := slots[act.slot].join; > >>> IF cond # NIL THEN PThreadLockMutex(cond.mutex, ThisLine(), -2) END; > >>> act := act.next; > >>> UNTIL act = me; > >>> END AtForkPrepare; > >>> > >>> > >>> > >>> Mika, if this easy to reproduce, please try again from head. > >>> The problem is not fixed, but there's a little more information that will appear. > >>> > >>> > >>> - Jay > >>> > >>> > >>> > >>> ---------------------------------------- > >>>> From: hosking at cs.purdue.edu > >>>> Date: Fri, 7 Jan 2011 10:42:38 -0500 > >>>> To: mika at async.caltech.edu > >>>> CC: m3devel at elegosoft.com > >>>> Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > >>>> > >>>> This has something to do with the fork handlers Jay introduced, which run when a process is forked. They invoke LockHeap in the parent before the fork, and UnlockHeap in the parent after the fork. It appears that your threads are stuck waiting on LockHeap. Also, we have two threads in your trace trying to acquire initMu. Jay, I think we have a deadlock caused by AtForkPrepare. Ideas? > >>>> > >>>> On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: > >>>> > >>>>> Hi m3devel (especially Tony), > >>>>> > >>>>> I'm having a problem with a Modula-3 program that seems to deadlock > >>>>> with one of my 60+ threads stuck in Process.Create. Is it possible > >>>>> there is a bug in ThreadPThread.m3? (Would be really nice to have a > >>>>> deadlock detector here, you know... rather than have the program go > >>>>> catatonic when there's a deadlock. Deadlock is stable so the detector > >>>>> could run very infrequently---i.e., be very inefficient---and still be > >>>>> extremely useful....) > >>>>> > >>>>> I don't think there is anything I ought to be able to do from "user > >>>>> code" that would cause Process.Create to be part of a deadlock cycle. > >>>>> Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) > >>>>> possibly exhibit itself as a failure of Process.Create to complete?? > >>>>> > >>>>> Below are backtraces of the threads stuck in some sort of locking > >>>>> activity, platform is I386_DARWIN at head as of a couple of weeks ago. > >>>>> (I deleted the threads that are up to other things than locking.) > >>>>> > >>>>> Mika > >>>>> > >>>>> Thread 68 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > >>>>> #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 > >>>>> #5 0x97137217 in _cthread_fork_prepare () > >>>>> #6 0x97137155 in fork () > >>>>> #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC > >>>>> ommon.m3:75 > >>>>> #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > >>>>> #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > >>>>> #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 > >>>>> #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #13 0x9713885d in _pthread_start () > >>>>> #14 0x971386e2 in thread_start () > >>>>> > >>>>> Thread 65 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >>>>> #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > >>>>> #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 > >>>>> #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > >>>>> #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 > >>>>> #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 > >>>>> #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > >>>>> #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 > >>>>> #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 > >>>>> #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > >>>>> #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 > >>>>> #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 > >>>>> #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > >>>>> #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 > >>>>> #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > >>>>> #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 > >>>>> #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > >>>>> #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 > >>>>> #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > >>>>> #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 > >>>>> #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > >>>>> #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 > >>>>> #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 > >>>>> #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 > >>>>> #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > >>>>> #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > >>>>> #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > >>>>> #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 > >>>>> #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #33 0x9713885d in _pthread_start () > >>>>> #34 0x971386e2 in thread_start () > >>>>> > >>>>> Thread 64 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > >>>>> #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > >>>>> #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > >>>>> #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > >>>>> #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 > >>>>> #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > >>>>> #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 > >>>>> #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 > >>>>> #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > >>>>> #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 > >>>>> #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 > >>>>> #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > >>>>> #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 > >>>>> #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > >>>>> #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 > >>>>> #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > >>>>> #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 > >>>>> #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 > >>>>> #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 > >>>>> #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > >>>>> #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > >>>>> #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > >>>>> #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 > >>>>> #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #28 0x9713885d in _pthread_start () > >>>>> #29 0x971386e2 in thread_start () > >>>>> > >>>>> Thread 60 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > >>>>> #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > >>>>> #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 > >>>>> #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 > >>>>> #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 > >>>>> #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > >>>>> #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 > >>>>> #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #12 0x9713885d in _pthread_start () > >>>>> #13 0x971386e2 in thread_start () > >>>>> > >>>>> Thread 59 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >>>>> #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > >>>>> #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > >>>>> #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 > >>>>> #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 > >>>>> #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 > >>>>> #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 > >>>>> #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 > >>>>> #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 > >>>>> #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 > >>>>> #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > >>>>> #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > >>>>> #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > >>>>> #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 > >>>>> #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #19 0x9713885d in _pthread_start () > >>>>> #20 0x971386e2 in thread_start () > >>>>> > >>>>> Thread 52 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > >>>>> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > >>>>> #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 > >>>>> #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 > >>>>> #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 > >>>>> #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > >>>>> #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > >>>>> #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > >>>>> #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 > >>>>> #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #14 0x9713885d in _pthread_start () > >>>>> #15 0x971386e2 in thread_start () > >>>>> > >>>>> Thread 51 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > >>>>> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > >>>>> #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 > >>>>> #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 > >>>>> #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > >>>>> #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > >>>>> #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 > >>>>> #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 > >>>>> #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 > >>>>> #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #14 0x9713885d in _pthread_start () > >>>>> #15 0x971386e2 in thread_start () > >>>>> > >>>>> Thread 27 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > >>>>> #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > >>>>> #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > >>>>> #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 > >>>>> #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #9 0x9713885d in _pthread_start () > >>>>> #10 0x971386e2 in thread_start () > >>>>> > >>>>> Thread 2 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >>>>> #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > >>>>> #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 > >>>>> #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > >>>>> #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 > >>>>> #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 > >>>>> #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 > >>>>> #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 > >>>>> #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #13 0x9713885d in _pthread_start () > >>>>> #14 0x971386e2 in thread_start () > >>>>> > >>>>> > >>>> > >>> > >> > > > From jay.krell at cornell.edu Sat Jan 8 06:17:23 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 05:17:23 +0000 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: References: <20110106002615.77E782474003@birch.elegosoft.com>, Message-ID: fyi, small repro: MODULE Main; VAR x: [0L..0L]; PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; BEGIN ? F2(x); END Main. (32)???????????? start_call_direct procedure:0x4 level:0 (33)?????????????? load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 (34)?????????????? comment comment:********* M3CG_Check ERROR *********** bad stack:? expected [ Int64??? ] got [ Int32??? ] (35)?????????????? pop_param type:int_64 ?- Jay ________________________________ > From: jay.krell at cornell.edu > To: m3devel at elegosoft.com; mika at async.caltech.edu > Subject: RE: codegen error (from Mika, new test p250) > Date: Thu, 6 Jan 2011 01:21:00 +0000 > > fyi: > > jbook2:p250 jay$ rm -rf I386_DARWIN/ > jbook2:p250 jay$ cm3 -keep > --- building in I386_DARWIN --- > > new source -> compiling Main.m3 > "../Main.m3", line 1: 1 code generation error > 1 error encountered > compilation failed => not building program "pgm" > Fatal Error: package build failed > jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment > (4) comment comment:module global constants > (6) comment comment:module global data > (27) comment comment:F1 > (34) comment comment:********* M3CG_Check ERROR > *********** bad stack: expected [ Int64 ] got [ Int32 ] > (43) comment comment:F2 > (73) comment comment:Main_M3 > (74) comment comment:module main body Main_M3 > (83) comment comment:global constant type descriptor > (85) comment comment:global data type descriptor > (87) comment comment:module global constants > (90) comment comment:procedure names > (94) comment comment:procedure table > (101) comment comment:file name > (103) comment comment:type map for _t0174bdf4 > (106) comment comment:type description for _t0174bdf4 > (110) comment comment:module global data > (120) comment comment:typecell for _t0174bdf4 > (141) comment comment:load map > (4) comment comment:module global constants > (6) comment comment:module global data > (27) comment comment:F1 > (34) comment comment:********* M3CG_Check ERROR > *********** bad stack: expected [ Int64 ] got [ Int32 ] > (43) comment comment:F2 > (73) comment comment:Main_M3 > (74) comment comment:module main body Main_M3 > (83) comment comment:global constant type descriptor > (85) comment comment:global data type descriptor > (87) comment comment:module global constants > (90) comment comment:procedure names > (94) comment comment:procedure table > (101) comment comment:file name > (103) comment comment:type map for _t0174bdf4 > (106) comment comment:type description for _t0174bdf4 > (110) comment comment:module global data > (120) comment comment:typecell for _t0174bdf4 > (141) comment comment:load map > > > - Jay > > > > Date: Thu, 6 Jan 2011 01:26:15 +0000 > > To: m3commit at elegosoft.com > > From: jkrell at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 11/01/06 01:26:15 > > > > Modified files: > > cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > > > > Log message: > > slightly simpler, same error > > From jay.krell at cornell.edu Sat Jan 8 06:28:43 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 05:28:43 +0000 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: References: <20101227101653.307241A205B@async.async.caltech.edu>, , <20101227185453.97CE51A205B@async.async.caltech.edu>, Message-ID: Please try this Mika. It fixes the problem for me. retrieving revision 1.5 diff -u -r1.5 I386.common --- I386.common??? 6 Oct 2010 12:03:27 -0000??? 1.5 +++ I386.common??? 8 Jan 2011 05:21:48 -0000 @@ -1,4 +1,4 @@ ?readonly TARGET_ARCH = "I386" ?readonly TARGET_ENDIAN = "LITTLE"?? % { "BIG" OR "LITTLE" } ?readonly WORD_SIZE??? = "32BITS"??? % { "32BITS" or "64BITS" } -m3back_flags = "-march=i586" +m3back_flags = "-march=i686" Probably it should be investigated further. Though the workaround isn't so bad. ?- Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Mon, 27 Dec 2010 14:36:14 -0500 > To: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] another Snow Leopard compiler crash > > OK. Jay? > > On Dec 27, 2010, at 1:54 PM, Mika Nystrom wrote: > > > No I had to upgrade the backend to get it to work at all, it's at head > > too (as of 4-5 days ago). > > > > Tony Hosking writes: > >> Which version of the backend are you using? Release? There has been so = > >> much churn in the trunk lately that I have lost track of things. > >> > >> > >> > >> Antony Hosking | Associate Professor | Computer Science | Purdue = > From jay.krell at cornell.edu Sat Jan 8 09:19:06 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 08:19:06 +0000 Subject: [M3devel] FW: LONGINT subrange problems In-Reply-To: <20110108081522.7A4C12474003@birch.elegosoft.com> References: <20110108081522.7A4C12474003@birch.elegosoft.com> Message-ID: This is all based on Mika's work. MODULE Main; PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; PROCEDURE F2() = <*UNUSED*>VAR x: [0L..0L]; BEGIN END F2; PROCEDURE F3() = VAR x: [0L..0L]; BEGIN ? F1(x); END F3; BEGIN ? F1(0L); ? F2(); ? F3(); END Main. (20)?????????? declare_procedure name:Main__F1 n_params:1 lev:0 exported:false procedure:0x0 procedure:0x4 (22)???????????? declare_procedure name:Main__F2 n_params:0 lev:0 exported:false procedure:0x0 procedure:0x5 (24)?????????????? declare_procedure name:Main__F3 n_params:0 lev:0 exported:false procedure:0x0 procedure:0x6 (33)???????????????? begin_procedure procedure:0x5 (34)?????????????????? set_source_line 6 (35)?????????????????? load_integer type:int_64 0 (36)?????????????????? comment comment:********* M3CG_Check ERROR *********** bad stack:? expected [ Int32??? ] got [ Int64??? ] (37)?????????????????? store var:0x5 offset:0 src_t:int_32 dst_t:word_8 (38)?????????????????? set_source_line 8 (39)?????????????????? exit_proc type:void (40)???????????????? end_procedure procedure:0x5 (41)???????????????? comment comment:F3 (42)???????????????? set_source_line 0xA(10) (43)???????????????? begin_procedure procedure:0x6 (44)?????????????????? set_source_line 0xB(11) (45)?????????????????? load_integer type:int_64 0 (46)?????????????????? comment comment:********* M3CG_Check ERROR *********** bad stack:? expected [ Int32??? ] got [ Int64??? ] (47)?????????????????? store var:0x6 offset:0 src_t:int_32 dst_t:word_8 (48)?????????????????? set_source_line 0xD(13) (49)?????????????????? start_call_direct procedure:0x4 level:0 (50)???????????????????? load var:0x6 offset:0 src_t:word_8 dst_t:int_32 (51)???????????????????? comment comment:********* M3CG_Check ERROR *********** bad stack:? expected [ Int64??? ] got [ Int32??? ] (52)???????????????????? pop_param type:int_64 (53)?????????????????? call_direct procedure:0x4 (54)?????????????????? set_source_line 0xE(14) (55)?????????????????? exit_proc type:void (56)???????????????? end_procedure procedure:0x6 (57)???????????????? comment comment:Main_M3 (58)???????????????? comment comment:module main body Main_M3 (59)???????????????? set_source_line 0x10(16) ---------------------------------------- > Date: Sat, 8 Jan 2011 09:15:22 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 11/01/08 09:15:21 > > Modified files: > cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > > Log message: > more LONGINT subrange problems, this now has 3 internal codegen errors, > due to stack type and expected type mismatches > From mika at async.caltech.edu Sat Jan 8 13:14:41 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Sat, 08 Jan 2011 04:14:41 -0800 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: References: <20101227101653.307241A205B@async.async.caltech.edu>, , <20101227185453.97CE51A205B@async.async.caltech.edu>, Message-ID: <20110108121441.A58031A205B@async.async.caltech.edu> Jay K writes: > >Please try this Mika. It fixes the problem for me. Hi Jay, So I upgraded to the CVS head and now I get a segfaulting compiler: [hal:cm3/m3-libs/m3core] mika% gdb $CM3 GNU gdb 6.3.50-20050815 (Apple version gdb-1510) (Wed Sep 22 02:45:02 UTC 2010) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries ...... done (gdb) run Starting program: /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3 Reading symbols for shared libraries .+++++.......... done Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_PROTECTION_FAILURE at address: 0x0000038b 0x9713354b in _longjmp () (gdb) where #0 0x9713354b in _longjmp () #1 0x00285d2b in RTExFrame__InvokeHandler (f=0xbffff34c, a=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:175 #2 0x00285be4 in RTException__ResumeRaise (a=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:145 #3 0x00285a1b in RTException__Raise (act=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:91 #4 0x00269d44 in RTHooks__Raise (ex=0x35a720, arg=0x181cddc, module=0x398080, line=50) at ../src/runtime/common/RTHooks.m3:79 #5 0x0023adbc in OSErrorPosix__Raise0 (errno=2) at ../src/os/POSIX/OSErrorPosix.m3:50 #6 0x0023cffc in FSPosix__Fail (p=0x181cdc0, f=0xf049f0) at ../src/os/POSIX/FSPosix.m3:359 #7 0x0023cdd4 in FS__Status (pn=0x181cdc0, _result=0xbffff3c8) at ../src/os/POSIX/FSPosix.m3:328 #8 0x00217d24 in M3File__IsReadable (path=0x181cdc0) at ../src/M3File.m3:123 #9 0x000a057f in MxConfig__TryConfig (a=0x3255e0, b=0x3255f0, c=0x0) at ../src/MxConfig.m3:122 #10 0x0009ff67 in MxConfig__FindConfig () at ../src/MxConfig.m3:51 #11 0x0009fcd8 in MxConfig__FindFile () at ../src/MxConfig.m3:19 #12 0x0002c446 in Main__DoIt () at ../src/Main.m3:32 #13 0x0002d1e9 in Main_M3 (mode=1) at ../src/Main.m3:214 #14 0x0027a781 in RTLinker__RunMainBody (m=0x3705a0) at ../src/runtime/common/RTLinker.m3:406 #15 0x00279bb6 in RTLinker__AddUnitI (m=0x3705a0) at ../src/runtime/common/RTLinker.m3:113 #16 0x00279c3a in RTLinker__AddUnit (b=0x2d1d0) at ../src/runtime/common/RTLinker.m3:122 #17 0x00002cfc in main (argc=1, argv=0xbffff674, envp=0xbffff67c) at _m3main.c:16 (gdb) I followed upgrade instructions from Tony (including upgrading the back-end)---I have edited the instructions a bit to track changes in CM3. I'm starting from head three weeks old.. Mika Return-Path: hosking at cs.purdue.edu Delivery-Date: Sun Jun 24 07:38:38 2007 In-Reply-To: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> References: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> Sounds like we really need some work done in this area. I very rarely use the build scripts, since I bootstrap manually from old compilers to new compilers rather than use the scripts. I suggest the following approach, which I hope you will try, and then report back on. Install the bootstrap compiler as you did originally: > rm -rf /usr/local/cm3/* > > cd ~/cm3-cvs > mkdir boot > cd boot > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz > ./cminstall Now you will have some kind of cm3 installed, presumably in /usr/ local/cm3/bin/cm3. Make sure you have a fresh CVS checkout in directory cm3 (let's assume this is in your home directory ~/cm3). Also, make sure you have an up-to-date version of the CM3 backend compiler cm3cg installed by executing the following: STEP 0: export CM3=/usr/local/cm3/bin/cm3 cd ~/cm3/m3-sys/m3cc $CM3 $CM3 -ship You can skip this last step if you know your backend compiler is up to date. Now, let's build the new compiler from scratch (this is the sequence I use regularly to test changes to the run-time system whenever I make them): can replace compilation step with rm -rf && $CM3 && $CM3 -ship STEP 1: (do these LATER if bootstrapping from old compiler!) cd ~/cm3/m3-libs/m3core $CM3 $CM3 -ship cd ~/cm3/m3-libs/libm3 $CM3 $CM3 -ship Now build the compiler: cd ~/cm3/m3-libs/sysutils ; $CM3 etc. cd ~/cm3/m3-sys/m3middle; $CM3 etc. repeat for: m3-sys/m3objfile m3-sys/m3back m3-sys/m3linker m3-sys/m3front m3-sys/m3quake m3-sys/cm3 [ here we may need -DROOT= ] At this point you should have a bootstrapped version of cm3 installed in the directory /usr/local/cm3/pkg/cm3/TARGET/cm3 (where TARGET is the CM3 target platform you are building on -- e.g., LINUXLIBC6, PPC_DARWIN, ...). Note that this did not overwrite your original installed compiler in /usr/local/cm3/bin/cm3. We are now going to test the new compiler, which was built using the old compiler, by bootstrapping it one more time. ******* THIS IS WHERE I HAVE A SEGFAULTING COMPILER ******* (If m3core and libm3 were skipped earlier, do them now, and RE-DO all of the above packages before proceeding.) >From here on out, please replace TARGET with your target platform as appropriate. STEP 2: export CM3=/usr/local/cm3/pkg/cm3/TARGET/cm3 cd ~/cm3/scripts ./do-cm3-std.sh realclean REPEAT STEP 1 to rebuild the libraries and the compiler using the STEP 1 bootstrap compiler. Now you have a STEP 2 bootstrap compiler installed in /usr/local/cm3/ pkg/cm3/TARGET/cm3. Let's assume the new compiler now works properly since it successfully bootstrapped itself, but to be sure we can now use it to rebuild the world: cd ~/cm3/scripts ./do-cm3-std.sh realclean ./do-cm3-std.sh buildship Assuming this succeeded then we can be pretty sure /usr/local/cm3/pkg/ cm3/TARGET/cm3 is good, so we can make it our default compiler by replacing the original /usr/local/cm3/bin/cm3: cp $CM3 /usr/local/cm3/bin/cm3 On Jun 23, 2007, at 2:38 PM, Mika Nystrom wrote: > Ok, I'm sorry if I seem a bit dimwitted in the morning like this, > but how exactly does one get started? I wish there were a file called > "GETTING_STARTED" or something like that in scripts... > > My Mac is very slow so I switched to my FreeBSD/i386 system (which has > PM3 happily installed on it) and tried to install CM3 from scratch. > Here are the exact commands I typed. > > > rm -rf /usr/local/cm3/* > > cd ~/cm3-cvs > mkdir boot > cd boot > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz > ./cminstall > > # now I seem to have some kind of cm3 installed, /usr/local/cm3/bin/ > cm3 > > cd cm3 # location of my CM3 checkout > cvs update -d . > > cd scripts > ./boot-cm3-with-m3.sh realclean > ./do-cm3-std.sh realclean > > ./upgrade.sh # fails here, libm3 not compiled > ./boot-cm3-with-m3.sh build # builds cm3, but fails on > cminstall, patternmatching not built > > ./do-cm3-std.sh build # OK > ./do-cm3-std.sh buildship # OK > > ./boot-cm3-with-m3.sh realclean # start over > ./boot-cm3-with-m3.sh build # OK > ./boot-cm3-with-m3.sh buildship # OK > > ./do-cm3-std.sh realclean # OK > ./do-cm3-std.sh build # dies miserably... maybe the > compiler can't handle the new libraries? > > ./install-cm3-compiler.sh upgrade # OK, new cm3 binary installed > > After all that, "game over." I have a cm3 that segfaults. > > Text.i3: In function 'Text_I3': > Text.i3:81: internal compiler error: Segmentation fault > Please submit a full bug report, > with preprocessed source if appropriate. > See for instructions. > compilation failed => not building library "libm3core.a" > Fatal Error: package build failed > *** execution of failed *** > > I can't seem to get either m3gdb or gdb to say anything reasonable > either. ktrace shows nothing out of the ordinary. > > ----- > > Meanwhile, my Mac got through "do-cm3-std.sh realclean" and > "do-cm3-std.sh buildship" but my compiles are still dying on the > same assertion tickled by ktok. On that machine I have INSTALLROOT > set to ~/cm3, but hopefully that has nothing to do with it... > > ----- > > Does do-cm3-std.sh realclean clean EVERYTHING? If so my Mac should > really have a fresh setup. The FreeBSD, I am not sure, maybe the > old binary version just doesn't work right? Of course I could try > bootstrapping with PM3 as well... but really, there's an "approved" > process to get from a blank system, no? > > Mika > > > > > Tony Hosking writes: >> That sounds like you forgot to execute "do-cm3-std.sh realclean" >> before initiating the build. These sorts of errors sometimes arise >> if there are old build directories lying around. >> >> On Jun 23, 2007, at 3:34 AM, Mika Nystrom wrote: >> >>> Hello everyone, >>> >>> I am in the process of trying to consolidate build systems for a >>> few software packages I am maintaining. Currently, I am using an >>> old PM3 on FreeBSD4, an ancient PM3 (from Klagenfurt?) for Windows >>> (NT386GNU), and trying to get the latest CM3 from cvs up and >>> compiling >>> things on PPC_DARWIN. Ideally, I'd like to standardize everything >>> on the new PM3---mainly so that I can use pickles (and Network >>> Objects) across all three systems. I'd also like to add Linux to >>> the mix. >>> >>> It's natural for me to start with CM3 on Darwin, as there's no >>> alternative. But I am getting some assertions failing. Everything >>> in the CM3 distribution compiles fine, and I believe I have compiled >>> the libraries a few times (that is, including with themselves), and >>> updated the compiler, too (using boot-cm3-with-m3.sh). I just cvs >>> updated tonight. >>> >>> Here's what I'm running into: >>> >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/CHP.t -o >>> CHPTok.i3 >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/runtime/common/RTCollector.m3", line 2314 >>> *** >>> >>> Abort >>> >>> Also: >>> >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/PRS.t -o >>> PRSTok.i3 >>> Illegal instruction >>> >>> As you can see, these things are coming from the caltech_parser. I >> am using >>> our local version, but I don't think it is very different from what >>> is in the >>> CM3 tree. >>> >>> Examining the first error (the failed assertion) more closely, I see >>> the following: >>> >>> (gdb) list >>> 108 wr := FileWr.Open(Pathname.ReplaceExt(tp.out, "m3")); >>> 109 EXCEPT OSError.E => >>> 110 Debug.Error("Cannot open tok implementation output >>> file: " & >>> 111 Pathname.ReplaceExt(tp.out, "m3")); >>> 112 END; >>> 113 Wr.PutText(wr, subs.apply(Bundle.Get(Form, >>> "tokform.m3"))); >>> 114 Wr.Close(wr); >>> 115 END Main. >>> (gdb) where >>> #0 0x9004308c in kill () >>> #1 0x9009fb3c in abort () >>> #2 0x00096f50 in RTOS__Crash () at RTOS.m3:20 >>> #3 0x0005bd40 in RTProcess__Crash (M3_Bd56fi_msg=0x0) at >>> RTProcess.m3:65 >>> #4 0x0008e4e0 in RTError__EndError (M3_AicXUJ_crash=1 '\001') at >>> RTError.m3:115 >>> #5 0x0008e08c in RTError__MsgS (M3_AJWxb1_file=0xc63d8, >>> M3_AcxOUs_line=2314, M3_Bd56fi_msgA=0xca3d0, >>> M3_Bd56fi_msgB=0xcbe90, M3_Bd56fi_msgC=0xca3d0) at RTError.m3:40 >>> #6 0x0008eb88 in RTException__Crash (M3_Cblw37_a=0xbfffee00, >>> M3_AicXUJ_raises=0 '\0', M3_AJWxb1_rte=0xcb538) at RTException.m3:79 >>> #7 0x0008e74c in RTException__DefaultBackstop >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at >>> RTException.m3:39 >>> #8 0x0008e614 in RTException__InvokeBackstop >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at >>> RTException.m3:25 >>> #9 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at >>> RTExFrame.m3:29 >>> #10 0x0008e840 in RTException__DefaultBackstop >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at >>> RTException.m3:47 >>> #11 0x0008e614 in RTException__InvokeBackstop >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at >>> RTException.m3:25 >>> #12 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at >>> RTExFrame.m3:29 >>> #13 0x00079740 in RTHooks__ReportFault (M3_AJWxb1_module=0xb3eb8, >>> M3_AcxOUs_info=74048) at RTHooks.m3:110 >>> #14 0x0006ff4c in _m3_fault (M3_AcxOUs_arg=74048) >>> #15 0x0006bcf4 in RTHooks__CheckStoreTraced >>> (M3_Af40ku_ref=0xb2415c) at RTCollector.m3:2314 >>> #16 0x000700e4 in ThreadPThread__InnerLockMutex >>> (M3_AYIbX3_m=0xb2415c, M3_BXP32l_self=0xb24014) at >>> ThreadPThread.m3:126 >>> #17 0x000704d8 in ThreadPThread__LockMutex (M3_AYIbX3_m=0xb2415c) >>> at ThreadPThread.m3:153 >>> #18 0x00019b24 in Wr__PutText (M3_BxxOH1_wr=0xb2415c, >>> M3_Bd56fi_t=0xb44d5c) at Wr.m3:93 >>> #19 0x00003f74 in Main_M3 (M3_AcxOUs_mode=1) at Main.m3:113 >>> #20 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at >>> RTLinker.m3:399 >>> #21 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at >>> RTLinker.m3:113 >>> #22 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at >>> RTLinker.m3:122 >>> #23 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38) >>> at _m3main.mc:4 >>> (gdb) >>> >>> The second error: >>> >>> Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/ >>> operand. >>> 0x00b111ac in ?? () >>> (gdb) where >>> #0 0x00b111ac in ?? () >>> #1 0x0001214c in TextSubs__Apply (M3_CN69dV_self=0xb26450, >>> M3_Bd56fi_src=0xb21cec) at TextSubs.m3:63 >>> #2 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at >>> RTLinker.m3:399 >>> #3 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at >>> RTLinker.m3:113 >>> #4 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at >>> RTLinker.m3:122 >>> #5 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38) >>> at _m3main.mc:4 >>> (gdb) list >>> 58 BEGIN >>> 59 WHILE pos < textLen DO >>> 60 c := Text.GetChar(src, pos); >>> 61 IF c IN self.starts THEN >>> 62 (* S("analysing: " & Text.Sub(src, pos), >>> DebugLevel); *) >>> 63 iter := self.tbl.iterateOrdered(); >>> 64 ind := pos; >>> 65 original := ""; >>> 66 REPEAT >>> 67 INC(ind); >>> (gdb) >>> >>> Any ideas what to look at? >>> >>> I don't know if this is relevant: >>> >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% uname -a >>> Darwin lapdog.local 7.9.0 Darwin Kernel Version 7.9.0: Wed Mar 30 >>> 20:11:17 PST 2005; root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC Power >>> Macintosh powerpc >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% gcc -v >>> Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs >>> Thread model: posix >>> gcc version 3.3 20030304 (Apple Computer, Inc. build 1666) >>> >>> Mika >>> >>> P.S. Am I correct in assuming that I can get CM3 to build on >>> Windows? >>> I could switch to CM3 on Unix any time, of course, but I've never >>> had luck with it on Windows, which is why I am using the ancient >>> Klagenfurt PM3, which comes on 40-odd "floppies" and a .EXE that >>> unpacks them into C: (and installation instructions only in German). >>> If CM3 doesn't work on Windows, I am essentially wasting my time, >>> as the current project I am working on absolutely requires that the >>> software run on Windows 2003 Server (yes, it sucks, but what can >>> you do?) The very old PM3 at least kind of hobbles along on this >>> platform---actually, better than that; it does Trestle natively >>> under Windows (no X required), at least on SOME Windows machines. >>> >>> P.P.S. Sorry for all the postscripts, but is it true that the >>> build system has been changed so that building with overrides >>> (cm3 -x) >>> requires having the compiler sources available? It didn't use to >>> be that way, but I can't get Network Objects to work with overrides >>> now unless I have the sources available... It's a bit of a pain >>> because it means that every user has to have the compiler sources, >>> or else ship everything, or was that not the intention? From jay.krell at cornell.edu Sat Jan 8 14:37:39 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 13:37:39 +0000 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: <20110108121441.A58031A205B@async.async.caltech.edu> References: <20101227101653.307241A205B@async.async.caltech.edu>, , , , <20101227185453.97CE51A205B@async.async.caltech.edu>, , , , <20110108121441.A58031A205B@async.async.caltech.edu> Message-ID: I upgrade across incompatibilities frequently & Hudson does now too. The existing scripts work very well and you would be foolish to not use them. Just use upgrade.py. It is very easy. Or upgrade.py nocleangcc. And then do-cm3-all.py skipgcc realclean && do-cm3-all.py buildship.py. - Jay/phone > To: jay.krell at cornell.edu > Date: Sat, 8 Jan 2011 04:14:41 -0800 > From: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] another Snow Leopard compiler crash > > Jay K writes: > > > >Please try this Mika. It fixes the problem for me. > > Hi Jay, > > So I upgraded to the CVS head and now I get a segfaulting compiler: > > [hal:cm3/m3-libs/m3core] mika% gdb $CM3 > GNU gdb 6.3.50-20050815 (Apple version gdb-1510) (Wed Sep 22 02:45:02 UTC 2010) > Copyright 2004 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and you are > welcome to change it and/or distribute copies of it under certain conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for details. > This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries ...... done > > (gdb) run > Starting program: /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3 > Reading symbols for shared libraries .+++++.......... done > > Program received signal EXC_BAD_ACCESS, Could not access memory. > Reason: KERN_PROTECTION_FAILURE at address: 0x0000038b > 0x9713354b in _longjmp () > (gdb) where > #0 0x9713354b in _longjmp () > #1 0x00285d2b in RTExFrame__InvokeHandler (f=0xbffff34c, a=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:175 > #2 0x00285be4 in RTException__ResumeRaise (a=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:145 > #3 0x00285a1b in RTException__Raise (act=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:91 > #4 0x00269d44 in RTHooks__Raise (ex=0x35a720, arg=0x181cddc, module=0x398080, line=50) at ../src/runtime/common/RTHooks.m3:79 > #5 0x0023adbc in OSErrorPosix__Raise0 (errno=2) at ../src/os/POSIX/OSErrorPosix.m3:50 > #6 0x0023cffc in FSPosix__Fail (p=0x181cdc0, f=0xf049f0) at ../src/os/POSIX/FSPosix.m3:359 > #7 0x0023cdd4 in FS__Status (pn=0x181cdc0, _result=0xbffff3c8) at ../src/os/POSIX/FSPosix.m3:328 > #8 0x00217d24 in M3File__IsReadable (path=0x181cdc0) at ../src/M3File.m3:123 > #9 0x000a057f in MxConfig__TryConfig (a=0x3255e0, b=0x3255f0, c=0x0) at ../src/MxConfig.m3:122 > #10 0x0009ff67 in MxConfig__FindConfig () at ../src/MxConfig.m3:51 > #11 0x0009fcd8 in MxConfig__FindFile () at ../src/MxConfig.m3:19 > #12 0x0002c446 in Main__DoIt () at ../src/Main.m3:32 > #13 0x0002d1e9 in Main_M3 (mode=1) at ../src/Main.m3:214 > #14 0x0027a781 in RTLinker__RunMainBody (m=0x3705a0) at ../src/runtime/common/RTLinker.m3:406 > #15 0x00279bb6 in RTLinker__AddUnitI (m=0x3705a0) at ../src/runtime/common/RTLinker.m3:113 > #16 0x00279c3a in RTLinker__AddUnit (b=0x2d1d0) at ../src/runtime/common/RTLinker.m3:122 > #17 0x00002cfc in main (argc=1, argv=0xbffff674, envp=0xbffff67c) at _m3main.c:16 > (gdb) > > I followed upgrade instructions from Tony (including upgrading the > back-end)---I have edited the instructions a bit to track changes in > CM3. I'm starting from head three weeks old.. > > Mika > > > Return-Path: hosking at cs.purdue.edu > Delivery-Date: Sun Jun 24 07:38:38 2007 > In-Reply-To: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> > References: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> > > Sounds like we really need some work done in this area. I very > rarely use the build scripts, since I bootstrap manually from old > compilers to new compilers rather than use the scripts. I suggest > the following approach, which I hope you will try, and then report > back on. > > Install the bootstrap compiler as you did originally: > > > rm -rf /usr/local/cm3/* > > > > cd ~/cm3-cvs > > mkdir boot > > cd boot > > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz > > ./cminstall > > > Now you will have some kind of cm3 installed, presumably in /usr/ > local/cm3/bin/cm3. > > Make sure you have a fresh CVS checkout in directory cm3 (let's > assume this is in your home directory ~/cm3). Also, make sure you > have an up-to-date version of the CM3 backend compiler cm3cg > installed by executing the following: > > STEP 0: > > export CM3=/usr/local/cm3/bin/cm3 > cd ~/cm3/m3-sys/m3cc > $CM3 > $CM3 -ship > > You can skip this last step if you know your backend compiler is up > to date. > > Now, let's build the new compiler from scratch (this is the sequence > I use regularly to test changes to the run-time system whenever I > make them): > > can replace compilation step with > > rm -rf && $CM3 && $CM3 -ship > > > STEP 1: > > (do these LATER if bootstrapping from old compiler!) > cd ~/cm3/m3-libs/m3core > $CM3 > $CM3 -ship > cd ~/cm3/m3-libs/libm3 > $CM3 > $CM3 -ship > > Now build the compiler: > > cd ~/cm3/m3-libs/sysutils ; $CM3 etc. > > cd ~/cm3/m3-sys/m3middle; $CM3 etc. > > repeat for: > > m3-sys/m3objfile > > m3-sys/m3back > > m3-sys/m3linker > > m3-sys/m3front > > m3-sys/m3quake > > m3-sys/cm3 > > [ here we may need -DROOT= ] > > > At this point you should have a bootstrapped version of cm3 installed > in the directory /usr/local/cm3/pkg/cm3/TARGET/cm3 (where TARGET is > the CM3 target platform you are building on -- e.g., LINUXLIBC6, > PPC_DARWIN, ...). Note that this did not overwrite your original > installed compiler in /usr/local/cm3/bin/cm3. We > are now going to test the new compiler, which was built using the old > compiler, by bootstrapping it one more time. > > > ******* THIS IS WHERE I HAVE A SEGFAULTING COMPILER ******* > > (If m3core and libm3 were skipped earlier, do them now, and RE-DO all > of the above packages before proceeding.) > > From here on out, please replace TARGET with your target platform as > appropriate. > > STEP 2: > > export CM3=/usr/local/cm3/pkg/cm3/TARGET/cm3 > cd ~/cm3/scripts > > ./do-cm3-std.sh realclean > REPEAT STEP 1 to rebuild the libraries and the compiler using the > STEP 1 bootstrap compiler. > > Now you have a STEP 2 bootstrap compiler installed in /usr/local/cm3/ > pkg/cm3/TARGET/cm3. Let's assume the new compiler now works properly > since it successfully bootstrapped itself, but to be sure we can now > use it to rebuild the world: > > cd ~/cm3/scripts > ./do-cm3-std.sh realclean > ./do-cm3-std.sh buildship > > Assuming this succeeded then we can be pretty sure /usr/local/cm3/pkg/ > cm3/TARGET/cm3 is good, so we can make it our default compiler by > replacing the original /usr/local/cm3/bin/cm3: > > cp $CM3 /usr/local/cm3/bin/cm3 > > On Jun 23, 2007, at 2:38 PM, Mika Nystrom wrote: > > > Ok, I'm sorry if I seem a bit dimwitted in the morning like this, > > but how exactly does one get started? I wish there were a file called > > "GETTING_STARTED" or something like that in scripts... > > > > My Mac is very slow so I switched to my FreeBSD/i386 system (which has > > PM3 happily installed on it) and tried to install CM3 from scratch. > > Here are the exact commands I typed. > > > > > > rm -rf /usr/local/cm3/* > > > > cd ~/cm3-cvs > > mkdir boot > > cd boot > > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz > > ./cminstall > > > > # now I seem to have some kind of cm3 installed, /usr/local/cm3/bin/ > > cm3 > > > > cd cm3 # location of my CM3 checkout > > cvs update -d . > > > > cd scripts > > ./boot-cm3-with-m3.sh realclean > > ./do-cm3-std.sh realclean > > > > ./upgrade.sh # fails here, libm3 not compiled > > ./boot-cm3-with-m3.sh build # builds cm3, but fails on > > cminstall, patternmatching not built > > > > ./do-cm3-std.sh build # OK > > ./do-cm3-std.sh buildship # OK > > > > ./boot-cm3-with-m3.sh realclean # start over > > ./boot-cm3-with-m3.sh build # OK > > ./boot-cm3-with-m3.sh buildship # OK > > > > ./do-cm3-std.sh realclean # OK > > ./do-cm3-std.sh build # dies miserably... maybe the > > compiler can't handle the new libraries? > > > > ./install-cm3-compiler.sh upgrade # OK, new cm3 binary installed > > > > After all that, "game over." I have a cm3 that segfaults. > > > > Text.i3: In function 'Text_I3': > > Text.i3:81: internal compiler error: Segmentation fault > > Please submit a full bug report, > > with preprocessed source if appropriate. > > See for instructions. > > compilation failed => not building library "libm3core.a" > > Fatal Error: package build failed > > *** execution of failed *** > > > > I can't seem to get either m3gdb or gdb to say anything reasonable > > either. ktrace shows nothing out of the ordinary. > > > > ----- > > > > Meanwhile, my Mac got through "do-cm3-std.sh realclean" and > > "do-cm3-std.sh buildship" but my compiles are still dying on the > > same assertion tickled by ktok. On that machine I have INSTALLROOT > > set to ~/cm3, but hopefully that has nothing to do with it... > > > > ----- > > > > Does do-cm3-std.sh realclean clean EVERYTHING? If so my Mac should > > really have a fresh setup. The FreeBSD, I am not sure, maybe the > > old binary version just doesn't work right? Of course I could try > > bootstrapping with PM3 as well... but really, there's an "approved" > > process to get from a blank system, no? > > > > Mika > > > > > > > > > > Tony Hosking writes: > >> That sounds like you forgot to execute "do-cm3-std.sh realclean" > >> before initiating the build. These sorts of errors sometimes arise > >> if there are old build directories lying around. > >> > >> On Jun 23, 2007, at 3:34 AM, Mika Nystrom wrote: > >> > >>> Hello everyone, > >>> > >>> I am in the process of trying to consolidate build systems for a > >>> few software packages I am maintaining. Currently, I am using an > >>> old PM3 on FreeBSD4, an ancient PM3 (from Klagenfurt?) for Windows > >>> (NT386GNU), and trying to get the latest CM3 from cvs up and > >>> compiling > >>> things on PPC_DARWIN. Ideally, I'd like to standardize everything > >>> on the new PM3---mainly so that I can use pickles (and Network > >>> Objects) across all three systems. I'd also like to add Linux to > >>> the mix. > >>> > >>> It's natural for me to start with CM3 on Darwin, as there's no > >>> alternative. But I am getting some assertions failing. Everything > >>> in the CM3 distribution compiles fine, and I believe I have compiled > >>> the libraries a few times (that is, including with themselves), and > >>> updated the compiler, too (using boot-cm3-with-m3.sh). I just cvs > >>> updated tonight. > >>> > >>> Here's what I'm running into: > >>> > >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/CHP.t -o > >>> CHPTok.i3 > >>> > >>> *** > >>> *** runtime error: > >>> *** <*ASSERT*> failed. > >>> *** file "../src/runtime/common/RTCollector.m3", line 2314 > >>> *** > >>> > >>> Abort > >>> > >>> Also: > >>> > >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/PRS.t -o > >>> PRSTok.i3 > >>> Illegal instruction > >>> > >>> As you can see, these things are coming from the caltech_parser. I > >> am using > >>> our local version, but I don't think it is very different from what > >>> is in the > >>> CM3 tree. > >>> > >>> Examining the first error (the failed assertion) more closely, I see > >>> the following: > >>> > >>> (gdb) list > >>> 108 wr := FileWr.Open(Pathname.ReplaceExt(tp.out, "m3")); > >>> 109 EXCEPT OSError.E => > >>> 110 Debug.Error("Cannot open tok implementation output > >>> file: " & > >>> 111 Pathname.ReplaceExt(tp.out, "m3")); > >>> 112 END; > >>> 113 Wr.PutText(wr, subs.apply(Bundle.Get(Form, > >>> "tokform.m3"))); > >>> 114 Wr.Close(wr); > >>> 115 END Main. > >>> (gdb) where > >>> #0 0x9004308c in kill () > >>> #1 0x9009fb3c in abort () > >>> #2 0x00096f50 in RTOS__Crash () at RTOS.m3:20 > >>> #3 0x0005bd40 in RTProcess__Crash (M3_Bd56fi_msg=0x0) at > >>> RTProcess.m3:65 > >>> #4 0x0008e4e0 in RTError__EndError (M3_AicXUJ_crash=1 '\001') at > >>> RTError.m3:115 > >>> #5 0x0008e08c in RTError__MsgS (M3_AJWxb1_file=0xc63d8, > >>> M3_AcxOUs_line=2314, M3_Bd56fi_msgA=0xca3d0, > >>> M3_Bd56fi_msgB=0xcbe90, M3_Bd56fi_msgC=0xca3d0) at RTError.m3:40 > >>> #6 0x0008eb88 in RTException__Crash (M3_Cblw37_a=0xbfffee00, > >>> M3_AicXUJ_raises=0 '\0', M3_AJWxb1_rte=0xcb538) at RTException.m3:79 > >>> #7 0x0008e74c in RTException__DefaultBackstop > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at > >>> RTException.m3:39 > >>> #8 0x0008e614 in RTException__InvokeBackstop > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at > >>> RTException.m3:25 > >>> #9 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at > >>> RTExFrame.m3:29 > >>> #10 0x0008e840 in RTException__DefaultBackstop > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at > >>> RTException.m3:47 > >>> #11 0x0008e614 in RTException__InvokeBackstop > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at > >>> RTException.m3:25 > >>> #12 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at > >>> RTExFrame.m3:29 > >>> #13 0x00079740 in RTHooks__ReportFault (M3_AJWxb1_module=0xb3eb8, > >>> M3_AcxOUs_info=74048) at RTHooks.m3:110 > >>> #14 0x0006ff4c in _m3_fault (M3_AcxOUs_arg=74048) > >>> #15 0x0006bcf4 in RTHooks__CheckStoreTraced > >>> (M3_Af40ku_ref=0xb2415c) at RTCollector.m3:2314 > >>> #16 0x000700e4 in ThreadPThread__InnerLockMutex > >>> (M3_AYIbX3_m=0xb2415c, M3_BXP32l_self=0xb24014) at > >>> ThreadPThread.m3:126 > >>> #17 0x000704d8 in ThreadPThread__LockMutex (M3_AYIbX3_m=0xb2415c) > >>> at ThreadPThread.m3:153 > >>> #18 0x00019b24 in Wr__PutText (M3_BxxOH1_wr=0xb2415c, > >>> M3_Bd56fi_t=0xb44d5c) at Wr.m3:93 > >>> #19 0x00003f74 in Main_M3 (M3_AcxOUs_mode=1) at Main.m3:113 > >>> #20 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at > >>> RTLinker.m3:399 > >>> #21 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at > >>> RTLinker.m3:113 > >>> #22 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at > >>> RTLinker.m3:122 > >>> #23 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38) > >>> at _m3main.mc:4 > >>> (gdb) > >>> > >>> The second error: > >>> > >>> Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/ > >>> operand. > >>> 0x00b111ac in ?? () > >>> (gdb) where > >>> #0 0x00b111ac in ?? () > >>> #1 0x0001214c in TextSubs__Apply (M3_CN69dV_self=0xb26450, > >>> M3_Bd56fi_src=0xb21cec) at TextSubs.m3:63 > >>> #2 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at > >>> RTLinker.m3:399 > >>> #3 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at > >>> RTLinker.m3:113 > >>> #4 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at > >>> RTLinker.m3:122 > >>> #5 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38) > >>> at _m3main.mc:4 > >>> (gdb) list > >>> 58 BEGIN > >>> 59 WHILE pos < textLen DO > >>> 60 c := Text.GetChar(src, pos); > >>> 61 IF c IN self.starts THEN > >>> 62 (* S("analysing: " & Text.Sub(src, pos), > >>> DebugLevel); *) > >>> 63 iter := self.tbl.iterateOrdered(); > >>> 64 ind := pos; > >>> 65 original := ""; > >>> 66 REPEAT > >>> 67 INC(ind); > >>> (gdb) > >>> > >>> Any ideas what to look at? > >>> > >>> I don't know if this is relevant: > >>> > >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% uname -a > >>> Darwin lapdog.local 7.9.0 Darwin Kernel Version 7.9.0: Wed Mar 30 > >>> 20:11:17 PST 2005; root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC Power > >>> Macintosh powerpc > >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% gcc -v > >>> Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs > >>> Thread model: posix > >>> gcc version 3.3 20030304 (Apple Computer, Inc. build 1666) > >>> > >>> Mika > >>> > >>> P.S. Am I correct in assuming that I can get CM3 to build on > >>> Windows? > >>> I could switch to CM3 on Unix any time, of course, but I've never > >>> had luck with it on Windows, which is why I am using the ancient > >>> Klagenfurt PM3, which comes on 40-odd "floppies" and a .EXE that > >>> unpacks them into C: (and installation instructions only in German). > >>> If CM3 doesn't work on Windows, I am essentially wasting my time, > >>> as the current project I am working on absolutely requires that the > >>> software run on Windows 2003 Server (yes, it sucks, but what can > >>> you do?) The very old PM3 at least kind of hobbles along on this > >>> platform---actually, better than that; it does Trestle natively > >>> under Windows (no X required), at least on SOME Windows machines. > >>> > >>> P.P.S. Sorry for all the postscripts, but is it true that the > >>> build system has been changed so that building with overrides > >>> (cm3 -x) > >>> requires having the compiler sources available? It didn't use to > >>> be that way, but I can't get Network Objects to work with overrides > >>> now unless I have the sources available... It's a bit of a pain > >>> because it means that every user has to have the compiler sources, > >>> or else ship everything, or was that not the intention? -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.caltech.edu Sat Jan 8 14:47:35 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Sat, 08 Jan 2011 05:47:35 -0800 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: References: <20101227101653.307241A205B@async.async.caltech.edu>, , , , <20101227185453.97CE51A205B@async.async.caltech.edu>, , , , <20110108121441.A58031A205B@async.async.caltech.edu> Message-ID: <20110108134735.B7D4C1A205B@async.async.caltech.edu> I ran "python upgrade.py" from a clean start (back to head a few weeks ago) and got: == package /Users/mika/cm3/cm3/m3-tools/m3bundle == +++ /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3 -build -DROOT=/Users/mika/cm3/cm3 +++ --- building in I386_DARWIN --- ignoring ../src/m3overrides new source -> compiling m3bundle.m3 -> linking m3bundle Undefined symbols: "__alloca", referenced from: _m3bundle__GetElementSizes in m3bundle.mo "_Csetjmp__Jumpbuf_size", referenced from: _Csetjmp__Jumpbuf_size$non_lazy_ptr in m3bundle.mo (maybe you meant: _Csetjmp__Jumpbuf_size$non_lazy_ptr) ld: symbol(s) not found collect2: ld returned 1 exit status m3_link => 1 linker failed linking: m3bundle Fatal Error: package build failed *** execution of [, ] failed *** [hal:cm3/scripts/python] mika% maybe a conf file change I need to make? Why only in m3bundle? Mika Jay K writes: >--_6374b72e-0dad-4a03-8d22-4a59e0218226_ >Content-Type: text/plain; charset="iso-8859-1" >Content-Transfer-Encoding: quoted-printable > >I upgrade across incompatibilities frequently & Hudson does now too. The ex= >isting scripts work very well and you would be foolish to not use them. Jus= >t use upgrade.py. It is very easy. Or upgrade.py nocleangcc. And then do-cm= >3-all.py skipgcc realclean && do-cm3-all.py buildship.py. > > - Jay/phone > >> To: jay.krell at cornell.edu >> Date: Sat=2C 8 Jan 2011 04:14:41 -0800 >> From: mika at async.caltech.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] another Snow Leopard compiler crash >>=20 >> Jay K writes: >> > >> >Please try this Mika. It fixes the problem for me. >>=20 >> Hi Jay=2C >>=20 >> So I upgraded to the CVS head and now I get a segfaulting compiler: >>=20 >> [hal:cm3/m3-libs/m3core] mika% gdb $CM3 >> GNU gdb 6.3.50-20050815 (Apple version gdb-1510) (Wed Sep 22 02:45:02 UTC= > 2010) >> Copyright 2004 Free Software Foundation=2C Inc. >> GDB is free software=2C covered by the GNU General Public License=2C and = >you are >> welcome to change it and/or distribute copies of it under certain conditi= >ons. >> Type "show copying" to see the conditions. >> There is absolutely no warranty for GDB. Type "show warranty" for detail= >s. >> This GDB was configured as "x86_64-apple-darwin"...Reading symbols for sh= >ared libraries ...... done >>=20 >> (gdb) run >> Starting program: /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3=20 >> Reading symbols for shared libraries .+++++.......... done >>=20 >> Program received signal EXC_BAD_ACCESS=2C Could not access memory. >> Reason: KERN_PROTECTION_FAILURE at address: 0x0000038b >> 0x9713354b in _longjmp () >> (gdb) where >> #0 0x9713354b in _longjmp () >> #1 0x00285d2b in RTExFrame__InvokeHandler (f=3D0xbffff34c=2C a=3D0xbffff= >23c) at ../src/runtime/ex_frame/RTExFrame.m3:175 >> #2 0x00285be4 in RTException__ResumeRaise (a=3D0xbffff23c) at ../src/run= >time/ex_frame/RTExFrame.m3:145 >> #3 0x00285a1b in RTException__Raise (act=3D0xbffff23c) at ../src/runtime= >/ex_frame/RTExFrame.m3:91 >> #4 0x00269d44 in RTHooks__Raise (ex=3D0x35a720=2C arg=3D0x181cddc=2C mod= >ule=3D0x398080=2C line=3D50) at ../src/runtime/common/RTHooks.m3:79 >> #5 0x0023adbc in OSErrorPosix__Raise0 (errno=3D2) at ../src/os/POSIX/OSE= >rrorPosix.m3:50 >> #6 0x0023cffc in FSPosix__Fail (p=3D0x181cdc0=2C f=3D0xf049f0) at ../src= >/os/POSIX/FSPosix.m3:359 >> #7 0x0023cdd4 in FS__Status (pn=3D0x181cdc0=2C _result=3D0xbffff3c8) at = >../src/os/POSIX/FSPosix.m3:328 >> #8 0x00217d24 in M3File__IsReadable (path=3D0x181cdc0) at ../src/M3File.= >m3:123 >> #9 0x000a057f in MxConfig__TryConfig (a=3D0x3255e0=2C b=3D0x3255f0=2C c= >=3D0x0) at ../src/MxConfig.m3:122 >> #10 0x0009ff67 in MxConfig__FindConfig () at ../src/MxConfig.m3:51 >> #11 0x0009fcd8 in MxConfig__FindFile () at ../src/MxConfig.m3:19 >> #12 0x0002c446 in Main__DoIt () at ../src/Main.m3:32 >> #13 0x0002d1e9 in Main_M3 (mode=3D1) at ../src/Main.m3:214 >> #14 0x0027a781 in RTLinker__RunMainBody (m=3D0x3705a0) at ../src/runtime/= >common/RTLinker.m3:406 >> #15 0x00279bb6 in RTLinker__AddUnitI (m=3D0x3705a0) at ../src/runtime/com= >mon/RTLinker.m3:113 >> #16 0x00279c3a in RTLinker__AddUnit (b=3D0x2d1d0) at ../src/runtime/commo= >n/RTLinker.m3:122 >> #17 0x00002cfc in main (argc=3D1=2C argv=3D0xbffff674=2C envp=3D0xbffff67= >c) at _m3main.c:16 >> (gdb)=20 >>=20 >> I followed upgrade instructions from Tony (including upgrading the >> back-end)---I have edited the instructions a bit to track changes in=20 >> CM3. I'm starting from head three weeks old.. >>=20 >> Mika >>=20 >>=20 >> Return-Path: hosking at cs.purdue.edu >> Delivery-Date: Sun Jun 24 07:38:38 2007 >> In-Reply-To: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> >> References: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> >>=20 >> Sounds like we really need some work done in this area. I very =20 >> rarely use the build scripts=2C since I bootstrap manually from old =20 >> compilers to new compilers rather than use the scripts. I suggest =20 >> the following approach=2C which I hope you will try=2C and then report =20 >> back on. >>=20 >> Install the bootstrap compiler as you did originally: >>=20 >> > rm -rf /usr/local/cm3/* >> > >> > cd ~/cm3-cvs >> > mkdir boot >> > cd boot >> > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz >> > ./cminstall >>=20 >>=20 >> Now you will have some kind of cm3 installed=2C presumably in /usr/=20 >> local/cm3/bin/cm3. >>=20 >> Make sure you have a fresh CVS checkout in directory cm3 (let's =20 >> assume this is in your home directory ~/cm3). Also=2C make sure you =20 >> have an up-to-date version of the CM3 backend compiler cm3cg =20 >> installed by executing the following: >>=20 >> STEP 0: >>=20 >> export CM3=3D/usr/local/cm3/bin/cm3 >> cd ~/cm3/m3-sys/m3cc >> $CM3 >> $CM3 -ship >>=20 >> You can skip this last step if you know your backend compiler is up =20 >> to date. >>=20 >> Now=2C let's build the new compiler from scratch (this is the sequence =20 >> I use regularly to test changes to the run-time system whenever I =20 >> make them): >>=20 >> can replace compilation step with >>=20 >> rm -rf && $CM3 && $CM3 -ship=20 >>=20 >>=20 >> STEP 1: >>=20 >> (do these LATER if bootstrapping from old compiler!) >> cd ~/cm3/m3-libs/m3core >> $CM3 >> $CM3 -ship >> cd ~/cm3/m3-libs/libm3 >> $CM3 >> $CM3 -ship >>=20 >> Now build the compiler: >>=20 >> cd ~/cm3/m3-libs/sysutils =3B $CM3 etc. >>=20 >> cd ~/cm3/m3-sys/m3middle=3B $CM3 etc. >>=20 >> repeat for: >>=20 >> m3-sys/m3objfile=20 >>=20 >> m3-sys/m3back=20 >>=20 >> m3-sys/m3linker >>=20 >> m3-sys/m3front >>=20 >> m3-sys/m3quake >>=20 >> m3-sys/cm3 >>=20 >> [ here we may need -DROOT=3D ] >>=20 >>=20 >> At this point you should have a bootstrapped version of cm3 installed =20 >> in the directory /usr/local/cm3/pkg/cm3/TARGET/cm3 (where TARGET is =20 >> the CM3 target platform you are building on -- e.g.=2C LINUXLIBC6=2C =20 >> PPC_DARWIN=2C ...). Note that this did not overwrite your original =20 >> installed compiler in /usr/local/cm3/bin/cm3. We >> are now going to test the new compiler=2C which was built using the old = >=20 >> compiler=2C by bootstrapping it one more time. >>=20 >>=20 >> ******* THIS IS WHERE I HAVE A SEGFAULTING COMPILER ******* >>=20 >> (If m3core and libm3 were skipped earlier=2C do them now=2C and RE-DO all >> of the above packages before proceeding.) >>=20 >> From here on out=2C please replace TARGET with your target platform as =20 >> appropriate. >>=20 >> STEP 2: >>=20 >> export CM3=3D/usr/local/cm3/pkg/cm3/TARGET/cm3 >> cd ~/cm3/scripts >>=20 >> ./do-cm3-std.sh realclean >> REPEAT STEP 1 to rebuild the libraries and the compiler using the =20 >> STEP 1 bootstrap compiler. >>=20 >> Now you have a STEP 2 bootstrap compiler installed in /usr/local/cm3/=20 >> pkg/cm3/TARGET/cm3. Let's assume the new compiler now works properly =20 >> since it successfully bootstrapped itself=2C but to be sure we can now =20 >> use it to rebuild the world: >>=20 >> cd ~/cm3/scripts >> ./do-cm3-std.sh realclean >> ./do-cm3-std.sh buildship >>=20 >> Assuming this succeeded then we can be pretty sure /usr/local/cm3/pkg/=20 >> cm3/TARGET/cm3 is good=2C so we can make it our default compiler by =20 >> replacing the original /usr/local/cm3/bin/cm3: >>=20 >> cp $CM3 /usr/local/cm3/bin/cm3 >>=20 >> On Jun 23=2C 2007=2C at 2:38 PM=2C Mika Nystrom wrote: >>=20 >> > Ok=2C I'm sorry if I seem a bit dimwitted in the morning like this=2C >> > but how exactly does one get started? I wish there were a file called >> > "GETTING_STARTED" or something like that in scripts... >> > >> > My Mac is very slow so I switched to my FreeBSD/i386 system (which has >> > PM3 happily installed on it) and tried to install CM3 from scratch. >> > Here are the exact commands I typed. >> > >> > >> > rm -rf /usr/local/cm3/* >> > >> > cd ~/cm3-cvs >> > mkdir boot >> > cd boot >> > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz >> > ./cminstall >> > >> > # now I seem to have some kind of cm3 installed=2C /usr/local/cm3/bin/= >=20 >> > cm3 >> > >> > cd cm3 # location of my CM3 checkout >> > cvs update -d . >> > >> > cd scripts >> > ./boot-cm3-with-m3.sh realclean >> > ./do-cm3-std.sh realclean >> > >> > ./upgrade.sh # fails here=2C libm3 not compiled >> > ./boot-cm3-with-m3.sh build # builds cm3=2C but fails on =20 >> > cminstall=2C patternmatching not built >> > >> > ./do-cm3-std.sh build # OK >> > ./do-cm3-std.sh buildship # OK >> > >> > ./boot-cm3-with-m3.sh realclean # start over >> > ./boot-cm3-with-m3.sh build # OK >> > ./boot-cm3-with-m3.sh buildship # OK >> > >> > ./do-cm3-std.sh realclean # OK >> > ./do-cm3-std.sh build # dies miserably... maybe the =20 >> > compiler can't handle the new libraries? >> > >> > ./install-cm3-compiler.sh upgrade # OK=2C new cm3 binary installed >> > >> > After all that=2C "game over." I have a cm3 that segfaults. >> > >> > Text.i3: In function 'Text_I3': >> > Text.i3:81: internal compiler error: Segmentation fault >> > Please submit a full bug report=2C >> > with preprocessed source if appropriate. >> > See for instructions. >> > compilation failed =3D> not building library "libm3core.a" >> > Fatal Error: package build failed >> > *** execution of failed *** >> > >> > I can't seem to get either m3gdb or gdb to say anything reasonable >> > either. ktrace shows nothing out of the ordinary. >> > >> > ----- >> > >> > Meanwhile=2C my Mac got through "do-cm3-std.sh realclean" and >> > "do-cm3-std.sh buildship" but my compiles are still dying on the >> > same assertion tickled by ktok. On that machine I have INSTALLROOT >> > set to ~/cm3=2C but hopefully that has nothing to do with it... >> > >> > ----- >> > >> > Does do-cm3-std.sh realclean clean EVERYTHING? If so my Mac should >> > really have a fresh setup. The FreeBSD=2C I am not sure=2C maybe the >> > old binary version just doesn't work right? Of course I could try >> > bootstrapping with PM3 as well... but really=2C there's an "approved" >> > process to get from a blank system=2C no? >> > >> > Mika >> > >> > >> > >> > >> > Tony Hosking writes: >> >> That sounds like you forgot to execute "do-cm3-std.sh realclean" >> >> before initiating the build. These sorts of errors sometimes arise >> >> if there are old build directories lying around. >> >> >> >> On Jun 23=2C 2007=2C at 3:34 AM=2C Mika Nystrom wrote: >> >> >> >>> Hello everyone=2C >> >>> >> >>> I am in the process of trying to consolidate build systems for a >> >>> few software packages I am maintaining. Currently=2C I am using an >> >>> old PM3 on FreeBSD4=2C an ancient PM3 (from Klagenfurt?) for Windows >> >>> (NT386GNU)=2C and trying to get the latest CM3 from cvs up and =20 >> >>> compiling >> >>> things on PPC_DARWIN. Ideally=2C I'd like to standardize everything >> >>> on the new PM3---mainly so that I can use pickles (and Network >> >>> Objects) across all three systems. I'd also like to add Linux to >> >>> the mix. >> >>> >> >>> It's natural for me to start with CM3 on Darwin=2C as there's no >> >>> alternative. But I am getting some assertions failing. Everything >> >>> in the CM3 distribution compiles fine=2C and I believe I have compile= >d >> >>> the libraries a few times (that is=2C including with themselves)=2C a= >nd >> >>> updated the compiler=2C too (using boot-cm3-with-m3.sh). I just cvs >> >>> updated tonight. >> >>> >> >>> Here's what I'm running into: >> >>> >> >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/CHP.t -o =20 >> >>> CHPTok.i3 >> >>> >> >>> *** >> >>> *** runtime error: >> >>> *** <*ASSERT*> failed. >> >>> *** file "../src/runtime/common/RTCollector.m3"=2C line 2314 >> >>> *** >> >>> >> >>> Abort >> >>> >> >>> Also: >> >>> >> >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/PRS.t -o =20 >> >>> PRSTok.i3 >> >>> Illegal instruction >> >>> >> >>> As you can see=2C these things are coming from the caltech_parser. I >> >> am using >> >>> our local version=2C but I don't think it is very different from what >> >>> is in the >> >>> CM3 tree. >> >>> >> >>> Examining the first error (the failed assertion) more closely=2C I se= >e >> >>> the following: >> >>> >> >>> (gdb) list >> >>> 108 wr :=3D FileWr.Open(Pathname.ReplaceExt(tp.out=2C "m3"))= >=3B >> >>> 109 EXCEPT OSError.E =3D> >> >>> 110 Debug.Error("Cannot open tok implementation output >> >>> file: " & >> >>> 111 Pathname.ReplaceExt(tp.out=2C "m3"))=3B >> >>> 112 END=3B >> >>> 113 Wr.PutText(wr=2C subs.apply(Bundle.Get(Form=2C =20 >> >>> "tokform.m3")))=3B >> >>> 114 Wr.Close(wr)=3B >> >>> 115 END Main. >> >>> (gdb) where >> >>> #0 0x9004308c in kill () >> >>> #1 0x9009fb3c in abort () >> >>> #2 0x00096f50 in RTOS__Crash () at RTOS.m3:20 >> >>> #3 0x0005bd40 in RTProcess__Crash (M3_Bd56fi_msg=3D0x0) at >> >>> RTProcess.m3:65 >> >>> #4 0x0008e4e0 in RTError__EndError (M3_AicXUJ_crash=3D1 '\001') at >> >>> RTError.m3:115 >> >>> #5 0x0008e08c in RTError__MsgS (M3_AJWxb1_file=3D0xc63d8=2C >> >>> M3_AcxOUs_line=3D2314=2C M3_Bd56fi_msgA=3D0xca3d0=2C >> >>> M3_Bd56fi_msgB=3D0xcbe90=2C M3_Bd56fi_msgC=3D0xca3d0) at RTError.m3:4= >0 >> >>> #6 0x0008eb88 in RTException__Crash (M3_Cblw37_a=3D0xbfffee00=2C >> >>> M3_AicXUJ_raises=3D0 '\0'=2C M3_AJWxb1_rte=3D0xcb538) at RTException.= >m3:79 >> >>> #7 0x0008e74c in RTException__DefaultBackstop >> >>> (M3_Cblw37_a=3D0xbfffee00=2C M3_AicXUJ_raises=3D0 '\0') at =20 >> >>> RTException.m3:39 >> >>> #8 0x0008e614 in RTException__InvokeBackstop >> >>> (M3_Cblw37_a=3D0xbfffee00=2C M3_AicXUJ_raises=3D0 '\0') at =20 >> >>> RTException.m3:25 >> >>> #9 0x00095d04 in RTException__Raise (M3_Cblw37_act=3D0xbfffee00) at >> >>> RTExFrame.m3:29 >> >>> #10 0x0008e840 in RTException__DefaultBackstop >> >>> (M3_Cblw37_a=3D0xbfffee00=2C M3_AicXUJ_raises=3D0 '\0') at =20 >> >>> RTException.m3:47 >> >>> #11 0x0008e614 in RTException__InvokeBackstop >> >>> (M3_Cblw37_a=3D0xbfffee00=2C M3_AicXUJ_raises=3D0 '\0') at =20 >> >>> RTException.m3:25 >> >>> #12 0x00095d04 in RTException__Raise (M3_Cblw37_act=3D0xbfffee00) at >> >>> RTExFrame.m3:29 >> >>> #13 0x00079740 in RTHooks__ReportFault (M3_AJWxb1_module=3D0xb3eb8=2C >> >>> M3_AcxOUs_info=3D74048) at RTHooks.m3:110 >> >>> #14 0x0006ff4c in _m3_fault (M3_AcxOUs_arg=3D74048) >> >>> #15 0x0006bcf4 in RTHooks__CheckStoreTraced >> >>> (M3_Af40ku_ref=3D0xb2415c) at RTCollector.m3:2314 >> >>> #16 0x000700e4 in ThreadPThread__InnerLockMutex >> >>> (M3_AYIbX3_m=3D0xb2415c=2C M3_BXP32l_self=3D0xb24014) at >> >>> ThreadPThread.m3:126 >> >>> #17 0x000704d8 in ThreadPThread__LockMutex (M3_AYIbX3_m=3D0xb2415c) >> >>> at ThreadPThread.m3:153 >> >>> #18 0x00019b24 in Wr__PutText (M3_BxxOH1_wr=3D0xb2415c=2C >> >>> M3_Bd56fi_t=3D0xb44d5c) at Wr.m3:93 >> >>> #19 0x00003f74 in Main_M3 (M3_AcxOUs_mode=3D1) at Main.m3:113 >> >>> #20 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=3D0xad190) at >> >>> RTLinker.m3:399 >> >>> #21 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=3D0xad190) at >> >>> RTLinker.m3:113 >> >>> #22 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=3D0x3600) at >> >>> RTLinker.m3:122 >> >>> #23 0x00001fac in main (argc=3D4=2C argv=3D0xbffffb24=2C envp=3D0xbff= >ffb38) >> >>> at _m3main.mc:4 >> >>> (gdb) >> >>> >> >>> The second error: >> >>> >> >>> Program received signal EXC_BAD_INSTRUCTION=2C Illegal instruction/ >> >>> operand. >> >>> 0x00b111ac in ?? () >> >>> (gdb) where >> >>> #0 0x00b111ac in ?? () >> >>> #1 0x0001214c in TextSubs__Apply (M3_CN69dV_self=3D0xb26450=2C >> >>> M3_Bd56fi_src=3D0xb21cec) at TextSubs.m3:63 >> >>> #2 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=3D0xad190) at >> >>> RTLinker.m3:399 >> >>> #3 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=3D0xad190) at >> >>> RTLinker.m3:113 >> >>> #4 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=3D0x3600) at >> >>> RTLinker.m3:122 >> >>> #5 0x00001fac in main (argc=3D4=2C argv=3D0xbffffb24=2C envp=3D0xbff= >ffb38) >> >>> at _m3main.mc:4 >> >>> (gdb) list >> >>> 58 BEGIN >> >>> 59 WHILE pos < textLen DO >> >>> 60 c :=3D Text.GetChar(src=2C pos)=3B >> >>> 61 IF c IN self.starts THEN >> >>> 62 (* S("analysing: " & Text.Sub(src=2C pos)=2C >> >>> DebugLevel)=3B *) >> >>> 63 iter :=3D self.tbl.iterateOrdered()=3B >> >>> 64 ind :=3D pos=3B >> >>> 65 original :=3D ""=3B >> >>> 66 REPEAT >> >>> 67 INC(ind)=3B >> >>> (gdb) >> >>> >> >>> Any ideas what to look at? >> >>> >> >>> I don't know if this is relevant: >> >>> >> >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% uname -a >> >>> Darwin lapdog.local 7.9.0 Darwin Kernel Version 7.9.0: Wed Mar 30 >> >>> 20:11:17 PST 2005=3B root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC Power >> >>> Macintosh powerpc >> >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% gcc -v >> >>> Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs >> >>> Thread model: posix >> >>> gcc version 3.3 20030304 (Apple Computer=2C Inc. build 1666) >> >>> >> >>> Mika >> >>> >> >>> P.S. Am I correct in assuming that I can get CM3 to build on =20 >> >>> Windows? >> >>> I could switch to CM3 on Unix any time=2C of course=2C but I've never >> >>> had luck with it on Windows=2C which is why I am using the ancient >> >>> Klagenfurt PM3=2C which comes on 40-odd "floppies" and a .EXE that >> >>> unpacks them into C: (and installation instructions only in German). >> >>> If CM3 doesn't work on Windows=2C I am essentially wasting my time=2C >> >>> as the current project I am working on absolutely requires that the >> >>> software run on Windows 2003 Server (yes=2C it sucks=2C but what can >> >>> you do?) The very old PM3 at least kind of hobbles along on this >> >>> platform---actually=2C better than that=3B it does Trestle natively >> >>> under Windows (no X required)=2C at least on SOME Windows machines. >> >>> >> >>> P.P.S. Sorry for all the postscripts=2C but is it true that the >> >>> build system has been changed so that building with overrides =20 >> >>> (cm3 -x) >> >>> requires having the compiler sources available? It didn't use to >> >>> be that way=2C but I can't get Network Objects to work with overrides >> >>> now unless I have the sources available... It's a bit of a pain >> >>> because it means that every user has to have the compiler sources=2C >> >>> or else ship everything=2C or was that not the intention? > = > >--_6374b72e-0dad-4a03-8d22-4a59e0218226_ >Content-Type: text/html; charset="iso-8859-1" >Content-Transfer-Encoding: quoted-printable > > > > > >I upgrade across incompatibilities frequently & H= >udson does now too. The existing scripts work very well and you would be fo= >olish to not use them. Just use upgrade.py. It is very easy. Or upgrade.py = >nocleangcc. And then do-cm3-all.py skipgcc realclean && do-cm3-all.py build= >ship.py.

- Jay/phone

> To:=3B jay.krell@=3Bcornell.edu= >
> Date:=3B Sat=2C 8 Jan 2011 04:=3B14:=3B41 -0800
> From= >8=3B mika@=3Basync.caltech.edu
> CC:=3B m3devel@=3Belegosoft.co= >m
> Subject:=3B Re:=3B [=3BM3devel]=3B another Snow Leopard = >compiler crash
>
> Jay K writes:=3B
> >=3B
> >=3BPlea= >se try this Mika. It fixes the problem for me.
>
> Hi Jay=2C
> r>> So I upgraded to the CVS head and now I get a segfaulting compiler:= >=3B
>
> [=3Bhal:=3Bcm3/m3-libs/m3core]=3B mika%=3B gdb &= >#36=3BCM3
> GNU gdb 6.3.50-20050815 (=3BApple version gdb-1510)=3B= > (=3BWed Sep 22 02:=3B45:=3B02 UTC 2010)=3B
> Copyright 2004= > Free Software Foundation=2C Inc.
> GDB is free software=2C covered by t= >he GNU General Public License=2C and you are
> welcome to change it and/= >or distribute copies of it under certain conditions.
> Type "=3Bshow = >copying"=3B to see the conditions.
> There is absolutely no warranty = >for GDB. Type "=3Bshow warranty"=3B for details.
> This GDB was c= >onfigured as "=3Bx86_64-apple-darwin"=3B...Reading symbols for shared= > libraries ...... done
>
> (=3Bgdb)=3B run
> Starting progr= >am:=3B /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3
> Reading symbols for = >shared libraries .+=3B+=3B+=3B+=3B+=3B.......... done
> <= >br>> Program received signal EXC_BAD_ACCESS=2C Could not access memory.
= >> Reason:=3B KERN_PROTECTION_FAILURE at address:=3B 0x0000038b
> 0= >x9713354b in _longjmp (=3B)=3B
> (=3Bgdb)=3B where
> #= >=3B0 0x9713354b in _longjmp (=3B)=3B
> #=3B1 0x00285d2b in RT= >ExFrame__InvokeHandler (=3Bf==3B0xbffff34c=2C a==3B0xbffff23c)= >=3B at ../src/runtime/ex_frame/RTExFrame.m3:=3B175
> #=3B2 0x0028= >5be4 in RTException__ResumeRaise (=3Ba==3B0xbffff23c)=3B at ../src= >/runtime/ex_frame/RTExFrame.m3:=3B145
> #=3B3 0x00285a1b in RTExc= >eption__Raise (=3Bact==3B0xbffff23c)=3B at ../src/runtime/ex_frame= >/RTExFrame.m3:=3B91
> #=3B4 0x00269d44 in RTHooks__Raise (=3Be= >x==3B0x35a720=2C arg==3B0x181cddc=2C module==3B0x398080=2C line= >1=3B50)=3B at ../src/runtime/common/RTHooks.m3:=3B79
> #=3B5 0= >x0023adbc in OSErrorPosix__Raise0 (=3Berrno==3B2)=3B at ../src/os/= >POSIX/OSErrorPosix.m3:=3B50
> #=3B6 0x0023cffc in FSPosix__Fail &= >#40=3Bp==3B0x181cdc0=2C f==3B0xf049f0)=3B at ../src/os/POSIX/FSPos= >ix.m3:=3B359
> #=3B7 0x0023cdd4 in FS__Status (=3Bpn==3B0x1= >81cdc0=2C _result==3B0xbffff3c8)=3B at ../src/os/POSIX/FSPosix.m3:= >=3B328
> #=3B8 0x00217d24 in M3File__IsReadable (=3Bpath==3B0x= >181cdc0)=3B at ../src/M3File.m3:=3B123
> #=3B9 0x000a057f in M= >xConfig__TryConfig (=3Ba==3B0x3255e0=2C b==3B0x3255f0=2C c==3B0= >x0)=3B at ../src/MxConfig.m3:=3B122
> #=3B10 0x0009ff67 in MxCo= >nfig__FindConfig (=3B)=3B at ../src/MxConfig.m3:=3B51
> #=3B= >11 0x0009fcd8 in MxConfig__FindFile (=3B)=3B at ../src/MxConfig.m3= >8=3B19
> #=3B12 0x0002c446 in Main__DoIt (=3B)=3B at ../src/Mai= >n.m3:=3B32
> #=3B13 0x0002d1e9 in Main_M3 (=3Bmode==3B1)= >=3B at ../src/Main.m3:=3B214
> #=3B14 0x0027a781 in RTLinker__RunM= >ainBody (=3Bm==3B0x3705a0)=3B at ../src/runtime/common/RTLinker.m3= >:=3B406
> #=3B15 0x00279bb6 in RTLinker__AddUnitI (=3Bm==3B0= >x3705a0)=3B at ../src/runtime/common/RTLinker.m3:=3B113
> #=3B1= >6 0x00279c3a in RTLinker__AddUnit (=3Bb==3B0x2d1d0)=3B at ../src/r= >untime/common/RTLinker.m3:=3B122
> #=3B17 0x00002cfc in main (= >=3Bargc==3B1=2C argv==3B0xbffff674=2C envp==3B0xbffff67c)=3B at= > _m3main.c:=3B16
> (=3Bgdb)=3B
>
> I followed upgrade i= >nstructions from Tony (=3Bincluding upgrading the
> back-end)=3B--= >-I have edited the instructions a bit to track changes in
> CM3. I'= >=3Bm starting from head three weeks old..
>
> Mika
>
> = >
> Return-Path:=3B hosking@=3Bcs.purdue.edu
> Delivery-Date:= >=3B Sun Jun 24 07:=3B38:=3B38 2007
> In-Reply-To:=3B <=3B200= >706231838.l5NIcRef079333@=3Bcamembert.async.caltech.edu>=3B
> Refe= >rences:=3B <=3B200706231838.l5NIcRef079333@=3Bcamembert.async.calt= >ech.edu>=3B
>
> Sounds like we really need some work done in this= > area. I very
> rarely use the build scripts=2C since I bootstrap man= >ually from old
> compilers to new compilers rather than use the script= >s. I suggest
> the following approach=2C which I hope you will try=2C= > and then report
> back on.
>
> Install the bootstrap compiler = >as you did originally:=3B
>
> >=3B rm -rf /usr/local/cm3/*= >=3B
> >=3B
> >=3B cd ~=3B/cm3-cvs
> >=3B mkdir bootr>> >=3B cd boot
> >=3B tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-= >2005-10-05.tgz
> >=3B ./cminstall
>
>
> Now you will have = >some kind of cm3 installed=2C presumably in /usr/
> local/cm3/bin/cm3.<= >br>>
> Make sure you have a fresh CVS checkout in directory cm3 (=3B= >let'=3Bs
> assume this is in your home directory ~=3B/cm3)= >=3B. Also=2C make sure you
> have an up-to-date version of the CM3 ba= >ckend compiler cm3cg
> installed by executing the following:=3B
= >>
> STEP 0:=3B
>
> export CM3==3B/usr/local/cm3/bin/cm3>> cd ~=3B/cm3/m3-sys/m3cc
> $=3BCM3
> $=3BCM3 -ship
> <= >br>> You can skip this last step if you know your backend compiler is up <= >br>> to date.
>
> Now=2C let'=3Bs build the new compiler from scr= >atch (=3Bthis is the sequence
> I use regularly to test changes to = >the run-time system whenever I
> make them)=3B:=3B
>
> ca= >n replace compilation step with
>
> rm -rf <=3Bder. dir>=3B &#= >38=3B&=3B $=3BCM3 &=3B&=3B $=3BCM3 -ship
>
>
> S= >TEP 1:=3B
>
> (=3Bdo these LATER if bootstrapping from old com= >piler!=3B)=3B
> cd ~=3B/cm3/m3-libs/m3core
> $=3BCM3
= >> $=3BCM3 -ship
> cd ~=3B/cm3/m3-libs/libm3
> $=3BCM3
> = >$=3BCM3 -ship
>
> Now build the compiler:=3B
>
> cd &#= >126=3B/cm3/m3-libs/sysutils ;=3B $=3BCM3 etc.
>
> cd ~=3B/= >cm3/m3-sys/m3middle;=3B $=3BCM3 etc.
>
> repeat for:=3B
= >>
> m3-sys/m3objfile
>
> m3-sys/m3back
>
> m3-sys/m3lin= >ker
>
> m3-sys/m3front
>
> m3-sys/m3quake
>
> m3-sys/c= >m3
>
> [=3B here we may need -DROOT==3B<=3Broot dir=2C e.g.= >=2C /home/mika/cm3>=3B ]=3B
>
>
> At this point you should= > have a bootstrapped version of cm3 installed
> in the directory /usr/= >local/cm3/pkg/cm3/TARGET/cm3 (=3Bwhere TARGET is
> the CM3 target p= >latform you are building on -- e.g.=2C LINUXLIBC6=2C
> PPC_DARWIN=2C .= >..)=3B. Note that this did not overwrite your original
> installed= > compiler in /usr/local/cm3/bin/cm3. We
> are now going to test the new= > compiler=2C which was built using the old
> compiler=2C by bootstrapp= >ing it one more time.
>
>
> *=3B*=3B*=3B*=3B*=3B&= >#42=3B*=3B THIS IS WHERE I HAVE A SEGFAULTING COMPILER *=3B*=3B= >2=3B*=3B*=3B*=3B*=3B
>
> (=3BIf m3core and libm3 were= > skipped earlier=2C do them now=2C and RE-DO all
> of the above packages= > before proceeding.)=3B
>
> From here on out=2C please replace TA= >RGET with your target platform as
> appropriate.
>
> STEP 2:= >=3B
>
> export CM3==3B/usr/local/cm3/pkg/cm3/TARGET/cm3
> cd &= >#126=3B/cm3/scripts
>
> ./do-cm3-std.sh realclean
> REPEAT STEP 1= > to rebuild the libraries and the compiler using the
> STEP 1 bootstra= >p compiler.
>
> Now you have a STEP 2 bootstrap compiler installed i= >n /usr/local/cm3/
> pkg/cm3/TARGET/cm3. Let'=3Bs assume the new com= >piler now works properly
> since it successfully bootstrapped itself= >=2C but to be sure we can now
> use it to rebuild the world:=3B
= >>
> cd ~=3B/cm3/scripts
> ./do-cm3-std.sh realclean
> ./do-cm= >3-std.sh buildship
>
> Assuming this succeeded then we can be pretty= > sure /usr/local/cm3/pkg/
> cm3/TARGET/cm3 is good=2C so we can make it= > our default compiler by
> replacing the original /usr/local/cm3/bin/c= >m3:=3B
>
> cp $=3BCM3 /usr/local/cm3/bin/cm3
>
> On Jun= > 23=2C 2007=2C at 2:=3B38 PM=2C Mika Nystrom wrote:=3B
>
> = >2=3B Ok=2C I'=3Bm sorry if I seem a bit dimwitted in the morning like th= >is=2C
> >=3B but how exactly does one get started?=3B I wish ther= >e were a file called
> >=3B "=3BGETTING_STARTED"=3B or somethin= >g like that in scripts...
> >=3B
> >=3B My Mac is very slow so = >I switched to my FreeBSD/i386 system (=3Bwhich has
> >=3B PM3 happ= >ily installed on it)=3B and tried to install CM3 from scratch.
> >= >=3B Here are the exact commands I typed.
> >=3B
> >=3B
> = >2=3B rm -rf /usr/local/cm3/*=3B
> >=3B
> >=3B cd ~=3B/cm= >3-cvs
> >=3B mkdir boot
> >=3B cd boot
> >=3B tar xzvf ..= >/cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz
> >=3B ./cminstall
>= > >=3B
> >=3B #=3B now I seem to have some kind of cm3 installed= >=2C /usr/local/cm3/bin/
> >=3B cm3
> >=3B
> >=3B cd cm3 = > #=3B location of my CM3 checkout
> >=3B cvs update -d .
> = >2=3B
> >=3B cd scripts
> >=3B ./boot-cm3-with-m3.sh realcleanr>> >=3B ./do-cm3-std.sh realclean
> >=3B
> >=3B ./upgrade.s= >h #=3B fails here=2C libm3 not compiled
> >= >=3B ./boot-cm3-with-m3.sh build #=3B builds cm3=2C but fails on <= >br>> >=3B cminstall=2C patternmatching not built
> >=3B
> >= >=3B ./do-cm3-std.sh build #=3B OK
> >=3B ./do-cm3-std.= >sh buildship #=3B OK
> >=3B
> >=3B ./boot-cm3-with-m= >3.sh realclean #=3B start over
> >=3B ./boot-cm3-with-m3.sh buil= >d #=3B OK
> >=3B ./boot-cm3-with-m3.sh buildship #=3B O= >K
> >=3B
> >=3B ./do-cm3-std.sh realclean #=3B OK>> >=3B ./do-cm3-std.sh build #=3B dies miserably... mayb= >e the
> >=3B compiler can'=3Bt handle the new libraries?=3Br>> >=3B
> >=3B ./install-cm3-compiler.sh upgrade #=3B OK=2C ne= >w cm3 binary installed
> >=3B
> >=3B After all that=2C "=3Bg= >ame over."=3B I have a cm3 that segfaults.
> >=3B
> >=3B Te= >xt.i3:=3B In function '=3BText_I3'=3B:=3B
> >=3B Text.i3&= >#58=3B81:=3B internal compiler error:=3B Segmentation fault
> >= >=3B Please submit a full bug report=2C
> >=3B with preprocessed sourc= >e if appropriate.
> >=3B See <=3BURL:=3Bhttp:=3B//gcc.gnu.or= >g/bugs.html>=3B for instructions.
> >=3B compilation failed == >=3B>=3B not building library "=3Blibm3core.a"=3B
> >=3B Fata= >l Error:=3B package build failed
> >=3B *=3B*=3B*=3B exe= >cution of failed *=3B*=3B*=3B
> >=3B
> >=3B I can'= >=3Bt seem to get either m3gdb or gdb to say anything reasonable
> >= >=3B either. ktrace shows nothing out of the ordinary.
> >=3B
> &#= >62=3B -----
> >=3B
> >=3B Meanwhile=2C my Mac got through "= >=3Bdo-cm3-std.sh realclean"=3B and
> >=3B "=3Bdo-cm3-std.sh bui= >ldship"=3B but my compiles are still dying on the
> >=3B same asse= >rtion tickled by ktok. On that machine I have INSTALLROOT
> >=3B set= > to ~=3B/cm3=2C but hopefully that has nothing to do with it...
> &#= >62=3B
> >=3B -----
> >=3B
> >=3B Does do-cm3-std.sh realc= >lean clean EVERYTHING?=3B If so my Mac should
> >=3B really have = >a fresh setup. The FreeBSD=2C I am not sure=2C maybe the
> >=3B old = >binary version just doesn'=3Bt work right?=3B Of course I could try<= >br>> >=3B bootstrapping with PM3 as well... but really=2C there'=3Bs = >an "=3Bapproved"=3B
> >=3B process to get from a blank system= >=2C no?=3B
> >=3B
> >=3B Mika
> >=3B
> >= >=3B
> >=3B
> >=3B
> >=3B Tony Hosking writes:=3B
> = >>=3B>=3B That sounds like you forgot to execute "=3Bdo-cm3-std.sh = >realclean"=3B
> >=3B>=3B before initiating the build. These so= >rts of errors sometimes arise
> >=3B>=3B if there are old build di= >rectories lying around.
> >=3B>=3B
> >=3B>=3B On Jun 23= >=2C 2007=2C at 3:=3B34 AM=2C Mika Nystrom wrote:=3B
> >=3B>= >=3B
> >=3B>=3B>=3B Hello everyone=2C
> >=3B>=3B>=3B= >
> >=3B>=3B>=3B I am in the process of trying to consolidate bu= >ild systems for a
> >=3B>=3B>=3B few software packages I am mai= >ntaining. Currently=2C I am using an
> >=3B>=3B>=3B old PM3 on= > FreeBSD4=2C an ancient PM3 (=3Bfrom Klagenfurt?=3B)=3B for Window= >s
> >=3B>=3B>=3B (=3BNT386GNU)=3B=2C and trying to get th= >e latest CM3 from cvs up and
> >=3B>=3B>=3B compiling
> &#= >62=3B>=3B>=3B things on PPC_DARWIN. Ideally=2C I'=3Bd like to sta= >ndardize everything
> >=3B>=3B>=3B on the new PM3---mainly so t= >hat I can use pickles (=3Band Network
> >=3B>=3B>=3B Objects= >)=3B across all three systems. I'=3Bd also like to add Linux to
>= > >=3B>=3B>=3B the mix.
> >=3B>=3B>=3B
> >=3B>= >=3B>=3B It'=3Bs natural for me to start with CM3 on Darwin=2C as ther= >e'=3Bs no
> >=3B>=3B>=3B alternative. But I am getting some= > assertions failing. Everything
> >=3B>=3B>=3B in the CM3 dist= >ribution compiles fine=2C and I believe I have compiled
> >=3B>=3B= >>=3B the libraries a few times (=3Bthat is=2C including with themselv= >es)=3B=2C and
> >=3B>=3B>=3B updated the compiler=2C too = >0=3Busing boot-cm3-with-m3.sh)=3B. I just cvs
> >=3B>=3B>= >=3B updated tonight.
> >=3B>=3B>=3B
> >=3B>=3B>=3B = >Here'=3Bs what I'=3Bm running into:=3B
> >=3B>=3B>=3B<= >br>> >=3B>=3B>=3B /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../s= >rc/CHP.t -o
> >=3B>=3B>=3B CHPTok.i3
> >=3B>=3B>= >=3B
> >=3B>=3B>=3B *=3B*=3B*=3B
> >=3B>=3B= >2=3B *=3B*=3B*=3B runtime error:=3B
> >=3B>=3B>=3B = >*=3B*=3B*=3B <=3B*=3BASSERT*=3B>=3B failed.
> &#= >62=3B>=3B>=3B *=3B*=3B*=3B file "=3B../src/runtime/com= >mon/RTCollector.m3"=3B=2C line 2314
> >=3B>=3B>=3B *=3B&#= >42=3B*=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B Abort>> >=3B>=3B>=3B
> >=3B>=3B>=3B Also:=3B
> >= >=3B>=3B>=3B
> >=3B>=3B>=3B /Users/mika/t/parserlib/ktok/P= >PC_DARWIN/tok ../src/PRS.t -o
> >=3B>=3B>=3B PRSTok.i3
> &= >#62=3B>=3B>=3B Illegal instruction
> >=3B>=3B>=3B
> &#= >62=3B>=3B>=3B As you can see=2C these things are coming from the calt= >ech_parser. I
> >=3B>=3B am using
> >=3B>=3B>=3B our = >local version=2C but I don'=3Bt think it is very different from what
= >> >=3B>=3B>=3B is in the
> >=3B>=3B>=3B CM3 tree.
>= > >=3B>=3B>=3B
> >=3B>=3B>=3B Examining the first error= > (=3Bthe failed assertion)=3B more closely=2C I see
> >=3B>= >=3B>=3B the following:=3B
> >=3B>=3B>=3B
> >=3B>= >=3B>=3B (=3Bgdb)=3B list
> >=3B>=3B>=3B 108 wr= > :=3B==3B FileWr.Open(=3BPathname.ReplaceExt(=3Btp.out=2C "= >=3Bm3"=3B)=3B)=3B;=3B
> >=3B>=3B>=3B 109 EXCE= >PT OSError.E ==3B>=3B
> >=3B>=3B>=3B 110 Debug.Er= >ror(=3B"=3BCannot open tok implementation output
> >=3B>=3B&= >#62=3B file:=3B "=3B &=3B
> >=3B>=3B>=3B 111 = > Pathname.ReplaceExt(=3Btp.out=2C "=3Bm3"=3B)=3B)=3B;=3B<= >br>> >=3B>=3B>=3B 112 END;=3B
> >=3B>=3B>=3B = >113 Wr.PutText(=3Bwr=2C subs.apply(=3BBundle.Get(=3BForm=2C = >
> >=3B>=3B>=3B "=3Btokform.m3"=3B)=3B)=3B)=3B&= >#59=3B
> >=3B>=3B>=3B 114 Wr.Close(=3Bwr)=3B;=3B= >
> >=3B>=3B>=3B 115 END Main.
> >=3B>=3B>=3B &#= >40=3Bgdb)=3B where
> >=3B>=3B>=3B #=3B0 0x9004308c in ki= >ll (=3B)=3B
> >=3B>=3B>=3B #=3B1 0x9009fb3c in abort = >(=3B)=3B
> >=3B>=3B>=3B #=3B2 0x00096f50 in RTOS__Cra= >sh (=3B)=3B at RTOS.m3:=3B20
> >=3B>=3B>=3B #=3B3 = >0x0005bd40 in RTProcess__Crash (=3BM3_Bd56fi_msg==3B0x0)=3B at
= >> >=3B>=3B>=3B RTProcess.m3:=3B65
> >=3B>=3B>=3B &#= >35=3B4 0x0008e4e0 in RTError__EndError (=3BM3_AicXUJ_crash==3B1 '= >=3B\=3B001'=3B)=3B at
> >=3B>=3B>=3B RTError.m3:=3B= >115
> >=3B>=3B>=3B #=3B5 0x0008e08c in RTError__MsgS (= >=3BM3_AJWxb1_file==3B0xc63d8=2C
> >=3B>=3B>=3B M3_AcxOUs_lin= >e==3B2314=2C M3_Bd56fi_msgA==3B0xca3d0=2C
> >=3B>=3B>=3B = >M3_Bd56fi_msgB==3B0xcbe90=2C M3_Bd56fi_msgC==3B0xca3d0)=3B at RTEr= >ror.m3:=3B40
> >=3B>=3B>=3B #=3B6 0x0008eb88 in RTExcept= >ion__Crash (=3BM3_Cblw37_a==3B0xbfffee00=2C
> >=3B>=3B>= >=3B M3_AicXUJ_raises==3B0 '=3B\=3B0'=3B=2C M3_AJWxb1_rte==3B= >0xcb538)=3B at RTException.m3:=3B79
> >=3B>=3B>=3B #= >=3B7 0x0008e74c in RTException__DefaultBackstop
> >=3B>=3B>=3B= > (=3BM3_Cblw37_a==3B0xbfffee00=2C M3_AicXUJ_raises==3B0 '=3B = >2=3B0'=3B)=3B at
> >=3B>=3B>=3B RTException.m3:=3B39= >
> >=3B>=3B>=3B #=3B8 0x0008e614 in RTException__InvokeBack= >stop
> >=3B>=3B>=3B (=3BM3_Cblw37_a==3B0xbfffee00=2C M3_A= >icXUJ_raises==3B0 '=3B\=3B0'=3B)=3B at
> >=3B>=3B= >>=3B RTException.m3:=3B25
> >=3B>=3B>=3B #=3B9 0x0009= >5d04 in RTException__Raise (=3BM3_Cblw37_act==3B0xbfffee00)=3B at<= >br>> >=3B>=3B>=3B RTExFrame.m3:=3B29
> >=3B>=3B>=3B= > #=3B10 0x0008e840 in RTException__DefaultBackstop
> >=3B>=3B&#= >62=3B (=3BM3_Cblw37_a==3B0xbfffee00=2C M3_AicXUJ_raises==3B0 '= >=3B\=3B0'=3B)=3B at
> >=3B>=3B>=3B RTException.m3= >8=3B47
> >=3B>=3B>=3B #=3B11 0x0008e614 in RTException__Invo= >keBackstop
> >=3B>=3B>=3B (=3BM3_Cblw37_a==3B0xbfffee00= >=2C M3_AicXUJ_raises==3B0 '=3B\=3B0'=3B)=3B at
> >= >=3B>=3B>=3B RTException.m3:=3B25
> >=3B>=3B>=3B #= >=3B12 0x00095d04 in RTException__Raise (=3BM3_Cblw37_act==3B0xbfffee0= >0)=3B at
> >=3B>=3B>=3B RTExFrame.m3:=3B29
> >=3B&#= >62=3B>=3B #=3B13 0x00079740 in RTHooks__ReportFault (=3BM3_AJWxb1_= >module==3B0xb3eb8=2C
> >=3B>=3B>=3B M3_AcxOUs_info==3B740= >48)=3B at RTHooks.m3:=3B110
> >=3B>=3B>=3B #=3B14 0x00= >06ff4c in _m3_fault (=3BM3_AcxOUs_arg==3B74048)=3B
> >=3B= >2=3B>=3B #=3B15 0x0006bcf4 in RTHooks__CheckStoreTraced
> >=3B&= >#62=3B>=3B (=3BM3_Af40ku_ref==3B0xb2415c)=3B at RTCollector.m3&= >#58=3B2314
> >=3B>=3B>=3B #=3B16 0x000700e4 in ThreadPThread= >__InnerLockMutex
> >=3B>=3B>=3B (=3BM3_AYIbX3_m==3B0xb241= >5c=2C M3_BXP32l_self==3B0xb24014)=3B at
> >=3B>=3B>=3B Th= >readPThread.m3:=3B126
> >=3B>=3B>=3B #=3B17 0x000704d8 in= > ThreadPThread__LockMutex (=3BM3_AYIbX3_m==3B0xb2415c)=3B
> = >2=3B>=3B>=3B at ThreadPThread.m3:=3B153
> >=3B>=3B>=3B= > #=3B18 0x00019b24 in Wr__PutText (=3BM3_BxxOH1_wr==3B0xb2415c=2C<= >br>> >=3B>=3B>=3B M3_Bd56fi_t==3B0xb44d5c)=3B at Wr.m3:= >=3B93
> >=3B>=3B>=3B #=3B19 0x00003f74 in Main_M3 (=3BM3_= >AcxOUs_mode==3B1)=3B at Main.m3:=3B113
> >=3B>=3B>=3B = >#=3B20 0x0005b1c4 in RTLinker__RunMainBody (=3BM3_DjPxE3_m==3B0xad= >190)=3B at
> >=3B>=3B>=3B RTLinker.m3:=3B399
> >=3B= >>=3B>=3B #=3B21 0x00059f88 in RTLinker__AddUnitI (=3BM3_DjPxE3_= >m==3B0xad190)=3B at
> >=3B>=3B>=3B RTLinker.m3:=3B113<= >br>> >=3B>=3B>=3B #=3B22 0x0005a084 in RTLinker__AddUnit (= >=3BM3_DjPxE5_b==3B0x3600)=3B at
> >=3B>=3B>=3B RTLinker.m= >3:=3B122
> >=3B>=3B>=3B #=3B23 0x00001fac in main (=3B= >argc==3B4=2C argv==3B0xbffffb24=2C envp==3B0xbffffb38)=3B
> = >>=3B>=3B>=3B at _m3main.mc:=3B4
> >=3B>=3B>=3B (= >=3Bgdb)=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B The sec= >ond error:=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B Prog= >ram received signal EXC_BAD_INSTRUCTION=2C Illegal instruction/
> >= >=3B>=3B>=3B operand.
> >=3B>=3B>=3B 0x00b111ac in ?=3B= >?=3B (=3B)=3B
> >=3B>=3B>=3B (=3Bgdb)=3B wherer>> >=3B>=3B>=3B #=3B0 0x00b111ac in ?=3B?=3B (=3B= >1=3B
> >=3B>=3B>=3B #=3B1 0x0001214c in TextSubs__Apply = >0=3BM3_CN69dV_self==3B0xb26450=2C
> >=3B>=3B>=3B M3_Bd56fi_s= >rc==3B0xb21cec)=3B at TextSubs.m3:=3B63
> >=3B>=3B>=3B= > #=3B2 0x0005b1c4 in RTLinker__RunMainBody (=3BM3_DjPxE3_m==3B0xa= >d190)=3B at
> >=3B>=3B>=3B RTLinker.m3:=3B399
> >= >=3B>=3B>=3B #=3B3 0x00059f88 in RTLinker__AddUnitI (=3BM3_DjPx= >E3_m==3B0xad190)=3B at
> >=3B>=3B>=3B RTLinker.m3:=3B1= >13
> >=3B>=3B>=3B #=3B4 0x0005a084 in RTLinker__AddUnit = >0=3BM3_DjPxE5_b==3B0x3600)=3B at
> >=3B>=3B>=3B RTLinker.= >m3:=3B122
> >=3B>=3B>=3B #=3B5 0x00001fac in main (= >=3Bargc==3B4=2C argv==3B0xbffffb24=2C envp==3B0xbffffb38)=3B>> >=3B>=3B>=3B at _m3main.mc:=3B4
> >=3B>=3B>=3B &= >#40=3Bgdb)=3B list
> >=3B>=3B>=3B 58 BEGIN
> >= >=3B>=3B>=3B 59 WHILE pos <=3B textLen DO
> >=3B>= >=3B>=3B 60 c :=3B==3B Text.GetChar(=3Bsrc=2C pos)= >=3B;=3B
> >=3B>=3B>=3B 61 IF c IN self.starts THE= >N
> >=3B>=3B>=3B 62 (=3B*=3B S(=3B"=3B= >analysing:=3B "=3B &=3B Text.Sub(=3Bsrc=2C pos)=3B=2C
> &= >#62=3B>=3B>=3B DebugLevel)=3B;=3B *=3B)=3B
> >=3B&#= >62=3B>=3B 63 iter :=3B==3B self.tbl.iterateOrdered= >0=3B)=3B;=3B
> >=3B>=3B>=3B 64 ind :=3B&#= >61=3B pos;=3B
> >=3B>=3B>=3B 65 original := >=3B==3B "=3B"=3B;=3B
> >=3B>=3B>=3B 66 = > REPEAT
> >=3B>=3B>=3B 67 INC(=3Bind)=3B&#= >59=3B
> >=3B>=3B>=3B (=3Bgdb)=3B
> >=3B>=3B>= >=3B
> >=3B>=3B>=3B Any ideas what to look at?=3B
> >= >=3B>=3B>=3B
> >=3B>=3B>=3B I don'=3Bt know if this is = >relevant:=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B [= >=3Blapdog:=3B~=3B/t/cit_parse/PPC_DARWIN]=3B mika%=3B uname -a= >
> >=3B>=3B>=3B Darwin lapdog.local 7.9.0 Darwin Kernel Version= > 7.9.0:=3B Wed Mar 30
> >=3B>=3B>=3B 20:=3B11:=3B17 PS= >T 2005;=3B root:=3Bxnu/xnu-517.12.7.obj~=3B1/RELEASE_PPC Powerr>> >=3B>=3B>=3B Macintosh powerpc
> >=3B>=3B>=3B [= >=3Blapdog:=3B~=3B/t/cit_parse/PPC_DARWIN]=3B mika%=3B gcc -vr>> >=3B>=3B>=3B Reading specs from /usr/libexec/gcc/darwin/ppc/3.= >3/specs
> >=3B>=3B>=3B Thread model:=3B posix
> >=3B&#= >62=3B>=3B gcc version 3.3 20030304 (=3BApple Computer=2C Inc. build 1= >666)=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B Mika<= >br>> >=3B>=3B>=3B
> >=3B>=3B>=3B P.S. Am I correct in = >assuming that I can get CM3 to build on
> >=3B>=3B>=3B Window= >s?=3B
> >=3B>=3B>=3B I could switch to CM3 on Unix any time= >=2C of course=2C but I'=3Bve never
> >=3B>=3B>=3B had luck w= >ith it on Windows=2C which is why I am using the ancient
> >=3B>= >=3B>=3B Klagenfurt PM3=2C which comes on 40-odd "=3Bfloppies"=3B a= >nd a .EXE that
> >=3B>=3B>=3B unpacks them into C:=3B (= >=3Band installation instructions only in German)=3B.
> >=3B>=3B= >>=3B If CM3 doesn'=3Bt work on Windows=2C I am essentially wasting my= > time=2C
> >=3B>=3B>=3B as the current project I am working on = >absolutely requires that the
> >=3B>=3B>=3B software run on Win= >dows 2003 Server (=3Byes=2C it sucks=2C but what can
> >=3B>=3B= >>=3B you do?=3B)=3B The very old PM3 at least kind of hobbles alo= >ng on this
> >=3B>=3B>=3B platform---actually=2C better than th= >at;=3B it does Trestle natively
> >=3B>=3B>=3B under Windows= > (=3Bno X required)=3B=2C at least on SOME Windows machines.
> = >2=3B>=3B>=3B
> >=3B>=3B>=3B P.P.S. Sorry for all the post= >scripts=2C but is it true that the
> >=3B>=3B>=3B build system = >has been changed so that building with overrides
> >=3B>=3B>= >=3B (=3Bcm3 -x)=3B
> >=3B>=3B>=3B requires having the com= >piler sources available?=3B It didn'=3Bt use to
> >=3B>=3B&= >#62=3B be that way=2C but I can'=3Bt get Network Objects to work with ov= >errides
> >=3B>=3B>=3B now unless I have the sources available.= >.. It'=3Bs a bit of a pain
> >=3B>=3B>=3B because it means = >that every user has to have the compiler sources=2C
> >=3B>=3B>= >=3B or else ship everything=2C or was that not the intention?=3B
> = > >= > >--_6374b72e-0dad-4a03-8d22-4a59e0218226_-- From jay.krell at cornell.edu Sat Jan 8 15:22:05 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 14:22:05 +0000 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: <20110108134735.B7D4C1A205B@async.async.caltech.edu> References: <20101227101653.307241A205B@async.async.caltech.edu>, ,,, ,,<20101227185453.97CE51A205B@async.async.caltech.edu>, , , , , , , <20110108121441.A58031A205B@async.async.caltech.edu>, , <20110108134735.B7D4C1A205B@async.async.caltech.edu> Message-ID: It no longer builds m3bundle I think. There was a problem regarding m3bundle for a while, because I had followed upgrade.sh too closely, which had this problem. And this is a sign of using old cm3cg. Are you sure you didn't do something weird? Uograde.py does upgrade cm3cg appropriately. Try head? > To: jay.krell at cornell.edu > Date: Sat, 8 Jan 2011 05:47:35 -0800 > From: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] another Snow Leopard compiler crash > > I ran "python upgrade.py" from a clean start (back to head a few weeks ago) > and got: > > == package /Users/mika/cm3/cm3/m3-tools/m3bundle == > > +++ /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3 -build -DROOT=/Users/mika/cm3/cm3 +++ > --- building in I386_DARWIN --- > > ignoring ../src/m3overrides > > new source -> compiling m3bundle.m3 > -> linking m3bundle > Undefined symbols: > "__alloca", referenced from: > _m3bundle__GetElementSizes in m3bundle.mo > "_Csetjmp__Jumpbuf_size", referenced from: > _Csetjmp__Jumpbuf_size$non_lazy_ptr in m3bundle.mo > (maybe you meant: _Csetjmp__Jumpbuf_size$non_lazy_ptr) > ld: symbol(s) not found > collect2: ld returned 1 exit status > m3_link => 1 > linker failed linking: m3bundle > Fatal Error: package build failed > *** execution of [, ] failed *** > [hal:cm3/scripts/python] mika% > > maybe a conf file change I need to make? > > Why only in m3bundle? > > Mika > > Jay K writes: > >--_6374b72e-0dad-4a03-8d22-4a59e0218226_ > >Content-Type: text/plain; charset="iso-8859-1" > >Content-Transfer-Encoding: quoted-printable > > > >I upgrade across incompatibilities frequently & Hudson does now too. The ex= > >isting scripts work very well and you would be foolish to not use them. Jus= > >t use upgrade.py. It is very easy. Or upgrade.py nocleangcc. And then do-cm= > >3-all.py skipgcc realclean && do-cm3-all.py buildship.py. > > > > - Jay/phone > > > >> To: jay.krell at cornell.edu > >> Date: Sat=2C 8 Jan 2011 04:14:41 -0800 > >> From: mika at async.caltech.edu > >> CC: m3devel at elegosoft.com > >> Subject: Re: [M3devel] another Snow Leopard compiler crash > >>=20 > >> Jay K writes: > >> > > >> >Please try this Mika. It fixes the problem for me. > >>=20 > >> Hi Jay=2C > >>=20 > >> So I upgraded to the CVS head and now I get a segfaulting compiler: > >>=20 > >> [hal:cm3/m3-libs/m3core] mika% gdb $CM3 > >> GNU gdb 6.3.50-20050815 (Apple version gdb-1510) (Wed Sep 22 02:45:02 UTC= > > 2010) > >> Copyright 2004 Free Software Foundation=2C Inc. > >> GDB is free software=2C covered by the GNU General Public License=2C and = > >you are > >> welcome to change it and/or distribute copies of it under certain conditi= > >ons. > >> Type "show copying" to see the conditions. > >> There is absolutely no warranty for GDB. Type "show warranty" for detail= > >s. > >> This GDB was configured as "x86_64-apple-darwin"...Reading symbols for sh= > >ared libraries ...... done > >>=20 > >> (gdb) run > >> Starting program: /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3=20 > >> Reading symbols for shared libraries .+++++.......... done > >>=20 > >> Program received signal EXC_BAD_ACCESS=2C Could not access memory. > >> Reason: KERN_PROTECTION_FAILURE at address: 0x0000038b > >> 0x9713354b in _longjmp () > >> (gdb) where > >> #0 0x9713354b in _longjmp () > >> #1 0x00285d2b in RTExFrame__InvokeHandler (f=3D0xbffff34c=2C a=3D0xbffff= > >23c) at ../src/runtime/ex_frame/RTExFrame.m3:175 > >> #2 0x00285be4 in RTException__ResumeRaise (a=3D0xbffff23c) at ../src/run= > >time/ex_frame/RTExFrame.m3:145 > >> #3 0x00285a1b in RTException__Raise (act=3D0xbffff23c) at ../src/runtime= > >/ex_frame/RTExFrame.m3:91 > >> #4 0x00269d44 in RTHooks__Raise (ex=3D0x35a720=2C arg=3D0x181cddc=2C mod= > >ule=3D0x398080=2C line=3D50) at ../src/runtime/common/RTHooks.m3:79 > >> #5 0x0023adbc in OSErrorPosix__Raise0 (errno=3D2) at ../src/os/POSIX/OSE= > >rrorPosix.m3:50 > >> #6 0x0023cffc in FSPosix__Fail (p=3D0x181cdc0=2C f=3D0xf049f0) at ../src= > >/os/POSIX/FSPosix.m3:359 > >> #7 0x0023cdd4 in FS__Status (pn=3D0x181cdc0=2C _result=3D0xbffff3c8) at = > >../src/os/POSIX/FSPosix.m3:328 > >> #8 0x00217d24 in M3File__IsReadable (path=3D0x181cdc0) at ../src/M3File.= > >m3:123 > >> #9 0x000a057f in MxConfig__TryConfig (a=3D0x3255e0=2C b=3D0x3255f0=2C c= > >=3D0x0) at ../src/MxConfig.m3:122 > >> #10 0x0009ff67 in MxConfig__FindConfig () at ../src/MxConfig.m3:51 > >> #11 0x0009fcd8 in MxConfig__FindFile () at ../src/MxConfig.m3:19 > >> #12 0x0002c446 in Main__DoIt () at ../src/Main.m3:32 > >> #13 0x0002d1e9 in Main_M3 (mode=3D1) at ../src/Main.m3:214 > >> #14 0x0027a781 in RTLinker__RunMainBody (m=3D0x3705a0) at ../src/runtime/= > >common/RTLinker.m3:406 > >> #15 0x00279bb6 in RTLinker__AddUnitI (m=3D0x3705a0) at ../src/runtime/com= > >mon/RTLinker.m3:113 > >> #16 0x00279c3a in RTLinker__AddUnit (b=3D0x2d1d0) at ../src/runtime/commo= > >n/RTLinker.m3:122 > >> #17 0x00002cfc in main (argc=3D1=2C argv=3D0xbffff674=2C envp=3D0xbffff67= > >c) at _m3main.c:16 > >> (gdb)=20 > >>=20 > >> I followed upgrade instructions from Tony (including upgrading the > >> back-end)---I have edited the instructions a bit to track changes in=20 > >> CM3. I'm starting from head three weeks old.. > >>=20 > >> Mika > >>=20 > >>=20 > >> Return-Path: hosking at cs.purdue.edu > >> Delivery-Date: Sun Jun 24 07:38:38 2007 > >> In-Reply-To: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> > >> References: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> > >>=20 > >> Sounds like we really need some work done in this area. I very =20 > >> rarely use the build scripts=2C since I bootstrap manually from old =20 > >> compilers to new compilers rather than use the scripts. I suggest =20 > >> the following approach=2C which I hope you will try=2C and then report =20 > >> back on. > >>=20 > >> Install the bootstrap compiler as you did originally: > >>=20 > >> > rm -rf /usr/local/cm3/* > >> > > >> > cd ~/cm3-cvs > >> > mkdir boot > >> > cd boot > >> > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz > >> > ./cminstall > >>=20 > >>=20 > >> Now you will have some kind of cm3 installed=2C presumably in /usr/=20 > >> local/cm3/bin/cm3. > >>=20 > >> Make sure you have a fresh CVS checkout in directory cm3 (let's =20 > >> assume this is in your home directory ~/cm3). Also=2C make sure you =20 > >> have an up-to-date version of the CM3 backend compiler cm3cg =20 > >> installed by executing the following: > >>=20 > >> STEP 0: > >>=20 > >> export CM3=3D/usr/local/cm3/bin/cm3 > >> cd ~/cm3/m3-sys/m3cc > >> $CM3 > >> $CM3 -ship > >>=20 > >> You can skip this last step if you know your backend compiler is up =20 > >> to date. > >>=20 > >> Now=2C let's build the new compiler from scratch (this is the sequence =20 > >> I use regularly to test changes to the run-time system whenever I =20 > >> make them): > >>=20 > >> can replace compilation step with > >>=20 > >> rm -rf && $CM3 && $CM3 -ship=20 > >>=20 > >>=20 > >> STEP 1: > >>=20 > >> (do these LATER if bootstrapping from old compiler!) > >> cd ~/cm3/m3-libs/m3core > >> $CM3 > >> $CM3 -ship > >> cd ~/cm3/m3-libs/libm3 > >> $CM3 > >> $CM3 -ship > >>=20 > >> Now build the compiler: > >>=20 > >> cd ~/cm3/m3-libs/sysutils =3B $CM3 etc. > >>=20 > >> cd ~/cm3/m3-sys/m3middle=3B $CM3 etc. > >>=20 > >> repeat for: > >>=20 > >> m3-sys/m3objfile=20 > >>=20 > >> m3-sys/m3back=20 > >>=20 > >> m3-sys/m3linker > >>=20 > >> m3-sys/m3front > >>=20 > >> m3-sys/m3quake > >>=20 > >> m3-sys/cm3 > >>=20 > >> [ here we may need -DROOT=3D ] > >>=20 > >>=20 > >> At this point you should have a bootstrapped version of cm3 installed =20 > >> in the directory /usr/local/cm3/pkg/cm3/TARGET/cm3 (where TARGET is =20 > >> the CM3 target platform you are building on -- e.g.=2C LINUXLIBC6=2C =20 > >> PPC_DARWIN=2C ...). Note that this did not overwrite your original =20 > >> installed compiler in /usr/local/cm3/bin/cm3. We > >> are now going to test the new compiler=2C which was built using the old = > >=20 > >> compiler=2C by bootstrapping it one more time. > >>=20 > >>=20 > >> ******* THIS IS WHERE I HAVE A SEGFAULTING COMPILER ******* > >>=20 > >> (If m3core and libm3 were skipped earlier=2C do them now=2C and RE-DO all > >> of the above packages before proceeding.) > >>=20 > >> From here on out=2C please replace TARGET with your target platform as =20 > >> appropriate. > >>=20 > >> STEP 2: > >>=20 > >> export CM3=3D/usr/local/cm3/pkg/cm3/TARGET/cm3 > >> cd ~/cm3/scripts > >>=20 > >> ./do-cm3-std.sh realclean > >> REPEAT STEP 1 to rebuild the libraries and the compiler using the =20 > >> STEP 1 bootstrap compiler. > >>=20 > >> Now you have a STEP 2 bootstrap compiler installed in /usr/local/cm3/=20 > >> pkg/cm3/TARGET/cm3. Let's assume the new compiler now works properly =20 > >> since it successfully bootstrapped itself=2C but to be sure we can now =20 > >> use it to rebuild the world: > >>=20 > >> cd ~/cm3/scripts > >> ./do-cm3-std.sh realclean > >> ./do-cm3-std.sh buildship > >>=20 > >> Assuming this succeeded then we can be pretty sure /usr/local/cm3/pkg/=20 > >> cm3/TARGET/cm3 is good=2C so we can make it our default compiler by =20 > >> replacing the original /usr/local/cm3/bin/cm3: > >>=20 > >> cp $CM3 /usr/local/cm3/bin/cm3 > >>=20 > >> On Jun 23=2C 2007=2C at 2:38 PM=2C Mika Nystrom wrote: > >>=20 > >> > Ok=2C I'm sorry if I seem a bit dimwitted in the morning like this=2C > >> > but how exactly does one get started? I wish there were a file called > >> > "GETTING_STARTED" or something like that in scripts... > >> > > >> > My Mac is very slow so I switched to my FreeBSD/i386 system (which has > >> > PM3 happily installed on it) and tried to install CM3 from scratch. > >> > Here are the exact commands I typed. > >> > > >> > > >> > rm -rf /usr/local/cm3/* > >> > > >> > cd ~/cm3-cvs > >> > mkdir boot > >> > cd boot > >> > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz > >> > ./cminstall > >> > > >> > # now I seem to have some kind of cm3 installed=2C /usr/local/cm3/bin/= > >=20 > >> > cm3 > >> > > >> > cd cm3 # location of my CM3 checkout > >> > cvs update -d . > >> > > >> > cd scripts > >> > ./boot-cm3-with-m3.sh realclean > >> > ./do-cm3-std.sh realclean > >> > > >> > ./upgrade.sh # fails here=2C libm3 not compiled > >> > ./boot-cm3-with-m3.sh build # builds cm3=2C but fails on =20 > >> > cminstall=2C patternmatching not built > >> > > >> > ./do-cm3-std.sh build # OK > >> > ./do-cm3-std.sh buildship # OK > >> > > >> > ./boot-cm3-with-m3.sh realclean # start over > >> > ./boot-cm3-with-m3.sh build # OK > >> > ./boot-cm3-with-m3.sh buildship # OK > >> > > >> > ./do-cm3-std.sh realclean # OK > >> > ./do-cm3-std.sh build # dies miserably... maybe the =20 > >> > compiler can't handle the new libraries? > >> > > >> > ./install-cm3-compiler.sh upgrade # OK=2C new cm3 binary installed > >> > > >> > After all that=2C "game over." I have a cm3 that segfaults. > >> > > >> > Text.i3: In function 'Text_I3': > >> > Text.i3:81: internal compiler error: Segmentation fault > >> > Please submit a full bug report=2C > >> > with preprocessed source if appropriate. > >> > See for instructions. > >> > compilation failed =3D> not building library "libm3core.a" > >> > Fatal Error: package build failed > >> > *** execution of failed *** > >> > > >> > I can't seem to get either m3gdb or gdb to say anything reasonable > >> > either. ktrace shows nothing out of the ordinary. > >> > > >> > ----- > >> > > >> > Meanwhile=2C my Mac got through "do-cm3-std.sh realclean" and > >> > "do-cm3-std.sh buildship" but my compiles are still dying on the > >> > same assertion tickled by ktok. On that machine I have INSTALLROOT > >> > set to ~/cm3=2C but hopefully that has nothing to do with it... > >> > > >> > ----- > >> > > >> > Does do-cm3-std.sh realclean clean EVERYTHING? If so my Mac should > >> > really have a fresh setup. The FreeBSD=2C I am not sure=2C maybe the > >> > old binary version just doesn't work right? Of course I could try > >> > bootstrapping with PM3 as well... but really=2C there's an "approved" > >> > process to get from a blank system=2C no? > >> > > >> > Mika > >> > > >> > > >> > > >> > > >> > Tony Hosking writes: > >> >> That sounds like you forgot to execute "do-cm3-std.sh realclean" > >> >> before initiating the build. These sorts of errors sometimes arise > >> >> if there are old build directories lying around. > >> >> > >> >> On Jun 23=2C 2007=2C at 3:34 AM=2C Mika Nystrom wrote: > >> >> > >> >>> Hello everyone=2C > >> >>> > >> >>> I am in the process of trying to consolidate build systems for a > >> >>> few software packages I am maintaining. Currently=2C I am using an > >> >>> old PM3 on FreeBSD4=2C an ancient PM3 (from Klagenfurt?) for Windows > >> >>> (NT386GNU)=2C and trying to get the latest CM3 from cvs up and =20 > >> >>> compiling > >> >>> things on PPC_DARWIN. Ideally=2C I'd like to standardize everything > >> >>> on the new PM3---mainly so that I can use pickles (and Network > >> >>> Objects) across all three systems. I'd also like to add Linux to > >> >>> the mix. > >> >>> > >> >>> It's natural for me to start with CM3 on Darwin=2C as there's no > >> >>> alternative. But I am getting some assertions failing. Everything > >> >>> in the CM3 distribution compiles fine=2C and I believe I have compile= > >d > >> >>> the libraries a few times (that is=2C including with themselves)=2C a= > >nd > >> >>> updated the compiler=2C too (using boot-cm3-with-m3.sh). I just cvs > >> >>> updated tonight. > >> >>> > >> >>> Here's what I'm running into: > >> >>> > >> >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/CHP.t -o =20 > >> >>> CHPTok.i3 > >> >>> > >> >>> *** > >> >>> *** runtime error: > >> >>> *** <*ASSERT*> failed. > >> >>> *** file "../src/runtime/common/RTCollector.m3"=2C line 2314 > >> >>> *** > >> >>> > >> >>> Abort > >> >>> > >> >>> Also: > >> >>> > >> >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/PRS.t -o =20 > >> >>> PRSTok.i3 > >> >>> Illegal instruction > >> >>> > >> >>> As you can see=2C these things are coming from the caltech_parser. I > >> >> am using > >> >>> our local version=2C but I don't think it is very different from what > >> >>> is in the > >> >>> CM3 tree. > >> >>> > >> >>> Examining the first error (the failed assertion) more closely=2C I se= > >e > >> >>> the following: > >> >>> > >> >>> (gdb) list > >> >>> 108 wr :=3D FileWr.Open(Pathname.ReplaceExt(tp.out=2C "m3"))= > >=3B > >> >>> 109 EXCEPT OSError.E =3D> > >> >>> 110 Debug.Error("Cannot open tok implementation output > >> >>> file: " & > >> >>> 111 Pathname.ReplaceExt(tp.out=2C "m3"))=3B > >> >>> 112 END=3B > >> >>> 113 Wr.PutText(wr=2C subs.apply(Bundle.Get(Form=2C =20 > >> >>> "tokform.m3")))=3B > >> >>> 114 Wr.Close(wr)=3B > >> >>> 115 END Main. > >> >>> (gdb) where > >> >>> #0 0x9004308c in kill () > >> >>> #1 0x9009fb3c in abort () > >> >>> #2 0x00096f50 in RTOS__Crash () at RTOS.m3:20 > >> >>> #3 0x0005bd40 in RTProcess__Crash (M3_Bd56fi_msg=3D0x0) at > >> >>> RTProcess.m3:65 > >> >>> #4 0x0008e4e0 in RTError__EndError (M3_AicXUJ_crash=3D1 '\001') at > >> >>> RTError.m3:115 > >> >>> #5 0x0008e08c in RTError__MsgS (M3_AJWxb1_file=3D0xc63d8=2C > >> >>> M3_AcxOUs_line=3D2314=2C M3_Bd56fi_msgA=3D0xca3d0=2C > >> >>> M3_Bd56fi_msgB=3D0xcbe90=2C M3_Bd56fi_msgC=3D0xca3d0) at RTError.m3:4= > >0 > >> >>> #6 0x0008eb88 in RTException__Crash (M3_Cblw37_a=3D0xbfffee00=2C > >> >>> M3_AicXUJ_raises=3D0 '\0'=2C M3_AJWxb1_rte=3D0xcb538) at RTException.= > >m3:79 > >> >>> #7 0x0008e74c in RTException__DefaultBackstop > >> >>> (M3_Cblw37_a=3D0xbfffee00=2C M3_AicXUJ_raises=3D0 '\0') at =20 > >> >>> RTException.m3:39 > >> >>> #8 0x0008e614 in RTException__InvokeBackstop > >> >>> (M3_Cblw37_a=3D0xbfffee00=2C M3_AicXUJ_raises=3D0 '\0') at =20 > >> >>> RTException.m3:25 > >> >>> #9 0x00095d04 in RTException__Raise (M3_Cblw37_act=3D0xbfffee00) at > >> >>> RTExFrame.m3:29 > >> >>> #10 0x0008e840 in RTException__DefaultBackstop > >> >>> (M3_Cblw37_a=3D0xbfffee00=2C M3_AicXUJ_raises=3D0 '\0') at =20 > >> >>> RTException.m3:47 > >> >>> #11 0x0008e614 in RTException__InvokeBackstop > >> >>> (M3_Cblw37_a=3D0xbfffee00=2C M3_AicXUJ_raises=3D0 '\0') at =20 > >> >>> RTException.m3:25 > >> >>> #12 0x00095d04 in RTException__Raise (M3_Cblw37_act=3D0xbfffee00) at > >> >>> RTExFrame.m3:29 > >> >>> #13 0x00079740 in RTHooks__ReportFault (M3_AJWxb1_module=3D0xb3eb8=2C > >> >>> M3_AcxOUs_info=3D74048) at RTHooks.m3:110 > >> >>> #14 0x0006ff4c in _m3_fault (M3_AcxOUs_arg=3D74048) > >> >>> #15 0x0006bcf4 in RTHooks__CheckStoreTraced > >> >>> (M3_Af40ku_ref=3D0xb2415c) at RTCollector.m3:2314 > >> >>> #16 0x000700e4 in ThreadPThread__InnerLockMutex > >> >>> (M3_AYIbX3_m=3D0xb2415c=2C M3_BXP32l_self=3D0xb24014) at > >> >>> ThreadPThread.m3:126 > >> >>> #17 0x000704d8 in ThreadPThread__LockMutex (M3_AYIbX3_m=3D0xb2415c) > >> >>> at ThreadPThread.m3:153 > >> >>> #18 0x00019b24 in Wr__PutText (M3_BxxOH1_wr=3D0xb2415c=2C > >> >>> M3_Bd56fi_t=3D0xb44d5c) at Wr.m3:93 > >> >>> #19 0x00003f74 in Main_M3 (M3_AcxOUs_mode=3D1) at Main.m3:113 > >> >>> #20 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=3D0xad190) at > >> >>> RTLinker.m3:399 > >> >>> #21 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=3D0xad190) at > >> >>> RTLinker.m3:113 > >> >>> #22 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=3D0x3600) at > >> >>> RTLinker.m3:122 > >> >>> #23 0x00001fac in main (argc=3D4=2C argv=3D0xbffffb24=2C envp=3D0xbff= > >ffb38) > >> >>> at _m3main.mc:4 > >> >>> (gdb) > >> >>> > >> >>> The second error: > >> >>> > >> >>> Program received signal EXC_BAD_INSTRUCTION=2C Illegal instruction/ > >> >>> operand. > >> >>> 0x00b111ac in ?? () > >> >>> (gdb) where > >> >>> #0 0x00b111ac in ?? () > >> >>> #1 0x0001214c in TextSubs__Apply (M3_CN69dV_self=3D0xb26450=2C > >> >>> M3_Bd56fi_src=3D0xb21cec) at TextSubs.m3:63 > >> >>> #2 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=3D0xad190) at > >> >>> RTLinker.m3:399 > >> >>> #3 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=3D0xad190) at > >> >>> RTLinker.m3:113 > >> >>> #4 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=3D0x3600) at > >> >>> RTLinker.m3:122 > >> >>> #5 0x00001fac in main (argc=3D4=2C argv=3D0xbffffb24=2C envp=3D0xbff= > >ffb38) > >> >>> at _m3main.mc:4 > >> >>> (gdb) list > >> >>> 58 BEGIN > >> >>> 59 WHILE pos < textLen DO > >> >>> 60 c :=3D Text.GetChar(src=2C pos)=3B > >> >>> 61 IF c IN self.starts THEN > >> >>> 62 (* S("analysing: " & Text.Sub(src=2C pos)=2C > >> >>> DebugLevel)=3B *) > >> >>> 63 iter :=3D self.tbl.iterateOrdered()=3B > >> >>> 64 ind :=3D pos=3B > >> >>> 65 original :=3D ""=3B > >> >>> 66 REPEAT > >> >>> 67 INC(ind)=3B > >> >>> (gdb) > >> >>> > >> >>> Any ideas what to look at? > >> >>> > >> >>> I don't know if this is relevant: > >> >>> > >> >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% uname -a > >> >>> Darwin lapdog.local 7.9.0 Darwin Kernel Version 7.9.0: Wed Mar 30 > >> >>> 20:11:17 PST 2005=3B root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC Power > >> >>> Macintosh powerpc > >> >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% gcc -v > >> >>> Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs > >> >>> Thread model: posix > >> >>> gcc version 3.3 20030304 (Apple Computer=2C Inc. build 1666) > >> >>> > >> >>> Mika > >> >>> > >> >>> P.S. Am I correct in assuming that I can get CM3 to build on =20 > >> >>> Windows? > >> >>> I could switch to CM3 on Unix any time=2C of course=2C but I've never > >> >>> had luck with it on Windows=2C which is why I am using the ancient > >> >>> Klagenfurt PM3=2C which comes on 40-odd "floppies" and a .EXE that > >> >>> unpacks them into C: (and installation instructions only in German). > >> >>> If CM3 doesn't work on Windows=2C I am essentially wasting my time=2C > >> >>> as the current project I am working on absolutely requires that the > >> >>> software run on Windows 2003 Server (yes=2C it sucks=2C but what can > >> >>> you do?) The very old PM3 at least kind of hobbles along on this > >> >>> platform---actually=2C better than that=3B it does Trestle natively > >> >>> under Windows (no X required)=2C at least on SOME Windows machines. > >> >>> > >> >>> P.P.S. Sorry for all the postscripts=2C but is it true that the > >> >>> build system has been changed so that building with overrides =20 > >> >>> (cm3 -x) > >> >>> requires having the compiler sources available? It didn't use to > >> >>> be that way=2C but I can't get Network Objects to work with overrides > >> >>> now unless I have the sources available... It's a bit of a pain > >> >>> because it means that every user has to have the compiler sources=2C > >> >>> or else ship everything=2C or was that not the intention? > > = > > > >--_6374b72e-0dad-4a03-8d22-4a59e0218226_ > >Content-Type: text/html; charset="iso-8859-1" > >Content-Transfer-Encoding: quoted-printable > > > > > > > > > > > >I upgrade across incompatibilities frequently & H= > >udson does now too. The existing scripts work very well and you would be fo= > >olish to not use them. Just use upgrade.py. It is very easy. Or upgrade.py = > >nocleangcc. And then do-cm3-all.py skipgcc realclean && do-cm3-all.py build= > >ship.py.

- Jay/phone

> To:=3B jay.krell@=3Bcornell.edu= > >
> Date:=3B Sat=2C 8 Jan 2011 04:=3B14:=3B41 -0800
> From= > >8=3B mika@=3Basync.caltech.edu
> CC:=3B m3devel@=3Belegosoft.co= > >m
> Subject:=3B Re:=3B [=3BM3devel]=3B another Snow Leopard = > >compiler crash
>
> Jay K writes:=3B
> >=3B
> >=3BPlea= > >se try this Mika. It fixes the problem for me.
>
> Hi Jay=2C
> >r>> So I upgraded to the CVS head and now I get a segfaulting compiler:= > >=3B
>
> [=3Bhal:=3Bcm3/m3-libs/m3core]=3B mika%=3B gdb &= > >#36=3BCM3
> GNU gdb 6.3.50-20050815 (=3BApple version gdb-1510)=3B= > > (=3BWed Sep 22 02:=3B45:=3B02 UTC 2010)=3B
> Copyright 2004= > > Free Software Foundation=2C Inc.
> GDB is free software=2C covered by t= > >he GNU General Public License=2C and you are
> welcome to change it and/= > >or distribute copies of it under certain conditions.
> Type "=3Bshow = > >copying"=3B to see the conditions.
> There is absolutely no warranty = > >for GDB. Type "=3Bshow warranty"=3B for details.
> This GDB was c= > >onfigured as "=3Bx86_64-apple-darwin"=3B...Reading symbols for shared= > > libraries ...... done
>
> (=3Bgdb)=3B run
> Starting progr= > >am:=3B /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3
> Reading symbols for = > >shared libraries .+=3B+=3B+=3B+=3B+=3B.......... done
> <= > >br>> Program received signal EXC_BAD_ACCESS=2C Could not access memory.
= > >> Reason:=3B KERN_PROTECTION_FAILURE at address:=3B 0x0000038b
> 0= > >x9713354b in _longjmp (=3B)=3B
> (=3Bgdb)=3B where
> #= > >=3B0 0x9713354b in _longjmp (=3B)=3B
> #=3B1 0x00285d2b in RT= > >ExFrame__InvokeHandler (=3Bf==3B0xbffff34c=2C a==3B0xbffff23c)= > >=3B at ../src/runtime/ex_frame/RTExFrame.m3:=3B175
> #=3B2 0x0028= > >5be4 in RTException__ResumeRaise (=3Ba==3B0xbffff23c)=3B at ../src= > >/runtime/ex_frame/RTExFrame.m3:=3B145
> #=3B3 0x00285a1b in RTExc= > >eption__Raise (=3Bact==3B0xbffff23c)=3B at ../src/runtime/ex_frame= > >/RTExFrame.m3:=3B91
> #=3B4 0x00269d44 in RTHooks__Raise (=3Be= > >x==3B0x35a720=2C arg==3B0x181cddc=2C module==3B0x398080=2C line= > >1=3B50)=3B at ../src/runtime/common/RTHooks.m3:=3B79
> #=3B5 0= > >x0023adbc in OSErrorPosix__Raise0 (=3Berrno==3B2)=3B at ../src/os/= > >POSIX/OSErrorPosix.m3:=3B50
> #=3B6 0x0023cffc in FSPosix__Fail &= > >#40=3Bp==3B0x181cdc0=2C f==3B0xf049f0)=3B at ../src/os/POSIX/FSPos= > >ix.m3:=3B359
> #=3B7 0x0023cdd4 in FS__Status (=3Bpn==3B0x1= > >81cdc0=2C _result==3B0xbffff3c8)=3B at ../src/os/POSIX/FSPosix.m3:= > >=3B328
> #=3B8 0x00217d24 in M3File__IsReadable (=3Bpath==3B0x= > >181cdc0)=3B at ../src/M3File.m3:=3B123
> #=3B9 0x000a057f in M= > >xConfig__TryConfig (=3Ba==3B0x3255e0=2C b==3B0x3255f0=2C c==3B0= > >x0)=3B at ../src/MxConfig.m3:=3B122
> #=3B10 0x0009ff67 in MxCo= > >nfig__FindConfig (=3B)=3B at ../src/MxConfig.m3:=3B51
> #=3B= > >11 0x0009fcd8 in MxConfig__FindFile (=3B)=3B at ../src/MxConfig.m3= > >8=3B19
> #=3B12 0x0002c446 in Main__DoIt (=3B)=3B at ../src/Mai= > >n.m3:=3B32
> #=3B13 0x0002d1e9 in Main_M3 (=3Bmode==3B1)= > >=3B at ../src/Main.m3:=3B214
> #=3B14 0x0027a781 in RTLinker__RunM= > >ainBody (=3Bm==3B0x3705a0)=3B at ../src/runtime/common/RTLinker.m3= > >:=3B406
> #=3B15 0x00279bb6 in RTLinker__AddUnitI (=3Bm==3B0= > >x3705a0)=3B at ../src/runtime/common/RTLinker.m3:=3B113
> #=3B1= > >6 0x00279c3a in RTLinker__AddUnit (=3Bb==3B0x2d1d0)=3B at ../src/r= > >untime/common/RTLinker.m3:=3B122
> #=3B17 0x00002cfc in main (= > >=3Bargc==3B1=2C argv==3B0xbffff674=2C envp==3B0xbffff67c)=3B at= > > _m3main.c:=3B16
> (=3Bgdb)=3B
>
> I followed upgrade i= > >nstructions from Tony (=3Bincluding upgrading the
> back-end)=3B--= > >-I have edited the instructions a bit to track changes in
> CM3. I'= > >=3Bm starting from head three weeks old..
>
> Mika
>
> = > >
> Return-Path:=3B hosking@=3Bcs.purdue.edu
> Delivery-Date:= > >=3B Sun Jun 24 07:=3B38:=3B38 2007
> In-Reply-To:=3B <=3B200= > >706231838.l5NIcRef079333@=3Bcamembert.async.caltech.edu>=3B
> Refe= > >rences:=3B <=3B200706231838.l5NIcRef079333@=3Bcamembert.async.calt= > >ech.edu>=3B
>
> Sounds like we really need some work done in this= > > area. I very
> rarely use the build scripts=2C since I bootstrap man= > >ually from old
> compilers to new compilers rather than use the script= > >s. I suggest
> the following approach=2C which I hope you will try=2C= > > and then report
> back on.
>
> Install the bootstrap compiler = > >as you did originally:=3B
>
> >=3B rm -rf /usr/local/cm3/*= > >=3B
> >=3B
> >=3B cd ~=3B/cm3-cvs
> >=3B mkdir boot >r>> >=3B cd boot
> >=3B tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-= > >2005-10-05.tgz
> >=3B ./cminstall
>
>
> Now you will have = > >some kind of cm3 installed=2C presumably in /usr/
> local/cm3/bin/cm3.<= > >br>>
> Make sure you have a fresh CVS checkout in directory cm3 (=3B= > >let'=3Bs
> assume this is in your home directory ~=3B/cm3)= > >=3B. Also=2C make sure you
> have an up-to-date version of the CM3 ba= > >ckend compiler cm3cg
> installed by executing the following:=3B
= > >>
> STEP 0:=3B
>
> export CM3==3B/usr/local/cm3/bin/cm3 >>> cd ~=3B/cm3/m3-sys/m3cc
> $=3BCM3
> $=3BCM3 -ship
> <= > >br>> You can skip this last step if you know your backend compiler is up <= > >br>> to date.
>
> Now=2C let'=3Bs build the new compiler from scr= > >atch (=3Bthis is the sequence
> I use regularly to test changes to = > >the run-time system whenever I
> make them)=3B:=3B
>
> ca= > >n replace compilation step with
>
> rm -rf <=3Bder. dir>=3B &#= > >38=3B&=3B $=3BCM3 &=3B&=3B $=3BCM3 -ship
>
>
> S= > >TEP 1:=3B
>
> (=3Bdo these LATER if bootstrapping from old com= > >piler!=3B)=3B
> cd ~=3B/cm3/m3-libs/m3core
> $=3BCM3
= > >> $=3BCM3 -ship
> cd ~=3B/cm3/m3-libs/libm3
> $=3BCM3
> = > >$=3BCM3 -ship
>
> Now build the compiler:=3B
>
> cd &#= > >126=3B/cm3/m3-libs/sysutils ;=3B $=3BCM3 etc.
>
> cd ~=3B/= > >cm3/m3-sys/m3middle;=3B $=3BCM3 etc.
>
> repeat for:=3B
= > >>
> m3-sys/m3objfile
>
> m3-sys/m3back
>
> m3-sys/m3lin= > >ker
>
> m3-sys/m3front
>
> m3-sys/m3quake
>
> m3-sys/c= > >m3
>
> [=3B here we may need -DROOT==3B<=3Broot dir=2C e.g.= > >=2C /home/mika/cm3>=3B ]=3B
>
>
> At this point you should= > > have a bootstrapped version of cm3 installed
> in the directory /usr/= > >local/cm3/pkg/cm3/TARGET/cm3 (=3Bwhere TARGET is
> the CM3 target p= > >latform you are building on -- e.g.=2C LINUXLIBC6=2C
> PPC_DARWIN=2C .= > >..)=3B. Note that this did not overwrite your original
> installed= > > compiler in /usr/local/cm3/bin/cm3. We
> are now going to test the new= > > compiler=2C which was built using the old
> compiler=2C by bootstrapp= > >ing it one more time.
>
>
> *=3B*=3B*=3B*=3B*=3B&= > >#42=3B*=3B THIS IS WHERE I HAVE A SEGFAULTING COMPILER *=3B*=3B= > >2=3B*=3B*=3B*=3B*=3B
>
> (=3BIf m3core and libm3 were= > > skipped earlier=2C do them now=2C and RE-DO all
> of the above packages= > > before proceeding.)=3B
>
> From here on out=2C please replace TA= > >RGET with your target platform as
> appropriate.
>
> STEP 2:= > >=3B
>
> export CM3==3B/usr/local/cm3/pkg/cm3/TARGET/cm3
> cd &= > >#126=3B/cm3/scripts
>
> ./do-cm3-std.sh realclean
> REPEAT STEP 1= > > to rebuild the libraries and the compiler using the
> STEP 1 bootstra= > >p compiler.
>
> Now you have a STEP 2 bootstrap compiler installed i= > >n /usr/local/cm3/
> pkg/cm3/TARGET/cm3. Let'=3Bs assume the new com= > >piler now works properly
> since it successfully bootstrapped itself= > >=2C but to be sure we can now
> use it to rebuild the world:=3B
= > >>
> cd ~=3B/cm3/scripts
> ./do-cm3-std.sh realclean
> ./do-cm= > >3-std.sh buildship
>
> Assuming this succeeded then we can be pretty= > > sure /usr/local/cm3/pkg/
> cm3/TARGET/cm3 is good=2C so we can make it= > > our default compiler by
> replacing the original /usr/local/cm3/bin/c= > >m3:=3B
>
> cp $=3BCM3 /usr/local/cm3/bin/cm3
>
> On Jun= > > 23=2C 2007=2C at 2:=3B38 PM=2C Mika Nystrom wrote:=3B
>
> = > >2=3B Ok=2C I'=3Bm sorry if I seem a bit dimwitted in the morning like th= > >is=2C
> >=3B but how exactly does one get started?=3B I wish ther= > >e were a file called
> >=3B "=3BGETTING_STARTED"=3B or somethin= > >g like that in scripts...
> >=3B
> >=3B My Mac is very slow so = > >I switched to my FreeBSD/i386 system (=3Bwhich has
> >=3B PM3 happ= > >ily installed on it)=3B and tried to install CM3 from scratch.
> >= > >=3B Here are the exact commands I typed.
> >=3B
> >=3B
> = > >2=3B rm -rf /usr/local/cm3/*=3B
> >=3B
> >=3B cd ~=3B/cm= > >3-cvs
> >=3B mkdir boot
> >=3B cd boot
> >=3B tar xzvf ..= > >/cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz
> >=3B ./cminstall
>= > > >=3B
> >=3B #=3B now I seem to have some kind of cm3 installed= > >=2C /usr/local/cm3/bin/
> >=3B cm3
> >=3B
> >=3B cd cm3 = > > #=3B location of my CM3 checkout
> >=3B cvs update -d .
> = > >2=3B
> >=3B cd scripts
> >=3B ./boot-cm3-with-m3.sh realclean >r>> >=3B ./do-cm3-std.sh realclean
> >=3B
> >=3B ./upgrade.s= > >h #=3B fails here=2C libm3 not compiled
> >= > >=3B ./boot-cm3-with-m3.sh build #=3B builds cm3=2C but fails on <= > >br>> >=3B cminstall=2C patternmatching not built
> >=3B
> >= > >=3B ./do-cm3-std.sh build #=3B OK
> >=3B ./do-cm3-std.= > >sh buildship #=3B OK
> >=3B
> >=3B ./boot-cm3-with-m= > >3.sh realclean #=3B start over
> >=3B ./boot-cm3-with-m3.sh buil= > >d #=3B OK
> >=3B ./boot-cm3-with-m3.sh buildship #=3B O= > >K
> >=3B
> >=3B ./do-cm3-std.sh realclean #=3B OK >>> >=3B ./do-cm3-std.sh build #=3B dies miserably... mayb= > >e the
> >=3B compiler can'=3Bt handle the new libraries?=3B >r>> >=3B
> >=3B ./install-cm3-compiler.sh upgrade #=3B OK=2C ne= > >w cm3 binary installed
> >=3B
> >=3B After all that=2C "=3Bg= > >ame over."=3B I have a cm3 that segfaults.
> >=3B
> >=3B Te= > >xt.i3:=3B In function '=3BText_I3'=3B:=3B
> >=3B Text.i3&= > >#58=3B81:=3B internal compiler error:=3B Segmentation fault
> >= > >=3B Please submit a full bug report=2C
> >=3B with preprocessed sourc= > >e if appropriate.
> >=3B See <=3BURL:=3Bhttp:=3B//gcc.gnu.or= > >g/bugs.html>=3B for instructions.
> >=3B compilation failed == > >=3B>=3B not building library "=3Blibm3core.a"=3B
> >=3B Fata= > >l Error:=3B package build failed
> >=3B *=3B*=3B*=3B exe= > >cution of failed *=3B*=3B*=3B
> >=3B
> >=3B I can'= > >=3Bt seem to get either m3gdb or gdb to say anything reasonable
> >= > >=3B either. ktrace shows nothing out of the ordinary.
> >=3B
> &#= > >62=3B -----
> >=3B
> >=3B Meanwhile=2C my Mac got through "= > >=3Bdo-cm3-std.sh realclean"=3B and
> >=3B "=3Bdo-cm3-std.sh bui= > >ldship"=3B but my compiles are still dying on the
> >=3B same asse= > >rtion tickled by ktok. On that machine I have INSTALLROOT
> >=3B set= > > to ~=3B/cm3=2C but hopefully that has nothing to do with it...
> &#= > >62=3B
> >=3B -----
> >=3B
> >=3B Does do-cm3-std.sh realc= > >lean clean EVERYTHING?=3B If so my Mac should
> >=3B really have = > >a fresh setup. The FreeBSD=2C I am not sure=2C maybe the
> >=3B old = > >binary version just doesn'=3Bt work right?=3B Of course I could try<= > >br>> >=3B bootstrapping with PM3 as well... but really=2C there'=3Bs = > >an "=3Bapproved"=3B
> >=3B process to get from a blank system= > >=2C no?=3B
> >=3B
> >=3B Mika
> >=3B
> >= > >=3B
> >=3B
> >=3B
> >=3B Tony Hosking writes:=3B
> = > >>=3B>=3B That sounds like you forgot to execute "=3Bdo-cm3-std.sh = > >realclean"=3B
> >=3B>=3B before initiating the build. These so= > >rts of errors sometimes arise
> >=3B>=3B if there are old build di= > >rectories lying around.
> >=3B>=3B
> >=3B>=3B On Jun 23= > >=2C 2007=2C at 3:=3B34 AM=2C Mika Nystrom wrote:=3B
> >=3B>= > >=3B
> >=3B>=3B>=3B Hello everyone=2C
> >=3B>=3B>=3B= > >
> >=3B>=3B>=3B I am in the process of trying to consolidate bu= > >ild systems for a
> >=3B>=3B>=3B few software packages I am mai= > >ntaining. Currently=2C I am using an
> >=3B>=3B>=3B old PM3 on= > > FreeBSD4=2C an ancient PM3 (=3Bfrom Klagenfurt?=3B)=3B for Window= > >s
> >=3B>=3B>=3B (=3BNT386GNU)=3B=2C and trying to get th= > >e latest CM3 from cvs up and
> >=3B>=3B>=3B compiling
> &#= > >62=3B>=3B>=3B things on PPC_DARWIN. Ideally=2C I'=3Bd like to sta= > >ndardize everything
> >=3B>=3B>=3B on the new PM3---mainly so t= > >hat I can use pickles (=3Band Network
> >=3B>=3B>=3B Objects= > >)=3B across all three systems. I'=3Bd also like to add Linux to
>= > > >=3B>=3B>=3B the mix.
> >=3B>=3B>=3B
> >=3B>= > >=3B>=3B It'=3Bs natural for me to start with CM3 on Darwin=2C as ther= > >e'=3Bs no
> >=3B>=3B>=3B alternative. But I am getting some= > > assertions failing. Everything
> >=3B>=3B>=3B in the CM3 dist= > >ribution compiles fine=2C and I believe I have compiled
> >=3B>=3B= > >>=3B the libraries a few times (=3Bthat is=2C including with themselv= > >es)=3B=2C and
> >=3B>=3B>=3B updated the compiler=2C too = > >0=3Busing boot-cm3-with-m3.sh)=3B. I just cvs
> >=3B>=3B>= > >=3B updated tonight.
> >=3B>=3B>=3B
> >=3B>=3B>=3B = > >Here'=3Bs what I'=3Bm running into:=3B
> >=3B>=3B>=3B<= > >br>> >=3B>=3B>=3B /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../s= > >rc/CHP.t -o
> >=3B>=3B>=3B CHPTok.i3
> >=3B>=3B>= > >=3B
> >=3B>=3B>=3B *=3B*=3B*=3B
> >=3B>=3B= > >2=3B *=3B*=3B*=3B runtime error:=3B
> >=3B>=3B>=3B = > >*=3B*=3B*=3B <=3B*=3BASSERT*=3B>=3B failed.
> &#= > >62=3B>=3B>=3B *=3B*=3B*=3B file "=3B../src/runtime/com= > >mon/RTCollector.m3"=3B=2C line 2314
> >=3B>=3B>=3B *=3B&#= > >42=3B*=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B Abort >>> >=3B>=3B>=3B
> >=3B>=3B>=3B Also:=3B
> >= > >=3B>=3B>=3B
> >=3B>=3B>=3B /Users/mika/t/parserlib/ktok/P= > >PC_DARWIN/tok ../src/PRS.t -o
> >=3B>=3B>=3B PRSTok.i3
> &= > >#62=3B>=3B>=3B Illegal instruction
> >=3B>=3B>=3B
> &#= > >62=3B>=3B>=3B As you can see=2C these things are coming from the calt= > >ech_parser. I
> >=3B>=3B am using
> >=3B>=3B>=3B our = > >local version=2C but I don'=3Bt think it is very different from what
= > >> >=3B>=3B>=3B is in the
> >=3B>=3B>=3B CM3 tree.
>= > > >=3B>=3B>=3B
> >=3B>=3B>=3B Examining the first error= > > (=3Bthe failed assertion)=3B more closely=2C I see
> >=3B>= > >=3B>=3B the following:=3B
> >=3B>=3B>=3B
> >=3B>= > >=3B>=3B (=3Bgdb)=3B list
> >=3B>=3B>=3B 108 wr= > > :=3B==3B FileWr.Open(=3BPathname.ReplaceExt(=3Btp.out=2C "= > >=3Bm3"=3B)=3B)=3B;=3B
> >=3B>=3B>=3B 109 EXCE= > >PT OSError.E ==3B>=3B
> >=3B>=3B>=3B 110 Debug.Er= > >ror(=3B"=3BCannot open tok implementation output
> >=3B>=3B&= > >#62=3B file:=3B "=3B &=3B
> >=3B>=3B>=3B 111 = > > Pathname.ReplaceExt(=3Btp.out=2C "=3Bm3"=3B)=3B)=3B;=3B<= > >br>> >=3B>=3B>=3B 112 END;=3B
> >=3B>=3B>=3B = > >113 Wr.PutText(=3Bwr=2C subs.apply(=3BBundle.Get(=3BForm=2C = > >
> >=3B>=3B>=3B "=3Btokform.m3"=3B)=3B)=3B)=3B&= > >#59=3B
> >=3B>=3B>=3B 114 Wr.Close(=3Bwr)=3B;=3B= > >
> >=3B>=3B>=3B 115 END Main.
> >=3B>=3B>=3B &#= > >40=3Bgdb)=3B where
> >=3B>=3B>=3B #=3B0 0x9004308c in ki= > >ll (=3B)=3B
> >=3B>=3B>=3B #=3B1 0x9009fb3c in abort = > >(=3B)=3B
> >=3B>=3B>=3B #=3B2 0x00096f50 in RTOS__Cra= > >sh (=3B)=3B at RTOS.m3:=3B20
> >=3B>=3B>=3B #=3B3 = > >0x0005bd40 in RTProcess__Crash (=3BM3_Bd56fi_msg==3B0x0)=3B at
= > >> >=3B>=3B>=3B RTProcess.m3:=3B65
> >=3B>=3B>=3B &#= > >35=3B4 0x0008e4e0 in RTError__EndError (=3BM3_AicXUJ_crash==3B1 '= > >=3B\=3B001'=3B)=3B at
> >=3B>=3B>=3B RTError.m3:=3B= > >115
> >=3B>=3B>=3B #=3B5 0x0008e08c in RTError__MsgS (= > >=3BM3_AJWxb1_file==3B0xc63d8=2C
> >=3B>=3B>=3B M3_AcxOUs_lin= > >e==3B2314=2C M3_Bd56fi_msgA==3B0xca3d0=2C
> >=3B>=3B>=3B = > >M3_Bd56fi_msgB==3B0xcbe90=2C M3_Bd56fi_msgC==3B0xca3d0)=3B at RTEr= > >ror.m3:=3B40
> >=3B>=3B>=3B #=3B6 0x0008eb88 in RTExcept= > >ion__Crash (=3BM3_Cblw37_a==3B0xbfffee00=2C
> >=3B>=3B>= > >=3B M3_AicXUJ_raises==3B0 '=3B\=3B0'=3B=2C M3_AJWxb1_rte==3B= > >0xcb538)=3B at RTException.m3:=3B79
> >=3B>=3B>=3B #= > >=3B7 0x0008e74c in RTException__DefaultBackstop
> >=3B>=3B>=3B= > > (=3BM3_Cblw37_a==3B0xbfffee00=2C M3_AicXUJ_raises==3B0 '=3B = > >2=3B0'=3B)=3B at
> >=3B>=3B>=3B RTException.m3:=3B39= > >
> >=3B>=3B>=3B #=3B8 0x0008e614 in RTException__InvokeBack= > >stop
> >=3B>=3B>=3B (=3BM3_Cblw37_a==3B0xbfffee00=2C M3_A= > >icXUJ_raises==3B0 '=3B\=3B0'=3B)=3B at
> >=3B>=3B= > >>=3B RTException.m3:=3B25
> >=3B>=3B>=3B #=3B9 0x0009= > >5d04 in RTException__Raise (=3BM3_Cblw37_act==3B0xbfffee00)=3B at<= > >br>> >=3B>=3B>=3B RTExFrame.m3:=3B29
> >=3B>=3B>=3B= > > #=3B10 0x0008e840 in RTException__DefaultBackstop
> >=3B>=3B&#= > >62=3B (=3BM3_Cblw37_a==3B0xbfffee00=2C M3_AicXUJ_raises==3B0 '= > >=3B\=3B0'=3B)=3B at
> >=3B>=3B>=3B RTException.m3= > >8=3B47
> >=3B>=3B>=3B #=3B11 0x0008e614 in RTException__Invo= > >keBackstop
> >=3B>=3B>=3B (=3BM3_Cblw37_a==3B0xbfffee00= > >=2C M3_AicXUJ_raises==3B0 '=3B\=3B0'=3B)=3B at
> >= > >=3B>=3B>=3B RTException.m3:=3B25
> >=3B>=3B>=3B #= > >=3B12 0x00095d04 in RTException__Raise (=3BM3_Cblw37_act==3B0xbfffee0= > >0)=3B at
> >=3B>=3B>=3B RTExFrame.m3:=3B29
> >=3B&#= > >62=3B>=3B #=3B13 0x00079740 in RTHooks__ReportFault (=3BM3_AJWxb1_= > >module==3B0xb3eb8=2C
> >=3B>=3B>=3B M3_AcxOUs_info==3B740= > >48)=3B at RTHooks.m3:=3B110
> >=3B>=3B>=3B #=3B14 0x00= > >06ff4c in _m3_fault (=3BM3_AcxOUs_arg==3B74048)=3B
> >=3B= > >2=3B>=3B #=3B15 0x0006bcf4 in RTHooks__CheckStoreTraced
> >=3B&= > >#62=3B>=3B (=3BM3_Af40ku_ref==3B0xb2415c)=3B at RTCollector.m3&= > >#58=3B2314
> >=3B>=3B>=3B #=3B16 0x000700e4 in ThreadPThread= > >__InnerLockMutex
> >=3B>=3B>=3B (=3BM3_AYIbX3_m==3B0xb241= > >5c=2C M3_BXP32l_self==3B0xb24014)=3B at
> >=3B>=3B>=3B Th= > >readPThread.m3:=3B126
> >=3B>=3B>=3B #=3B17 0x000704d8 in= > > ThreadPThread__LockMutex (=3BM3_AYIbX3_m==3B0xb2415c)=3B
> = > >2=3B>=3B>=3B at ThreadPThread.m3:=3B153
> >=3B>=3B>=3B= > > #=3B18 0x00019b24 in Wr__PutText (=3BM3_BxxOH1_wr==3B0xb2415c=2C<= > >br>> >=3B>=3B>=3B M3_Bd56fi_t==3B0xb44d5c)=3B at Wr.m3:= > >=3B93
> >=3B>=3B>=3B #=3B19 0x00003f74 in Main_M3 (=3BM3_= > >AcxOUs_mode==3B1)=3B at Main.m3:=3B113
> >=3B>=3B>=3B = > >#=3B20 0x0005b1c4 in RTLinker__RunMainBody (=3BM3_DjPxE3_m==3B0xad= > >190)=3B at
> >=3B>=3B>=3B RTLinker.m3:=3B399
> >=3B= > >>=3B>=3B #=3B21 0x00059f88 in RTLinker__AddUnitI (=3BM3_DjPxE3_= > >m==3B0xad190)=3B at
> >=3B>=3B>=3B RTLinker.m3:=3B113<= > >br>> >=3B>=3B>=3B #=3B22 0x0005a084 in RTLinker__AddUnit (= > >=3BM3_DjPxE5_b==3B0x3600)=3B at
> >=3B>=3B>=3B RTLinker.m= > >3:=3B122
> >=3B>=3B>=3B #=3B23 0x00001fac in main (=3B= > >argc==3B4=2C argv==3B0xbffffb24=2C envp==3B0xbffffb38)=3B
> = > >>=3B>=3B>=3B at _m3main.mc:=3B4
> >=3B>=3B>=3B (= > >=3Bgdb)=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B The sec= > >ond error:=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B Prog= > >ram received signal EXC_BAD_INSTRUCTION=2C Illegal instruction/
> >= > >=3B>=3B>=3B operand.
> >=3B>=3B>=3B 0x00b111ac in ?=3B= > >?=3B (=3B)=3B
> >=3B>=3B>=3B (=3Bgdb)=3B where >r>> >=3B>=3B>=3B #=3B0 0x00b111ac in ?=3B?=3B (=3B= > >1=3B
> >=3B>=3B>=3B #=3B1 0x0001214c in TextSubs__Apply = > >0=3BM3_CN69dV_self==3B0xb26450=2C
> >=3B>=3B>=3B M3_Bd56fi_s= > >rc==3B0xb21cec)=3B at TextSubs.m3:=3B63
> >=3B>=3B>=3B= > > #=3B2 0x0005b1c4 in RTLinker__RunMainBody (=3BM3_DjPxE3_m==3B0xa= > >d190)=3B at
> >=3B>=3B>=3B RTLinker.m3:=3B399
> >= > >=3B>=3B>=3B #=3B3 0x00059f88 in RTLinker__AddUnitI (=3BM3_DjPx= > >E3_m==3B0xad190)=3B at
> >=3B>=3B>=3B RTLinker.m3:=3B1= > >13
> >=3B>=3B>=3B #=3B4 0x0005a084 in RTLinker__AddUnit = > >0=3BM3_DjPxE5_b==3B0x3600)=3B at
> >=3B>=3B>=3B RTLinker.= > >m3:=3B122
> >=3B>=3B>=3B #=3B5 0x00001fac in main (= > >=3Bargc==3B4=2C argv==3B0xbffffb24=2C envp==3B0xbffffb38)=3B >>> >=3B>=3B>=3B at _m3main.mc:=3B4
> >=3B>=3B>=3B &= > >#40=3Bgdb)=3B list
> >=3B>=3B>=3B 58 BEGIN
> >= > >=3B>=3B>=3B 59 WHILE pos <=3B textLen DO
> >=3B>= > >=3B>=3B 60 c :=3B==3B Text.GetChar(=3Bsrc=2C pos)= > >=3B;=3B
> >=3B>=3B>=3B 61 IF c IN self.starts THE= > >N
> >=3B>=3B>=3B 62 (=3B*=3B S(=3B"=3B= > >analysing:=3B "=3B &=3B Text.Sub(=3Bsrc=2C pos)=3B=2C
> &= > >#62=3B>=3B>=3B DebugLevel)=3B;=3B *=3B)=3B
> >=3B&#= > >62=3B>=3B 63 iter :=3B==3B self.tbl.iterateOrdered= > >0=3B)=3B;=3B
> >=3B>=3B>=3B 64 ind :=3B&#= > >61=3B pos;=3B
> >=3B>=3B>=3B 65 original := > >=3B==3B "=3B"=3B;=3B
> >=3B>=3B>=3B 66 = > > REPEAT
> >=3B>=3B>=3B 67 INC(=3Bind)=3B&#= > >59=3B
> >=3B>=3B>=3B (=3Bgdb)=3B
> >=3B>=3B>= > >=3B
> >=3B>=3B>=3B Any ideas what to look at?=3B
> >= > >=3B>=3B>=3B
> >=3B>=3B>=3B I don'=3Bt know if this is = > >relevant:=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B [= > >=3Blapdog:=3B~=3B/t/cit_parse/PPC_DARWIN]=3B mika%=3B uname -a= > >
> >=3B>=3B>=3B Darwin lapdog.local 7.9.0 Darwin Kernel Version= > > 7.9.0:=3B Wed Mar 30
> >=3B>=3B>=3B 20:=3B11:=3B17 PS= > >T 2005;=3B root:=3Bxnu/xnu-517.12.7.obj~=3B1/RELEASE_PPC Power >r>> >=3B>=3B>=3B Macintosh powerpc
> >=3B>=3B>=3B [= > >=3Blapdog:=3B~=3B/t/cit_parse/PPC_DARWIN]=3B mika%=3B gcc -v >r>> >=3B>=3B>=3B Reading specs from /usr/libexec/gcc/darwin/ppc/3.= > >3/specs
> >=3B>=3B>=3B Thread model:=3B posix
> >=3B&#= > >62=3B>=3B gcc version 3.3 20030304 (=3BApple Computer=2C Inc. build 1= > >666)=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B Mika<= > >br>> >=3B>=3B>=3B
> >=3B>=3B>=3B P.S. Am I correct in = > >assuming that I can get CM3 to build on
> >=3B>=3B>=3B Window= > >s?=3B
> >=3B>=3B>=3B I could switch to CM3 on Unix any time= > >=2C of course=2C but I'=3Bve never
> >=3B>=3B>=3B had luck w= > >ith it on Windows=2C which is why I am using the ancient
> >=3B>= > >=3B>=3B Klagenfurt PM3=2C which comes on 40-odd "=3Bfloppies"=3B a= > >nd a .EXE that
> >=3B>=3B>=3B unpacks them into C:=3B (= > >=3Band installation instructions only in German)=3B.
> >=3B>=3B= > >>=3B If CM3 doesn'=3Bt work on Windows=2C I am essentially wasting my= > > time=2C
> >=3B>=3B>=3B as the current project I am working on = > >absolutely requires that the
> >=3B>=3B>=3B software run on Win= > >dows 2003 Server (=3Byes=2C it sucks=2C but what can
> >=3B>=3B= > >>=3B you do?=3B)=3B The very old PM3 at least kind of hobbles alo= > >ng on this
> >=3B>=3B>=3B platform---actually=2C better than th= > >at;=3B it does Trestle natively
> >=3B>=3B>=3B under Windows= > > (=3Bno X required)=3B=2C at least on SOME Windows machines.
> = > >2=3B>=3B>=3B
> >=3B>=3B>=3B P.P.S. Sorry for all the post= > >scripts=2C but is it true that the
> >=3B>=3B>=3B build system = > >has been changed so that building with overrides
> >=3B>=3B>= > >=3B (=3Bcm3 -x)=3B
> >=3B>=3B>=3B requires having the com= > >piler sources available?=3B It didn'=3Bt use to
> >=3B>=3B&= > >#62=3B be that way=2C but I can'=3Bt get Network Objects to work with ov= > >errides
> >=3B>=3B>=3B now unless I have the sources available.= > >.. It'=3Bs a bit of a pain
> >=3B>=3B>=3B because it means = > >that every user has to have the compiler sources=2C
> >=3B>=3B>= > >=3B or else ship everything=2C or was that not the intention?=3B
> > = > > > >= > > > >--_6374b72e-0dad-4a03-8d22-4a59e0218226_-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Jan 8 15:56:01 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 14:56:01 +0000 Subject: [M3devel] FW: LONGINT subrange problems In-Reply-To: References: <20110108081522.7A4C12474003@birch.elegosoft.com>, Message-ID: Tony any chance you can look at this? Or advise me where to fix? Notice the mismatches go both ways. This is on Darwin/i386 for me. Probably occurs on all 32bit targets & no 64bit targets. - Jay/phone > From: jay.krell at cornell.edu > To: m3devel at elegosoft.com > Date: Sat, 8 Jan 2011 08:19:06 +0000 > Subject: [M3devel] FW: LONGINT subrange problems > > > This is all based on Mika's work. > > > MODULE Main; > > PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; > > PROCEDURE F2() = > <*UNUSED*>VAR x: [0L..0L]; > BEGIN > END F2; > > PROCEDURE F3() = > VAR x: [0L..0L]; > BEGIN > F1(x); > END F3; > > BEGIN > F1(0L); > F2(); > F3(); > END Main. > > > (20) declare_procedure name:Main__F1 n_params:1 lev:0 exported:false procedure:0x0 procedure:0x4 > > (22) declare_procedure name:Main__F2 n_params:0 lev:0 exported:false procedure:0x0 procedure:0x5 > > (24) declare_procedure name:Main__F3 n_params:0 lev:0 exported:false procedure:0x0 procedure:0x6 > > > > (33) begin_procedure procedure:0x5 > (34) set_source_line 6 > (35) load_integer type:int_64 0 > (36) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int32 ] got [ Int64 ] > (37) store var:0x5 offset:0 src_t:int_32 dst_t:word_8 > (38) set_source_line 8 > (39) exit_proc type:void > (40) end_procedure procedure:0x5 > (41) comment comment:F3 > (42) set_source_line 0xA(10) > > (43) begin_procedure procedure:0x6 > (44) set_source_line 0xB(11) > (45) load_integer type:int_64 0 > (46) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int32 ] got [ Int64 ] > (47) store var:0x6 offset:0 src_t:int_32 dst_t:word_8 > (48) set_source_line 0xD(13) > > (49) start_call_direct procedure:0x4 level:0 > (50) load var:0x6 offset:0 src_t:word_8 dst_t:int_32 > (51) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] > (52) pop_param type:int_64 > (53) call_direct procedure:0x4 > (54) set_source_line 0xE(14) > (55) exit_proc type:void > (56) end_procedure procedure:0x6 > (57) comment comment:Main_M3 > (58) comment comment:module main body Main_M3 > (59) set_source_line 0x10(16) > > > > > > > > ---------------------------------------- > > Date: Sat, 8 Jan 2011 09:15:22 +0000 > > To: m3commit at elegosoft.com > > From: jkrell at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 11/01/08 09:15:21 > > > > Modified files: > > cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > > > > Log message: > > more LONGINT subrange problems, this now has 3 internal codegen errors, > > due to stack type and expected type mismatches > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sat Jan 8 22:59:33 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 8 Jan 2011 16:59:33 -0500 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: References: <20110106002615.77E782474003@birch.elegosoft.com>, Message-ID: <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu> I'll look into this one. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 8, 2011, at 12:17 AM, Jay K wrote: > > fyi, small repro: > > > MODULE Main; > > VAR x: [0L..0L]; > > PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; > > BEGIN > F2(x); > END Main. > > (32) start_call_direct procedure:0x4 level:0 > (33) load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 > (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] > (35) pop_param type:int_64 > > > - Jay > > > ________________________________ >> From: jay.krell at cornell.edu >> To: m3devel at elegosoft.com; mika at async.caltech.edu >> Subject: RE: codegen error (from Mika, new test p250) >> Date: Thu, 6 Jan 2011 01:21:00 +0000 >> >> fyi: >> >> jbook2:p250 jay$ rm -rf I386_DARWIN/ >> jbook2:p250 jay$ cm3 -keep >> --- building in I386_DARWIN --- >> >> new source -> compiling Main.m3 >> "../Main.m3", line 1: 1 code generation error >> 1 error encountered >> compilation failed => not building program "pgm" >> Fatal Error: package build failed >> jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment >> (4) comment comment:module global constants >> (6) comment comment:module global data >> (27) comment comment:F1 >> (34) comment comment:********* M3CG_Check ERROR >> *********** bad stack: expected [ Int64 ] got [ Int32 ] >> (43) comment comment:F2 >> (73) comment comment:Main_M3 >> (74) comment comment:module main body Main_M3 >> (83) comment comment:global constant type descriptor >> (85) comment comment:global data type descriptor >> (87) comment comment:module global constants >> (90) comment comment:procedure names >> (94) comment comment:procedure table >> (101) comment comment:file name >> (103) comment comment:type map for _t0174bdf4 >> (106) comment comment:type description for _t0174bdf4 >> (110) comment comment:module global data >> (120) comment comment:typecell for _t0174bdf4 >> (141) comment comment:load map >> (4) comment comment:module global constants >> (6) comment comment:module global data >> (27) comment comment:F1 >> (34) comment comment:********* M3CG_Check ERROR >> *********** bad stack: expected [ Int64 ] got [ Int32 ] >> (43) comment comment:F2 >> (73) comment comment:Main_M3 >> (74) comment comment:module main body Main_M3 >> (83) comment comment:global constant type descriptor >> (85) comment comment:global data type descriptor >> (87) comment comment:module global constants >> (90) comment comment:procedure names >> (94) comment comment:procedure table >> (101) comment comment:file name >> (103) comment comment:type map for _t0174bdf4 >> (106) comment comment:type description for _t0174bdf4 >> (110) comment comment:module global data >> (120) comment comment:typecell for _t0174bdf4 >> (141) comment comment:load map >> >> >> - Jay >> >> >>> Date: Thu, 6 Jan 2011 01:26:15 +0000 >>> To: m3commit at elegosoft.com >>> From: jkrell at elego.de >>> Subject: [M3commit] CVS Update: cm3 >>> >>> CVSROOT: /usr/cvs >>> Changes by: jkrell at birch. 11/01/06 01:26:15 >>> >>> Modified files: >>> cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 >>> >>> Log message: >>> slightly simpler, same error >>> > From hosking at cs.purdue.edu Sat Jan 8 23:06:02 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 8 Jan 2011 17:06:02 -0500 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: References: <20101227101653.307241A205B@async.async.caltech.edu>, , , , <20101227185453.97CE51A205B@async.async.caltech.edu>, , , , <20110108121441.A58031A205B@async.async.caltech.edu> Message-ID: I'm feeling foolish too since I never use them on my development system... ;-) On Jan 8, 2011, at 8:37 AM, Jay K wrote: > I upgrade across incompatibilities frequently & Hudson does now too. The existing scripts work very well and you would be foolish to not use them. Just use upgrade.py. It is very easy. Or upgrade.py nocleangcc. And then do-cm3-all.py skipgcc realclean && do-cm3-all.py buildship.py. > > - Jay/phone > > > To: jay.krell at cornell.edu > > Date: Sat, 8 Jan 2011 04:14:41 -0800 > > From: mika at async.caltech.edu > > CC: m3devel at elegosoft.com > > Subject: Re: [M3devel] another Snow Leopard compiler crash > > > > Jay K writes: > > > > > >Please try this Mika. It fixes the problem for me. > > > > Hi Jay, > > > > So I upgraded to the CVS head and now I get a segfaulting compiler: > > > > [hal:cm3/m3-libs/m3core] mika% gdb $CM3 > > GNU gdb 6.3.50-20050815 (Apple version gdb-1510) (Wed Sep 22 02:45:02 UTC 2010) > > Copyright 2004 Free Software Foundation, Inc. > > GDB is free software, covered by the GNU General Public License, and you are > > welcome to change it and/or distribute copies of it under certain conditions. > > Type "show copying" to see the conditions. > > There is absolutely no warranty for GDB. Type "show warranty" for details. > > This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries ...... done > > > > (gdb) run > > Starting program: /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3 > > Reading symbols for shared libraries .+++++.......... done > > > > Program received signal EXC_BAD_ACCESS, Could not access memory. > > Reason: KERN_PROTECTION_FAILURE at address: 0x0000038b > > 0x9713354b in _longjmp () > > (gdb) where > > #0 0x9713354b in _longjmp () > > #1 0x00285d2b in RTExFrame__InvokeHandler (f=0xbffff34c, a=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:175 > > #2 0x00285be4 in RTException__ResumeRaise (a=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:145 > > #3 0x00285a1b in RTException__Raise (act=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:91 > > #4 0x00269d44 in RTHooks__Raise (ex=0x35a720, arg=0x181cddc, module=0x398080, line=50) at ../src/runtime/common/RTHooks.m3:79 > > #5 0x0023adbc in OSErrorPosix__Raise0 (errno=2) at ../src/os/POSIX/OSErrorPosix.m3:50 > > #6 0x0023cffc in FSPosix__Fail (p=0x181cdc0, f=0xf049f0) at ../src/os/POSIX/FSPosix.m3:359 > > #7 0x0023cdd4 in FS__Status (pn=0x181cdc0, _result=0xbffff3c8) at ../src/os/POSIX/FSPosix.m3:328 > > #8 0x00217d24 in M3File__IsReadable (path=0x181cdc0) at ../src/M3File.m3:123 > > #9 0x000a057f in MxConfig__TryConfig (a=0x3255e0, b=0x3255f0, c=0x0) at ../src/MxConfig.m3:122 > > #10 0x0009ff67 in MxConfig__FindConfig () at ../src/MxConfig.m3:51 > > #11 0x0009fcd8 in MxConfig__FindFile () at ../src/MxConfig.m3:19 > > #12 0x0002c446 in Main__DoIt () at ../src/Main.m3:32 > > #13 0x0002d1e9 in Main_M3 (mode=1) at ../src/Main.m3:214 > > #14 0x0027a781 in RTLinker__RunMainBody (m=0x3705a0) at ../src/runtime/common/RTLinker.m3:406 > > #15 0x00279bb6 in RTLinker__AddUnitI (m=0x3705a0) at ../src/runtime/common/RTLinker.m3:113 > > #16 0x00279c3a in RTLinker__AddUnit (b=0x2d1d0) at ../src/runtime/common/RTLinker.m3:122 > > #17 0x00002cfc in main (argc=1, argv=0xbffff674, envp=0xbffff67c) at _m3main.c:16 > > (gdb) > > > > I followed upgrade instructions from Tony (including upgrading the > > back-end)---I have edited the instructions a bit to track changes in > > CM3. I'm starting from head three weeks old.. > > > > Mika > > > > > > Return-Path: hosking at cs.purdue.edu > > Delivery-Date: Sun Jun 24 07:38:38 2007 > > In-Reply-To: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> > > References: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> > > > > Sounds like we really need some work done in this area. I very > > rarely use the build scripts, since I bootstrap manually from old > > compilers to new compilers rather than use the scripts. I suggest > > the following approach, which I hope you will try, and then report > > back on. > > > > Install the bootstrap compiler as you did originally: > > > > > rm -rf /usr/local/cm3/* > > > > > > cd ~/cm3-cvs > > > mkdir boot > > > cd boot > > > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz > > > ./cminstall > > > > > > Now you will have some kind of cm3 installed, presumably in /usr/ > > local/cm3/bin/cm3. > > > > Make sure you have a fresh CVS checkout in directory cm3 (let's > > assume this is in your home directory ~/cm3). Also, make sure you > > have an up-to-date version of the CM3 backend compiler cm3cg > > installed by executing the following: > > > > STEP 0: > > > > export CM3=/usr/local/cm3/bin/cm3 > > cd ~/cm3/m3-sys/m3cc > > $CM3 > > $CM3 -ship > > > > You can skip this last step if you know your backend compiler is up > > to date. > > > > Now, let's build the new compiler from scratch (this is the sequence > > I use regularly to test changes to the run-time system whenever I > > make them): > > > > can replace compilation step with > > > > rm -rf && $CM3 && $CM3 -ship > > > > > > STEP 1: > > > > (do these LATER if bootstrapping from old compiler!) > > cd ~/cm3/m3-libs/m3core > > $CM3 > > $CM3 -ship > > cd ~/cm3/m3-libs/libm3 > > $CM3 > > $CM3 -ship > > > > Now build the compiler: > > > > cd ~/cm3/m3-libs/sysutils ; $CM3 etc. > > > > cd ~/cm3/m3-sys/m3middle; $CM3 etc. > > > > repeat for: > > > > m3-sys/m3objfile > > > > m3-sys/m3back > > > > m3-sys/m3linker > > > > m3-sys/m3front > > > > m3-sys/m3quake > > > > m3-sys/cm3 > > > > [ here we may need -DROOT= ] > > > > > > At this point you should have a bootstrapped version of cm3 installed > > in the directory /usr/local/cm3/pkg/cm3/TARGET/cm3 (where TARGET is > > the CM3 target platform you are building on -- e.g., LINUXLIBC6, > > PPC_DARWIN, ...). Note that this did not overwrite your original > > installed compiler in /usr/local/cm3/bin/cm3. We > > are now going to test the new compiler, which was built using the old > > compiler, by bootstrapping it one more time. > > > > > > ******* THIS IS WHERE I HAVE A SEGFAULTING COMPILER ******* > > > > (If m3core and libm3 were skipped earlier, do them now, and RE-DO all > > of the above packages before proceeding.) > > > > From here on out, please replace TARGET with your target platform as > > appropriate. > > > > STEP 2: > > > > export CM3=/usr/local/cm3/pkg/cm3/TARGET/cm3 > > cd ~/cm3/scripts > > > > ./do-cm3-std.sh realclean > > REPEAT STEP 1 to rebuild the libraries and the compiler using the > > STEP 1 bootstrap compiler. > > > > Now you have a STEP 2 bootstrap compiler installed in /usr/local/cm3/ > > pkg/cm3/TARGET/cm3. Let's assume the new compiler now works properly > > since it successfully bootstrapped itself, but to be sure we can now > > use it to rebuild the world: > > > > cd ~/cm3/scripts > > ./do-cm3-std.sh realclean > > ./do-cm3-std.sh buildship > > > > Assuming this succeeded then we can be pretty sure /usr/local/cm3/pkg/ > > cm3/TARGET/cm3 is good, so we can make it our default compiler by > > replacing the original /usr/local/cm3/bin/cm3: > > > > cp $CM3 /usr/local/cm3/bin/cm3 > > > > On Jun 23, 2007, at 2:38 PM, Mika Nystrom wrote: > > > > > Ok, I'm sorry if I seem a bit dimwitted in the morning like this, > > > but how exactly does one get started? I wish there were a file called > > > "GETTING_STARTED" or something like that in scripts... > > > > > > My Mac is very slow so I switched to my FreeBSD/i386 system (which has > > > PM3 happily installed on it) and tried to install CM3 from scratch. > > > Here are the exact commands I typed. > > > > > > > > > rm -rf /usr/local/cm3/* > > > > > > cd ~/cm3-cvs > > > mkdir boot > > > cd boot > > > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz > > > ./cminstall > > > > > > # now I seem to have some kind of cm3 installed, /usr/local/cm3/bin/ > > > cm3 > > > > > > cd cm3 # location of my CM3 checkout > > > cvs update -d . > > > > > > cd scripts > > > ./boot-cm3-with-m3.sh realclean > > > ./do-cm3-std.sh realclean > > > > > > ./upgrade.sh # fails here, libm3 not compiled > > > ./boot-cm3-with-m3.sh build # builds cm3, but fails on > > > cminstall, patternmatching not built > > > > > > ./do-cm3-std.sh build # OK > > > ./do-cm3-std.sh buildship # OK > > > > > > ./boot-cm3-with-m3.sh realclean # start over > > > ./boot-cm3-with-m3.sh build # OK > > > ./boot-cm3-with-m3.sh buildship # OK > > > > > > ./do-cm3-std.sh realclean # OK > > > ./do-cm3-std.sh build # dies miserably... maybe the > > > compiler can't handle the new libraries? > > > > > > ./install-cm3-compiler.sh upgrade # OK, new cm3 binary installed > > > > > > After all that, "game over." I have a cm3 that segfaults. > > > > > > Text.i3: In function 'Text_I3': > > > Text.i3:81: internal compiler error: Segmentation fault > > > Please submit a full bug report, > > > with preprocessed source if appropriate. > > > See for instructions. > > > compilation failed => not building library "libm3core.a" > > > Fatal Error: package build failed > > > *** execution of failed *** > > > > > > I can't seem to get either m3gdb or gdb to say anything reasonable > > > either. ktrace shows nothing out of the ordinary. > > > > > > ----- > > > > > > Meanwhile, my Mac got through "do-cm3-std.sh realclean" and > > > "do-cm3-std.sh buildship" but my compiles are still dying on the > > > same assertion tickled by ktok. On that machine I have INSTALLROOT > > > set to ~/cm3, but hopefully that has nothing to do with it... > > > > > > ----- > > > > > > Does do-cm3-std.sh realclean clean EVERYTHING? If so my Mac should > > > really have a fresh setup. The FreeBSD, I am not sure, maybe the > > > old binary version just doesn't work right? Of course I could try > > > bootstrapping with PM3 as well... but really, there's an "approved" > > > process to get from a blank system, no? > > > > > > Mika > > > > > > > > > > > > > > > Tony Hosking writes: > > >> That sounds like you forgot to execute "do-cm3-std.sh realclean" > > >> before initiating the build. These sorts of errors sometimes arise > > >> if there are old build directories lying around. > > >> > > >> On Jun 23, 2007, at 3:34 AM, Mika Nystrom wrote: > > >> > > >>> Hello everyone, > > >>> > > >>> I am in the process of trying to consolidate build systems for a > > >>> few software packages I am maintaining. Currently, I am using an > > >>> old PM3 on FreeBSD4, an ancient PM3 (from Klagenfurt?) for Windows > > >>> (NT386GNU), and trying to get the latest CM3 from cvs up and > > >>> compiling > > >>> things on PPC_DARWIN. Ideally, I'd like to standardize everything > > >>> on the new PM3---mainly so that I can use pickles (and Network > > >>> Objects) across all three systems. I'd also like to add Linux to > > >>> the mix. > > >>> > > >>> It's natural for me to start with CM3 on Darwin, as there's no > > >>> alternative. But I am getting some assertions failing. Everything > > >>> in the CM3 distribution compiles fine, and I believe I have compiled > > >>> the libraries a few times (that is, including with themselves), and > > >>> updated the compiler, too (using boot-cm3-with-m3.sh). I just cvs > > >>> updated tonight. > > >>> > > >>> Here's what I'm running into: > > >>> > > >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/CHP.t -o > > >>> CHPTok.i3 > > >>> > > >>> *** > > >>> *** runtime error: > > >>> *** <*ASSERT*> failed. > > >>> *** file "../src/runtime/common/RTCollector.m3", line 2314 > > >>> *** > > >>> > > >>> Abort > > >>> > > >>> Also: > > >>> > > >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/PRS.t -o > > >>> PRSTok.i3 > > >>> Illegal instruction > > >>> > > >>> As you can see, these things are coming from the caltech_parser. I > > >> am using > > >>> our local version, but I don't think it is very different from what > > >>> is in the > > >>> CM3 tree. > > >>> > > >>> Examining the first error (the failed assertion) more closely, I see > > >>> the following: > > >>> > > >>> (gdb) list > > >>> 108 wr := FileWr.Open(Pathname.ReplaceExt(tp.out, "m3")); > > >>> 109 EXCEPT OSError.E => > > >>> 110 Debug.Error("Cannot open tok implementation output > > >>> file: " & > > >>> 111 Pathname.ReplaceExt(tp.out, "m3")); > > >>> 112 END; > > >>> 113 Wr.PutText(wr, subs.apply(Bundle.Get(Form, > > >>> "tokform.m3"))); > > >>> 114 Wr.Close(wr); > > >>> 115 END Main. > > >>> (gdb) where > > >>> #0 0x9004308c in kill () > > >>> #1 0x9009fb3c in abort () > > >>> #2 0x00096f50 in RTOS__Crash () at RTOS.m3:20 > > >>> #3 0x0005bd40 in RTProcess__Crash (M3_Bd56fi_msg=0x0) at > > >>> RTProcess.m3:65 > > >>> #4 0x0008e4e0 in RTError__EndError (M3_AicXUJ_crash=1 '\001') at > > >>> RTError.m3:115 > > >>> #5 0x0008e08c in RTError__MsgS (M3_AJWxb1_file=0xc63d8, > > >>> M3_AcxOUs_line=2314, M3_Bd56fi_msgA=0xca3d0, > > >>> M3_Bd56fi_msgB=0xcbe90, M3_Bd56fi_msgC=0xca3d0) at RTError.m3:40 > > >>> #6 0x0008eb88 in RTException__Crash (M3_Cblw37_a=0xbfffee00, > > >>> M3_AicXUJ_raises=0 '\0', M3_AJWxb1_rte=0xcb538) at RTException.m3:79 > > >>> #7 0x0008e74c in RTException__DefaultBackstop > > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at > > >>> RTException.m3:39 > > >>> #8 0x0008e614 in RTException__InvokeBackstop > > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at > > >>> RTException.m3:25 > > >>> #9 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at > > >>> RTExFrame.m3:29 > > >>> #10 0x0008e840 in RTException__DefaultBackstop > > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at > > >>> RTException.m3:47 > > >>> #11 0x0008e614 in RTException__InvokeBackstop > > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at > > >>> RTException.m3:25 > > >>> #12 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at > > >>> RTExFrame.m3:29 > > >>> #13 0x00079740 in RTHooks__ReportFault (M3_AJWxb1_module=0xb3eb8, > > >>> M3_AcxOUs_info=74048) at RTHooks.m3:110 > > >>> #14 0x0006ff4c in _m3_fault (M3_AcxOUs_arg=74048) > > >>> #15 0x0006bcf4 in RTHooks__CheckStoreTraced > > >>> (M3_Af40ku_ref=0xb2415c) at RTCollector.m3:2314 > > >>> #16 0x000700e4 in ThreadPThread__InnerLockMutex > > >>> (M3_AYIbX3_m=0xb2415c, M3_BXP32l_self=0xb24014) at > > >>> ThreadPThread.m3:126 > > >>> #17 0x000704d8 in ThreadPThread__LockMutex (M3_AYIbX3_m=0xb2415c) > > >>> at ThreadPThread.m3:153 > > >>> #18 0x00019b24 in Wr__PutText (M3_BxxOH1_wr=0xb2415c, > > >>> M3_Bd56fi_t=0xb44d5c) at Wr.m3:93 > > >>> #19 0x00003f74 in Main_M3 (M3_AcxOUs_mode=1) at Main.m3:113 > > >>> #20 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at > > >>> RTLinker.m3:399 > > >>> #21 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at > > >>> RTLinker.m3:113 > > >>> #22 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at > > >>> RTLinker.m3:122 > > >>> #23 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38) > > >>> at _m3main.mc:4 > > >>> (gdb) > > >>> > > >>> The second error: > > >>> > > >>> Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/ > > >>> operand. > > >>> 0x00b111ac in ?? () > > >>> (gdb) where > > >>> #0 0x00b111ac in ?? () > > >>> #1 0x0001214c in TextSubs__Apply (M3_CN69dV_self=0xb26450, > > >>> M3_Bd56fi_src=0xb21cec) at TextSubs.m3:63 > > >>> #2 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at > > >>> RTLinker.m3:399 > > >>> #3 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at > > >>> RTLinker.m3:113 > > >>> #4 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at > > >>> RTLinker.m3:122 > > >>> #5 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38) > > >>> at _m3main.mc:4 > > >>> (gdb) list > > >>> 58 BEGIN > > >>> 59 WHILE pos < textLen DO > > >>> 60 c := Text.GetChar(src, pos); > > >>> 61 IF c IN self.starts THEN > > >>> 62 (* S("analysing: " & Text.Sub(src, pos), > > >>> DebugLevel); *) > > >>> 63 iter := self.tbl.iterateOrdered(); > > >>> 64 ind := pos; > > >>> 65 original := ""; > > >>> 66 REPEAT > > >>> 67 INC(ind); > > >>> (gdb) > > >>> > > >>> Any ideas what to look at? > > >>> > > >>> I don't know if this is relevant: > > >>> > > >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% uname -a > > >>> Darwin lapdog.local 7.9.0 Darwin Kernel Version 7.9.0: Wed Mar 30 > > >>> 20:11:17 PST 2005; root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC Power > > >>> Macintosh powerpc > > >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% gcc -v > > >>> Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs > > >>> Thread model: posix > > >>> gcc version 3.3 20030304 (Apple Computer, Inc. build 1666) > > >>> > > >>> Mika > > >>> > > >>> P.S. Am I correct in assuming that I can get CM3 to build on > > >>> Windows? > > >>> I could switch to CM3 on Unix any time, of course, but I've never > > >>> had luck with it on Windows, which is why I am using the ancient > > >>> Klagenfurt PM3, which comes on 40-odd "floppies" and a .EXE that > > >>> unpacks them into C: (and installation instructions only in German). > > >>> If CM3 doesn't work on Windows, I am essentially wasting my time, > > >>> as the current project I am working on absolutely requires that the > > >>> software run on Windows 2003 Server (yes, it sucks, but what can > > >>> you do?) The very old PM3 at least kind of hobbles along on this > > >>> platform---actually, better than that; it does Trestle natively > > >>> under Windows (no X required), at least on SOME Windows machines. > > >>> > > >>> P.P.S. Sorry for all the postscripts, but is it true that the > > >>> build system has been changed so that building with overrides > > >>> (cm3 -x) > > >>> requires having the compiler sources available? It didn't use to > > >>> be that way, but I can't get Network Objects to work with overrides > > >>> now unless I have the sources available... It's a bit of a pain > > >>> because it means that every user has to have the compiler sources, > > >>> or else ship everything, or was that not the intention? -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.caltech.edu Sun Jan 9 00:19:02 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Sat, 08 Jan 2011 15:19:02 -0800 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: message dated "Sat, 08 Jan 2011 17:36:22 +0000." Message-ID: <20110108231903.06D811A205B@async.async.caltech.edu> By going back to the release version and running upgrade, I was able to get further, but now I get these---a change somewhere? Mika --- building in I386_DARWIN --- "/Users/mika/cm3/cm3/m3-db/postgres95/src/m3makefile", line 4: quake runtime error: undefined variable: configure_system_libs --procedure-- -line- -file--- include_dir 4 /Users/mika/cm3/cm3/m3-db/postgres95/src/m3makefile 6 /Users/mika/cm3/cm3/m3-db/postgres95/I386_DARWIN/m3make.args Fatal Error: package build failed CM3_TARGET=I386_DARWIN export CM3_TARGET CM3_INSTALL=/usr/local/cm3 export CM3_INSTALL CM3_ROOT=/Users/mika/cm3/cm3 export CM3_ROOT From mika at async.caltech.edu Sun Jan 9 00:51:39 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Sat, 08 Jan 2011 15:51:39 -0800 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: References: <20101227101653.307241A205B@async.async.caltech.edu> <20101227185453.97CE51A205B@async.async.caltech.edu> <20110108121441.A58031A205B@async.async.caltech.edu> <20110108134735.B7D4C1A205B@async.async.caltech.edu> <20110108161001.DC4871A205B@async.async.caltech.edu> <20110108181715.77FF61A205B@async.async.caltech.edu> Message-ID: <20110108235139.D12A31A205B@async.async.caltech.edu> I started from scratch (working cm3 install) several times. No go. upgrade.py was just not able to upgrade my particular setup (current as of a few weeks ago). Starting from the previous release worked, but now there's this configure_system_libs thing---this seems to be a config file issue? (Also something not taken care of by upgrade.py) A lot of futzing around... Mika jay.krell at cornell.edu writes: >Yes. When upgrade.py fails, you may or may not be in a bad state. I can see a= >bout making it safer. There are unavoidable depenedencies among cm3, cm3cg, a= >nd m3core, and maybe libm3. > >Starting point is a working cm3, and its cm3cg, and its config files, and m3= >core, and possible its libm3. =20 > >I think maybe I should write a feature in upgrade.py that can start from scr= >atch -- download old install archive or start from a specified local copy th= >ereof. Interest? I might use it myself. I think upgrade should also have opt= >ion to build all. > > - Jay > >On Jan 8, 2011, at 1:17 PM, Mika Nystrom wrote: > >> Do I need to go back to the release and install that, and then upgrade.py?= > >> As far as I know my compiler was working fine... >>=20 >> Jay K writes: >>> --_1def5bc1-96d7-442f-bd33-2522abadf97d_ >>> Content-Type: text/plain; charset=3D"iso-8859-1" >>> Content-Transfer-Encoding: quoted-printable >>>=20 >>> Tony's instructions imho are too much work=3D2C error-prone. Upgrade.py d= >oes =3D >>> rebuild cm3cg. Don't do it manually=3D2C as you have to be careful when y= >ou s=3D >>> witch from old to new=3D2C and upgrade.py knows. There was a problem rega= >rdin=3D >>> g m3bundle=3D2C fairly recently. So try head. Not a few weeks ago. The sc= >ript=3D >>> s specifically had a problem. >>>=20 >>> Jay/phone >>>=20 >>>> To: jay.krell at cornell.edu >>>> Subject: Re: [M3devel] another Snow Leopard compiler crash=3D20 >>>> Date: Sat=3D2C 8 Jan 2011 08:10:01 -0800 >>>> From: mika at async.caltech.edu >>>> =3D20 >>>> Jay K writes: >>>>> --_8699851d-dc9a-486c-965d-eaed43f71a51_ >>>>> Content-Type: text/plain=3D3B charset=3D3D"iso-8859-1" >>>>> Content-Transfer-Encoding: quoted-printable >>>>>=20 >>>>> It no longer builds m3bundle I think. There was a problem regarding m3b= >=3D >>> und=3D3D >>>>> le for a while=3D3D2C because I had followed upgrade.sh too closely=3D3= >D2C w=3D >>> hich ha=3D3D >>>>> d this problem. And this is a sign of using old cm3cg. Are you sure you= > =3D >>> did=3D3D >>>>> n't do something weird? Uograde.py does upgrade cm3cg appropriately. Tr= >y=3D >>> he=3D3D >>>>> ad? >>>>>=20 >>>> =3D20 >>>> I'm not sure I didn't do anything weird. I have a CM3 distribution that= > >>>> was release=3D2C then I upgraded it to head as of three weeks ago using >>>> the procedure Tony described to me a few years ago. I've been using >>>> that with no special problems since then. I then updated to the CVS hea= >d >>>> and ran "python upgrade.py". It does not rebuild cm3cg=3D2C but I can d= >o i=3D >>> t >>>> manually and try again. >>>> =3D20 >>>> Mika >>> =3D >>>=20 >>> --_1def5bc1-96d7-442f-bd33-2522abadf97d_ >>> Content-Type: text/html; charset=3D"iso-8859-1" >>> Content-Transfer-Encoding: quoted-printable >>>=20 >>> >>> >>> >>> >>> Tony's instructions imho are too much work=3D= >2C err=3D >>> or-prone. Upgrade.py does rebuild cm3cg. Don't do it manually=3D2C as you= > hav=3D >>> e to be careful when you switch from old to new=3D2C and upgrade.py knows= >. Th=3D >>> ere was a problem regarding m3bundle=3D2C fairly recently. So try head. N= >ot a=3D >>> few weeks ago. The scripts specifically had a problem.

Jay/phone<= >b=3D >>> r>
> To:=3D3B jay.krell@=3D3Bcornell.edu
> Subject:=3D3B R= >e:=3D3B=3D >>> [=3D3BM3devel]=3D3B another Snow Leopard compiler crash
> Date&= >#58=3D >>> =3D3B Sat=3D2C 8 Jan 2011 08:=3D3B10:=3D3B01 -0800
> From:=3D= >3B mika@=3D >>> =3D3Basync.caltech.edu
>
> Jay K writes:=3D3B
> >=3D3B--_= >8699851d=3D >>> -dc9a-486c-965d-eaed43f71a51_
> >=3D3BContent-Type:=3D3B text/pl= >ain=3D >>> 9=3D3B charset==3D3B"=3D3Biso-8859-1"=3D3B
> >=3D3BContent= >-Transfer-En=3D >>> coding:=3D3B quoted-printable
> >=3D3B
> >=3D3B It no long= >er build=3D >>> s m3bundle I think. There was a problem regarding m3bund==3D3B
> &#= >62=3D >>> =3D3Ble for a while==3D3B2C because I had followed upgrade.sh too clos= >ely=3D >>> 1=3D3B2C which ha==3D3B
> >=3D3Bd this problem. And this is a si= >gn of us=3D >>> ing old cm3cg. Are you sure you did==3D3B
> >=3D3Bn'=3D3Bt do= > somethi=3D >>> ng weird?=3D3B Uograde.py does upgrade cm3cg appropriately. Try he== >=3D3B<=3D >>> br>> >=3D3Bad?=3D3B
> >=3D3B
>
> I'=3D3Bm not sure I= > didn'=3D >>> =3D3Bt do anything weird. I have a CM3 distribution that
> was releas= >e=3D2C=3D >>> then I upgraded it to head as of three weeks ago using
> the procedure= > =3D >>> Tony described to me a few years ago. I'=3D3Bve been using
> that w= >ith=3D >>> no special problems since then. I then updated to the CVS head
> and r= >=3D >>> an "=3D3Bpython upgrade.py"=3D3B. It does not rebuild cm3cg=3D2C b= >ut I can=3D >>> do it
> manually and try again.
>
> Mika
=20 >>> <=3D >>> /body> >>> =3D >>>=20 >>> --_1def5bc1-96d7-442f-bd33-2522abadf97d_-- From jay.krell at cornell.edu Sun Jan 9 00:55:24 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 23:55:24 +0000 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu> References: <20110106002615.77E782474003@birch.elegosoft.com>, , , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu> Message-ID: Thank you much. Please notice there are 2 or 3 similar problems. This shows only 1. See test p250. MODULE Main; PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; PROCEDURE F2() = <*UNUSED*>VAR x: [0L..0L]; BEGIN END F2; PROCEDURE F3() = VAR x: [0L..0L]; BEGIN ? F1(x); END F3; BEGIN ? F1(0L); ? F2(); ? F3(); END Main. i.e. initializing local 0L..0L. Passing 0L..0L parameter. ?- Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Sat, 8 Jan 2011 16:59:33 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] codegen error (from Mika, new test p250) > > I'll look into this one. > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 | Mobile +1 765 427 5484 > > > > > On Jan 8, 2011, at 12:17 AM, Jay K wrote: > > > > > fyi, small repro: > > > > > > MODULE Main; > > > > VAR x: [0L..0L]; > > > > PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; > > > > BEGIN > > F2(x); > > END Main. > > > > (32) start_call_direct procedure:0x4 level:0 > > (33) load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 > > (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] > > (35) pop_param type:int_64 > > > > > > - Jay > > > > > > ________________________________ > >> From: jay.krell at cornell.edu > >> To: m3devel at elegosoft.com; mika at async.caltech.edu > >> Subject: RE: codegen error (from Mika, new test p250) > >> Date: Thu, 6 Jan 2011 01:21:00 +0000 > >> > >> fyi: > >> > >> jbook2:p250 jay$ rm -rf I386_DARWIN/ > >> jbook2:p250 jay$ cm3 -keep > >> --- building in I386_DARWIN --- > >> > >> new source -> compiling Main.m3 > >> "../Main.m3", line 1: 1 code generation error > >> 1 error encountered > >> compilation failed => not building program "pgm" > >> Fatal Error: package build failed > >> jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment > >> (4) comment comment:module global constants > >> (6) comment comment:module global data > >> (27) comment comment:F1 > >> (34) comment comment:********* M3CG_Check ERROR > >> *********** bad stack: expected [ Int64 ] got [ Int32 ] > >> (43) comment comment:F2 > >> (73) comment comment:Main_M3 > >> (74) comment comment:module main body Main_M3 > >> (83) comment comment:global constant type descriptor > >> (85) comment comment:global data type descriptor > >> (87) comment comment:module global constants > >> (90) comment comment:procedure names > >> (94) comment comment:procedure table > >> (101) comment comment:file name > >> (103) comment comment:type map for _t0174bdf4 > >> (106) comment comment:type description for _t0174bdf4 > >> (110) comment comment:module global data > >> (120) comment comment:typecell for _t0174bdf4 > >> (141) comment comment:load map > >> (4) comment comment:module global constants > >> (6) comment comment:module global data > >> (27) comment comment:F1 > >> (34) comment comment:********* M3CG_Check ERROR > >> *********** bad stack: expected [ Int64 ] got [ Int32 ] > >> (43) comment comment:F2 > >> (73) comment comment:Main_M3 > >> (74) comment comment:module main body Main_M3 > >> (83) comment comment:global constant type descriptor > >> (85) comment comment:global data type descriptor > >> (87) comment comment:module global constants > >> (90) comment comment:procedure names > >> (94) comment comment:procedure table > >> (101) comment comment:file name > >> (103) comment comment:type map for _t0174bdf4 > >> (106) comment comment:type description for _t0174bdf4 > >> (110) comment comment:module global data > >> (120) comment comment:typecell for _t0174bdf4 > >> (141) comment comment:load map > >> > >> > >> - Jay > >> > >> > >>> Date: Thu, 6 Jan 2011 01:26:15 +0000 > >>> To: m3commit at elegosoft.com > >>> From: jkrell at elego.de > >>> Subject: [M3commit] CVS Update: cm3 > >>> > >>> CVSROOT: /usr/cvs > >>> Changes by: jkrell at birch. 11/01/06 01:26:15 > >>> > >>> Modified files: > >>> cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > >>> > >>> Log message: > >>> slightly simpler, same error > >>> > > > From jay.krell at cornell.edu Sun Jan 9 00:52:07 2011 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Sat, 8 Jan 2011 18:52:07 -0500 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: References: <20101227101653.307241A205B@async.async.caltech.edu> <20101227185453.97CE51A205B@async.async.caltech.edu> <20110108121441.A58031A205B@async.async.caltech.edu> Message-ID: <7AC16197-7752-43D0-AE47-21D461A86E94@gmail.com> Except you. :) But I still recommend it. - Jay On Jan 8, 2011, at 5:06 PM, Tony Hosking wrote: > I'm feeling foolish too since I never use them on my development system... ;-) > > On Jan 8, 2011, at 8:37 AM, Jay K wrote: > >> I upgrade across incompatibilities frequently & Hudson does now too. The existing scripts work very well and you would be foolish to not use them. Just use upgrade.py. It is very easy. Or upgrade.py nocleangcc. And then do-cm3-all.py skipgcc realclean && do-cm3-all.py buildship.py. >> >> - Jay/phone >> >> > To: jay.krell at cornell.edu >> > Date: Sat, 8 Jan 2011 04:14:41 -0800 >> > From: mika at async.caltech.edu >> > CC: m3devel at elegosoft.com >> > Subject: Re: [M3devel] another Snow Leopard compiler crash >> > >> > Jay K writes: >> > > >> > >Please try this Mika. It fixes the problem for me. >> > >> > Hi Jay, >> > >> > So I upgraded to the CVS head and now I get a segfaulting compiler: >> > >> > [hal:cm3/m3-libs/m3core] mika% gdb $CM3 >> > GNU gdb 6.3.50-20050815 (Apple version gdb-1510) (Wed Sep 22 02:45:02 UTC 2010) >> > Copyright 2004 Free Software Foundation, Inc. >> > GDB is free software, covered by the GNU General Public License, and you are >> > welcome to change it and/or distribute copies of it under certain conditions. >> > Type "show copying" to see the conditions. >> > There is absolutely no warranty for GDB. Type "show warranty" for details. >> > This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries ...... done >> > >> > (gdb) run >> > Starting program: /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3 >> > Reading symbols for shared libraries .+++++.......... done >> > >> > Program received signal EXC_BAD_ACCESS, Could not access memory. >> > Reason: KERN_PROTECTION_FAILURE at address: 0x0000038b >> > 0x9713354b in _longjmp () >> > (gdb) where >> > #0 0x9713354b in _longjmp () >> > #1 0x00285d2b in RTExFrame__InvokeHandler (f=0xbffff34c, a=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:175 >> > #2 0x00285be4 in RTException__ResumeRaise (a=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:145 >> > #3 0x00285a1b in RTException__Raise (act=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:91 >> > #4 0x00269d44 in RTHooks__Raise (ex=0x35a720, arg=0x181cddc, module=0x398080, line=50) at ../src/runtime/common/RTHooks.m3:79 >> > #5 0x0023adbc in OSErrorPosix__Raise0 (errno=2) at ../src/os/POSIX/OSErrorPosix.m3:50 >> > #6 0x0023cffc in FSPosix__Fail (p=0x181cdc0, f=0xf049f0) at ../src/os/POSIX/FSPosix.m3:359 >> > #7 0x0023cdd4 in FS__Status (pn=0x181cdc0, _result=0xbffff3c8) at ../src/os/POSIX/FSPosix.m3:328 >> > #8 0x00217d24 in M3File__IsReadable (path=0x181cdc0) at ../src/M3File.m3:123 >> > #9 0x000a057f in MxConfig__TryConfig (a=0x3255e0, b=0x3255f0, c=0x0) at ../src/MxConfig.m3:122 >> > #10 0x0009ff67 in MxConfig__FindConfig () at ../src/MxConfig.m3:51 >> > #11 0x0009fcd8 in MxConfig__FindFile () at ../src/MxConfig.m3:19 >> > #12 0x0002c446 in Main__DoIt () at ../src/Main.m3:32 >> > #13 0x0002d1e9 in Main_M3 (mode=1) at ../src/Main.m3:214 >> > #14 0x0027a781 in RTLinker__RunMainBody (m=0x3705a0) at ../src/runtime/common/RTLinker.m3:406 >> > #15 0x00279bb6 in RTLinker__AddUnitI (m=0x3705a0) at ../src/runtime/common/RTLinker.m3:113 >> > #16 0x00279c3a in RTLinker__AddUnit (b=0x2d1d0) at ../src/runtime/common/RTLinker.m3:122 >> > #17 0x00002cfc in main (argc=1, argv=0xbffff674, envp=0xbffff67c) at _m3main.c:16 >> > (gdb) >> > >> > I followed upgrade instructions from Tony (including upgrading the >> > back-end)---I have edited the instructions a bit to track changes in >> > CM3. I'm starting from head three weeks old.. >> > >> > Mika >> > >> > >> > Return-Path: hosking at cs.purdue.edu >> > Delivery-Date: Sun Jun 24 07:38:38 2007 >> > In-Reply-To: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> >> > References: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> >> > >> > Sounds like we really need some work done in this area. I very >> > rarely use the build scripts, since I bootstrap manually from old >> > compilers to new compilers rather than use the scripts. I suggest >> > the following approach, which I hope you will try, and then report >> > back on. >> > >> > Install the bootstrap compiler as you did originally: >> > >> > > rm -rf /usr/local/cm3/* >> > > >> > > cd ~/cm3-cvs >> > > mkdir boot >> > > cd boot >> > > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz >> > > ./cminstall >> > >> > >> > Now you will have some kind of cm3 installed, presumably in /usr/ >> > local/cm3/bin/cm3. >> > >> > Make sure you have a fresh CVS checkout in directory cm3 (let's >> > assume this is in your home directory ~/cm3). Also, make sure you >> > have an up-to-date version of the CM3 backend compiler cm3cg >> > installed by executing the following: >> > >> > STEP 0: >> > >> > export CM3=/usr/local/cm3/bin/cm3 >> > cd ~/cm3/m3-sys/m3cc >> > $CM3 >> > $CM3 -ship >> > >> > You can skip this last step if you know your backend compiler is up >> > to date. >> > >> > Now, let's build the new compiler from scratch (this is the sequence >> > I use regularly to test changes to the run-time system whenever I >> > make them): >> > >> > can replace compilation step with >> > >> > rm -rf && $CM3 && $CM3 -ship >> > >> > >> > STEP 1: >> > >> > (do these LATER if bootstrapping from old compiler!) >> > cd ~/cm3/m3-libs/m3core >> > $CM3 >> > $CM3 -ship >> > cd ~/cm3/m3-libs/libm3 >> > $CM3 >> > $CM3 -ship >> > >> > Now build the compiler: >> > >> > cd ~/cm3/m3-libs/sysutils ; $CM3 etc. >> > >> > cd ~/cm3/m3-sys/m3middle; $CM3 etc. >> > >> > repeat for: >> > >> > m3-sys/m3objfile >> > >> > m3-sys/m3back >> > >> > m3-sys/m3linker >> > >> > m3-sys/m3front >> > >> > m3-sys/m3quake >> > >> > m3-sys/cm3 >> > >> > [ here we may need -DROOT= ] >> > >> > >> > At this point you should have a bootstrapped version of cm3 installed >> > in the directory /usr/local/cm3/pkg/cm3/TARGET/cm3 (where TARGET is >> > the CM3 target platform you are building on -- e.g., LINUXLIBC6, >> > PPC_DARWIN, ...). Note that this did not overwrite your original >> > installed compiler in /usr/local/cm3/bin/cm3. We >> > are now going to test the new compiler, which was built using the old >> > compiler, by bootstrapping it one more time. >> > >> > >> > ******* THIS IS WHERE I HAVE A SEGFAULTING COMPILER ******* >> > >> > (If m3core and libm3 were skipped earlier, do them now, and RE-DO all >> > of the above packages before proceeding.) >> > >> > From here on out, please replace TARGET with your target platform as >> > appropriate. >> > >> > STEP 2: >> > >> > export CM3=/usr/local/cm3/pkg/cm3/TARGET/cm3 >> > cd ~/cm3/scripts >> > >> > ./do-cm3-std.sh realclean >> > REPEAT STEP 1 to rebuild the libraries and the compiler using the >> > STEP 1 bootstrap compiler. >> > >> > Now you have a STEP 2 bootstrap compiler installed in /usr/local/cm3/ >> > pkg/cm3/TARGET/cm3. Let's assume the new compiler now works properly >> > since it successfully bootstrapped itself, but to be sure we can now >> > use it to rebuild the world: >> > >> > cd ~/cm3/scripts >> > ./do-cm3-std.sh realclean >> > ./do-cm3-std.sh buildship >> > >> > Assuming this succeeded then we can be pretty sure /usr/local/cm3/pkg/ >> > cm3/TARGET/cm3 is good, so we can make it our default compiler by >> > replacing the original /usr/local/cm3/bin/cm3: >> > >> > cp $CM3 /usr/local/cm3/bin/cm3 >> > >> > On Jun 23, 2007, at 2:38 PM, Mika Nystrom wrote: >> > >> > > Ok, I'm sorry if I seem a bit dimwitted in the morning like this, >> > > but how exactly does one get started? I wish there were a file called >> > > "GETTING_STARTED" or something like that in scripts... >> > > >> > > My Mac is very slow so I switched to my FreeBSD/i386 system (which has >> > > PM3 happily installed on it) and tried to install CM3 from scratch. >> > > Here are the exact commands I typed. >> > > >> > > >> > > rm -rf /usr/local/cm3/* >> > > >> > > cd ~/cm3-cvs >> > > mkdir boot >> > > cd boot >> > > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz >> > > ./cminstall >> > > >> > > # now I seem to have some kind of cm3 installed, /usr/local/cm3/bin/ >> > > cm3 >> > > >> > > cd cm3 # location of my CM3 checkout >> > > cvs update -d . >> > > >> > > cd scripts >> > > ./boot-cm3-with-m3.sh realclean >> > > ./do-cm3-std.sh realclean >> > > >> > > ./upgrade.sh # fails here, libm3 not compiled >> > > ./boot-cm3-with-m3.sh build # builds cm3, but fails on >> > > cminstall, patternmatching not built >> > > >> > > ./do-cm3-std.sh build # OK >> > > ./do-cm3-std.sh buildship # OK >> > > >> > > ./boot-cm3-with-m3.sh realclean # start over >> > > ./boot-cm3-with-m3.sh build # OK >> > > ./boot-cm3-with-m3.sh buildship # OK >> > > >> > > ./do-cm3-std.sh realclean # OK >> > > ./do-cm3-std.sh build # dies miserably... maybe the >> > > compiler can't handle the new libraries? >> > > >> > > ./install-cm3-compiler.sh upgrade # OK, new cm3 binary installed >> > > >> > > After all that, "game over." I have a cm3 that segfaults. >> > > >> > > Text.i3: In function 'Text_I3': >> > > Text.i3:81: internal compiler error: Segmentation fault >> > > Please submit a full bug report, >> > > with preprocessed source if appropriate. >> > > See for instructions. >> > > compilation failed => not building library "libm3core.a" >> > > Fatal Error: package build failed >> > > *** execution of failed *** >> > > >> > > I can't seem to get either m3gdb or gdb to say anything reasonable >> > > either. ktrace shows nothing out of the ordinary. >> > > >> > > ----- >> > > >> > > Meanwhile, my Mac got through "do-cm3-std.sh realclean" and >> > > "do-cm3-std.sh buildship" but my compiles are still dying on the >> > > same assertion tickled by ktok. On that machine I have INSTALLROOT >> > > set to ~/cm3, but hopefully that has nothing to do with it... >> > > >> > > ----- >> > > >> > > Does do-cm3-std.sh realclean clean EVERYTHING? If so my Mac should >> > > really have a fresh setup. The FreeBSD, I am not sure, maybe the >> > > old binary version just doesn't work right? Of course I could try >> > > bootstrapping with PM3 as well... but really, there's an "approved" >> > > process to get from a blank system, no? >> > > >> > > Mika >> > > >> > > >> > > >> > > >> > > Tony Hosking writes: >> > >> That sounds like you forgot to execute "do-cm3-std.sh realclean" >> > >> before initiating the build. These sorts of errors sometimes arise >> > >> if there are old build directories lying around. >> > >> >> > >> On Jun 23, 2007, at 3:34 AM, Mika Nystrom wrote: >> > >> >> > >>> Hello everyone, >> > >>> >> > >>> I am in the process of trying to consolidate build systems for a >> > >>> few software packages I am maintaining. Currently, I am using an >> > >>> old PM3 on FreeBSD4, an ancient PM3 (from Klagenfurt?) for Windows >> > >>> (NT386GNU), and trying to get the latest CM3 from cvs up and >> > >>> compiling >> > >>> things on PPC_DARWIN. Ideally, I'd like to standardize everything >> > >>> on the new PM3---mainly so that I can use pickles (and Network >> > >>> Objects) across all three systems. I'd also like to add Linux to >> > >>> the mix. >> > >>> >> > >>> It's natural for me to start with CM3 on Darwin, as there's no >> > >>> alternative. But I am getting some assertions failing. Everything >> > >>> in the CM3 distribution compiles fine, and I believe I have compiled >> > >>> the libraries a few times (that is, including with themselves), and >> > >>> updated the compiler, too (using boot-cm3-with-m3.sh). I just cvs >> > >>> updated tonight. >> > >>> >> > >>> Here's what I'm running into: >> > >>> >> > >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/CHP.t -o >> > >>> CHPTok.i3 >> > >>> >> > >>> *** >> > >>> *** runtime error: >> > >>> *** <*ASSERT*> failed. >> > >>> *** file "../src/runtime/common/RTCollector.m3", line 2314 >> > >>> *** >> > >>> >> > >>> Abort >> > >>> >> > >>> Also: >> > >>> >> > >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/PRS.t -o >> > >>> PRSTok.i3 >> > >>> Illegal instruction >> > >>> >> > >>> As you can see, these things are coming from the caltech_parser. I >> > >> am using >> > >>> our local version, but I don't think it is very different from what >> > >>> is in the >> > >>> CM3 tree. >> > >>> >> > >>> Examining the first error (the failed assertion) more closely, I see >> > >>> the following: >> > >>> >> > >>> (gdb) list >> > >>> 108 wr := FileWr.Open(Pathname.ReplaceExt(tp.out, "m3")); >> > >>> 109 EXCEPT OSError.E => >> > >>> 110 Debug.Error("Cannot open tok implementation output >> > >>> file: " & >> > >>> 111 Pathname.ReplaceExt(tp.out, "m3")); >> > >>> 112 END; >> > >>> 113 Wr.PutText(wr, subs.apply(Bundle.Get(Form, >> > >>> "tokform.m3"))); >> > >>> 114 Wr.Close(wr); >> > >>> 115 END Main. >> > >>> (gdb) where >> > >>> #0 0x9004308c in kill () >> > >>> #1 0x9009fb3c in abort () >> > >>> #2 0x00096f50 in RTOS__Crash () at RTOS.m3:20 >> > >>> #3 0x0005bd40 in RTProcess__Crash (M3_Bd56fi_msg=0x0) at >> > >>> RTProcess.m3:65 >> > >>> #4 0x0008e4e0 in RTError__EndError (M3_AicXUJ_crash=1 '\001') at >> > >>> RTError.m3:115 >> > >>> #5 0x0008e08c in RTError__MsgS (M3_AJWxb1_file=0xc63d8, >> > >>> M3_AcxOUs_line=2314, M3_Bd56fi_msgA=0xca3d0, >> > >>> M3_Bd56fi_msgB=0xcbe90, M3_Bd56fi_msgC=0xca3d0) at RTError.m3:40 >> > >>> #6 0x0008eb88 in RTException__Crash (M3_Cblw37_a=0xbfffee00, >> > >>> M3_AicXUJ_raises=0 '\0', M3_AJWxb1_rte=0xcb538) at RTException.m3:79 >> > >>> #7 0x0008e74c in RTException__DefaultBackstop >> > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at >> > >>> RTException.m3:39 >> > >>> #8 0x0008e614 in RTException__InvokeBackstop >> > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at >> > >>> RTException.m3:25 >> > >>> #9 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at >> > >>> RTExFrame.m3:29 >> > >>> #10 0x0008e840 in RTException__DefaultBackstop >> > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at >> > >>> RTException.m3:47 >> > >>> #11 0x0008e614 in RTException__InvokeBackstop >> > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at >> > >>> RTException.m3:25 >> > >>> #12 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at >> > >>> RTExFrame.m3:29 >> > >>> #13 0x00079740 in RTHooks__ReportFault (M3_AJWxb1_module=0xb3eb8, >> > >>> M3_AcxOUs_info=74048) at RTHooks.m3:110 >> > >>> #14 0x0006ff4c in _m3_fault (M3_AcxOUs_arg=74048) >> > >>> #15 0x0006bcf4 in RTHooks__CheckStoreTraced >> > >>> (M3_Af40ku_ref=0xb2415c) at RTCollector.m3:2314 >> > >>> #16 0x000700e4 in ThreadPThread__InnerLockMutex >> > >>> (M3_AYIbX3_m=0xb2415c, M3_BXP32l_self=0xb24014) at >> > >>> ThreadPThread.m3:126 >> > >>> #17 0x000704d8 in ThreadPThread__LockMutex (M3_AYIbX3_m=0xb2415c) >> > >>> at ThreadPThread.m3:153 >> > >>> #18 0x00019b24 in Wr__PutText (M3_BxxOH1_wr=0xb2415c, >> > >>> M3_Bd56fi_t=0xb44d5c) at Wr.m3:93 >> > >>> #19 0x00003f74 in Main_M3 (M3_AcxOUs_mode=1) at Main.m3:113 >> > >>> #20 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at >> > >>> RTLinker.m3:399 >> > >>> #21 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at >> > >>> RTLinker.m3:113 >> > >>> #22 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at >> > >>> RTLinker.m3:122 >> > >>> #23 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38) >> > >>> at _m3main.mc:4 >> > >>> (gdb) >> > >>> >> > >>> The second error: >> > >>> >> > >>> Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/ >> > >>> operand. >> > >>> 0x00b111ac in ?? () >> > >>> (gdb) where >> > >>> #0 0x00b111ac in ?? () >> > >>> #1 0x0001214c in TextSubs__Apply (M3_CN69dV_self=0xb26450, >> > >>> M3_Bd56fi_src=0xb21cec) at TextSubs.m3:63 >> > >>> #2 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at >> > >>> RTLinker.m3:399 >> > >>> #3 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at >> > >>> RTLinker.m3:113 >> > >>> #4 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at >> > >>> RTLinker.m3:122 >> > >>> #5 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38) >> > >>> at _m3main.mc:4 >> > >>> (gdb) list >> > >>> 58 BEGIN >> > >>> 59 WHILE pos < textLen DO >> > >>> 60 c := Text.GetChar(src, pos); >> > >>> 61 IF c IN self.starts THEN >> > >>> 62 (* S("analysing: " & Text.Sub(src, pos), >> > >>> DebugLevel); *) >> > >>> 63 iter := self.tbl.iterateOrdered(); >> > >>> 64 ind := pos; >> > >>> 65 original := ""; >> > >>> 66 REPEAT >> > >>> 67 INC(ind); >> > >>> (gdb) >> > >>> >> > >>> Any ideas what to look at? >> > >>> >> > >>> I don't know if this is relevant: >> > >>> >> > >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% uname -a >> > >>> Darwin lapdog.local 7.9.0 Darwin Kernel Version 7.9.0: Wed Mar 30 >> > >>> 20:11:17 PST 2005; root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC Power >> > >>> Macintosh powerpc >> > >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% gcc -v >> > >>> Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs >> > >>> Thread model: posix >> > >>> gcc version 3.3 20030304 (Apple Computer, Inc. build 1666) >> > >>> >> > >>> Mika >> > >>> >> > >>> P.S. Am I correct in assuming that I can get CM3 to build on >> > >>> Windows? >> > >>> I could switch to CM3 on Unix any time, of course, but I've never >> > >>> had luck with it on Windows, which is why I am using the ancient >> > >>> Klagenfurt PM3, which comes on 40-odd "floppies" and a .EXE that >> > >>> unpacks them into C: (and installation instructions only in German). >> > >>> If CM3 doesn't work on Windows, I am essentially wasting my time, >> > >>> as the current project I am working on absolutely requires that the >> > >>> software run on Windows 2003 Server (yes, it sucks, but what can >> > >>> you do?) The very old PM3 at least kind of hobbles along on this >> > >>> platform---actually, better than that; it does Trestle natively >> > >>> under Windows (no X required), at least on SOME Windows machines. >> > >>> >> > >>> P.P.S. Sorry for all the postscripts, but is it true that the >> > >>> build system has been changed so that building with overrides >> > >>> (cm3 -x) >> > >>> requires having the compiler sources available? It didn't use to >> > >>> be that way, but I can't get Network Objects to work with overrides >> > >>> now unless I have the sources available... It's a bit of a pain >> > >>> because it means that every user has to have the compiler sources, >> > >>> or else ship everything, or was that not the intention? > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Jan 9 00:50:38 2011 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Sat, 8 Jan 2011 18:50:38 -0500 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: <20110108181715.77FF61A205B@async.async.caltech.edu> References: <20101227101653.307241A205B@async.async.caltech.edu> <20101227185453.97CE51A205B@async.async.caltech.edu> <20110108121441.A58031A205B@async.async.caltech.edu> <20110108134735.B7D4C1A205B@async.async.caltech.edu> <20110108161001.DC4871A205B@async.async.caltech.edu> <20110108181715.77FF61A205B@async.async.caltech.edu> Message-ID: Yes. When upgrade.py fails, you may or may not be in a bad state. I can see about making it safer. There are unavoidable depenedencies among cm3, cm3cg, and m3core, and maybe libm3. Starting point is a working cm3, and its cm3cg, and its config files, and m3core, and possible its libm3. I think maybe I should write a feature in upgrade.py that can start from scratch -- download old install archive or start from a specified local copy thereof. Interest? I might use it myself. I think upgrade should also have option to build all. - Jay On Jan 8, 2011, at 1:17 PM, Mika Nystrom wrote: > Do I need to go back to the release and install that, and then upgrade.py? > As far as I know my compiler was working fine... > > Jay K writes: >> --_1def5bc1-96d7-442f-bd33-2522abadf97d_ >> Content-Type: text/plain; charset="iso-8859-1" >> Content-Transfer-Encoding: quoted-printable >> >> Tony's instructions imho are too much work=2C error-prone. Upgrade.py does = >> rebuild cm3cg. Don't do it manually=2C as you have to be careful when you s= >> witch from old to new=2C and upgrade.py knows. There was a problem regardin= >> g m3bundle=2C fairly recently. So try head. Not a few weeks ago. The script= >> s specifically had a problem. >> >> Jay/phone >> >>> To: jay.krell at cornell.edu >>> Subject: Re: [M3devel] another Snow Leopard compiler crash=20 >>> Date: Sat=2C 8 Jan 2011 08:10:01 -0800 >>> From: mika at async.caltech.edu >>> =20 >>> Jay K writes: >>>> --_8699851d-dc9a-486c-965d-eaed43f71a51_ >>>> Content-Type: text/plain=3B charset=3D"iso-8859-1" >>>> Content-Transfer-Encoding: quoted-printable >>>> >>>> It no longer builds m3bundle I think. There was a problem regarding m3b= >> und=3D >>>> le for a while=3D2C because I had followed upgrade.sh too closely=3D2C w= >> hich ha=3D >>>> d this problem. And this is a sign of using old cm3cg. Are you sure you = >> did=3D >>>> n't do something weird? Uograde.py does upgrade cm3cg appropriately. Try= >> he=3D >>>> ad? >>>> >>> =20 >>> I'm not sure I didn't do anything weird. I have a CM3 distribution that >>> was release=2C then I upgraded it to head as of three weeks ago using >>> the procedure Tony described to me a few years ago. I've been using >>> that with no special problems since then. I then updated to the CVS head >>> and ran "python upgrade.py". It does not rebuild cm3cg=2C but I can do i= >> t >>> manually and try again. >>> =20 >>> Mika >> = >> >> --_1def5bc1-96d7-442f-bd33-2522abadf97d_ >> Content-Type: text/html; charset="iso-8859-1" >> Content-Transfer-Encoding: quoted-printable >> >> >> >> >> >> Tony's instructions imho are too much work=2C err= >> or-prone. Upgrade.py does rebuild cm3cg. Don't do it manually=2C as you hav= >> e to be careful when you switch from old to new=2C and upgrade.py knows. Th= >> ere was a problem regarding m3bundle=2C fairly recently. So try head. Not a= >> few weeks ago. The scripts specifically had a problem.

Jay/phone> r>
> To:=3B jay.krell@=3Bcornell.edu
> Subject:=3B Re:=3B= >> [=3BM3devel]=3B another Snow Leopard compiler crash
> Date:= >> =3B Sat=2C 8 Jan 2011 08:=3B10:=3B01 -0800
> From:=3B mika@= >> =3Basync.caltech.edu
>
> Jay K writes:=3B
> >=3B--_8699851d= >> -dc9a-486c-965d-eaed43f71a51_
> >=3BContent-Type:=3B text/plain= >> 9=3B charset==3B"=3Biso-8859-1"=3B
> >=3BContent-Transfer-En= >> coding:=3B quoted-printable
> >=3B
> >=3B It no longer build= >> s m3bundle I think. There was a problem regarding m3bund==3B
> >= >> =3Ble for a while==3B2C because I had followed upgrade.sh too closely= >> 1=3B2C which ha==3B
> >=3Bd this problem. And this is a sign of us= >> ing old cm3cg. Are you sure you did==3B
> >=3Bn'=3Bt do somethi= >> ng weird?=3B Uograde.py does upgrade cm3cg appropriately. Try he==3B<= >> br>> >=3Bad?=3B
> >=3B
>
> I'=3Bm not sure I didn'= >> =3Bt do anything weird. I have a CM3 distribution that
> was release=2C= >> then I upgraded it to head as of three weeks ago using
> the procedure = >> Tony described to me a few years ago. I'=3Bve been using
> that with= >> no special problems since then. I then updated to the CVS head
> and r= >> an "=3Bpython upgrade.py"=3B. It does not rebuild cm3cg=2C but I can= >> do it
> manually and try again.
>
> Mika
>> <= >> /body> >> = >> >> --_1def5bc1-96d7-442f-bd33-2522abadf97d_-- From jay.krell at cornell.edu Sun Jan 9 01:14:31 2011 From: jay.krell at cornell.edu (Jay K) Date: Sun, 9 Jan 2011 00:14:31 +0000 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: References: <20101227101653.307241A205B@async.async.caltech.edu>, , <20101227185453.97CE51A205B@async.async.caltech.edu>, , , <20110108121441.A58031A205B@async.async.caltech.edu>, , <20110108134735.B7D4C1A205B@async.async.caltech.edu>, , <20110108161001.DC4871A205B@async.async.caltech.edu>, , <20110108181715.77FF61A205B@async.async.caltech.edu>, Message-ID: That is about good enough -- your compiler is upgraded, a few things are out of date and will crash. I'm a bit surprised you hit this. I updated postgres95 to avoid it..but maybe that is masking a problem. I updated upgrade.py to install a more conventional config file instead of what it used to do. What it used to do is delegate back to cvs/m3-sys/cminstall/src/config-no-install. Which is great if you are editing the files and want just one copy, would have saved me a lot of time in the past, but maybe is too nichey. Now it installs what a distribution would include -- no dependency on cvs tree. ?- Jay ---------------------------------------- > From: jay.krell at cornell.edu > Date: Sat, 8 Jan 2011 18:50:38 -0500 > To: mika at async.caltech.edu > CC: m3devel at elegosoft.com; jay.krell at cornell.edu > Subject: Re: [M3devel] another Snow Leopard compiler crash > > Yes. When upgrade.py fails, you may or may not be in a bad state. I can see about making it safer. There are unavoidable depenedencies among cm3, cm3cg, and m3core, and maybe libm3. > > Starting point is a working cm3, and its cm3cg, and its config files, and m3core, and possible its libm3. > > I think maybe I should write a feature in upgrade.py that can start from scratch -- download old install archive or start from a specified local copy thereof. Interest? I might use it myself. I think upgrade should also have option to build all. > > - Jay > > On Jan 8, 2011, at 1:17 PM, Mika Nystrom wrote: > > > Do I need to go back to the release and install that, and then upgrade.py? > > As far as I know my compiler was working fine... > > > > Jay K writes: > >> --_1def5bc1-96d7-442f-bd33-2522abadf97d_ > >> Content-Type: text/plain; charset="iso-8859-1" > >> Content-Transfer-Encoding: quoted-printable > >> > >> Tony's instructions imho are too much work=2C error-prone. Upgrade.py does = > >> rebuild cm3cg. Don't do it manually=2C as you have to be careful when you s= > >> witch from old to new=2C and upgrade.py knows. There was a problem regardin= > >> g m3bundle=2C fairly recently. So try head. Not a few weeks ago. The script= > >> s specifically had a problem. > >> > >> Jay/phone > >> > >>> To: jay.krell at cornell.edu > >>> Subject: Re: [M3devel] another Snow Leopard compiler crash=20 > >>> Date: Sat=2C 8 Jan 2011 08:10:01 -0800 > >>> From: mika at async.caltech.edu > >>> =20 > >>> Jay K writes: > >>>> --_8699851d-dc9a-486c-965d-eaed43f71a51_ > >>>> Content-Type: text/plain=3B charset=3D"iso-8859-1" > >>>> Content-Transfer-Encoding: quoted-printable > >>>> > >>>> It no longer builds m3bundle I think. There was a problem regarding m3b= > >> und=3D > >>>> le for a while=3D2C because I had followed upgrade.sh too closely=3D2C w= > >> hich ha=3D > >>>> d this problem. And this is a sign of using old cm3cg. Are you sure you = > >> did=3D > >>>> n't do something weird? Uograde.py does upgrade cm3cg appropriately. Try= > >> he=3D > >>>> ad? > >>>> > >>> =20 > >>> I'm not sure I didn't do anything weird. I have a CM3 distribution that > >>> was release=2C then I upgraded it to head as of three weeks ago using > >>> the procedure Tony described to me a few years ago. I've been using > >>> that with no special problems since then. I then updated to the CVS head > >>> and ran "python upgrade.py". It does not rebuild cm3cg=2C but I can do i= > >> t > >>> manually and try again. > >>> =20 > >>> Mika > >> = > >> > >> --_1def5bc1-96d7-442f-bd33-2522abadf97d_ > >> Content-Type: text/html; charset="iso-8859-1" > >> Content-Transfer-Encoding: quoted-printable > >> > >> > >> > >> > >> > >> Tony's instructions imho are too much work=2C err= > >> or-prone. Upgrade.py does rebuild cm3cg. Don't do it manually=2C as you hav= > >> e to be careful when you switch from old to new=2C and upgrade.py knows. Th= > >> ere was a problem regarding m3bundle=2C fairly recently. So try head. Not a= > >> few weeks ago. The scripts specifically had a problem. Jay/phone > >> r> > To:=3B jay.krell@=3Bcornell.edu > Subject:=3B Re:=3B= > >> [=3BM3devel]=3B another Snow Leopard compiler crash > Date:= > >> =3B Sat=2C 8 Jan 2011 08:=3B10:=3B01 -0800 > From:=3B mika@= > >> =3Basync.caltech.edu > > Jay K writes:=3B > >=3B--_8699851d= > >> -dc9a-486c-965d-eaed43f71a51_ > >=3BContent-Type:=3B text/plain= > >> 9=3B charset==3B"=3Biso-8859-1"=3B > >=3BContent-Transfer-En= > >> coding:=3B quoted-printable > >=3B > >=3B It no longer build= > >> s m3bundle I think. There was a problem regarding m3bund==3B > >= > >> =3Ble for a while==3B2C because I had followed upgrade.sh too closely= > >> 1=3B2C which ha==3B > >=3Bd this problem. And this is a sign of us= > >> ing old cm3cg. Are you sure you did==3B > >=3Bn'=3Bt do somethi= > >> ng weird?=3B Uograde.py does upgrade cm3cg appropriately. Try he==3B<= > >> br>> >=3Bad?=3B > >=3B > > I'=3Bm not sure I didn'= > >> =3Bt do anything weird. I have a CM3 distribution that > was release=2C= > >> then I upgraded it to head as of three weeks ago using > the procedure = > >> Tony described to me a few years ago. I'=3Bve been using > that with= > >> no special problems since then. I then updated to the CVS head > and r= > >> an "=3Bpython upgrade.py"=3B. It does not rebuild cm3cg=2C but I can= > >> do it > manually and try again. > > Mika > >> <= > >> /body> > >> = > >> > >> --_1def5bc1-96d7-442f-bd33-2522abadf97d_-- From hosking at cs.purdue.edu Sun Jan 9 01:29:10 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 8 Jan 2011 19:29:10 -0500 Subject: [M3devel] FW: LONGINT subrange problems In-Reply-To: References: <20110108081522.7A4C12474003@birch.elegosoft.com>, Message-ID: <9834E1DB-D87B-4263-BF04-4E6140B5D3AD@cs.purdue.edu> Yes, I'll take a look. On Jan 8, 2011, at 9:56 AM, Jay K wrote: > Tony any chance you can look at this? Or advise me where to fix? Notice the mismatches go both ways. This is on Darwin/i386 for me. Probably occurs on all 32bit targets & no 64bit targets. > > - Jay/phone > > > From: jay.krell at cornell.edu > > To: m3devel at elegosoft.com > > Date: Sat, 8 Jan 2011 08:19:06 +0000 > > Subject: [M3devel] FW: LONGINT subrange problems > > > > > > This is all based on Mika's work. > > > > > > MODULE Main; > > > > PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; > > > > PROCEDURE F2() = > > <*UNUSED*>VAR x: [0L..0L]; > > BEGIN > > END F2; > > > > PROCEDURE F3() = > > VAR x: [0L..0L]; > > BEGIN > > F1(x); > > END F3; > > > > BEGIN > > F1(0L); > > F2(); > > F3(); > > END Main. > > > > > > (20) declare_procedure name:Main__F1 n_params:1 lev:0 exported:false procedure:0x0 procedure:0x4 > > > > (22) declare_procedure name:Main__F2 n_params:0 lev:0 exported:false procedure:0x0 procedure:0x5 > > > > (24) declare_procedure name:Main__F3 n_params:0 lev:0 exported:false procedure:0x0 procedure:0x6 > > > > > > > > (33) begin_procedure procedure:0x5 > > (34) set_source_line 6 > > (35) load_integer type:int_64 0 > > (36) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int32 ] got [ Int64 ] > > (37) store var:0x5 offset:0 src_t:int_32 dst_t:word_8 > > (38) set_source_line 8 > > (39) exit_proc type:void > > (40) end_procedure procedure:0x5 > > (41) comment comment:F3 > > (42) set_source_line 0xA(10) > > > > (43) begin_procedure procedure:0x6 > > (44) set_source_line 0xB(11) > > (45) load_integer type:int_64 0 > > (46) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int32 ] got [ Int64 ] > > (47) store var:0x6 offset:0 src_t:int_32 dst_t:word_8 > > (48) set_source_line 0xD(13) > > > > (49) start_call_direct procedure:0x4 level:0 > > (50) load var:0x6 offset:0 src_t:word_8 dst_t:int_32 > > (51) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] > > (52) pop_param type:int_64 > > (53) call_direct procedure:0x4 > > (54) set_source_line 0xE(14) > > (55) exit_proc type:void > > (56) end_procedure procedure:0x6 > > (57) comment comment:Main_M3 > > (58) comment comment:module main body Main_M3 > > (59) set_source_line 0x10(16) > > > > > > > > > > > > > > > > ---------------------------------------- > > > Date: Sat, 8 Jan 2011 09:15:22 +0000 > > > To: m3commit at elegosoft.com > > > From: jkrell at elego.de > > > Subject: [M3commit] CVS Update: cm3 > > > > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 11/01/08 09:15:21 > > > > > > Modified files: > > > cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > > > > > > Log message: > > > more LONGINT subrange problems, this now has 3 internal codegen errors, > > > due to stack type and expected type mismatches > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.caltech.edu Sun Jan 9 02:43:55 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Sat, 08 Jan 2011 17:43:55 -0800 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: <0A37C595-C896-4B66-9EDF-61BB30645321@cs.purdue.edu> Message-ID: <20110109014355.0A01F1A205B@async.async.caltech.edu> Well I spent the whole day figuring out how to update the compiler.. finally got everything working and I think this is with the very latest version (Jay just committed something two hours ago and it's in here). Or... wait.. did he go back a version and re-introduce the deadlock? That would explain why it's behaving the same way as it was before... Mika Thread 68 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 #5 0x97137217 in _cthread_fork_prepare () #6 0x97137155 in fork () #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixCommon.m3:75 #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #13 0x9713885d in _pthread_start () #14 0x971386e2 in thread_start () Thread 67 (process 32362): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003beb7e in ThreadInternal__Poll (fd=13, read=1, m3timeout=-1) at ../src/thread/Common/ThreadInternal.c:31 #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x2009550, fd=13, read=1 '\001', interval=-1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003c19a4 in SchedulerPosix__IOWait (fd=13, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 #4 0x0034f862 in FilePosix__IntermittentRead (h=0x24334f8, b=0xb1df4cd0, mayBlock=1 '\001') at ../src/os/POSIX/FilePosix.m3:220 #5 0x0035e935 in FileRd__Seek (rd=0x2433518, pos=0, dontBlock=0 '\0') at ../src/rw/FileRd.m3:83 #6 0x00356338 in Rd__DoSeek (rd=0x2433518) at ../src/rw/Rd.m3:54 #7 0x003560c1 in UnsafeRd__FastGetChar (rd=0x2433518) at ../src/rw/Rd.m3:43 #8 0x00356018 in Rd__GetChar (rd=0x2433518) at ../src/rw/Rd.m3:34 #9 0x00316fbc in ProcUtils__SSApply (self=0x242f128) at ../src/ProcUtils.m3:54 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009550) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009550) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 66 (process 32362): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003beb7e in ThreadInternal__Poll (fd=11, read=1, m3timeout=-1) at ../src/thread/Common/ThreadInternal.c:31 #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x20094a0, fd=11, read=1 '\001', interval=-1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003c19a4 in SchedulerPosix__IOWait (fd=11, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 #4 0x0034f862 in FilePosix__IntermittentRead (h=0x239f994, b=0xb1d72cd0, mayBlock=1 '\001') at ../src/os/POSIX/FilePosix.m3:220 #5 0x0035e935 in FileRd__Seek (rd=0x239f9b4, pos=0, dontBlock=0 '\0') at ../src/rw/FileRd.m3:83 #6 0x00356338 in Rd__DoSeek (rd=0x239f9b4) at ../src/rw/Rd.m3:54 #7 0x003560c1 in UnsafeRd__FastGetChar (rd=0x239f9b4) at ../src/rw/Rd.m3:43 #8 0x00356018 in Rd__GetChar (rd=0x239f9b4) at ../src/rw/Rd.m3:34 #9 0x00316fbc in ProcUtils__SSApply (self=0x242f0f0) at ../src/ProcUtils.m3:54 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x20094a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20094a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 65 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #33 0x9713885d in _pthread_start () #34 0x971386e2 in thread_start () Thread 64 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #28 0x9713885d in _pthread_start () #29 0x971386e2 in thread_start () Thread 60 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 59 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #19 0x9713885d in _pthread_start () #20 0x971386e2 in thread_start () Thread 54 (process 32362): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003beb7e in ThreadInternal__Poll (fd=10, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:31 #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x161dfc0, fd=10, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=10, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 #4 0x00346693 in TCP__GetBytesFD (t=0x22211d8, arr=0x22f400c, timeout=-1) at ../src/POSIX/TCP.m3:326 #5 0x00348786 in ConnRW__RdSeek (rd=0x2221260, pos=267, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 #6 0x003591ce in Rd__GetLine (rd=0x2221260) at ../src/rw/Rd.m3:426 #7 0x002b2826 in TWSTester__RApply (cl=0x2221290) at ../src/TWSTester.m3:382 #8 0x003c0ea5 in ThreadPThread__RunThread (me=0x161dfc0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #9 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161dfc0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #10 0x9713885d in _pthread_start () #11 0x971386e2 in thread_start () Thread 53 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161deb0, mutex=0x161e1c0, m3timeout=1294411605.506855) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x161e160, n=0.5, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=0.5) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x00297efc in PMTWS__TSCApply (cl=0x2221088) at ../src/PMTWS.m3:229 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e160) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e160) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 52 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #14 0x9713885d in _pthread_start () #15 0x971386e2 in thread_start () Thread 51 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #14 0x9713885d in _pthread_start () #15 0x971386e2 in thread_start () Thread 50 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2005ac0, mutex=0x20059b0, m3timeout=1294411629.006319) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x2005a60, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000e162d in DBTable_gcoms_aux_ordrMonitor__ApplyC (cl=0x229a528) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2005a60) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2005a60) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 49 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2005a40, mutex=0x20058e0, m3timeout=1294411606.0014169) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x20059e0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000e357e in DBTable_gcoms_aux_ordrMonitor__CleanerApply (cl=0x229a720) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x20059e0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20059e0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 48 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161de60, mutex=0x161aa50, m3timeout=1294411629.003248) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x161aae0, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000d2f00 in DBTable_gcoms_fillMonitor__ApplyC (cl=0x229a258) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161aae0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161aae0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 47 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161ac10, mutex=0x1625c10, m3timeout=1294411605.9982891) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x161aa80, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000d50b3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=0x229a450) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161aa80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161aa80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 46 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2004440, mutex=0x2004410, m3timeout=1294411678.997467) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x20043b0, n=100, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=100) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000da48e in DBTable_gcoms_aux_instrumentMonitor__ApplyC (cl=0x1711268) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x20043b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20043b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 45 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x20038d0, mutex=0x2004380, m3timeout=1294411605.9944479) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x2004320, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000dc415 in DBTable_gcoms_aux_instrumentMonitor__CleanerApply (cl=0x1711460) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2004320) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2004320) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 44 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x20071d0, mutex=0x20070e0, m3timeout=1294411678.9916439) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x2007170, n=100, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=100) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x224daf0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007170) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007170) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 43 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x20046e0, mutex=0x2006f50, m3timeout=1294411605.83337) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x2007110, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x224dce8) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007110) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007110) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 42 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161d830, mutex=0x161d780, m3timeout=1294411678.981461) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x161dae0, n=100, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=100) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x224d768) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161dae0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161dae0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 41 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161d7e0, mutex=0x161da50, m3timeout=1294411605.8302381) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x161da80, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x224d960) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161da80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161da80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 40 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161d940, mutex=0x161d910, m3timeout=1294411678.8294799) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x161d8b0, n=100, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=100) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000c4b88 in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=0x224d348) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161d8b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161d8b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 39 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x16262c0, mutex=0x161d750, m3timeout=1294411605.8264539) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x161d850, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000c6a9a in DBTable_gcoms_ordr_statusMonitor__CleanerApply (cl=0x224d540) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161d850) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161d850) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 38 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2003bc0, mutex=0x2003cd0, m3timeout=1294411628.744529) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x2003c70, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000b4d70 in DBTable_gcoms_strategyMonitor__ApplyC (cl=0x228c348) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2003c70) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2003c70) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 37 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2003ba0, mutex=0x2003be0, m3timeout=1294411605.7216971) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x2003c10, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000b6cc1 in DBTable_gcoms_strategyMonitor__CleanerApply (cl=0x228c538) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2003c10) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2003c10) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 36 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x16256b0, mutex=0x16255a0, m3timeout=1294411628.815861) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x1625650, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x228c080) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x1625650) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1625650) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 35 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x1625630, mutex=0x1625570, m3timeout=1294411605.7159209) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x16255d0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x228c270) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x16255d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x16255d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 34 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2003a30, mutex=0x20031e0, m3timeout=1294411628.7167931) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x20039d0, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000d2f00 in DBTable_gcoms_fillMonitor__ApplyC (cl=0x2255d40) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x20039d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20039d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 33 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x20034c0, mutex=0x20038a0, m3timeout=1294411605.7081449) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x2003970, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000d50b3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=0x2255f30) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2003970) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2003970) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 32 (process 32362): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003beb7e in ThreadInternal__Poll (fd=9, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:31 #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x2003780, fd=9, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=9, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 #4 0x00346693 in TCP__GetBytesFD (t=0x227c15c, arr=0x227600c, timeout=-1) at ../src/POSIX/TCP.m3:326 #5 0x00348786 in ConnRW__RdSeek (rd=0x227a010, pos=0, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 #6 0x003591ce in Rd__GetLine (rd=0x227a010) at ../src/rw/Rd.m3:426 #7 0x002678d9 in UpdateMonitor__InApplyP (cl=0x227a040) at ../src/UpdateMonitor.m3:240 #8 0x003c0ea5 in ThreadPThread__RunThread (me=0x2003780) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #9 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2003780) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #10 0x9713885d in _pthread_start () #11 0x971386e2 in thread_start () Thread 31 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2003420, j=0x2003720) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x20036c0, m=0x227c220, c=0x227c22c, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x227c220, c=0x227c22c) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002674cc in UpdateMonitor__OutApplyP (p=0x227c17c) at ../src/UpdateMonitor.m3:178 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x20036c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20036c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 30 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x161a290, j=0x1625020) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x1624fc0, m=0x2255ac0, c=0x2255af4, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x2255ac0, c=0x2255af4) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x0026a003 in DesynchronizedDB__PApply (p=0x2255b04) at ../src/DesynchronizedDB.m3:216 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x1624fc0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1624fc0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 29 (process 32362): #0 0x9716c1d6 in __wait4 () #1 0x9716c1c9 in waitpid$UNIX2003 () #2 0x003c50d5 in Uexec__waitpid (i=32392, j=0xb0e36b7c, k=0) at ../src/unix/Common/Uexec.c:66 #3 0x003c1d31 in SchedulerPosix__WaitProcess (pid=32392, status=0xb0e36b7c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 #4 0x003536dc in Process__Wait (p=0x22585fc) at ../src/os/POSIX/ProcessPosixCommon.m3:275 #5 0x003163ad in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:185 #6 0x00316d6e in ProcUtils__Apply (self=0x2256284) at ../src/ProcUtils.m3:274 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x16251a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x16251a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 28 (process 32362): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003beb7e in ThreadInternal__Poll (fd=8, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:31 #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x20030c0, fd=8, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=8, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 #4 0x00346693 in TCP__GetBytesFD (t=0x22562c4, arr=0x225e00c, timeout=-1) at ../src/POSIX/TCP.m3:326 #5 0x00348786 in ConnRW__RdSeek (rd=0x2256318, pos=0, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 #6 0x00356338 in Rd__DoSeek (rd=0x2256318) at ../src/rw/Rd.m3:54 #7 0x003560c1 in UnsafeRd__FastGetChar (rd=0x2256318) at ../src/rw/Rd.m3:43 #8 0x00356018 in Rd__GetChar (rd=0x2256318) at ../src/rw/Rd.m3:34 #9 0x002c62c5 in ReadLine__ReadALine (t=0x225600c) at ../src/ReadLine.m3:151 #10 0x002c877e in ReadLine__ReadLine (t=0x225600c) at ../src/ReadLine.m3:411 #11 0x0023b1fb in SchemeReadLine__GetCh (p=0x2256348) at ../src/SchemeReadLine.m3:80 #12 0x0025f4b3 in SchemeInputPort__NextToken (t=0x2256348, wx=0x22563cc) at ../src/SchemeInputPort.m3:309 #13 0x0025eb94 in SchemeInputPort__Read (t=0x2256348) at ../src/SchemeInputPort.m3:177 #14 0x0023ba70 in SchemeReadLine__MainLoop (rl=0x225600c, scm=0x22340d0) at ../src/SchemeReadLine.m3:146 #15 0x00006c23 in Main__SCApply (c=0x2255620) at ../src/Main.m3:92 #16 0x003c0ea5 in ThreadPThread__RunThread (me=0x20030c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #17 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20030c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #18 0x9713885d in _pthread_start () #19 0x971386e2 in thread_start () Thread 27 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 26 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20011c0, j=0x2001e10) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2001db0, m=0x1738078, c=0x17380a8, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1738078, c=0x17380a8) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x0009e3d6 in GCOMSOrderStatus__Apply (cl=0x17380b8) at ../src/GCOMSOrderStatus.m3:166 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001db0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001db0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 25 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x1619840, j=0x1619920) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x161a170, m=0x15aab74, c=0x15aab80, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x15aab74, c=0x15aab80) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x000a4482 in GCOMSBusyOrders__Apply (cl=0x15aab90) at ../src/GCOMSBusyOrders.m3:63 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a170) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a170) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 24 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20011a0, j=0x2001170) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2001110, m=0x173e044, c=0x173e050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x173e044, c=0x173e050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0bace84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0bace84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x1594280) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15943b0) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001110) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001110) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 23 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20010f0, j=0x20010c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2001060, m=0x1724034, c=0x1724040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1724034, c=0x1724040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0b2ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0b2ae84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15940f0) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1594220) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001060) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001060) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 22 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2001040, j=0x2001010) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000fb0, m=0x1722034, c=0x1722040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1722034, c=0x1722040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0aa8e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0aa8e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15adb40) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad7cc) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000fb0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000fb0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 21 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000f90, j=0x2000f60) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000f00, m=0x1720034, c=0x1720040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1720034, c=0x1720040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0a26e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0a26e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15adae0) at ../src/SX.m3:151 #9 0x0016017c in CurrencySXProxy__Apply (cl=0x15ad7b0) at ../I386_DARWIN/CurrencySXProxy.m3 => /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000f00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000f00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 20 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000ee0, j=0x2000eb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000e50, m=0x173c044, c=0x173c050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x173c044, c=0x173c050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb09a4e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb09a4e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad450) at ../src/SX.m3:151 #9 0x002d3613 in BoolSXProxy__Apply (cl=0x15ad794) at ../I386_DARWIN/BoolSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000e50) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000e50) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 19 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000e30, j=0x2000e00) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000da0, m=0x171e034, c=0x171e040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x171e034, c=0x171e040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0922e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0922e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad3e8) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad778) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000da0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000da0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 18 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000d80, j=0x2000d50) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000cf0, m=0x1740044, c=0x1740050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1740044, c=0x1740050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb08a0e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb08a0e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad380) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad75c) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000cf0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000cf0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 17 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000cd0, j=0x2000ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000c40, m=0x1704044, c=0x1704050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1704044, c=0x1704050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb081ee84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb081ee84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad318) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad740) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000c40) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000c40) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 16 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000c20, j=0x2000bf0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000b90, m=0x1702044, c=0x1702050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1702044, c=0x1702050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb079ce84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb079ce84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad2b0) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad724) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000b90) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000b90) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 15 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000b70, j=0x2000b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000ae0, m=0x173a044, c=0x173a050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x173a044, c=0x173a050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb071ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb071ae84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad248) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad708) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000ae0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000ae0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 14 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000ac0, j=0x2000a90) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000a30, m=0x171a034, c=0x171a040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x171a034, c=0x171a040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0698e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0698e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad1e0) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad6ec) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000a30) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000a30) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 13 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000a10, j=0x20009e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000980, m=0x1718034, c=0x1718040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1718034, c=0x1718040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0616e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0616e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad618) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad6d0) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000980) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000980) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 12 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000960, j=0x2000930) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x20008d0, m=0x1716034, c=0x1716040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1716034, c=0x1716040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0594e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0594e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad5b0) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad6b4) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x20008d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20008d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 11 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20008b0, j=0x2000880) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000820, m=0x1714034, c=0x1714040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1714034, c=0x1714040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0512e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0512e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad548) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad698) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000820) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000820) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 10 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000800, j=0x20007d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000770, m=0x1712034, c=0x1712040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1712034, c=0x1712040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0490e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0490e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15acea8) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad67c) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000770) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000770) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 9 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000750, j=0x2000720) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x20006c0, m=0x15b6034, c=0x15b6040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x15b6034, c=0x15b6040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb040ee84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb040ee84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591ea8) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1591fd8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x20006c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20006c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 8 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20006a0, j=0x2000670) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000610, m=0x15b4034, c=0x15b4040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x15b4034, c=0x15b4040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb038ce84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb038ce84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591bf8) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1591d28) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000610) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000610) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 7 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20005f0, j=0x20005c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000560, m=0x15b2034, c=0x15b2040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x15b2034, c=0x15b2040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb030ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb030ae84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591a70) at ../src/SX.m3:151 #9 0x0016017c in CurrencySXProxy__Apply (cl=0x1591b98) at ../I386_DARWIN/CurrencySXProxy.m3 => /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 6 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000540, j=0x2000510) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x20004b0, m=0x171c0c0, c=0x171c0cc, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x171c0c0, c=0x171c0cc) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0288e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0288e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591808) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1591938) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x20004b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20004b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 5 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000490, j=0x2000460) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000400, m=0x15b0034, c=0x15b0040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x15b0034, c=0x15b0040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0206e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0206e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591678) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15917a8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000400) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000400) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 4 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20003e0, j=0x20003b0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000350, m=0x15ae034, c=0x15ae040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x15ae034, c=0x15ae040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0184e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0184e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15914e8) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1591618) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000350) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000350) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 3 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000150, j=0x20002c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000260, m=0x159123c, c=0x159122c, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x159123c, c=0x159122c) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002ce79c in VarProxyDefs__NotifyApply (cl=0x1591248) at ../src/VarProxyDefs.m3:55 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000260) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000260) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 2 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #13 0x9713885d in _pthread_start () #14 0x971386e2 in thread_start () Thread 1 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x16076f0, j=0x16076c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x1607660, m=0x15ac4b0, c=0x242f190, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003c1499 in ThreadPThread__XJoin (self=0x1607660, t=0x242f174, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:513 #6 0x003c15ae in Thread__Join (t=0x242f174) at ../src/thread/PTHREAD/ThreadPThread.m3:525 #7 0x003158c9 in ProcUtils__Wait (c=0x242f0d4) at ../src/ProcUtils.m3:318 #8 0x0024618a in SchemeCommandRunner__RealRunTimeoutCommandApply (proc=0x1738cc4, interp=0x2367eac, args=0x239bd88) at ../src/SchemeCommandRunner.m3:164 #9 0x00245e07 in SchemeCommandRunner__RunTimeoutCommandApply (proc=0x1738cc4, interp=0x2367eac, args=0x239bd88) at ../src/SchemeCommandRunner.m3:129 #10 0x00245405 in SchemeCommandRunner__RunCommandApply (proc=0x1738cc4, interp=0x2367eac, args=0x239bd70) at ../src/SchemeCommandRunner.m3:23 #11 0x0025c183 in SchemePrimitive__EDApply (ed=0x1738340, t=0x236b540, interp=0x2367eac, args=0x239bd70) at ../src/SchemePrimitive.m3:207 #12 0x00256d12 in SchemePrimitive__Prims (t=0x236b540, interp=0x2367eac, args=0x239bd70, x=0x239a328, y=0x239bd5c, free=0xbfffe82f) at ../src/SchemePrimitive.m3:580 #13 0x0025bb2b in SchemePrimitive__Apply2 (t=0x236b540, interp=0x2367eac, a1=0x239a328, a2=0x239bd5c) at ../src/SchemePrimitive.m3:549 #14 0x0024d640 in Scheme__EvalInternal (t=0x2367eac, x=0x239a288, env=0x239bce0) at ../src/Scheme.m3:585 #15 0x0024d3a8 in Scheme__EvalInternal (t=0x2367eac, x=0x239a1d8, env=0x239bce0) at ../src/Scheme.m3:582 #16 0x0024d82d in Scheme__Eval (t=0x2367eac, x=0x239b098, envP=0x2367ef4) at ../src/Scheme.m3:353 #17 0x0024b005 in Scheme__EvalInGlobalEnv (t=0x2367eac, x=0x239b098) at ../src/Scheme.m3:603 #18 0x0002aebc in SchemeCalculator__Calc (t=0x2367e9c, arr=0xbfffecdc) at ../src/SchemeCalculator.m3:61 #19 0x0000cbd3 in EuroDriver__Loop (t=0x224da38) at ../src/EuroDriver.m3:289 #20 0x00008820 in Main_M3 (mode=1) at ../src/Main.m3:268 #21 0x003b465a in RTLinker__RunMainBody (m=0x59e4c0) at ../src/runtime/common/RTLinker.m3:406 #22 0x003b3a8f in RTLinker__AddUnitI (m=0x59e4c0) at ../src/runtime/common/RTLinker.m3:113 #23 0x003b3b13 in RTLinker__AddUnit (b=0x6c5d) at ../src/runtime/common/RTLinker.m3:122 #24 0x000052ec in main (argc=19, argv=0xbffff1b4, envp=0xbffff204) at _m3main.c:16 Thread 75 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003ac2e3 in ThreadPThread__PThreadLockMutex (mutex=0x5d3ac0, line=1288, index=2) at ../src/thread/PTHREAD/ThreadPThread.m3:1262 #4 0x003ac409 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1288 #5 0x97137217 in _cthread_fork_prepare () #6 0x97137155 in fork () #7 0x0033bc4d in ProcessPosixCommon__Create_ForkExec (cmd=0x31e02ac, params=0x31e03c8, env=0x0, wd=0x53bf44, stdin=0x0, stdout=0x30e91cc, stderr=0x30ea700) at ../src/os/POSIX/ProcessPosixCommon.m3:75 #8 0x0033d137 in Process__Create (cmd=0x31e02ac, params=0x31e03c8, env=0x0, wd=0x53bf44, stdin=0x0, stdout=0x30e91cc, stderr=0x30ea700) at ../src/os/POSIX/ProcessPosix.m3:21 #9 0x002ffdbc in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 #10 0x003007c1 in ProcUtils__Apply (self=0x30eb88c) at ../src/ProcUtils.m3:274 #11 0x003a9c5b in ThreadPThread__RunThread (me=0x161dd00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #12 0x003a998a in ThreadPThread__ThreadBase (param=0x161dd00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #13 0x9713885d in _pthread_start () #14 0x971386e2 in thread_start () Thread 74 (process 67010): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003a7b74 in ThreadInternal__Poll (fd=13, read=1, m3timeout=-1) at ../src/thread/Common/ThreadInternal.c:57 #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x161dc50, fd=13, read=1 '\001', interval=-1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003aa6dc in SchedulerPosix__IOWait (fd=13, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 #4 0x00338b5f in FilePosix__IntermittentRead (h=0x30ea6f0, b=0xb1ef8cf0, mayBlock=1 '\001') at ../src/os/POSIX/FilePosix.m3:220 #5 0x00347c68 in FileRd__Seek (rd=0x30ea710, pos=0, dontBlock=0 '\0') at ../src/rw/FileRd.m3:83 #6 0x0033f64d in Rd__DoSeek (rd=0x30ea710) at ../src/rw/Rd.m3:54 #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=0x30ea710) at ../src/rw/Rd.m3:43 #8 0x0033f32d in Rd__GetChar (rd=0x30ea710) at ../src/rw/Rd.m3:34 #9 0x00300a0b in ProcUtils__SSApply (self=0x30eb854) at ../src/ProcUtils.m3:54 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161dc50) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161dc50) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 73 (process 67010): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003a7b74 in ThreadInternal__Poll (fd=11, read=1, m3timeout=-1) at ../src/thread/Common/ThreadInternal.c:57 #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x161dbc0, fd=11, read=1 '\001', interval=-1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003aa6dc in SchedulerPosix__IOWait (fd=11, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 #4 0x00338b5f in FilePosix__IntermittentRead (h=0x30e91bc, b=0xb1e76cf0, mayBlock=1 '\001') at ../src/os/POSIX/FilePosix.m3:220 #5 0x00347c68 in FileRd__Seek (rd=0x30e91dc, pos=0, dontBlock=0 '\0') at ../src/rw/FileRd.m3:83 #6 0x0033f64d in Rd__DoSeek (rd=0x30e91dc) at ../src/rw/Rd.m3:54 #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=0x30e91dc) at ../src/rw/Rd.m3:43 #8 0x0033f32d in Rd__GetChar (rd=0x30e91dc) at ../src/rw/Rd.m3:34 #9 0x00300a0b in ProcUtils__SSApply (self=0x30eb81c) at ../src/ProcUtils.m3:54 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161dbc0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161dbc0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 72 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7ebe in ThreadPThread__InitMutex (m=0x31339fc, root=0x31339f8, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003a7f82 in ThreadPThread__LockMutex (m=0x31339f8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x0033f30b in Rd__GetChar (rd=0x31339f8) at ../src/rw/Rd.m3:33 #6 0x0034dffd in Lex__Skip (rd=0x31339f8, cs=0x548018) at ../src/fmtlex/Lex.m3:46 #7 0x003503c3 in Lex__ReadReal (rd=0x31339f8, sign=0xb1df47c3, digits=0xb1df47dc, digCnt=0xb1df47c8, exp=0xb1df47cc) at ../src/fmtlex/Lex.m3:569 #8 0x00350ef5 in Lex__LongReal (rd=0x31339f8) at ../src/fmtlex/Lex.m3:662 #9 0x003518f1 in Scan__LongReal (txt=0x25768e8) at ../src/fmtlex/Scan.m3:77 #10 0x0024f849 in SchemeInputPort__NextToken (t=0x30d4aec, wx=0x31337e8) at ../src/SchemeInputPort.m3:439 #11 0x0024fb9c in SchemeInputPort__ReadTail2 (t=0x30d4aec, wx=0x31337e8) at ../src/SchemeInputPort.m3:240 #12 0x0024e100 in SchemeInputPort__Read (t=0x30d4aec) at ../src/SchemeInputPort.m3:179 #13 0x0024e2bc in SchemeInputPort__Read (t=0x30d4aec) at ../src/SchemeInputPort.m3:191 #14 0x0024fb73 in SchemeInputPort__ReadTail2 (t=0x30d4aec, wx=0x3133620) at ../src/SchemeInputPort.m3:240 #15 0x0024e100 in SchemeInputPort__Read (t=0x30d4aec) at ../src/SchemeInputPort.m3:179 #16 0x0024fb73 in SchemeInputPort__ReadTail2 (t=0x30d4aec, wx=0x3133548) at ../src/SchemeInputPort.m3:240 #17 0x0024e100 in SchemeInputPort__Read (t=0x30d4aec) at ../src/SchemeInputPort.m3:179 #18 0x0023c6cd in Scheme__LoadPort (t=0x30d018c, in=0x30d4aec) at ../src/Scheme.m3:317 #19 0x002399e3 in Scheme__LoadRd (t=0x30d018c, rd=0x30d3cf0, fn=0x0) at ../src/Scheme.m3:174 #20 0x0023d255 in Scheme__ReadInitialFiles (t=0x30d018c, files=0x46fc8c) at ../src/Scheme.m3:134 #21 0x0023d5e7 in Scheme__Init2 (t=0x30d018c, input=0x20003b4, output=0x20013e8, files=0x46fc8c, env=0x0) at ../src/Scheme.m3:127 #22 0x00239461 in Scheme__Init (t=0x30d018c, files=0x46fc8c, env=0x0) at ../src/Scheme.m3:102 #23 0x00029420 in SchemeCalculator__Init (t=0x30d017c, code=0x263fccc) at ../src/SchemeCalculator.m3:28 #24 0x0000deef in EuroDriver__OApply (cl=0x3241b88) at ../src/EuroDriver.m3:865 #25 0x003a9c5b in ThreadPThread__RunThread (me=0x2307650) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #26 0x003a998a in ThreadPThread__ThreadBase (param=0x2307650) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #27 0x9713885d in _pthread_start () #28 0x971386e2 in thread_start () Thread 71 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1345 #4 0x003995a6 in RTHeapRep__RegisterFinalCleanup (r=0x31239f8, p=0x3a7d52) at ../src/runtime/common/RTCollector.m3:2148 #5 0x003a7f1e in ThreadPThread__InitMutex (m=0x31239fc, root=0x31239f8, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:106 #6 0x003a7f82 in ThreadPThread__LockMutex (m=0x31239f8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #7 0x0033f30b in Rd__GetChar (rd=0x31239f8) at ../src/rw/Rd.m3:33 #8 0x0034dffd in Lex__Skip (rd=0x31239f8, cs=0x548018) at ../src/fmtlex/Lex.m3:46 #9 0x003503c3 in Lex__ReadReal (rd=0x31239f8, sign=0xb1d727c3, digits=0xb1d727dc, digCnt=0xb1d727c8, exp=0xb1d727cc) at ../src/fmtlex/Lex.m3:569 #10 0x00350ef5 in Lex__LongReal (rd=0x31239f8) at ../src/fmtlex/Lex.m3:662 #11 0x003518f1 in Scan__LongReal (txt=0x25768e8) at ../src/fmtlex/Scan.m3:77 #12 0x0024f849 in SchemeInputPort__NextToken (t=0x3264aec, wx=0x31237e8) at ../src/SchemeInputPort.m3:439 #13 0x0024fb9c in SchemeInputPort__ReadTail2 (t=0x3264aec, wx=0x31237e8) at ../src/SchemeInputPort.m3:240 #14 0x0024e100 in SchemeInputPort__Read (t=0x3264aec) at ../src/SchemeInputPort.m3:179 #15 0x0024e2bc in SchemeInputPort__Read (t=0x3264aec) at ../src/SchemeInputPort.m3:191 #16 0x0024fb73 in SchemeInputPort__ReadTail2 (t=0x3264aec, wx=0x3123620) at ../src/SchemeInputPort.m3:240 #17 0x0024e100 in SchemeInputPort__Read (t=0x3264aec) at ../src/SchemeInputPort.m3:179 #18 0x0024fb73 in SchemeInputPort__ReadTail2 (t=0x3264aec, wx=0x3123548) at ../src/SchemeInputPort.m3:240 #19 0x0024e100 in SchemeInputPort__Read (t=0x3264aec) at ../src/SchemeInputPort.m3:179 #20 0x0023c6cd in Scheme__LoadPort (t=0x326018c, in=0x3264aec) at ../src/Scheme.m3:317 #21 0x002399e3 in Scheme__LoadRd (t=0x326018c, rd=0x3263cf0, fn=0x0) at ../src/Scheme.m3:174 #22 0x0023d255 in Scheme__ReadInitialFiles (t=0x326018c, files=0x46fc8c) at ../src/Scheme.m3:134 #23 0x0023d5e7 in Scheme__Init2 (t=0x326018c, input=0x20003b4, output=0x20013e8, files=0x46fc8c, env=0x0) at ../src/Scheme.m3:127 #24 0x00239461 in Scheme__Init (t=0x326018c, files=0x46fc8c, env=0x0) at ../src/Scheme.m3:102 #25 0x00029420 in SchemeCalculator__Init (t=0x326017c, code=0x263fccc) at ../src/SchemeCalculator.m3:28 #26 0x0000deef in EuroDriver__OApply (cl=0x3241af0) at ../src/EuroDriver.m3:865 #27 0x003a9c5b in ThreadPThread__RunThread (me=0x23075c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #28 0x003a998a in ThreadPThread__ThreadBase (param=0x23075c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #29 0x9713885d in _pthread_start () #30 0x971386e2 in thread_start () Thread 67 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7ebe in ThreadPThread__InitMutex (m=0x2686284, root=0x2686280, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003a7f82 in ThreadPThread__LockMutex (m=0x2686280) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x003a7d30 in Thread__Acquire (m=0x2686280) at ../src/thread/PTHREAD/ThreadPThread.m3:81 #6 0x00343175 in RdClass__Lock (rd=0x2686280) at ../src/rw/Rd.m3:521 #7 0x0024d9ef in SchemeInputPort__Lock (t=0x2686368) at ../src/SchemeInputPort.m3:72 #8 0x0024e87d in SchemeInputPort__NextToken (t=0x2686368, wx=0x2686388) at ../src/SchemeInputPort.m3:299 #9 0x0024e0bb in SchemeInputPort__Read (t=0x2686368) at ../src/SchemeInputPort.m3:177 #10 0x00239a38 in Scheme__LoadEval (t=0x254018c, rd=0x2686280) at ../src/Scheme.m3:291 #11 0x00239abd in Scheme__LoadEvalText (t=0x254018c, txt=0x263fccc) at ../src/Scheme.m3:306 #12 0x00029574 in SchemeCalculator__Calc (t=0x254017c, arr=0xb1cf09e4) at ../src/SchemeCalculator.m3:47 #13 0x0000ee50 in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 #14 0x0000e7d6 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 #15 0x000103ca in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 #16 0x0000e3a2 in EuroDriver__OApply (cl=0x3018bb0) at ../src/EuroDriver.m3:892 #17 0x003a9c5b in ThreadPThread__RunThread (me=0x23054a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #18 0x003a998a in ThreadPThread__ThreadBase (param=0x23054a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #19 0x9713885d in _pthread_start () #20 0x971386e2 in thread_start () Thread 66 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x230d020, j=0x2305470) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2305410, m=0x311a158, c=0x311a164, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x311a158, c=0x311a164) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb1c6ecb8, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb1c6ecb8, touched=0x0) at ../src/SX.m3:149 #8 0x0001063a in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 #9 0x0000e3a2 in EuroDriver__OApply (cl=0x3018b18) at ../src/EuroDriver.m3:892 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2305410) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2305410) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 62 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x23019d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x31b1584) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x003a7d30 in Thread__Acquire (m=0x31b1584) at ../src/thread/PTHREAD/ThreadPThread.m3:81 #5 0x002c5bb6 in SX__Lock (arr=0x327c430) at ../src/SX.m3:318 #6 0x002c5496 in SXSelect__WaitE (on=0xb1beccb8, except=0x0, touched=0x0) at ../src/SX.m3:241 #7 0x002c4acd in SXSelect__Wait (on=0xb1beccb8, touched=0x0) at ../src/SX.m3:149 #8 0x0001063a in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 #9 0x0000e3a2 in EuroDriver__OApply (cl=0x21fcc00) at ../src/EuroDriver.m3:892 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x1626040) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x1626040) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 61 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7ebe in ThreadPThread__InitMutex (m=0x252c4b4, root=0x252c4b0, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003a7f82 in ThreadPThread__LockMutex (m=0x252c4b0) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x003a7d30 in Thread__Acquire (m=0x252c4b0) at ../src/thread/PTHREAD/ThreadPThread.m3:81 #6 0x00343175 in RdClass__Lock (rd=0x252c4b0) at ../src/rw/Rd.m3:521 #7 0x0024d9ef in SchemeInputPort__Lock (t=0x252c598) at ../src/SchemeInputPort.m3:72 #8 0x0024e87d in SchemeInputPort__NextToken (t=0x252c598, wx=0x252c5b8) at ../src/SchemeInputPort.m3:299 #9 0x0024e0bb in SchemeInputPort__Read (t=0x252c598) at ../src/SchemeInputPort.m3:177 #10 0x00239a38 in Scheme__LoadEval (t=0x26f018c, rd=0x252c4b0) at ../src/Scheme.m3:291 #11 0x00239abd in Scheme__LoadEvalText (t=0x26f018c, txt=0x263fccc) at ../src/Scheme.m3:306 #12 0x00029574 in SchemeCalculator__Calc (t=0x26f017c, arr=0xb1b6a864) at ../src/SchemeCalculator.m3:47 #13 0x0000ee50 in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 #14 0x0000e7d6 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 #15 0x000103ca in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 #16 0x0000e3a2 in EuroDriver__OApply (cl=0x21fcb68) at ../src/EuroDriver.m3:892 #17 0x003a9c5b in ThreadPThread__RunThread (me=0x1625f80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #18 0x003a998a in ThreadPThread__ThreadBase (param=0x1625f80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #19 0x9713885d in _pthread_start () #20 0x971386e2 in thread_start () Thread 54 (process 67010): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003a7b74 in ThreadInternal__Poll (fd=10, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:57 #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x23071d0, fd=10, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=10, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 #4 0x003344ff in TCP__GetBytesFD (t=0x3050f80, arr=0x3053048, timeout=-1) at ../src/POSIX/TCP.m3:326 #5 0x003365ce in ConnRW__RdSeek (rd=0x3053018, pos=390, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 #6 0x003424e3 in Rd__GetLine (rd=0x3053018) at ../src/rw/Rd.m3:426 #7 0x002a00d4 in TWSTester__RApply (cl=0x3055054) at ../src/TWSTester.m3:382 #8 0x003a9c5b in ThreadPThread__RunThread (me=0x23071d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #9 0x003a998a in ThreadPThread__ThreadBase (param=0x23071d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #10 0x9713885d in _pthread_start () #11 0x971386e2 in thread_start () Thread 53 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x1621150, mutex=0x1621120, m3timeout=1294537044.5119109) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x16210c0, n=0.5, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=0.5) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x00286610 in PMTWS__TSCApply (cl=0x3050e30) at ../src/PMTWS.m3:229 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x16210c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x16210c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 52 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1345 #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x1621054) at ../src/runtime/common/RTAllocator.m3:363 #5 0x0038f2c7 in RTAllocator__GetTracedObj (def=0x5d6bf4) at ../src/runtime/common/RTAllocator.m3:224 #6 0x0038ed60 in RTHooks__AllocateTracedObj (defn=0x5d6bf4) at ../src/runtime/common/RTAllocator.m3:122 #7 0x003bc686 in RTHooks__Concat (t=0x3240a08, u=0x52c460) at ../src/text/TextCat.m3:28 #8 0x0029e655 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 #9 0x0029ea07 in TWSTester__ReqMktData (t=0x30505a8, tickerId=4, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 #10 0x002aa233 in TWSTestBridge__MreqMktData (t=0x30505a8, tickerId=4, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 #11 0x00286034 in PMTWS__TSCApply (cl=0x3050dec) at ../src/PMTWS.m3:210 #12 0x003a9c5b in ThreadPThread__RunThread (me=0x1621010) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #13 0x003a998a in ThreadPThread__ThreadBase (param=0x1621010) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #14 0x9713885d in _pthread_start () #15 0x971386e2 in thread_start () Thread 51 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1345 #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x1620ed4) at ../src/runtime/common/RTAllocator.m3:363 #5 0x0038f048 in RTAllocator__GetTracedRef (def=0x5711e0) at ../src/runtime/common/RTAllocator.m3:202 #6 0x0038ed2f in RTHooks__AllocateTracedRef (defn=0x5711e0) at ../src/runtime/common/RTAllocator.m3:115 #7 0x000a8f49 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x328f110, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 #8 0x000a5ecc in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x26608c0, res=0x328f110) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 #9 0x00085c9f in GCOMSPortfolio__Lock (t=0x2660590) at ../src/GCOMSPortfolio.m3:94 #10 0x000288d9 in SXPortfolio__Scan (t=0x300c578) at ../src/SXPortfolio.m3:47 #11 0x0002920d in SXPortfolio__Apply (cl=0x3050324) at ../src/SXPortfolio.m3:113 #12 0x003a9c5b in ThreadPThread__RunThread (me=0x1620e90) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #13 0x003a998a in ThreadPThread__ThreadBase (param=0x1620e90) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #14 0x9713885d in _pthread_start () #15 0x971386e2 in thread_start () Thread 50 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4ad944, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 #5 0x000d9ad8 in DBTable_gcoms_aux_ordrMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #6 0x000d9cdf in DBTable_gcoms_aux_ordrMonitor__CheckForNew (cl=0x300c218) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #7 0x000d9a01 in DBTable_gcoms_aux_ordrMonitor__Sync (cl=0x300c218) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #8 0x000d9588 in DBTable_gcoms_aux_ordrMonitor__ApplyC (cl=0x300c218) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #9 0x003a9c5b in ThreadPThread__RunThread (me=0x1620d80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #10 0x003a998a in ThreadPThread__ThreadBase (param=0x1620d80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #11 0x9713885d in _pthread_start () #12 0x971386e2 in thread_start () Thread 49 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x1620d60, mutex=0x1620cd0, m3timeout=1294537044.970454) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x1620d00, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000db5a3 in DBTable_gcoms_aux_ordrMonitor__CleanerApply (cl=0x300c410) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1620d00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1620d00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 48 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4aa228, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 #5 0x000cb8aa in DBTable_gcoms_fillMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #6 0x000cbbf5 in DBTable_gcoms_fillMonitor__CheckForNew (cl=0x300bf48) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #7 0x000cb7d3 in DBTable_gcoms_fillMonitor__Sync (cl=0x300bf48) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #8 0x000cb35a in DBTable_gcoms_fillMonitor__ApplyC (cl=0x300bf48) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #9 0x003a9c5b in ThreadPThread__RunThread (me=0x1620b50) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #10 0x003a998a in ThreadPThread__ThreadBase (param=0x1620b50) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #11 0x9713885d in _pthread_start () #12 0x971386e2 in thread_start () Thread 47 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x16243d0, mutex=0x1620ac0, m3timeout=1294537044.9675839) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x1620af0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000cd5e3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=0x300c140) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1620af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1620af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 46 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4abd98, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 #5 0x000d2b9a in DBTable_gcoms_aux_instrumentMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #6 0x000d2dbf in DBTable_gcoms_aux_instrumentMonitor__CheckForNew (cl=0x30091c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #7 0x000d2ac3 in DBTable_gcoms_aux_instrumentMonitor__Sync (cl=0x30091c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #8 0x000d264a in DBTable_gcoms_aux_instrumentMonitor__ApplyC (cl=0x30091c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #9 0x003a9c5b in ThreadPThread__RunThread (me=0x2306710) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #10 0x003a998a in ThreadPThread__ThreadBase (param=0x2306710) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #11 0x9713885d in _pthread_start () #12 0x971386e2 in thread_start () Thread 45 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x230b2d0, mutex=0x2306680, m3timeout=1294537044.960629) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x23066b0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000d469b in DBTable_gcoms_aux_instrumentMonitor__CleanerApply (cl=0x30093c0) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x23066b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x23066b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 44 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a159c, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=0x3205b38) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=0x3205b38) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x3205b38) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #9 0x003a9c5b in ThreadPThread__RunThread (me=0x230b000) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #10 0x003a998a in ThreadPThread__ThreadBase (param=0x230b000) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #11 0x9713885d in _pthread_start () #12 0x971386e2 in thread_start () Thread 43 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x230afe0, mutex=0x230af20, m3timeout=1294537044.8138101) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x230af80, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x3205d30) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x230af80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x230af80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 42 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a159c, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=0x32057b0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=0x32057b0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x32057b0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #9 0x003a9c5b in ThreadPThread__RunThread (me=0x230aca0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #10 0x003a998a in ThreadPThread__ThreadBase (param=0x230aca0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #11 0x9713885d in _pthread_start () #12 0x971386e2 in thread_start () Thread 41 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x2301860, mutex=0x230ab40, m3timeout=1294537044.8138311) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x230aba0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x32059a8) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x230aba0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x230aba0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 40 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a6b9c, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 #5 0x000bd587 in DBTable_gcoms_ordr_statusMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #6 0x000bd76e in DBTable_gcoms_ordr_statusMonitor__CheckForNew (cl=0x3205390) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #7 0x000bd4b0 in DBTable_gcoms_ordr_statusMonitor__Sync (cl=0x3205390) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #8 0x000bd037 in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=0x3205390) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #9 0x003a9c5b in ThreadPThread__RunThread (me=0x1621f10) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #10 0x003a998a in ThreadPThread__ThreadBase (param=0x1621f10) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #11 0x9713885d in _pthread_start () #12 0x971386e2 in thread_start () Thread 39 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x16242f0, mutex=0x1621ee0, m3timeout=1294537044.8137701) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x1622280, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000bf010 in DBTable_gcoms_ordr_statusMonitor__CleanerApply (cl=0x3205588) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1622280) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1622280) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 38 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a3144, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 #5 0x000adb3f in DBTable_gcoms_strategyMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #6 0x000add46 in DBTable_gcoms_strategyMonitor__CheckForNew (cl=0x2660b88) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #7 0x000ada68 in DBTable_gcoms_strategyMonitor__Sync (cl=0x2660b88) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #8 0x000ad5ef in DBTable_gcoms_strategyMonitor__ApplyC (cl=0x2660b88) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #9 0x003a9c5b in ThreadPThread__RunThread (me=0x161b820) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #10 0x003a998a in ThreadPThread__ThreadBase (param=0x161b820) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #11 0x9713885d in _pthread_start () #12 0x971386e2 in thread_start () Thread 37 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x2306160, mutex=0x2305f70, m3timeout=1294537044.6482379) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x2306100, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000af60a in DBTable_gcoms_strategyMonitor__CleanerApply (cl=0x2660d78) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x2306100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x2306100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 36 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a159c, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=0x26608c0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=0x26608c0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x26608c0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #9 0x003a9c5b in ThreadPThread__RunThread (me=0x2305e30) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #10 0x003a998a in ThreadPThread__ThreadBase (param=0x2305e30) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #11 0x9713885d in _pthread_start () #12 0x971386e2 in thread_start () Thread 35 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x2305dd0, mutex=0x2305c40, m3timeout=1294537044.6481991) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x2305d70, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x2660ab0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x2305d70) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x2305d70) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 34 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1345 #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=32, dataAlignment=4, thread=0x1623e04) at ../src/runtime/common/RTAllocator.m3:363 #5 0x0038f2c7 in RTAllocator__GetTracedObj (def=0x5c87d4) at ../src/runtime/common/RTAllocator.m3:224 #6 0x0038ed60 in RTHooks__AllocateTracedObj (defn=0x5c87d4) at ../src/runtime/common/RTAllocator.m3:122 #7 0x00260a50 in DatabaseUtils__FilterUnprintable (t=0x4aa228) at ../src/DatabaseUtils.m3:124 #8 0x0026b6ae in UnsafeDatabase__ExecM (t=0x2660178, query=0x4aa228, busyWait=0 '\0', abortConnectionOnFail=1 '\001') at ../src/UnsafeDatabase.m3:217 #9 0x0026baa5 in UnsafeDatabase__TExecM (t=0x2660178, query=0x4aa228, busyWait=0 '\0', abortConnectionOnFail=1 '\001') at ../src/UnsafeDatabase.m3:258 #10 0x002587f9 in DesynchronizedDB__SExec (t=0x26602c4, query=0x4aa228, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:126 #11 0x000cb8aa in DBTable_gcoms_fillMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #12 0x000cbbf5 in DBTable_gcoms_fillMonitor__CheckForNew (cl=0x26605f8) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #13 0x000cb7d3 in DBTable_gcoms_fillMonitor__Sync (cl=0x26605f8) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #14 0x000cb35a in DBTable_gcoms_fillMonitor__ApplyC (cl=0x26605f8) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #15 0x003a9c5b in ThreadPThread__RunThread (me=0x1623dc0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #16 0x003a998a in ThreadPThread__ThreadBase (param=0x1623dc0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #17 0x9713885d in _pthread_start () #18 0x971386e2 in thread_start () Thread 33 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x1623da0, mutex=0x1623640, m3timeout=1294537044.6482589) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x1623d40, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000cd5e3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=0x26607e8) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1623d40) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1623d40) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 32 (process 67010): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003a7b74 in ThreadInternal__Poll (fd=9, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:57 #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x1623c00, fd=9, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=9, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 #4 0x003344ff in TCP__GetBytesFD (t=0x267015c, arr=0x2690040, timeout=-1) at ../src/POSIX/TCP.m3:326 #5 0x003365ce in ConnRW__RdSeek (rd=0x2690010, pos=0, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 #6 0x003424e3 in Rd__GetLine (rd=0x2690010) at ../src/rw/Rd.m3:426 #7 0x00256bb0 in UpdateMonitor__InApplyP (cl=0x269204c) at ../src/UpdateMonitor.m3:240 #8 0x003a9c5b in ThreadPThread__RunThread (me=0x1623c00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #9 0x003a998a in ThreadPThread__ThreadBase (param=0x1623c00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #10 0x9713885d in _pthread_start () #11 0x971386e2 in thread_start () Thread 31 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x1623470, j=0x1623ba0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x1623b40, m=0x2670220, c=0x267022c, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2670220, c=0x267022c) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002567b1 in UpdateMonitor__OutApplyP (p=0x267017c) at ../src/UpdateMonitor.m3:178 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1623b40) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1623b40) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 30 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23016c0, j=0x2305a80) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2305a20, m=0x2660378, c=0x26603ac, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2660378, c=0x26603ac) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x00259145 in DesynchronizedDB__PApply (p=0x26603bc) at ../src/DesynchronizedDB.m3:216 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x2305a20) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x2305a20) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 29 (process 67010): #0 0x9716c1d6 in __wait4 () #1 0x9716c1c9 in waitpid$UNIX2003 () #2 0x003add58 in Uexec__waitpid (i=67040, j=0xb0e36b4c, k=0) at ../src/unix/Common/Uexec.c:67 #3 0x003aaa51 in SchedulerPosix__WaitProcess (pid=67040, status=0xb0e36b4c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 #4 0x0033ca19 in Process__Wait (p=0x2650590) at ../src/os/POSIX/ProcessPosixCommon.m3:275 #5 0x002ffdf6 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:185 #6 0x003007c1 in ProcUtils__Apply (self=0x2640284) at ../src/ProcUtils.m3:274 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x16233b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x16233b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 28 (process 67010): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003a7b74 in ThreadInternal__Poll (fd=7, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:57 #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x1623300, fd=7, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=7, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 #4 0x003344ff in TCP__GetBytesFD (t=0x26402c4, arr=0x2642358, timeout=-1) at ../src/POSIX/TCP.m3:326 #5 0x003365ce in ConnRW__RdSeek (rd=0x2642328, pos=0, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 #6 0x0033f64d in Rd__DoSeek (rd=0x2642328) at ../src/rw/Rd.m3:54 #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=0x2642328) at ../src/rw/Rd.m3:43 #8 0x0033f32d in Rd__GetChar (rd=0x2642328) at ../src/rw/Rd.m3:34 #9 0x002b26e9 in ReadLine__ReadALine (t=0x264000c) at ../src/ReadLine.m3:151 #10 0x002b4a56 in ReadLine__ReadLine (t=0x264000c) at ../src/ReadLine.m3:411 #11 0x0022a383 in SchemeReadLine__GetCh (p=0x2644364) at ../src/SchemeReadLine.m3:80 #12 0x0024e942 in SchemeInputPort__NextToken (t=0x2644364, wx=0x26443e8) at ../src/SchemeInputPort.m3:309 #13 0x0024e0bb in SchemeInputPort__Read (t=0x2644364) at ../src/SchemeInputPort.m3:177 #14 0x0022abaa in SchemeReadLine__MainLoop (rl=0x264000c, scm=0x256b9e4) at ../src/SchemeReadLine.m3:146 #15 0x00006bb7 in Main__SCApply (c=0x263fed0) at ../src/Main.m3:92 #16 0x003a9c5b in ThreadPThread__RunThread (me=0x1623300) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #17 0x003a998a in ThreadPThread__ThreadBase (param=0x1623300) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #18 0x9713885d in _pthread_start () #19 0x971386e2 in thread_start () Thread 27 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x161bd50) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x25400a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x002c77db in SXLongReal__Update (v=0x2540010, newValue=1293719775.9374268, when=1293719775.9374378) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 #5 0x002c7abe in SXLongReal__SetVar (v=0x2540010, newValue=1293719775.9374268, when=1293719775.9374378) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 #6 0x002eaaf7 in SXTimer__Loop (cl=0x21e11cc) at ../src/SXTimer.m3:64 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x161b610) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x161b610) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 26 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23016a0, j=0x2301670) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2301610, m=0x2114828, c=0x2114858, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2114828, c=0x2114858) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x000974c8 in GCOMSOrderStatus__Apply (cl=0x2114868) at ../src/GCOMSOrderStatus.m3:166 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x2301610) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x2301610) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 25 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300540, j=0x2301580) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x23015b0, m=0x211476c, c=0x2114778, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x211476c, c=0x2114778) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x0009d268 in GCOMSBusyOrders__Apply (cl=0x2114788) at ../src/GCOMSBusyOrders.m3:63 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x23015b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x23015b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 24 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300d90, j=0x2300d60) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300d00, m=0x21d0044, c=0x21d0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x21d0044, c=0x21d0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0bace84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0bace84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2111418) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2111548) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300d00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300d00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 23 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300ce0, j=0x2300cb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300c50, m=0x21c0044, c=0x21c0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x21c0044, c=0x21c0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0b2ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0b2ae84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2111288) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x21113b8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300c50) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300c50) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 22 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300c30, j=0x2300c00) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300ba0, m=0x21b0044, c=0x21b0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x21b0044, c=0x21b0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0aa8e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0aa8e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110fd8) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2111108) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300ba0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300ba0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 21 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300b80, j=0x2300b50) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300af0, m=0x21a0044, c=0x21a0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x21a0044, c=0x21a0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0a26e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0a26e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110e50) at ../src/SX.m3:151 #9 0x00163596 in CurrencySXProxy__Apply (cl=0x2110f78) at ../I386_DARWIN/CurrencySXProxy.m3 => /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 20 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300a10, j=0x23009e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300980, m=0x2190044, c=0x2190050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2190044, c=0x2190050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb09a4e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb09a4e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110b48) at ../src/SX.m3:151 #9 0x002bf3d5 in BoolSXProxy__Apply (cl=0x2110c70) at ../I386_DARWIN/BoolSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300980) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300980) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 19 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300960, j=0x2300930) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x23008d0, m=0x2180044, c=0x2180050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2180044, c=0x2180050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0922e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0922e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x21109b8) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2110ae8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x23008d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x23008d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 18 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23008b0, j=0x2300880) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300820, m=0x2170044, c=0x2170050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2170044, c=0x2170050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb08a0e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb08a0e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110828) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2110958) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300820) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300820) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 17 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300800, j=0x23007d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300770, m=0x2160044, c=0x2160050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2160044, c=0x2160050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb081ee84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb081ee84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110698) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x21107c8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300770) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300770) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 16 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300750, j=0x2300720) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x23006c0, m=0x2150044, c=0x2150050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2150044, c=0x2150050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb079ce84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb079ce84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110508) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2110638) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x23006c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x23006c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 15 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23006a0, j=0x2300670) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300610, m=0x2140044, c=0x2140050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2140044, c=0x2140050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb071ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb071ae84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110378) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x21104a8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300610) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300610) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 14 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161af10, j=0x161aee0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x161ae80, m=0x2130044, c=0x2130050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2130044, c=0x2130050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0698e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0698e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x21101e8) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2110318) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161ae80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161ae80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 13 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23005f0, j=0x23005c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300560, m=0x2120044, c=0x2120050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2120044, c=0x2120050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0616e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0616e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x20c0c40) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x21100ac) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 12 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23004c0, j=0x2300490) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300430, m=0x2080044, c=0x2080050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2080044, c=0x2080050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0594e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0594e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x20c0ab0) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x20c0be0) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300430) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300430) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 11 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300410, j=0x23003e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300380, m=0x20f0044, c=0x20f0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x20f0044, c=0x20f0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0512e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0512e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x20c0920) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x20c0a50) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300380) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300380) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 10 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161aad0, j=0x161aaa0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x161aa40, m=0x20b0044, c=0x20b0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x20b0044, c=0x20b0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0490e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0490e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020e88) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020fb8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161aa40) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161aa40) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 9 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23002a0, j=0x2300270) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300210, m=0x2090044, c=0x2090050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2090044, c=0x2090050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb040ee84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb040ee84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020cf8) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020e28) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300210) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300210) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 8 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a9c0, j=0x161a990) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x161a930, m=0x20e0034, c=0x20e0040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x20e0034, c=0x20e0040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb038ce84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb038ce84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020a48) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020b78) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a930) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a930) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 7 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a910, j=0x161a8e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x161a880, m=0x20a0034, c=0x20a0040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x20a0034, c=0x20a0040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb030ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb030ae84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x20208c0) at ../src/SX.m3:151 #9 0x00163596 in CurrencySXProxy__Apply (cl=0x20209e8) at ../I386_DARWIN/CurrencySXProxy.m3 => /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a880) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a880) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 6 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a860, j=0x161a830) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x161a7d0, m=0x2050044, c=0x2050050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2050044, c=0x2050050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0288e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0288e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020658) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020788) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a7d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a7d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 5 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a7b0, j=0x161a780) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x161a720, m=0x2040044, c=0x2040050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2040044, c=0x2040050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0206e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0206e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x20204c8) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x20205f8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a720) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a720) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 4 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a290, j=0x161a6f0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x161a690, m=0x2030044, c=0x2030050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2030044, c=0x2030050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0184e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0184e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020338) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020468) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a690) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a690) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 3 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x1619840, j=0x161a600) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x161a230, m=0x202008c, c=0x202007c, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x202008c, c=0x202007c) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002ba948 in VarProxyDefs__NotifyApply (cl=0x2020098) at ../src/VarProxyDefs.m3:55 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x161a230) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x161a230) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 2 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7ebe in ThreadPThread__InitMutex (m=0x20100ac, root=0x20100a8, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003a7f82 in ThreadPThread__LockMutex (m=0x20100a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x0033f30b in Rd__GetChar (rd=0x20100a8) at ../src/rw/Rd.m3:33 #6 0x0034dffd in Lex__Skip (rd=0x20100a8, cs=0x548018) at ../src/fmtlex/Lex.m3:46 #7 0x003503c3 in Lex__ReadReal (rd=0x20100a8, sign=0xb00809e3, digits=0xb00809fc, digCnt=0xb00809e8, exp=0xb00809ec) at ../src/fmtlex/Lex.m3:569 #8 0x00350ef5 in Lex__LongReal (rd=0x20100a8) at ../src/fmtlex/Lex.m3:662 #9 0x003518f1 in Scan__LongReal (txt=0x201007c) at ../src/fmtlex/Scan.m3:77 #10 0x0030ef75 in XTime__ClApply (cl=0x2004624) at ../src/XTime.m3:185 #11 0x003a9c5b in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #12 0x003a998a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #13 0x9713885d in _pthread_start () #14 0x971386e2 in thread_start () Thread 1 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x16076f0, j=0x16076c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x1607660, m=0x2000084, c=0x30eb8bc, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003aa1f3 in ThreadPThread__XJoin (self=0x1607660, t=0x30eb8a0, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:513 #6 0x003aa2f5 in Thread__Join (t=0x30eb8a0) at ../src/thread/PTHREAD/ThreadPThread.m3:525 #7 0x002ff2b8 in ProcUtils__Wait (c=0x30eb800) at ../src/ProcUtils.m3:318 #8 0x00234ebd in SchemeCommandRunner__RealRunTimeoutCommandApply (proc=0x21e0b44, interp=0x3241ec4, args=0x30e775c) at ../src/SchemeCommandRunner.m3:164 #9 0x00234b4f in SchemeCommandRunner__RunTimeoutCommandApply (proc=0x21e0b44, interp=0x3241ec4, args=0x30e775c) at ../src/SchemeCommandRunner.m3:129 #10 0x00234217 in SchemeCommandRunner__RunCommandApply (proc=0x21e0b44, interp=0x3241ec4, args=0x30e7744) at ../src/SchemeCommandRunner.m3:23 #11 0x0024b81b in SchemePrimitive__EDApply (ed=0x21e01c0, t=0x3245844, interp=0x3241ec4, args=0x30e7744) at ../src/SchemePrimitive.m3:207 #12 0x00246509 in SchemePrimitive__Prims (t=0x3245844, interp=0x3241ec4, args=0x30e7744, x=0x30e5cfc, y=0x30e7730, free=0xbfffea1f) at ../src/SchemePrimitive.m3:580 #13 0x0024b1cb in SchemePrimitive__Apply2 (t=0x3245844, interp=0x3241ec4, a1=0x30e5cfc, a2=0x30e7730) at ../src/SchemePrimitive.m3:549 #14 0x0023c16f in Scheme__EvalInternal (t=0x3241ec4, x=0x30e5c5c, env=0x30e76b4) at ../src/Scheme.m3:585 #15 0x0023bedf in Scheme__EvalInternal (t=0x3241ec4, x=0x30e5bac, env=0x30e76b4) at ../src/Scheme.m3:582 #16 0x0023c35e in Scheme__Eval (t=0x3241ec4, x=0x30e6a6c, envP=0x3241f0c) at ../src/Scheme.m3:353 #17 0x00239bcf in Scheme__EvalInGlobalEnv (t=0x3241ec4, x=0x30e6a6c) at ../src/Scheme.m3:603 #18 0x0002972b in SchemeCalculator__Calc (t=0x3241eb4, arr=0xbfffee3c) at ../src/SchemeCalculator.m3:61 #19 0x0000c8af in EuroDriver__Loop (t=0x3205a80) at ../src/EuroDriver.m3:289 #20 0x00008781 in Main_M3 (mode=1) at ../src/Main.m3:268 #21 0x0039d83d in RTLinker__RunMainBody (m=0x55e420) at ../src/runtime/common/RTLinker.m3:406 #22 0x0039cc99 in RTLinker__AddUnitI (m=0x55e420) at ../src/runtime/common/RTLinker.m3:113 #23 0x0039cd1a in RTLinker__AddUnit (b=0x6be3) at ../src/runtime/common/RTLinker.m3:122 #24 0x0000528c in main (argc=19, argv=0xbffff330, envp=0xbffff380) at _m3main.c:16 From jay.krell at cornell.edu Sun Jan 9 02:46:33 2011 From: jay.krell at cornell.edu (Jay K) Date: Sun, 9 Jan 2011 01:46:33 +0000 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: <20110109014355.0A01F1A205B@async.async.caltech.edu> References: <0A37C595-C896-4B66-9EDF-61BB30645321@cs.purdue.edu> ,<20110109014355.0A01F1A205B@async.async.caltech.edu> Message-ID: Tony raised legit issue w/ my fix. I will try another very soon (tonight). Index: ThreadPThread.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3,v retrieving revision 1.247 diff -u -r1.247 ThreadPThread.m3 --- ThreadPThread.m3??? 9 Jan 2011 00:36:07 -0000??? 1.247 +++ ThreadPThread.m3??? 9 Jan 2011 01:14:16 -0000 @@ -1283,10 +1283,10 @@ ?????? cond: Condition; ?? BEGIN ???? Acquire(joinMu); -??? LockHeap(); ???? FOR i := FIRST(locks) TO LAST(locks) DO ?????? PThreadLockMutex(locks[i], ThisLine(), i); ???? END; +??? LockHeap(); ???? (* Walk activations and lock all threads, conditions. ????? * NOTE: We have initMu, activeMu, so slots ????? * won't change, conditions and mutexes ?- Jay ---------------------------------------- > To: hosking at cs.purdue.edu > Date: Sat, 8 Jan 2011 17:43:55 -0800 > From: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > > Well I spent the whole day figuring out how to update the compiler.. > finally got everything working and I think this is with the very latest > version (Jay just committed something two hours ago and it's in here). > > Or... wait.. did he go back a version and re-introduce the deadlock? > That would explain why it's behaving the same way as it was before... > > Mika > > > > Thread 68 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 > #5 0x97137217 in _cthread_fork_prepare () > #6 0x97137155 in fork () > #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixCommon.m3:75 > #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > Thread 67 (process 32362): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003beb7e in ThreadInternal__Poll (fd=13, read=1, m3timeout=-1) at ../src/thread/Common/ThreadInternal.c:31 > #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x2009550, fd=13, read=1 '\001', interval=-1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003c19a4 in SchedulerPosix__IOWait (fd=13, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 > #4 0x0034f862 in FilePosix__IntermittentRead (h=0x24334f8, b=0xb1df4cd0, mayBlock=1 '\001') at ../src/os/POSIX/FilePosix.m3:220 > #5 0x0035e935 in FileRd__Seek (rd=0x2433518, pos=0, dontBlock=0 '\0') at ../src/rw/FileRd.m3:83 > #6 0x00356338 in Rd__DoSeek (rd=0x2433518) at ../src/rw/Rd.m3:54 > #7 0x003560c1 in UnsafeRd__FastGetChar (rd=0x2433518) at ../src/rw/Rd.m3:43 > #8 0x00356018 in Rd__GetChar (rd=0x2433518) at ../src/rw/Rd.m3:34 > #9 0x00316fbc in ProcUtils__SSApply (self=0x242f128) at ../src/ProcUtils.m3:54 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009550) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009550) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 66 (process 32362): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003beb7e in ThreadInternal__Poll (fd=11, read=1, m3timeout=-1) at ../src/thread/Common/ThreadInternal.c:31 > #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x20094a0, fd=11, read=1 '\001', interval=-1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003c19a4 in SchedulerPosix__IOWait (fd=11, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 > #4 0x0034f862 in FilePosix__IntermittentRead (h=0x239f994, b=0xb1d72cd0, mayBlock=1 '\001') at ../src/os/POSIX/FilePosix.m3:220 > #5 0x0035e935 in FileRd__Seek (rd=0x239f9b4, pos=0, dontBlock=0 '\0') at ../src/rw/FileRd.m3:83 > #6 0x00356338 in Rd__DoSeek (rd=0x239f9b4) at ../src/rw/Rd.m3:54 > #7 0x003560c1 in UnsafeRd__FastGetChar (rd=0x239f9b4) at ../src/rw/Rd.m3:43 > #8 0x00356018 in Rd__GetChar (rd=0x239f9b4) at ../src/rw/Rd.m3:34 > #9 0x00316fbc in ProcUtils__SSApply (self=0x242f0f0) at ../src/ProcUtils.m3:54 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x20094a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20094a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 65 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 > #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 > #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 > #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 > #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 > #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 > #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 > #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 > #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 > #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 > #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 > #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 > #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 > #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 > #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 > #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #33 0x9713885d in _pthread_start () > #34 0x971386e2 in thread_start () > > Thread 64 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 > #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 > #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 > #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 > #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 > #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 > #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 > #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 > #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 > #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 > #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 > #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #28 0x9713885d in _pthread_start () > #29 0x971386e2 in thread_start () > > Thread 60 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 > #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 > #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 > #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 59 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 > #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 > #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 > #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 > #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 > #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 > #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 > #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 > #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #19 0x9713885d in _pthread_start () > #20 0x971386e2 in thread_start () > > Thread 54 (process 32362): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003beb7e in ThreadInternal__Poll (fd=10, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:31 > #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x161dfc0, fd=10, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=10, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > #4 0x00346693 in TCP__GetBytesFD (t=0x22211d8, arr=0x22f400c, timeout=-1) at ../src/POSIX/TCP.m3:326 > #5 0x00348786 in ConnRW__RdSeek (rd=0x2221260, pos=267, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 > #6 0x003591ce in Rd__GetLine (rd=0x2221260) at ../src/rw/Rd.m3:426 > #7 0x002b2826 in TWSTester__RApply (cl=0x2221290) at ../src/TWSTester.m3:382 > #8 0x003c0ea5 in ThreadPThread__RunThread (me=0x161dfc0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #9 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161dfc0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #10 0x9713885d in _pthread_start () > #11 0x971386e2 in thread_start () > > Thread 53 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161deb0, mutex=0x161e1c0, m3timeout=1294411605.506855) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x161e160, n=0.5, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=0.5) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x00297efc in PMTWS__TSCApply (cl=0x2221088) at ../src/PMTWS.m3:229 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e160) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e160) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 52 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 > #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 > #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 > #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #14 0x9713885d in _pthread_start () > #15 0x971386e2 in thread_start () > > Thread 51 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 > #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 > #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 > #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 > #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #14 0x9713885d in _pthread_start () > #15 0x971386e2 in thread_start () > > Thread 50 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2005ac0, mutex=0x20059b0, m3timeout=1294411629.006319) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x2005a60, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000e162d in DBTable_gcoms_aux_ordrMonitor__ApplyC (cl=0x229a528) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2005a60) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2005a60) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 49 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2005a40, mutex=0x20058e0, m3timeout=1294411606.0014169) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x20059e0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000e357e in DBTable_gcoms_aux_ordrMonitor__CleanerApply (cl=0x229a720) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x20059e0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20059e0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 48 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161de60, mutex=0x161aa50, m3timeout=1294411629.003248) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x161aae0, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000d2f00 in DBTable_gcoms_fillMonitor__ApplyC (cl=0x229a258) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161aae0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161aae0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 47 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161ac10, mutex=0x1625c10, m3timeout=1294411605.9982891) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x161aa80, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000d50b3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=0x229a450) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161aa80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161aa80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 46 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2004440, mutex=0x2004410, m3timeout=1294411678.997467) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x20043b0, n=100, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=100) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000da48e in DBTable_gcoms_aux_instrumentMonitor__ApplyC (cl=0x1711268) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x20043b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20043b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 45 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x20038d0, mutex=0x2004380, m3timeout=1294411605.9944479) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x2004320, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000dc415 in DBTable_gcoms_aux_instrumentMonitor__CleanerApply (cl=0x1711460) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2004320) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2004320) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 44 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x20071d0, mutex=0x20070e0, m3timeout=1294411678.9916439) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x2007170, n=100, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=100) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x224daf0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007170) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007170) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 43 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x20046e0, mutex=0x2006f50, m3timeout=1294411605.83337) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x2007110, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x224dce8) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007110) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007110) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 42 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161d830, mutex=0x161d780, m3timeout=1294411678.981461) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x161dae0, n=100, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=100) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x224d768) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161dae0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161dae0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 41 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161d7e0, mutex=0x161da50, m3timeout=1294411605.8302381) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x161da80, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x224d960) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161da80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161da80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 40 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161d940, mutex=0x161d910, m3timeout=1294411678.8294799) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x161d8b0, n=100, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=100) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000c4b88 in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=0x224d348) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161d8b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161d8b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 39 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x16262c0, mutex=0x161d750, m3timeout=1294411605.8264539) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x161d850, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000c6a9a in DBTable_gcoms_ordr_statusMonitor__CleanerApply (cl=0x224d540) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161d850) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161d850) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 38 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2003bc0, mutex=0x2003cd0, m3timeout=1294411628.744529) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x2003c70, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000b4d70 in DBTable_gcoms_strategyMonitor__ApplyC (cl=0x228c348) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2003c70) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2003c70) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 37 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2003ba0, mutex=0x2003be0, m3timeout=1294411605.7216971) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x2003c10, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000b6cc1 in DBTable_gcoms_strategyMonitor__CleanerApply (cl=0x228c538) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2003c10) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2003c10) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 36 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x16256b0, mutex=0x16255a0, m3timeout=1294411628.815861) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x1625650, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x228c080) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x1625650) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1625650) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 35 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x1625630, mutex=0x1625570, m3timeout=1294411605.7159209) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x16255d0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x228c270) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x16255d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x16255d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 34 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2003a30, mutex=0x20031e0, m3timeout=1294411628.7167931) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x20039d0, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000d2f00 in DBTable_gcoms_fillMonitor__ApplyC (cl=0x2255d40) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x20039d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20039d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 33 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x20034c0, mutex=0x20038a0, m3timeout=1294411605.7081449) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x2003970, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000d50b3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=0x2255f30) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2003970) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2003970) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 32 (process 32362): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003beb7e in ThreadInternal__Poll (fd=9, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:31 > #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x2003780, fd=9, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=9, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > #4 0x00346693 in TCP__GetBytesFD (t=0x227c15c, arr=0x227600c, timeout=-1) at ../src/POSIX/TCP.m3:326 > #5 0x00348786 in ConnRW__RdSeek (rd=0x227a010, pos=0, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 > #6 0x003591ce in Rd__GetLine (rd=0x227a010) at ../src/rw/Rd.m3:426 > #7 0x002678d9 in UpdateMonitor__InApplyP (cl=0x227a040) at ../src/UpdateMonitor.m3:240 > #8 0x003c0ea5 in ThreadPThread__RunThread (me=0x2003780) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #9 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2003780) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #10 0x9713885d in _pthread_start () > #11 0x971386e2 in thread_start () > > Thread 31 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2003420, j=0x2003720) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x20036c0, m=0x227c220, c=0x227c22c, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x227c220, c=0x227c22c) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002674cc in UpdateMonitor__OutApplyP (p=0x227c17c) at ../src/UpdateMonitor.m3:178 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x20036c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20036c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 30 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x161a290, j=0x1625020) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x1624fc0, m=0x2255ac0, c=0x2255af4, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x2255ac0, c=0x2255af4) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x0026a003 in DesynchronizedDB__PApply (p=0x2255b04) at ../src/DesynchronizedDB.m3:216 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x1624fc0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1624fc0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 29 (process 32362): > #0 0x9716c1d6 in __wait4 () > #1 0x9716c1c9 in waitpid$UNIX2003 () > #2 0x003c50d5 in Uexec__waitpid (i=32392, j=0xb0e36b7c, k=0) at ../src/unix/Common/Uexec.c:66 > #3 0x003c1d31 in SchedulerPosix__WaitProcess (pid=32392, status=0xb0e36b7c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 > #4 0x003536dc in Process__Wait (p=0x22585fc) at ../src/os/POSIX/ProcessPosixCommon.m3:275 > #5 0x003163ad in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:185 > #6 0x00316d6e in ProcUtils__Apply (self=0x2256284) at ../src/ProcUtils.m3:274 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x16251a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x16251a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 28 (process 32362): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003beb7e in ThreadInternal__Poll (fd=8, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:31 > #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x20030c0, fd=8, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=8, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > #4 0x00346693 in TCP__GetBytesFD (t=0x22562c4, arr=0x225e00c, timeout=-1) at ../src/POSIX/TCP.m3:326 > #5 0x00348786 in ConnRW__RdSeek (rd=0x2256318, pos=0, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 > #6 0x00356338 in Rd__DoSeek (rd=0x2256318) at ../src/rw/Rd.m3:54 > #7 0x003560c1 in UnsafeRd__FastGetChar (rd=0x2256318) at ../src/rw/Rd.m3:43 > #8 0x00356018 in Rd__GetChar (rd=0x2256318) at ../src/rw/Rd.m3:34 > #9 0x002c62c5 in ReadLine__ReadALine (t=0x225600c) at ../src/ReadLine.m3:151 > #10 0x002c877e in ReadLine__ReadLine (t=0x225600c) at ../src/ReadLine.m3:411 > #11 0x0023b1fb in SchemeReadLine__GetCh (p=0x2256348) at ../src/SchemeReadLine.m3:80 > #12 0x0025f4b3 in SchemeInputPort__NextToken (t=0x2256348, wx=0x22563cc) at ../src/SchemeInputPort.m3:309 > #13 0x0025eb94 in SchemeInputPort__Read (t=0x2256348) at ../src/SchemeInputPort.m3:177 > #14 0x0023ba70 in SchemeReadLine__MainLoop (rl=0x225600c, scm=0x22340d0) at ../src/SchemeReadLine.m3:146 > #15 0x00006c23 in Main__SCApply (c=0x2255620) at ../src/Main.m3:92 > #16 0x003c0ea5 in ThreadPThread__RunThread (me=0x20030c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #17 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20030c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #18 0x9713885d in _pthread_start () > #19 0x971386e2 in thread_start () > > Thread 27 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 26 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20011c0, j=0x2001e10) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2001db0, m=0x1738078, c=0x17380a8, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1738078, c=0x17380a8) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x0009e3d6 in GCOMSOrderStatus__Apply (cl=0x17380b8) at ../src/GCOMSOrderStatus.m3:166 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001db0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001db0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 25 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x1619840, j=0x1619920) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x161a170, m=0x15aab74, c=0x15aab80, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x15aab74, c=0x15aab80) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x000a4482 in GCOMSBusyOrders__Apply (cl=0x15aab90) at ../src/GCOMSBusyOrders.m3:63 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a170) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a170) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 24 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20011a0, j=0x2001170) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2001110, m=0x173e044, c=0x173e050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x173e044, c=0x173e050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0bace84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0bace84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x1594280) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15943b0) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001110) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001110) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 23 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20010f0, j=0x20010c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2001060, m=0x1724034, c=0x1724040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1724034, c=0x1724040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0b2ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0b2ae84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15940f0) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1594220) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001060) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001060) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 22 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2001040, j=0x2001010) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000fb0, m=0x1722034, c=0x1722040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1722034, c=0x1722040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0aa8e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0aa8e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15adb40) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad7cc) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000fb0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000fb0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 21 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000f90, j=0x2000f60) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000f00, m=0x1720034, c=0x1720040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1720034, c=0x1720040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0a26e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0a26e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15adae0) at ../src/SX.m3:151 > #9 0x0016017c in CurrencySXProxy__Apply (cl=0x15ad7b0) at ../I386_DARWIN/CurrencySXProxy.m3 => /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000f00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000f00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 20 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000ee0, j=0x2000eb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000e50, m=0x173c044, c=0x173c050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x173c044, c=0x173c050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb09a4e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb09a4e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad450) at ../src/SX.m3:151 > #9 0x002d3613 in BoolSXProxy__Apply (cl=0x15ad794) at ../I386_DARWIN/BoolSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000e50) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000e50) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 19 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000e30, j=0x2000e00) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000da0, m=0x171e034, c=0x171e040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x171e034, c=0x171e040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0922e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0922e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad3e8) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad778) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000da0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000da0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 18 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000d80, j=0x2000d50) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000cf0, m=0x1740044, c=0x1740050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1740044, c=0x1740050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb08a0e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb08a0e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad380) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad75c) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000cf0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000cf0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 17 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000cd0, j=0x2000ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000c40, m=0x1704044, c=0x1704050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1704044, c=0x1704050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb081ee84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb081ee84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad318) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad740) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000c40) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000c40) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 16 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000c20, j=0x2000bf0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000b90, m=0x1702044, c=0x1702050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1702044, c=0x1702050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb079ce84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb079ce84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad2b0) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad724) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000b90) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000b90) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 15 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000b70, j=0x2000b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000ae0, m=0x173a044, c=0x173a050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x173a044, c=0x173a050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb071ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb071ae84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad248) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad708) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000ae0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000ae0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 14 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000ac0, j=0x2000a90) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000a30, m=0x171a034, c=0x171a040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x171a034, c=0x171a040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0698e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0698e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad1e0) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad6ec) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000a30) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000a30) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 13 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000a10, j=0x20009e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000980, m=0x1718034, c=0x1718040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1718034, c=0x1718040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0616e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0616e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad618) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad6d0) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000980) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000980) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 12 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000960, j=0x2000930) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x20008d0, m=0x1716034, c=0x1716040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1716034, c=0x1716040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0594e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0594e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad5b0) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad6b4) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x20008d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20008d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 11 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20008b0, j=0x2000880) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000820, m=0x1714034, c=0x1714040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1714034, c=0x1714040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0512e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0512e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad548) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad698) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000820) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000820) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 10 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000800, j=0x20007d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000770, m=0x1712034, c=0x1712040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1712034, c=0x1712040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0490e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0490e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15acea8) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad67c) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000770) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000770) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 9 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000750, j=0x2000720) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x20006c0, m=0x15b6034, c=0x15b6040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x15b6034, c=0x15b6040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb040ee84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb040ee84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591ea8) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1591fd8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x20006c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20006c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 8 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20006a0, j=0x2000670) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000610, m=0x15b4034, c=0x15b4040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x15b4034, c=0x15b4040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb038ce84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb038ce84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591bf8) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1591d28) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000610) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000610) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 7 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20005f0, j=0x20005c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000560, m=0x15b2034, c=0x15b2040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x15b2034, c=0x15b2040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb030ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb030ae84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591a70) at ../src/SX.m3:151 > #9 0x0016017c in CurrencySXProxy__Apply (cl=0x1591b98) at ../I386_DARWIN/CurrencySXProxy.m3 => /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 6 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000540, j=0x2000510) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x20004b0, m=0x171c0c0, c=0x171c0cc, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x171c0c0, c=0x171c0cc) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0288e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0288e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591808) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1591938) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x20004b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20004b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 5 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000490, j=0x2000460) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000400, m=0x15b0034, c=0x15b0040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x15b0034, c=0x15b0040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0206e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0206e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591678) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15917a8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000400) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000400) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 4 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20003e0, j=0x20003b0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000350, m=0x15ae034, c=0x15ae040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x15ae034, c=0x15ae040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0184e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0184e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15914e8) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1591618) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000350) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000350) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 3 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000150, j=0x20002c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000260, m=0x159123c, c=0x159122c, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x159123c, c=0x159122c) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002ce79c in VarProxyDefs__NotifyApply (cl=0x1591248) at ../src/VarProxyDefs.m3:55 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000260) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000260) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 2 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 > #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 > #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 > #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 > #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > Thread 1 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x16076f0, j=0x16076c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x1607660, m=0x15ac4b0, c=0x242f190, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003c1499 in ThreadPThread__XJoin (self=0x1607660, t=0x242f174, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:513 > #6 0x003c15ae in Thread__Join (t=0x242f174) at ../src/thread/PTHREAD/ThreadPThread.m3:525 > #7 0x003158c9 in ProcUtils__Wait (c=0x242f0d4) at ../src/ProcUtils.m3:318 > #8 0x0024618a in SchemeCommandRunner__RealRunTimeoutCommandApply (proc=0x1738cc4, interp=0x2367eac, args=0x239bd88) at ../src/SchemeCommandRunner.m3:164 > #9 0x00245e07 in SchemeCommandRunner__RunTimeoutCommandApply (proc=0x1738cc4, interp=0x2367eac, args=0x239bd88) at ../src/SchemeCommandRunner.m3:129 > #10 0x00245405 in SchemeCommandRunner__RunCommandApply (proc=0x1738cc4, interp=0x2367eac, args=0x239bd70) at ../src/SchemeCommandRunner.m3:23 > #11 0x0025c183 in SchemePrimitive__EDApply (ed=0x1738340, t=0x236b540, interp=0x2367eac, args=0x239bd70) at ../src/SchemePrimitive.m3:207 > #12 0x00256d12 in SchemePrimitive__Prims (t=0x236b540, interp=0x2367eac, args=0x239bd70, x=0x239a328, y=0x239bd5c, free=0xbfffe82f) at ../src/SchemePrimitive.m3:580 > #13 0x0025bb2b in SchemePrimitive__Apply2 (t=0x236b540, interp=0x2367eac, a1=0x239a328, a2=0x239bd5c) at ../src/SchemePrimitive.m3:549 > #14 0x0024d640 in Scheme__EvalInternal (t=0x2367eac, x=0x239a288, env=0x239bce0) at ../src/Scheme.m3:585 > #15 0x0024d3a8 in Scheme__EvalInternal (t=0x2367eac, x=0x239a1d8, env=0x239bce0) at ../src/Scheme.m3:582 > #16 0x0024d82d in Scheme__Eval (t=0x2367eac, x=0x239b098, envP=0x2367ef4) at ../src/Scheme.m3:353 > #17 0x0024b005 in Scheme__EvalInGlobalEnv (t=0x2367eac, x=0x239b098) at ../src/Scheme.m3:603 > #18 0x0002aebc in SchemeCalculator__Calc (t=0x2367e9c, arr=0xbfffecdc) at ../src/SchemeCalculator.m3:61 > #19 0x0000cbd3 in EuroDriver__Loop (t=0x224da38) at ../src/EuroDriver.m3:289 > #20 0x00008820 in Main_M3 (mode=1) at ../src/Main.m3:268 > #21 0x003b465a in RTLinker__RunMainBody (m=0x59e4c0) at ../src/runtime/common/RTLinker.m3:406 > #22 0x003b3a8f in RTLinker__AddUnitI (m=0x59e4c0) at ../src/runtime/common/RTLinker.m3:113 > #23 0x003b3b13 in RTLinker__AddUnit (b=0x6c5d) at ../src/runtime/common/RTLinker.m3:122 > #24 0x000052ec in main (argc=19, argv=0xbffff1b4, envp=0xbffff204) at _m3main.c:16 > > Thread 75 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003ac2e3 in ThreadPThread__PThreadLockMutex (mutex=0x5d3ac0, line=1288, index=2) at ../src/thread/PTHREAD/ThreadPThread.m3:1262 > #4 0x003ac409 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1288 > #5 0x97137217 in _cthread_fork_prepare () > #6 0x97137155 in fork () > #7 0x0033bc4d in ProcessPosixCommon__Create_ForkExec (cmd=0x31e02ac, params=0x31e03c8, env=0x0, wd=0x53bf44, stdin=0x0, stdout=0x30e91cc, stderr=0x30ea700) at ../src/os/POSIX/ProcessPosixCommon.m3:75 > #8 0x0033d137 in Process__Create (cmd=0x31e02ac, params=0x31e03c8, env=0x0, wd=0x53bf44, stdin=0x0, stdout=0x30e91cc, stderr=0x30ea700) at ../src/os/POSIX/ProcessPosix.m3:21 > #9 0x002ffdbc in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > #10 0x003007c1 in ProcUtils__Apply (self=0x30eb88c) at ../src/ProcUtils.m3:274 > #11 0x003a9c5b in ThreadPThread__RunThread (me=0x161dd00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x003a998a in ThreadPThread__ThreadBase (param=0x161dd00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > Thread 74 (process 67010): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003a7b74 in ThreadInternal__Poll (fd=13, read=1, m3timeout=-1) at ../src/thread/Common/ThreadInternal.c:57 > #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x161dc50, fd=13, read=1 '\001', interval=-1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003aa6dc in SchedulerPosix__IOWait (fd=13, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 > #4 0x00338b5f in FilePosix__IntermittentRead (h=0x30ea6f0, b=0xb1ef8cf0, mayBlock=1 '\001') at ../src/os/POSIX/FilePosix.m3:220 > #5 0x00347c68 in FileRd__Seek (rd=0x30ea710, pos=0, dontBlock=0 '\0') at ../src/rw/FileRd.m3:83 > #6 0x0033f64d in Rd__DoSeek (rd=0x30ea710) at ../src/rw/Rd.m3:54 > #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=0x30ea710) at ../src/rw/Rd.m3:43 > #8 0x0033f32d in Rd__GetChar (rd=0x30ea710) at ../src/rw/Rd.m3:34 > #9 0x00300a0b in ProcUtils__SSApply (self=0x30eb854) at ../src/ProcUtils.m3:54 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161dc50) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161dc50) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 73 (process 67010): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003a7b74 in ThreadInternal__Poll (fd=11, read=1, m3timeout=-1) at ../src/thread/Common/ThreadInternal.c:57 > #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x161dbc0, fd=11, read=1 '\001', interval=-1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003aa6dc in SchedulerPosix__IOWait (fd=11, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 > #4 0x00338b5f in FilePosix__IntermittentRead (h=0x30e91bc, b=0xb1e76cf0, mayBlock=1 '\001') at ../src/os/POSIX/FilePosix.m3:220 > #5 0x00347c68 in FileRd__Seek (rd=0x30e91dc, pos=0, dontBlock=0 '\0') at ../src/rw/FileRd.m3:83 > #6 0x0033f64d in Rd__DoSeek (rd=0x30e91dc) at ../src/rw/Rd.m3:54 > #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=0x30e91dc) at ../src/rw/Rd.m3:43 > #8 0x0033f32d in Rd__GetChar (rd=0x30e91dc) at ../src/rw/Rd.m3:34 > #9 0x00300a0b in ProcUtils__SSApply (self=0x30eb81c) at ../src/ProcUtils.m3:54 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161dbc0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161dbc0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 72 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7ebe in ThreadPThread__InitMutex (m=0x31339fc, root=0x31339f8, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003a7f82 in ThreadPThread__LockMutex (m=0x31339f8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x0033f30b in Rd__GetChar (rd=0x31339f8) at ../src/rw/Rd.m3:33 > #6 0x0034dffd in Lex__Skip (rd=0x31339f8, cs=0x548018) at ../src/fmtlex/Lex.m3:46 > #7 0x003503c3 in Lex__ReadReal (rd=0x31339f8, sign=0xb1df47c3, digits=0xb1df47dc, digCnt=0xb1df47c8, exp=0xb1df47cc) at ../src/fmtlex/Lex.m3:569 > #8 0x00350ef5 in Lex__LongReal (rd=0x31339f8) at ../src/fmtlex/Lex.m3:662 > #9 0x003518f1 in Scan__LongReal (txt=0x25768e8) at ../src/fmtlex/Scan.m3:77 > #10 0x0024f849 in SchemeInputPort__NextToken (t=0x30d4aec, wx=0x31337e8) at ../src/SchemeInputPort.m3:439 > #11 0x0024fb9c in SchemeInputPort__ReadTail2 (t=0x30d4aec, wx=0x31337e8) at ../src/SchemeInputPort.m3:240 > #12 0x0024e100 in SchemeInputPort__Read (t=0x30d4aec) at ../src/SchemeInputPort.m3:179 > #13 0x0024e2bc in SchemeInputPort__Read (t=0x30d4aec) at ../src/SchemeInputPort.m3:191 > #14 0x0024fb73 in SchemeInputPort__ReadTail2 (t=0x30d4aec, wx=0x3133620) at ../src/SchemeInputPort.m3:240 > #15 0x0024e100 in SchemeInputPort__Read (t=0x30d4aec) at ../src/SchemeInputPort.m3:179 > #16 0x0024fb73 in SchemeInputPort__ReadTail2 (t=0x30d4aec, wx=0x3133548) at ../src/SchemeInputPort.m3:240 > #17 0x0024e100 in SchemeInputPort__Read (t=0x30d4aec) at ../src/SchemeInputPort.m3:179 > #18 0x0023c6cd in Scheme__LoadPort (t=0x30d018c, in=0x30d4aec) at ../src/Scheme.m3:317 > #19 0x002399e3 in Scheme__LoadRd (t=0x30d018c, rd=0x30d3cf0, fn=0x0) at ../src/Scheme.m3:174 > #20 0x0023d255 in Scheme__ReadInitialFiles (t=0x30d018c, files=0x46fc8c) at ../src/Scheme.m3:134 > #21 0x0023d5e7 in Scheme__Init2 (t=0x30d018c, input=0x20003b4, output=0x20013e8, files=0x46fc8c, env=0x0) at ../src/Scheme.m3:127 > #22 0x00239461 in Scheme__Init (t=0x30d018c, files=0x46fc8c, env=0x0) at ../src/Scheme.m3:102 > #23 0x00029420 in SchemeCalculator__Init (t=0x30d017c, code=0x263fccc) at ../src/SchemeCalculator.m3:28 > #24 0x0000deef in EuroDriver__OApply (cl=0x3241b88) at ../src/EuroDriver.m3:865 > #25 0x003a9c5b in ThreadPThread__RunThread (me=0x2307650) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #26 0x003a998a in ThreadPThread__ThreadBase (param=0x2307650) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #27 0x9713885d in _pthread_start () > #28 0x971386e2 in thread_start () > > Thread 71 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1345 > #4 0x003995a6 in RTHeapRep__RegisterFinalCleanup (r=0x31239f8, p=0x3a7d52) at ../src/runtime/common/RTCollector.m3:2148 > #5 0x003a7f1e in ThreadPThread__InitMutex (m=0x31239fc, root=0x31239f8, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > #6 0x003a7f82 in ThreadPThread__LockMutex (m=0x31239f8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #7 0x0033f30b in Rd__GetChar (rd=0x31239f8) at ../src/rw/Rd.m3:33 > #8 0x0034dffd in Lex__Skip (rd=0x31239f8, cs=0x548018) at ../src/fmtlex/Lex.m3:46 > #9 0x003503c3 in Lex__ReadReal (rd=0x31239f8, sign=0xb1d727c3, digits=0xb1d727dc, digCnt=0xb1d727c8, exp=0xb1d727cc) at ../src/fmtlex/Lex.m3:569 > #10 0x00350ef5 in Lex__LongReal (rd=0x31239f8) at ../src/fmtlex/Lex.m3:662 > #11 0x003518f1 in Scan__LongReal (txt=0x25768e8) at ../src/fmtlex/Scan.m3:77 > #12 0x0024f849 in SchemeInputPort__NextToken (t=0x3264aec, wx=0x31237e8) at ../src/SchemeInputPort.m3:439 > #13 0x0024fb9c in SchemeInputPort__ReadTail2 (t=0x3264aec, wx=0x31237e8) at ../src/SchemeInputPort.m3:240 > #14 0x0024e100 in SchemeInputPort__Read (t=0x3264aec) at ../src/SchemeInputPort.m3:179 > #15 0x0024e2bc in SchemeInputPort__Read (t=0x3264aec) at ../src/SchemeInputPort.m3:191 > #16 0x0024fb73 in SchemeInputPort__ReadTail2 (t=0x3264aec, wx=0x3123620) at ../src/SchemeInputPort.m3:240 > #17 0x0024e100 in SchemeInputPort__Read (t=0x3264aec) at ../src/SchemeInputPort.m3:179 > #18 0x0024fb73 in SchemeInputPort__ReadTail2 (t=0x3264aec, wx=0x3123548) at ../src/SchemeInputPort.m3:240 > #19 0x0024e100 in SchemeInputPort__Read (t=0x3264aec) at ../src/SchemeInputPort.m3:179 > #20 0x0023c6cd in Scheme__LoadPort (t=0x326018c, in=0x3264aec) at ../src/Scheme.m3:317 > #21 0x002399e3 in Scheme__LoadRd (t=0x326018c, rd=0x3263cf0, fn=0x0) at ../src/Scheme.m3:174 > #22 0x0023d255 in Scheme__ReadInitialFiles (t=0x326018c, files=0x46fc8c) at ../src/Scheme.m3:134 > #23 0x0023d5e7 in Scheme__Init2 (t=0x326018c, input=0x20003b4, output=0x20013e8, files=0x46fc8c, env=0x0) at ../src/Scheme.m3:127 > #24 0x00239461 in Scheme__Init (t=0x326018c, files=0x46fc8c, env=0x0) at ../src/Scheme.m3:102 > #25 0x00029420 in SchemeCalculator__Init (t=0x326017c, code=0x263fccc) at ../src/SchemeCalculator.m3:28 > #26 0x0000deef in EuroDriver__OApply (cl=0x3241af0) at ../src/EuroDriver.m3:865 > #27 0x003a9c5b in ThreadPThread__RunThread (me=0x23075c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #28 0x003a998a in ThreadPThread__ThreadBase (param=0x23075c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #29 0x9713885d in _pthread_start () > #30 0x971386e2 in thread_start () > > Thread 67 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7ebe in ThreadPThread__InitMutex (m=0x2686284, root=0x2686280, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003a7f82 in ThreadPThread__LockMutex (m=0x2686280) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x003a7d30 in Thread__Acquire (m=0x2686280) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #6 0x00343175 in RdClass__Lock (rd=0x2686280) at ../src/rw/Rd.m3:521 > #7 0x0024d9ef in SchemeInputPort__Lock (t=0x2686368) at ../src/SchemeInputPort.m3:72 > #8 0x0024e87d in SchemeInputPort__NextToken (t=0x2686368, wx=0x2686388) at ../src/SchemeInputPort.m3:299 > #9 0x0024e0bb in SchemeInputPort__Read (t=0x2686368) at ../src/SchemeInputPort.m3:177 > #10 0x00239a38 in Scheme__LoadEval (t=0x254018c, rd=0x2686280) at ../src/Scheme.m3:291 > #11 0x00239abd in Scheme__LoadEvalText (t=0x254018c, txt=0x263fccc) at ../src/Scheme.m3:306 > #12 0x00029574 in SchemeCalculator__Calc (t=0x254017c, arr=0xb1cf09e4) at ../src/SchemeCalculator.m3:47 > #13 0x0000ee50 in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > #14 0x0000e7d6 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > #15 0x000103ca in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > #16 0x0000e3a2 in EuroDriver__OApply (cl=0x3018bb0) at ../src/EuroDriver.m3:892 > #17 0x003a9c5b in ThreadPThread__RunThread (me=0x23054a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #18 0x003a998a in ThreadPThread__ThreadBase (param=0x23054a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #19 0x9713885d in _pthread_start () > #20 0x971386e2 in thread_start () > > Thread 66 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x230d020, j=0x2305470) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2305410, m=0x311a158, c=0x311a164, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x311a158, c=0x311a164) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb1c6ecb8, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb1c6ecb8, touched=0x0) at ../src/SX.m3:149 > #8 0x0001063a in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > #9 0x0000e3a2 in EuroDriver__OApply (cl=0x3018b18) at ../src/EuroDriver.m3:892 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2305410) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2305410) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 62 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x23019d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x31b1584) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x003a7d30 in Thread__Acquire (m=0x31b1584) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #5 0x002c5bb6 in SX__Lock (arr=0x327c430) at ../src/SX.m3:318 > #6 0x002c5496 in SXSelect__WaitE (on=0xb1beccb8, except=0x0, touched=0x0) at ../src/SX.m3:241 > #7 0x002c4acd in SXSelect__Wait (on=0xb1beccb8, touched=0x0) at ../src/SX.m3:149 > #8 0x0001063a in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > #9 0x0000e3a2 in EuroDriver__OApply (cl=0x21fcc00) at ../src/EuroDriver.m3:892 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x1626040) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x1626040) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 61 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7ebe in ThreadPThread__InitMutex (m=0x252c4b4, root=0x252c4b0, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003a7f82 in ThreadPThread__LockMutex (m=0x252c4b0) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x003a7d30 in Thread__Acquire (m=0x252c4b0) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #6 0x00343175 in RdClass__Lock (rd=0x252c4b0) at ../src/rw/Rd.m3:521 > #7 0x0024d9ef in SchemeInputPort__Lock (t=0x252c598) at ../src/SchemeInputPort.m3:72 > #8 0x0024e87d in SchemeInputPort__NextToken (t=0x252c598, wx=0x252c5b8) at ../src/SchemeInputPort.m3:299 > #9 0x0024e0bb in SchemeInputPort__Read (t=0x252c598) at ../src/SchemeInputPort.m3:177 > #10 0x00239a38 in Scheme__LoadEval (t=0x26f018c, rd=0x252c4b0) at ../src/Scheme.m3:291 > #11 0x00239abd in Scheme__LoadEvalText (t=0x26f018c, txt=0x263fccc) at ../src/Scheme.m3:306 > #12 0x00029574 in SchemeCalculator__Calc (t=0x26f017c, arr=0xb1b6a864) at ../src/SchemeCalculator.m3:47 > #13 0x0000ee50 in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > #14 0x0000e7d6 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > #15 0x000103ca in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > #16 0x0000e3a2 in EuroDriver__OApply (cl=0x21fcb68) at ../src/EuroDriver.m3:892 > #17 0x003a9c5b in ThreadPThread__RunThread (me=0x1625f80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #18 0x003a998a in ThreadPThread__ThreadBase (param=0x1625f80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #19 0x9713885d in _pthread_start () > #20 0x971386e2 in thread_start () > > Thread 54 (process 67010): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003a7b74 in ThreadInternal__Poll (fd=10, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:57 > #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x23071d0, fd=10, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=10, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > #4 0x003344ff in TCP__GetBytesFD (t=0x3050f80, arr=0x3053048, timeout=-1) at ../src/POSIX/TCP.m3:326 > #5 0x003365ce in ConnRW__RdSeek (rd=0x3053018, pos=390, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 > #6 0x003424e3 in Rd__GetLine (rd=0x3053018) at ../src/rw/Rd.m3:426 > #7 0x002a00d4 in TWSTester__RApply (cl=0x3055054) at ../src/TWSTester.m3:382 > #8 0x003a9c5b in ThreadPThread__RunThread (me=0x23071d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #9 0x003a998a in ThreadPThread__ThreadBase (param=0x23071d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #10 0x9713885d in _pthread_start () > #11 0x971386e2 in thread_start () > > Thread 53 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x1621150, mutex=0x1621120, m3timeout=1294537044.5119109) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x16210c0, n=0.5, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=0.5) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x00286610 in PMTWS__TSCApply (cl=0x3050e30) at ../src/PMTWS.m3:229 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x16210c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x16210c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 52 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1345 > #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x1621054) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x0038f2c7 in RTAllocator__GetTracedObj (def=0x5d6bf4) at ../src/runtime/common/RTAllocator.m3:224 > #6 0x0038ed60 in RTHooks__AllocateTracedObj (defn=0x5d6bf4) at ../src/runtime/common/RTAllocator.m3:122 > #7 0x003bc686 in RTHooks__Concat (t=0x3240a08, u=0x52c460) at ../src/text/TextCat.m3:28 > #8 0x0029e655 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > #9 0x0029ea07 in TWSTester__ReqMktData (t=0x30505a8, tickerId=4, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > #10 0x002aa233 in TWSTestBridge__MreqMktData (t=0x30505a8, tickerId=4, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > #11 0x00286034 in PMTWS__TSCApply (cl=0x3050dec) at ../src/PMTWS.m3:210 > #12 0x003a9c5b in ThreadPThread__RunThread (me=0x1621010) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #13 0x003a998a in ThreadPThread__ThreadBase (param=0x1621010) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #14 0x9713885d in _pthread_start () > #15 0x971386e2 in thread_start () > > Thread 51 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1345 > #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x1620ed4) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x0038f048 in RTAllocator__GetTracedRef (def=0x5711e0) at ../src/runtime/common/RTAllocator.m3:202 > #6 0x0038ed2f in RTHooks__AllocateTracedRef (defn=0x5711e0) at ../src/runtime/common/RTAllocator.m3:115 > #7 0x000a8f49 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x328f110, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > #8 0x000a5ecc in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x26608c0, res=0x328f110) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > #9 0x00085c9f in GCOMSPortfolio__Lock (t=0x2660590) at ../src/GCOMSPortfolio.m3:94 > #10 0x000288d9 in SXPortfolio__Scan (t=0x300c578) at ../src/SXPortfolio.m3:47 > #11 0x0002920d in SXPortfolio__Apply (cl=0x3050324) at ../src/SXPortfolio.m3:113 > #12 0x003a9c5b in ThreadPThread__RunThread (me=0x1620e90) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #13 0x003a998a in ThreadPThread__ThreadBase (param=0x1620e90) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #14 0x9713885d in _pthread_start () > #15 0x971386e2 in thread_start () > > Thread 50 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4ad944, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 > #5 0x000d9ad8 in DBTable_gcoms_aux_ordrMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #6 0x000d9cdf in DBTable_gcoms_aux_ordrMonitor__CheckForNew (cl=0x300c218) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #7 0x000d9a01 in DBTable_gcoms_aux_ordrMonitor__Sync (cl=0x300c218) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #8 0x000d9588 in DBTable_gcoms_aux_ordrMonitor__ApplyC (cl=0x300c218) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #9 0x003a9c5b in ThreadPThread__RunThread (me=0x1620d80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #10 0x003a998a in ThreadPThread__ThreadBase (param=0x1620d80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #11 0x9713885d in _pthread_start () > #12 0x971386e2 in thread_start () > > Thread 49 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x1620d60, mutex=0x1620cd0, m3timeout=1294537044.970454) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x1620d00, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000db5a3 in DBTable_gcoms_aux_ordrMonitor__CleanerApply (cl=0x300c410) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1620d00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1620d00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 48 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4aa228, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 > #5 0x000cb8aa in DBTable_gcoms_fillMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #6 0x000cbbf5 in DBTable_gcoms_fillMonitor__CheckForNew (cl=0x300bf48) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #7 0x000cb7d3 in DBTable_gcoms_fillMonitor__Sync (cl=0x300bf48) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #8 0x000cb35a in DBTable_gcoms_fillMonitor__ApplyC (cl=0x300bf48) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #9 0x003a9c5b in ThreadPThread__RunThread (me=0x1620b50) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #10 0x003a998a in ThreadPThread__ThreadBase (param=0x1620b50) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #11 0x9713885d in _pthread_start () > #12 0x971386e2 in thread_start () > > Thread 47 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x16243d0, mutex=0x1620ac0, m3timeout=1294537044.9675839) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x1620af0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000cd5e3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=0x300c140) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1620af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1620af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 46 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4abd98, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 > #5 0x000d2b9a in DBTable_gcoms_aux_instrumentMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #6 0x000d2dbf in DBTable_gcoms_aux_instrumentMonitor__CheckForNew (cl=0x30091c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #7 0x000d2ac3 in DBTable_gcoms_aux_instrumentMonitor__Sync (cl=0x30091c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #8 0x000d264a in DBTable_gcoms_aux_instrumentMonitor__ApplyC (cl=0x30091c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #9 0x003a9c5b in ThreadPThread__RunThread (me=0x2306710) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #10 0x003a998a in ThreadPThread__ThreadBase (param=0x2306710) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #11 0x9713885d in _pthread_start () > #12 0x971386e2 in thread_start () > > Thread 45 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x230b2d0, mutex=0x2306680, m3timeout=1294537044.960629) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x23066b0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000d469b in DBTable_gcoms_aux_instrumentMonitor__CleanerApply (cl=0x30093c0) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x23066b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x23066b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 44 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a159c, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 > #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=0x3205b38) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=0x3205b38) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x3205b38) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #9 0x003a9c5b in ThreadPThread__RunThread (me=0x230b000) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #10 0x003a998a in ThreadPThread__ThreadBase (param=0x230b000) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #11 0x9713885d in _pthread_start () > #12 0x971386e2 in thread_start () > > Thread 43 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x230afe0, mutex=0x230af20, m3timeout=1294537044.8138101) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x230af80, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x3205d30) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x230af80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x230af80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 42 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a159c, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 > #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=0x32057b0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=0x32057b0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x32057b0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #9 0x003a9c5b in ThreadPThread__RunThread (me=0x230aca0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #10 0x003a998a in ThreadPThread__ThreadBase (param=0x230aca0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #11 0x9713885d in _pthread_start () > #12 0x971386e2 in thread_start () > > Thread 41 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x2301860, mutex=0x230ab40, m3timeout=1294537044.8138311) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x230aba0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x32059a8) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x230aba0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x230aba0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 40 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a6b9c, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 > #5 0x000bd587 in DBTable_gcoms_ordr_statusMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #6 0x000bd76e in DBTable_gcoms_ordr_statusMonitor__CheckForNew (cl=0x3205390) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #7 0x000bd4b0 in DBTable_gcoms_ordr_statusMonitor__Sync (cl=0x3205390) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #8 0x000bd037 in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=0x3205390) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #9 0x003a9c5b in ThreadPThread__RunThread (me=0x1621f10) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #10 0x003a998a in ThreadPThread__ThreadBase (param=0x1621f10) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #11 0x9713885d in _pthread_start () > #12 0x971386e2 in thread_start () > > Thread 39 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x16242f0, mutex=0x1621ee0, m3timeout=1294537044.8137701) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x1622280, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000bf010 in DBTable_gcoms_ordr_statusMonitor__CleanerApply (cl=0x3205588) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1622280) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1622280) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 38 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a3144, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 > #5 0x000adb3f in DBTable_gcoms_strategyMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #6 0x000add46 in DBTable_gcoms_strategyMonitor__CheckForNew (cl=0x2660b88) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #7 0x000ada68 in DBTable_gcoms_strategyMonitor__Sync (cl=0x2660b88) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #8 0x000ad5ef in DBTable_gcoms_strategyMonitor__ApplyC (cl=0x2660b88) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #9 0x003a9c5b in ThreadPThread__RunThread (me=0x161b820) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #10 0x003a998a in ThreadPThread__ThreadBase (param=0x161b820) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #11 0x9713885d in _pthread_start () > #12 0x971386e2 in thread_start () > > Thread 37 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x2306160, mutex=0x2305f70, m3timeout=1294537044.6482379) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x2306100, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000af60a in DBTable_gcoms_strategyMonitor__CleanerApply (cl=0x2660d78) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x2306100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x2306100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 36 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a159c, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 > #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=0x26608c0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=0x26608c0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x26608c0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #9 0x003a9c5b in ThreadPThread__RunThread (me=0x2305e30) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #10 0x003a998a in ThreadPThread__ThreadBase (param=0x2305e30) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #11 0x9713885d in _pthread_start () > #12 0x971386e2 in thread_start () > > Thread 35 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x2305dd0, mutex=0x2305c40, m3timeout=1294537044.6481991) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x2305d70, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x2660ab0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x2305d70) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x2305d70) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 34 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1345 > #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=32, dataAlignment=4, thread=0x1623e04) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x0038f2c7 in RTAllocator__GetTracedObj (def=0x5c87d4) at ../src/runtime/common/RTAllocator.m3:224 > #6 0x0038ed60 in RTHooks__AllocateTracedObj (defn=0x5c87d4) at ../src/runtime/common/RTAllocator.m3:122 > #7 0x00260a50 in DatabaseUtils__FilterUnprintable (t=0x4aa228) at ../src/DatabaseUtils.m3:124 > #8 0x0026b6ae in UnsafeDatabase__ExecM (t=0x2660178, query=0x4aa228, busyWait=0 '\0', abortConnectionOnFail=1 '\001') at ../src/UnsafeDatabase.m3:217 > #9 0x0026baa5 in UnsafeDatabase__TExecM (t=0x2660178, query=0x4aa228, busyWait=0 '\0', abortConnectionOnFail=1 '\001') at ../src/UnsafeDatabase.m3:258 > #10 0x002587f9 in DesynchronizedDB__SExec (t=0x26602c4, query=0x4aa228, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:126 > #11 0x000cb8aa in DBTable_gcoms_fillMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #12 0x000cbbf5 in DBTable_gcoms_fillMonitor__CheckForNew (cl=0x26605f8) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #13 0x000cb7d3 in DBTable_gcoms_fillMonitor__Sync (cl=0x26605f8) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #14 0x000cb35a in DBTable_gcoms_fillMonitor__ApplyC (cl=0x26605f8) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #15 0x003a9c5b in ThreadPThread__RunThread (me=0x1623dc0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #16 0x003a998a in ThreadPThread__ThreadBase (param=0x1623dc0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #17 0x9713885d in _pthread_start () > #18 0x971386e2 in thread_start () > > Thread 33 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x1623da0, mutex=0x1623640, m3timeout=1294537044.6482589) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x1623d40, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000cd5e3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=0x26607e8) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1623d40) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1623d40) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 32 (process 67010): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003a7b74 in ThreadInternal__Poll (fd=9, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:57 > #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x1623c00, fd=9, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=9, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > #4 0x003344ff in TCP__GetBytesFD (t=0x267015c, arr=0x2690040, timeout=-1) at ../src/POSIX/TCP.m3:326 > #5 0x003365ce in ConnRW__RdSeek (rd=0x2690010, pos=0, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 > #6 0x003424e3 in Rd__GetLine (rd=0x2690010) at ../src/rw/Rd.m3:426 > #7 0x00256bb0 in UpdateMonitor__InApplyP (cl=0x269204c) at ../src/UpdateMonitor.m3:240 > #8 0x003a9c5b in ThreadPThread__RunThread (me=0x1623c00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #9 0x003a998a in ThreadPThread__ThreadBase (param=0x1623c00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #10 0x9713885d in _pthread_start () > #11 0x971386e2 in thread_start () > > Thread 31 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x1623470, j=0x1623ba0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x1623b40, m=0x2670220, c=0x267022c, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2670220, c=0x267022c) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002567b1 in UpdateMonitor__OutApplyP (p=0x267017c) at ../src/UpdateMonitor.m3:178 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1623b40) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1623b40) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 30 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23016c0, j=0x2305a80) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2305a20, m=0x2660378, c=0x26603ac, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2660378, c=0x26603ac) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x00259145 in DesynchronizedDB__PApply (p=0x26603bc) at ../src/DesynchronizedDB.m3:216 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x2305a20) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x2305a20) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 29 (process 67010): > #0 0x9716c1d6 in __wait4 () > #1 0x9716c1c9 in waitpid$UNIX2003 () > #2 0x003add58 in Uexec__waitpid (i=67040, j=0xb0e36b4c, k=0) at ../src/unix/Common/Uexec.c:67 > #3 0x003aaa51 in SchedulerPosix__WaitProcess (pid=67040, status=0xb0e36b4c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 > #4 0x0033ca19 in Process__Wait (p=0x2650590) at ../src/os/POSIX/ProcessPosixCommon.m3:275 > #5 0x002ffdf6 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:185 > #6 0x003007c1 in ProcUtils__Apply (self=0x2640284) at ../src/ProcUtils.m3:274 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x16233b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x16233b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 28 (process 67010): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003a7b74 in ThreadInternal__Poll (fd=7, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:57 > #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x1623300, fd=7, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=7, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > #4 0x003344ff in TCP__GetBytesFD (t=0x26402c4, arr=0x2642358, timeout=-1) at ../src/POSIX/TCP.m3:326 > #5 0x003365ce in ConnRW__RdSeek (rd=0x2642328, pos=0, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 > #6 0x0033f64d in Rd__DoSeek (rd=0x2642328) at ../src/rw/Rd.m3:54 > #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=0x2642328) at ../src/rw/Rd.m3:43 > #8 0x0033f32d in Rd__GetChar (rd=0x2642328) at ../src/rw/Rd.m3:34 > #9 0x002b26e9 in ReadLine__ReadALine (t=0x264000c) at ../src/ReadLine.m3:151 > #10 0x002b4a56 in ReadLine__ReadLine (t=0x264000c) at ../src/ReadLine.m3:411 > #11 0x0022a383 in SchemeReadLine__GetCh (p=0x2644364) at ../src/SchemeReadLine.m3:80 > #12 0x0024e942 in SchemeInputPort__NextToken (t=0x2644364, wx=0x26443e8) at ../src/SchemeInputPort.m3:309 > #13 0x0024e0bb in SchemeInputPort__Read (t=0x2644364) at ../src/SchemeInputPort.m3:177 > #14 0x0022abaa in SchemeReadLine__MainLoop (rl=0x264000c, scm=0x256b9e4) at ../src/SchemeReadLine.m3:146 > #15 0x00006bb7 in Main__SCApply (c=0x263fed0) at ../src/Main.m3:92 > #16 0x003a9c5b in ThreadPThread__RunThread (me=0x1623300) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #17 0x003a998a in ThreadPThread__ThreadBase (param=0x1623300) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #18 0x9713885d in _pthread_start () > #19 0x971386e2 in thread_start () > > Thread 27 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x161bd50) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x25400a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x002c77db in SXLongReal__Update (v=0x2540010, newValue=1293719775.9374268, when=1293719775.9374378) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > #5 0x002c7abe in SXLongReal__SetVar (v=0x2540010, newValue=1293719775.9374268, when=1293719775.9374378) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > #6 0x002eaaf7 in SXTimer__Loop (cl=0x21e11cc) at ../src/SXTimer.m3:64 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x161b610) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x161b610) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 26 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23016a0, j=0x2301670) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2301610, m=0x2114828, c=0x2114858, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2114828, c=0x2114858) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x000974c8 in GCOMSOrderStatus__Apply (cl=0x2114868) at ../src/GCOMSOrderStatus.m3:166 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x2301610) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x2301610) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 25 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300540, j=0x2301580) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x23015b0, m=0x211476c, c=0x2114778, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x211476c, c=0x2114778) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x0009d268 in GCOMSBusyOrders__Apply (cl=0x2114788) at ../src/GCOMSBusyOrders.m3:63 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x23015b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x23015b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 24 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300d90, j=0x2300d60) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300d00, m=0x21d0044, c=0x21d0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x21d0044, c=0x21d0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0bace84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0bace84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2111418) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2111548) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300d00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300d00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 23 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300ce0, j=0x2300cb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300c50, m=0x21c0044, c=0x21c0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x21c0044, c=0x21c0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0b2ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0b2ae84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2111288) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x21113b8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300c50) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300c50) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 22 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300c30, j=0x2300c00) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300ba0, m=0x21b0044, c=0x21b0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x21b0044, c=0x21b0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0aa8e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0aa8e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110fd8) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2111108) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300ba0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300ba0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 21 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300b80, j=0x2300b50) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300af0, m=0x21a0044, c=0x21a0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x21a0044, c=0x21a0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0a26e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0a26e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110e50) at ../src/SX.m3:151 > #9 0x00163596 in CurrencySXProxy__Apply (cl=0x2110f78) at ../I386_DARWIN/CurrencySXProxy.m3 => /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 20 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300a10, j=0x23009e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300980, m=0x2190044, c=0x2190050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2190044, c=0x2190050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb09a4e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb09a4e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110b48) at ../src/SX.m3:151 > #9 0x002bf3d5 in BoolSXProxy__Apply (cl=0x2110c70) at ../I386_DARWIN/BoolSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300980) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300980) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 19 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300960, j=0x2300930) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x23008d0, m=0x2180044, c=0x2180050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2180044, c=0x2180050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0922e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0922e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x21109b8) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2110ae8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x23008d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x23008d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 18 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23008b0, j=0x2300880) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300820, m=0x2170044, c=0x2170050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2170044, c=0x2170050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb08a0e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb08a0e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110828) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2110958) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300820) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300820) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 17 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300800, j=0x23007d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300770, m=0x2160044, c=0x2160050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2160044, c=0x2160050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb081ee84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb081ee84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110698) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x21107c8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300770) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300770) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 16 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300750, j=0x2300720) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x23006c0, m=0x2150044, c=0x2150050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2150044, c=0x2150050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb079ce84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb079ce84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110508) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2110638) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x23006c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x23006c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 15 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23006a0, j=0x2300670) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300610, m=0x2140044, c=0x2140050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2140044, c=0x2140050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb071ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb071ae84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110378) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x21104a8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300610) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300610) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 14 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161af10, j=0x161aee0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x161ae80, m=0x2130044, c=0x2130050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2130044, c=0x2130050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0698e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0698e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x21101e8) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2110318) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161ae80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161ae80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 13 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23005f0, j=0x23005c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300560, m=0x2120044, c=0x2120050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2120044, c=0x2120050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0616e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0616e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x20c0c40) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x21100ac) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 12 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23004c0, j=0x2300490) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300430, m=0x2080044, c=0x2080050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2080044, c=0x2080050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0594e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0594e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x20c0ab0) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x20c0be0) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300430) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300430) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 11 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300410, j=0x23003e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300380, m=0x20f0044, c=0x20f0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x20f0044, c=0x20f0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0512e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0512e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x20c0920) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x20c0a50) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300380) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300380) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 10 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161aad0, j=0x161aaa0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x161aa40, m=0x20b0044, c=0x20b0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x20b0044, c=0x20b0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0490e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0490e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020e88) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020fb8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161aa40) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161aa40) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 9 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23002a0, j=0x2300270) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300210, m=0x2090044, c=0x2090050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2090044, c=0x2090050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb040ee84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb040ee84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020cf8) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020e28) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300210) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300210) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 8 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a9c0, j=0x161a990) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x161a930, m=0x20e0034, c=0x20e0040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x20e0034, c=0x20e0040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb038ce84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb038ce84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020a48) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020b78) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a930) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a930) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 7 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a910, j=0x161a8e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x161a880, m=0x20a0034, c=0x20a0040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x20a0034, c=0x20a0040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb030ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb030ae84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x20208c0) at ../src/SX.m3:151 > #9 0x00163596 in CurrencySXProxy__Apply (cl=0x20209e8) at ../I386_DARWIN/CurrencySXProxy.m3 => /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a880) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a880) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 6 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a860, j=0x161a830) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x161a7d0, m=0x2050044, c=0x2050050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2050044, c=0x2050050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0288e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0288e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020658) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020788) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a7d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a7d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 5 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a7b0, j=0x161a780) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x161a720, m=0x2040044, c=0x2040050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2040044, c=0x2040050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0206e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0206e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x20204c8) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x20205f8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a720) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a720) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 4 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a290, j=0x161a6f0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x161a690, m=0x2030044, c=0x2030050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2030044, c=0x2030050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0184e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0184e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020338) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020468) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a690) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a690) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 3 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x1619840, j=0x161a600) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x161a230, m=0x202008c, c=0x202007c, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x202008c, c=0x202007c) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002ba948 in VarProxyDefs__NotifyApply (cl=0x2020098) at ../src/VarProxyDefs.m3:55 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x161a230) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x161a230) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 2 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7ebe in ThreadPThread__InitMutex (m=0x20100ac, root=0x20100a8, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003a7f82 in ThreadPThread__LockMutex (m=0x20100a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x0033f30b in Rd__GetChar (rd=0x20100a8) at ../src/rw/Rd.m3:33 > #6 0x0034dffd in Lex__Skip (rd=0x20100a8, cs=0x548018) at ../src/fmtlex/Lex.m3:46 > #7 0x003503c3 in Lex__ReadReal (rd=0x20100a8, sign=0xb00809e3, digits=0xb00809fc, digCnt=0xb00809e8, exp=0xb00809ec) at ../src/fmtlex/Lex.m3:569 > #8 0x00350ef5 in Lex__LongReal (rd=0x20100a8) at ../src/fmtlex/Lex.m3:662 > #9 0x003518f1 in Scan__LongReal (txt=0x201007c) at ../src/fmtlex/Scan.m3:77 > #10 0x0030ef75 in XTime__ClApply (cl=0x2004624) at ../src/XTime.m3:185 > #11 0x003a9c5b in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x003a998a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > Thread 1 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x16076f0, j=0x16076c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x1607660, m=0x2000084, c=0x30eb8bc, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003aa1f3 in ThreadPThread__XJoin (self=0x1607660, t=0x30eb8a0, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:513 > #6 0x003aa2f5 in Thread__Join (t=0x30eb8a0) at ../src/thread/PTHREAD/ThreadPThread.m3:525 > #7 0x002ff2b8 in ProcUtils__Wait (c=0x30eb800) at ../src/ProcUtils.m3:318 > #8 0x00234ebd in SchemeCommandRunner__RealRunTimeoutCommandApply (proc=0x21e0b44, interp=0x3241ec4, args=0x30e775c) at ../src/SchemeCommandRunner.m3:164 > #9 0x00234b4f in SchemeCommandRunner__RunTimeoutCommandApply (proc=0x21e0b44, interp=0x3241ec4, args=0x30e775c) at ../src/SchemeCommandRunner.m3:129 > #10 0x00234217 in SchemeCommandRunner__RunCommandApply (proc=0x21e0b44, interp=0x3241ec4, args=0x30e7744) at ../src/SchemeCommandRunner.m3:23 > #11 0x0024b81b in SchemePrimitive__EDApply (ed=0x21e01c0, t=0x3245844, interp=0x3241ec4, args=0x30e7744) at ../src/SchemePrimitive.m3:207 > #12 0x00246509 in SchemePrimitive__Prims (t=0x3245844, interp=0x3241ec4, args=0x30e7744, x=0x30e5cfc, y=0x30e7730, free=0xbfffea1f) at ../src/SchemePrimitive.m3:580 > #13 0x0024b1cb in SchemePrimitive__Apply2 (t=0x3245844, interp=0x3241ec4, a1=0x30e5cfc, a2=0x30e7730) at ../src/SchemePrimitive.m3:549 > #14 0x0023c16f in Scheme__EvalInternal (t=0x3241ec4, x=0x30e5c5c, env=0x30e76b4) at ../src/Scheme.m3:585 > #15 0x0023bedf in Scheme__EvalInternal (t=0x3241ec4, x=0x30e5bac, env=0x30e76b4) at ../src/Scheme.m3:582 > #16 0x0023c35e in Scheme__Eval (t=0x3241ec4, x=0x30e6a6c, envP=0x3241f0c) at ../src/Scheme.m3:353 > #17 0x00239bcf in Scheme__EvalInGlobalEnv (t=0x3241ec4, x=0x30e6a6c) at ../src/Scheme.m3:603 > #18 0x0002972b in SchemeCalculator__Calc (t=0x3241eb4, arr=0xbfffee3c) at ../src/SchemeCalculator.m3:61 > #19 0x0000c8af in EuroDriver__Loop (t=0x3205a80) at ../src/EuroDriver.m3:289 > #20 0x00008781 in Main_M3 (mode=1) at ../src/Main.m3:268 > #21 0x0039d83d in RTLinker__RunMainBody (m=0x55e420) at ../src/runtime/common/RTLinker.m3:406 > #22 0x0039cc99 in RTLinker__AddUnitI (m=0x55e420) at ../src/runtime/common/RTLinker.m3:113 > #23 0x0039cd1a in RTLinker__AddUnit (b=0x6be3) at ../src/runtime/common/RTLinker.m3:122 > #24 0x0000528c in main (argc=19, argv=0xbffff330, envp=0xbffff380) at _m3main.c:16 From mika at async.caltech.edu Sun Jan 9 02:50:40 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Sat, 08 Jan 2011 17:50:40 -0800 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: References: <0A37C595-C896-4B66-9EDF-61BB30645321@cs.purdue.edu> , <20110109014355.0A01F1A205B@async.async.caltech.edu> Message-ID: <20110109015040.F196E1A205B@async.async.caltech.edu> On the plus side, the compiler bug you thought you had fixed has indeed disappeared. Mika Jay K writes: > >Tony raised legit issue w/ my fix. I will try another very soon (tonight). > > >Index: ThreadPThread.m3 >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3= >=2Cv >retrieving revision 1.247 >diff -u -r1.247 ThreadPThread.m3 >--- ThreadPThread.m3=A0=A0=A0 9 Jan 2011 00:36:07 -0000=A0=A0=A0 1.247 >+++ ThreadPThread.m3=A0=A0=A0 9 Jan 2011 01:14:16 -0000 >@@ -1283=2C10 +1283=2C10 @@ >=A0=A0=A0=A0=A0=A0 cond: Condition=3B >=A0=A0 BEGIN >=A0=A0=A0=A0 Acquire(joinMu)=3B >-=A0=A0=A0 LockHeap()=3B >=A0=A0=A0=A0 FOR i :=3D FIRST(locks) TO LAST(locks) DO >=A0=A0=A0=A0=A0=A0 PThreadLockMutex(locks[i]=2C ThisLine()=2C i)=3B >=A0=A0=A0=A0 END=3B >+=A0=A0=A0 LockHeap()=3B >=A0=A0=A0=A0 (* Walk activations and lock all threads=2C conditions. >=A0=A0=A0=A0=A0 * NOTE: We have initMu=2C activeMu=2C so slots >=A0=A0=A0=A0=A0 * won't change=2C conditions and mutexes > > > >=A0- Jay > >---------------------------------------- >> To: hosking at cs.purdue.edu >> Date: Sat=2C 8 Jan 2011 17:43:55 -0800 >> From: mika at async.caltech.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? >> >> >> Well I spent the whole day figuring out how to update the compiler.. >> finally got everything working and I think this is with the very latest >> version (Jay just committed something two hours ago and it's in here). >> >> Or... wait.. did he go back a version and re-introduce the deadlock? >> That would explain why it's behaving the same way as it was before... >> >> Mika >> >> >> >> Thread 68 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613c20) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=3D0x613c20=2C lin= >e=3D1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 >> #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD= >/ThreadPThread.m3:1279 >> #5 0x97137217 in _cthread_fork_prepare () >> #6 0x97137155 in fork () >> #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=3D0x242c2ac=2C = >params=3D0x242c3ac=2C env=3D0x0=2C wd=3D0x57bf44=2C stdin=3D0x0=2C stdout= >=3D0x239f9a4=2C stderr=3D0x2433508) at ../src/os/POSIX/ProcessPosixCommon.m= >3:75 >> #8 0x00353de5 in Process__Create (cmd=3D0x242c2ac=2C params=3D0x242c3ac= >=2C env=3D0x0=2C wd=3D0x57bf44=2C stdin=3D0x0=2C stdout=3D0x239f9a4=2C stde= >rr=3D0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 >> #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:18= >0 >> #10 0x00316d6e in ProcUtils__Apply (self=3D0x242f160) at ../src/ProcUtils= >.m3:274 >> #11 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2009600) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2009600) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #13 0x9713885d in _pthread_start () >> #14 0x971386e2 in thread_start () >> >> Thread 67 (process 32362): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D13=2C read=3D1=2C m3timeout= >=3D-1) at ../src/thread/Common/ThreadInternal.c:31 >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x2009550=2C fd=3D13=2C r= >ead=3D1 '\001'=2C interval=3D-1=2C alertable=3D0 '\0') at ../src/thread/PTH= >READ/ThreadPThread.m3:627 >> #3 0x003c19a4 in SchedulerPosix__IOWait (fd=3D13=2C read=3D1 '\001'=2C ti= >meoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 >> #4 0x0034f862 in FilePosix__IntermittentRead (h=3D0x24334f8=2C b=3D0xb1df= >4cd0=2C mayBlock=3D1 '\001') at ../src/os/POSIX/FilePosix.m3:220 >> #5 0x0035e935 in FileRd__Seek (rd=3D0x2433518=2C pos=3D0=2C dontBlock=3D0= > '\0') at ../src/rw/FileRd.m3:83 >> #6 0x00356338 in Rd__DoSeek (rd=3D0x2433518) at ../src/rw/Rd.m3:54 >> #7 0x003560c1 in UnsafeRd__FastGetChar (rd=3D0x2433518) at ../src/rw/Rd.m= >3:43 >> #8 0x00356018 in Rd__GetChar (rd=3D0x2433518) at ../src/rw/Rd.m3:34 >> #9 0x00316fbc in ProcUtils__SSApply (self=3D0x242f128) at ../src/ProcUtil= >s.m3:54 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2009550) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2009550) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 66 (process 32362): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D11=2C read=3D1=2C m3timeout= >=3D-1) at ../src/thread/Common/ThreadInternal.c:31 >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x20094a0=2C fd=3D11=2C r= >ead=3D1 '\001'=2C interval=3D-1=2C alertable=3D0 '\0') at ../src/thread/PTH= >READ/ThreadPThread.m3:627 >> #3 0x003c19a4 in SchedulerPosix__IOWait (fd=3D11=2C read=3D1 '\001'=2C ti= >meoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 >> #4 0x0034f862 in FilePosix__IntermittentRead (h=3D0x239f994=2C b=3D0xb1d7= >2cd0=2C mayBlock=3D1 '\001') at ../src/os/POSIX/FilePosix.m3:220 >> #5 0x0035e935 in FileRd__Seek (rd=3D0x239f9b4=2C pos=3D0=2C dontBlock=3D0= > '\0') at ../src/rw/FileRd.m3:83 >> #6 0x00356338 in Rd__DoSeek (rd=3D0x239f9b4) at ../src/rw/Rd.m3:54 >> #7 0x003560c1 in UnsafeRd__FastGetChar (rd=3D0x239f9b4) at ../src/rw/Rd.m= >3:43 >> #8 0x00356018 in Rd__GetChar (rd=3D0x239f9b4) at ../src/rw/Rd.m3:34 >> #9 0x00316fbc in ProcUtils__SSApply (self=3D0x242f0f0) at ../src/ProcUtil= >s.m3:54 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20094a0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20094a0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 65 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613c20) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003beefd in ThreadPThread__InitMutex (m=3D0x242a6f8=2C root=3D0x242a= >6f4=2C Clean=3D0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >> #4 0x003befce in ThreadPThread__LockMutex (m=3D0x242a6f4) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #5 0x00355ff6 in Rd__GetChar (rd=3D0x242a6f4) at ../src/rw/Rd.m3:33 >> #6 0x00364b5d in Lex__Skip (rd=3D0x242a6f4=2C cs=3D0x587ff8) at ../src/fm= >tlex/Lex.m3:46 >> #7 0x00366e53 in Lex__ReadReal (rd=3D0x242a6f4=2C sign=3D0xb1cf0603=2C di= >gits=3D0xb1cf061c=2C digCnt=3D0xb1cf0608=2C exp=3D0xb1cf060c) at ../src/fmt= >lex/Lex.m3:569 >> #8 0x003678f0 in Lex__LongReal (rd=3D0x242a6f4) at ../src/fmtlex/Lex.m3:6= >62 >> #9 0x0036834e in Scan__LongReal (txt=3D0x1753494) at ../src/fmtlex/Scan.m= >3:77 >> #10 0x002603f5 in SchemeInputPort__NextToken (t=3D0x2380de4=2C wx=3D0x242= >a4a8) at ../src/SchemeInputPort.m3:439 >> #11 0x00260756 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x242= >a4a8) at ../src/SchemeInputPort.m3:240 >> #12 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= >nputPort.m3:179 >> #13 0x0025edad in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= >nputPort.m3:191 >> #14 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x242= >a40c) at ../src/SchemeInputPort.m3:240 >> #15 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= >nputPort.m3:179 >> #16 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x239= >ddc4) at ../src/SchemeInputPort.m3:240 >> #17 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= >nputPort.m3:179 >> #18 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x239= >dc4c) at ../src/SchemeInputPort.m3:240 >> #19 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= >nputPort.m3:179 >> #20 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x239= >da8c) at ../src/SchemeInputPort.m3:240 >> #21 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= >nputPort.m3:179 >> #22 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x239= >d9b4) at ../src/SchemeInputPort.m3:240 >> #23 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= >nputPort.m3:179 >> #24 0x0024db82 in Scheme__LoadPort (t=3D0x237018c=2C in=3D0x2380de4) at .= >./src/Scheme.m3:317 >> #25 0x0024ae56 in Scheme__LoadRd (t=3D0x237018c=2C rd=3D0x2379cfc=2C fn= >=3D0x0) at ../src/Scheme.m3:174 >> #26 0x0024e659 in Scheme__ReadInitialFiles (t=3D0x237018c=2C files=3D0x4a= >fc8c) at ../src/Scheme.m3:134 >> #27 0x0024ea46 in Scheme__Init2 (t=3D0x237018c=2C input=3D0x15ac4ec=2C ou= >tput=3D0x15ac514=2C files=3D0x4afc8c=2C env=3D0x0) at ../src/Scheme.m3:127 >> #28 0x0024a89a in Scheme__Init (t=3D0x237018c=2C files=3D0x4afc8c=2C env= >=3D0x0) at ../src/Scheme.m3:102 >> #29 0x0002abbc in SchemeCalculator__Init (t=3D0x237017c=2C code=3D0x22554= >1c) at ../src/SchemeCalculator.m3:28 >> #30 0x0000e373 in EuroDriver__OApply (cl=3D0x2367b70) at ../src/EuroDrive= >r.m3:865 >> #31 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2008b80) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #32 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2008b80) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #33 0x9713885d in _pthread_start () >> #34 0x971386e2 in thread_start () >> >> Thread 64 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613ca0) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= >.m3:1336 >> #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=3D0x2430f38=2C p=3D0x= >3bed6f) at ../src/runtime/common/RTCollector.m3:2148 >> #5 0x003bef65 in ThreadPThread__InitMutex (m=3D0x2430f3c=2C root=3D0x2430= >f38=2C Clean=3D0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 >> #6 0x003befce in ThreadPThread__LockMutex (m=3D0x2430f38) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #7 0x00355ff6 in Rd__GetChar (rd=3D0x2430f38) at ../src/rw/Rd.m3:33 >> #8 0x00364b5d in Lex__Skip (rd=3D0x2430f38=2C cs=3D0x587ff8) at ../src/fm= >tlex/Lex.m3:46 >> #9 0x00366e53 in Lex__ReadReal (rd=3D0x2430f38=2C sign=3D0xb1c6e7c3=2C di= >gits=3D0xb1c6e7dc=2C digCnt=3D0xb1c6e7c8=2C exp=3D0xb1c6e7cc) at ../src/fmt= >lex/Lex.m3:569 >> #10 0x003678f0 in Lex__LongReal (rd=3D0x2430f38) at ../src/fmtlex/Lex.m3:= >662 >> #11 0x0036834e in Scan__LongReal (txt=3D0x1753494) at ../src/fmtlex/Scan.= >m3:77 >> #12 0x002603f5 in SchemeInputPort__NextToken (t=3D0x237ede4=2C wx=3D0x243= >0e44) at ../src/SchemeInputPort.m3:439 >> #13 0x00260756 in SchemeInputPort__ReadTail2 (t=3D0x237ede4=2C wx=3D0x243= >0e44) at ../src/SchemeInputPort.m3:240 >> #14 0x0025ebdd in SchemeInputPort__Read (t=3D0x237ede4) at ../src/SchemeI= >nputPort.m3:179 >> #15 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x237ede4=2C wx=3D0x243= >0db0) at ../src/SchemeInputPort.m3:240 >> #16 0x0025ebdd in SchemeInputPort__Read (t=3D0x237ede4) at ../src/SchemeI= >nputPort.m3:179 >> #17 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x237ede4=2C wx=3D0x243= >0cd8) at ../src/SchemeInputPort.m3:240 >> #18 0x0025ebdd in SchemeInputPort__Read (t=3D0x237ede4) at ../src/SchemeI= >nputPort.m3:179 >> #19 0x0024db82 in Scheme__LoadPort (t=3D0x236e18c=2C in=3D0x237ede4) at .= >./src/Scheme.m3:317 >> #20 0x0024ae56 in Scheme__LoadRd (t=3D0x236e18c=2C rd=3D0x2377cfc=2C fn= >=3D0x0) at ../src/Scheme.m3:174 >> #21 0x0024e659 in Scheme__ReadInitialFiles (t=3D0x236e18c=2C files=3D0x4a= >fc8c) at ../src/Scheme.m3:134 >> #22 0x0024ea46 in Scheme__Init2 (t=3D0x236e18c=2C input=3D0x15ac4ec=2C ou= >tput=3D0x15ac514=2C files=3D0x4afc8c=2C env=3D0x0) at ../src/Scheme.m3:127 >> #23 0x0024a89a in Scheme__Init (t=3D0x236e18c=2C files=3D0x4afc8c=2C env= >=3D0x0) at ../src/Scheme.m3:102 >> #24 0x0002abbc in SchemeCalculator__Init (t=3D0x236e17c=2C code=3D0x22554= >1c) at ../src/SchemeCalculator.m3:28 >> #25 0x0000e373 in EuroDriver__OApply (cl=3D0x2367ad8) at ../src/EuroDrive= >r.m3:865 >> #26 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2008af0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #27 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2008af0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #28 0x9713885d in _pthread_start () >> #29 0x971386e2 in thread_start () >> >> Thread 60 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x2006bc0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003befff in ThreadPThread__LockMutex (m=3D0x22cc724) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x003bed47 in Thread__Acquire (m=3D0x22cc724) at ../src/thread/PTHREAD= >/ThreadPThread.m3:81 >> #5 0x002d9fb9 in SX__Lock (arr=3D0x235a9a4) at ../src/SX.m3:318 >> #6 0x002d983f in SXSelect__WaitE (on=3D0xb1beccd8=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:241 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb1beccd8=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDrive= >r.m3:832 >> #9 0x0000e830 in EuroDriver__OApply (cl=3D0x22aad10) at ../src/EuroDriver= >.m3:892 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2007080) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2007080) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 59 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613c20) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003beefd in ThreadPThread__InitMutex (m=3D0x2354a24=2C root=3D0x2354= >a20=2C Clean=3D0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >> #4 0x003befce in ThreadPThread__LockMutex (m=3D0x2354a20) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #5 0x003bed47 in Thread__Acquire (m=3D0x2354a20) at ../src/thread/PTHREAD= >/ThreadPThread.m3:81 >> #6 0x00359e60 in RdClass__Lock (rd=3D0x2354a20) at ../src/rw/Rd.m3:521 >> #7 0x0025e4c4 in SchemeInputPort__Lock (t=3D0x2354b08) at ../src/SchemeIn= >putPort.m3:72 >> #8 0x0025f3dc in SchemeInputPort__NextToken (t=3D0x2354b08=2C wx=3D0x2354= >b28) at ../src/SchemeInputPort.m3:299 >> #9 0x0025eb94 in SchemeInputPort__Read (t=3D0x2354b08) at ../src/SchemeIn= >putPort.m3:177 >> #10 0x0024aea9 in Scheme__LoadEval (t=3D0x224418c=2C rd=3D0x2354a20) at .= >./src/Scheme.m3:291 >> #11 0x0024af22 in Scheme__LoadEvalText (t=3D0x224418c=2C txt=3D0x225541c)= > at ../src/Scheme.m3:306 >> #12 0x0002ad28 in SchemeCalculator__Calc (t=3D0x224417c=2C arr=3D0xb1b6ab= >04) at ../src/SchemeCalculator.m3:47 >> #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/Eur= >oDriver.m3:564 >> #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/E= >uroDriver.m3:507 >> #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriv= >er.m3:795 >> #16 0x0000e830 in EuroDriver__OApply (cl=3D0x22aac78) at ../src/EuroDrive= >r.m3:892 >> #17 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2007020) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #18 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2007020) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #19 0x9713885d in _pthread_start () >> #20 0x971386e2 in thread_start () >> >> Thread 54 (process 32362): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D10=2C read=3D1=2C m3timeout= >=3D1) at ../src/thread/Common/ThreadInternal.c:31 >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x161dfc0=2C fd=3D10=2C r= >ead=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001= >') at ../src/thread/PTHREAD/ThreadPThread.m3:627 >> #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=3D10=2C read=3D1 '\001'= >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 >> #4 0x00346693 in TCP__GetBytesFD (t=3D0x22211d8=2C arr=3D0x22f400c=2C tim= >eout=3D-1) at ../src/POSIX/TCP.m3:326 >> #5 0x00348786 in ConnRW__RdSeek (rd=3D0x2221260=2C pos=3D267=2C dontBlock= >=3D0 '\0') at ../src/common/ConnRW.m3:69 >> #6 0x003591ce in Rd__GetLine (rd=3D0x2221260) at ../src/rw/Rd.m3:426 >> #7 0x002b2826 in TWSTester__RApply (cl=3D0x2221290) at ../src/TWSTester.m= >3:382 >> #8 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161dfc0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #9 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161dfc0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #10 0x9713885d in _pthread_start () >> #11 0x971386e2 in thread_start () >> >> Thread 53 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161deb0= >=2C mutex=3D0x161e1c0=2C m3timeout=3D1294411605.506855) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161e160=2C n=3D0.5=2C al= >ertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D0.5) at ../src/thread/PTHREAD/ThreadP= >Thread.m3:567 >> #6 0x00297efc in PMTWS__TSCApply (cl=3D0x2221088) at ../src/PMTWS.m3:229 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161e160) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161e160) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 52 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613ca0) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= >.m3:1336 >> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=3D24=2C dataAlignment= >=3D4=2C thread=3D0x161e144) at ../src/runtime/common/RTAllocator.m3:363 >> #5 0x003a5a99 in RTAllocator__GetTracedObj (def=3D0x616d54) at ../src/run= >time/common/RTAllocator.m3:224 >> #6 0x003a550f in RTHooks__AllocateTracedObj (defn=3D0x616d54) at ../src/r= >untime/common/RTAllocator.m3:122 >> #7 0x003d3c0e in RTHooks__Concat (t=3D0x23669ec=2C u=3D0x56c460) at ../sr= >c/text/TextCat.m3:28 >> #8 0x002b0dc2 in TWSTester__MakeString (contract=3D0xb19e4dc0) at ../src/= >TWSTester.m3:92 >> #9 0x002b11ac in TWSTester__ReqMktData (t=3D0x2220800=2C tickerId=3D3=2C = >contract=3D0xb19e4dc0) at ../src/TWSTester.m3:136 >> #10 0x002bccaf in TWSTestBridge__MreqMktData (t=3D0x2220800=2C tickerId= >=3D3=2C contract=3D0xb19e4dc0) at ../src/TWSTestBridge.m3 =3D> ../src/TWSBr= >idgeG.mg:580 >> #11 0x002978ec in PMTWS__TSCApply (cl=3D0x2221044) at ../src/PMTWS.m3:210 >> #12 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161e100) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161e100) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #14 0x9713885d in _pthread_start () >> #15 0x971386e2 in thread_start () >> >> Thread 51 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613ca0) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= >.m3:1336 >> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=3D136=2C dataAlignmen= >t=3D8=2C thread=3D0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 >> #5 0x003a581e in RTAllocator__GetTracedRef (def=3D0x5b1280) at ../src/run= >time/common/RTAllocator.m3:202 >> #6 0x003a54da in RTHooks__AllocateTracedRef (defn=3D0x5b1280) at ../src/r= >untime/common/RTAllocator.m3:115 >> #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=3D0x235f464=2C = >key=3D0xb1962d7c=2C val=3D0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_in= >strumentTbl.m3 =3D> /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 >> #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=3D0x228c080= >=2C res=3D0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 = >=3D> /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 >> #9 0x0008c6de in GCOMSPortfolio__Lock (t=3D0x2255cd8) at ../src/GCOMSPort= >folio.m3:94 >> #10 0x00029faa in SXPortfolio__Scan (t=3D0x229a888) at ../src/SXPortfolio= >.m3:47 >> #11 0x0002a998 in SXPortfolio__Apply (cl=3D0x222057c) at ../src/SXPortfol= >io.m3:113 >> #12 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x1626560) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x1626560) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #14 0x9713885d in _pthread_start () >> #15 0x971386e2 in thread_start () >> >> Thread 50 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2005ac0= >=2C mutex=3D0x20059b0=2C m3timeout=3D1294411629.006319) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2005a60=2C n=3D50=2C ale= >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= >eadPThread.m3:573 >> #6 0x000e162d in DBTable_gcoms_aux_ordrMonitor__ApplyC (cl=3D0x229a528) a= >t ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/calarm= >/ratsql/src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2005a60) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2005a60) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 49 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2005a40= >=2C mutex=3D0x20058e0=2C m3timeout=3D1294411606.0014169) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x20059e0=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000e357e in DBTable_gcoms_aux_ordrMonitor__CleanerApply (cl=3D0x229a= >720) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/= >calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20059e0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20059e0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 48 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161de60= >=2C mutex=3D0x161aa50=2C m3timeout=3D1294411629.003248) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161aae0=2C n=3D50=2C ale= >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= >eadPThread.m3:573 >> #6 0x000d2f00 in DBTable_gcoms_fillMonitor__ApplyC (cl=3D0x229a258) at ..= >/I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/= >src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161aae0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161aae0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 47 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161ac10= >=2C mutex=3D0x1625c10=2C m3timeout=3D1294411605.9982891) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161aa80=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000d50b3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=3D0x229a450)= > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= >atsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161aa80) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161aa80) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 46 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2004440= >=2C mutex=3D0x2004410=2C m3timeout=3D1294411678.997467) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x20043b0=2C n=3D100=2C al= >ertable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D100) at ../src/thread/PTHREAD/Th= >readPThread.m3:573 >> #6 0x000da48e in DBTable_gcoms_aux_instrumentMonitor__ApplyC (cl=3D0x1711= >268) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Users/m= >ika/t/calarm/ratsql/src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20043b0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20043b0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 45 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x20038d0= >=2C mutex=3D0x2004380=2C m3timeout=3D1294411605.9944479) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2004320=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000dc415 in DBTable_gcoms_aux_instrumentMonitor__CleanerApply (cl=3D= >0x1711460) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /U= >sers/mika/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2004320) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2004320) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 44 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x20071d0= >=2C mutex=3D0x20070e0=2C m3timeout=3D1294411678.9916439) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2007170=2C n=3D100=2C al= >ertable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D100) at ../src/thread/PTHREAD/Th= >readPThread.m3:573 >> #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x224daf0)= > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= >larm/ratsql/src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2007170) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2007170) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 43 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x20046e0= >=2C mutex=3D0x2006f50=2C m3timeout=3D1294411605.83337) at ../src/thread/PTH= >READ/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2007110=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x22= >4dce8) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= >a/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2007110) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2007110) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 42 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161d830= >=2C mutex=3D0x161d780=2C m3timeout=3D1294411678.981461) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161dae0=2C n=3D100=2C al= >ertable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D100) at ../src/thread/PTHREAD/Th= >readPThread.m3:573 >> #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x224d768)= > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= >larm/ratsql/src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161dae0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161dae0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 41 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161d7e0= >=2C mutex=3D0x161da50=2C m3timeout=3D1294411605.8302381) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161da80=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x22= >4d960) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= >a/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161da80) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161da80) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 40 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161d940= >=2C mutex=3D0x161d910=2C m3timeout=3D1294411678.8294799) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161d8b0=2C n=3D100=2C al= >ertable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D100) at ../src/thread/PTHREAD/Th= >readPThread.m3:573 >> #6 0x000c4b88 in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=3D0x224d348= >) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mika/t/= >calarm/ratsql/src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161d8b0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161d8b0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 39 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x16262c0= >=2C mutex=3D0x161d750=2C m3timeout=3D1294411605.8264539) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161d850=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000c6a9a in DBTable_gcoms_ordr_statusMonitor__CleanerApply (cl=3D0x2= >24d540) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/m= >ika/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161d850) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161d850) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 38 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2003bc0= >=2C mutex=3D0x2003cd0=2C m3timeout=3D1294411628.744529) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2003c70=2C n=3D50=2C ale= >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= >eadPThread.m3:573 >> #6 0x000b4d70 in DBTable_gcoms_strategyMonitor__ApplyC (cl=3D0x228c348) a= >t ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/calarm= >/ratsql/src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2003c70) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2003c70) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 37 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2003ba0= >=2C mutex=3D0x2003be0=2C m3timeout=3D1294411605.7216971) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2003c10=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000b6cc1 in DBTable_gcoms_strategyMonitor__CleanerApply (cl=3D0x228c= >538) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/= >calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2003c10) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2003c10) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 36 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x16256b0= >=2C mutex=3D0x16255a0=2C m3timeout=3D1294411628.815861) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x1625650=2C n=3D50=2C ale= >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= >eadPThread.m3:573 >> #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x228c080)= > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= >larm/ratsql/src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x1625650) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x1625650) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 35 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x1625630= >=2C mutex=3D0x1625570=2C m3timeout=3D1294411605.7159209) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x16255d0=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x22= >8c270) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= >a/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x16255d0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x16255d0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 34 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2003a30= >=2C mutex=3D0x20031e0=2C m3timeout=3D1294411628.7167931) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x20039d0=2C n=3D50=2C ale= >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= >eadPThread.m3:573 >> #6 0x000d2f00 in DBTable_gcoms_fillMonitor__ApplyC (cl=3D0x2255d40) at ..= >/I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/= >src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20039d0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20039d0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 33 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x20034c0= >=2C mutex=3D0x20038a0=2C m3timeout=3D1294411605.7081449) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2003970=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000d50b3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=3D0x2255f30)= > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= >atsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2003970) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2003970) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 32 (process 32362): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D9=2C read=3D1=2C m3timeout=3D= >1) at ../src/thread/Common/ThreadInternal.c:31 >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x2003780=2C fd=3D9=2C re= >ad=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001'= >) at ../src/thread/PTHREAD/ThreadPThread.m3:627 >> #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=3D9=2C read=3D1 '\001'= >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 >> #4 0x00346693 in TCP__GetBytesFD (t=3D0x227c15c=2C arr=3D0x227600c=2C tim= >eout=3D-1) at ../src/POSIX/TCP.m3:326 >> #5 0x00348786 in ConnRW__RdSeek (rd=3D0x227a010=2C pos=3D0=2C dontBlock= >=3D0 '\0') at ../src/common/ConnRW.m3:69 >> #6 0x003591ce in Rd__GetLine (rd=3D0x227a010) at ../src/rw/Rd.m3:426 >> #7 0x002678d9 in UpdateMonitor__InApplyP (cl=3D0x227a040) at ../src/Updat= >eMonitor.m3:240 >> #8 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2003780) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #9 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2003780) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #10 0x9713885d in _pthread_start () >> #11 0x971386e2 in thread_start () >> >> Thread 31 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2003420=2C j=3D0= >x2003720) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x20036c0=2C m=3D0x227c220= >=2C c=3D0x227c22c=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x227c220=2C c=3D0x227c22c) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002674cc in UpdateMonitor__OutApplyP (p=3D0x227c17c) at ../src/Updat= >eMonitor.m3:178 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20036c0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20036c0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 30 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x161a290=2C j=3D0= >x1625020) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x1624fc0=2C m=3D0x2255ac0= >=2C c=3D0x2255af4=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x2255ac0=2C c=3D0x2255af4) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x0026a003 in DesynchronizedDB__PApply (p=3D0x2255b04) at ../src/Desyn= >chronizedDB.m3:216 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x1624fc0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x1624fc0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 29 (process 32362): >> #0 0x9716c1d6 in __wait4 () >> #1 0x9716c1c9 in waitpid$UNIX2003 () >> #2 0x003c50d5 in Uexec__waitpid (i=3D32392=2C j=3D0xb0e36b7c=2C k=3D0) at= > ../src/unix/Common/Uexec.c:66 >> #3 0x003c1d31 in SchedulerPosix__WaitProcess (pid=3D32392=2C status=3D0xb= >0e36b7c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 >> #4 0x003536dc in Process__Wait (p=3D0x22585fc) at ../src/os/POSIX/Process= >PosixCommon.m3:275 >> #5 0x003163ad in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:18= >5 >> #6 0x00316d6e in ProcUtils__Apply (self=3D0x2256284) at ../src/ProcUtils.= >m3:274 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x16251a0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x16251a0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 28 (process 32362): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D8=2C read=3D1=2C m3timeout=3D= >1) at ../src/thread/Common/ThreadInternal.c:31 >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x20030c0=2C fd=3D8=2C re= >ad=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001'= >) at ../src/thread/PTHREAD/ThreadPThread.m3:627 >> #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=3D8=2C read=3D1 '\001'= >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 >> #4 0x00346693 in TCP__GetBytesFD (t=3D0x22562c4=2C arr=3D0x225e00c=2C tim= >eout=3D-1) at ../src/POSIX/TCP.m3:326 >> #5 0x00348786 in ConnRW__RdSeek (rd=3D0x2256318=2C pos=3D0=2C dontBlock= >=3D0 '\0') at ../src/common/ConnRW.m3:69 >> #6 0x00356338 in Rd__DoSeek (rd=3D0x2256318) at ../src/rw/Rd.m3:54 >> #7 0x003560c1 in UnsafeRd__FastGetChar (rd=3D0x2256318) at ../src/rw/Rd.m= >3:43 >> #8 0x00356018 in Rd__GetChar (rd=3D0x2256318) at ../src/rw/Rd.m3:34 >> #9 0x002c62c5 in ReadLine__ReadALine (t=3D0x225600c) at ../src/ReadLine.m= >3:151 >> #10 0x002c877e in ReadLine__ReadLine (t=3D0x225600c) at ../src/ReadLine.m= >3:411 >> #11 0x0023b1fb in SchemeReadLine__GetCh (p=3D0x2256348) at ../src/SchemeR= >eadLine.m3:80 >> #12 0x0025f4b3 in SchemeInputPort__NextToken (t=3D0x2256348=2C wx=3D0x225= >63cc) at ../src/SchemeInputPort.m3:309 >> #13 0x0025eb94 in SchemeInputPort__Read (t=3D0x2256348) at ../src/SchemeI= >nputPort.m3:177 >> #14 0x0023ba70 in SchemeReadLine__MainLoop (rl=3D0x225600c=2C scm=3D0x223= >40d0) at ../src/SchemeReadLine.m3:146 >> #15 0x00006c23 in Main__SCApply (c=3D0x2255620) at ../src/Main.m3:92 >> #16 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20030c0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #17 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20030c0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #18 0x9713885d in _pthread_start () >> #19 0x971386e2 in thread_start () >> >> Thread 27 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x161e470) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003befff in ThreadPThread__LockMutex (m=3D0x22440a4) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x002dbd63 in SXLongReal__Update (v=3D0x2244010=2C newValue=3D12937212= >30.087589=2C when=3D1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 =3D>= > ../src/SXType.mg:79 >> #5 0x002dc086 in SXLongReal__SetVar (v=3D0x2244010=2C newValue=3D12937212= >30.087589=2C when=3D1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 =3D>= > ../src/SXType.mg:98 >> #6 0x00300c16 in SXTimer__Loop (cl=3D0x173934c) at ../src/SXTimer.m3:64 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2001ec0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2001ec0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 26 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20011c0=2C j=3D0= >x2001e10) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2001db0=2C m=3D0x1738078= >=2C c=3D0x17380a8=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1738078=2C c=3D0x17380a8) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x0009e3d6 in GCOMSOrderStatus__Apply (cl=3D0x17380b8) at ../src/GCOMS= >OrderStatus.m3:166 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2001db0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2001db0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 25 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x1619840=2C j=3D0= >x1619920) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x161a170=2C m=3D0x15aab74= >=2C c=3D0x15aab80=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15aab74=2C c=3D0x15aab80) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x000a4482 in GCOMSBusyOrders__Apply (cl=3D0x15aab90) at ../src/GCOMSB= >usyOrders.m3:63 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161a170) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161a170) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 24 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20011a0=2C j=3D0= >x2001170) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2001110=2C m=3D0x173e044= >=2C c=3D0x173e050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x173e044=2C c=3D0x173e050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0bace84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0bace84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1594280) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15943b0) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2001110) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2001110) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 23 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20010f0=2C j=3D0= >x20010c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2001060=2C m=3D0x1724034= >=2C c=3D0x1724040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1724034=2C c=3D0x1724040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0b2ae84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0b2ae84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15940f0) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1594220) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2001060) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2001060) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 22 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2001040=2C j=3D0= >x2001010) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000fb0=2C m=3D0x1722034= >=2C c=3D0x1722040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1722034=2C c=3D0x1722040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0aa8e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0aa8e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15adb40) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad7cc) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000fb0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000fb0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 21 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000f90=2C j=3D0= >x2000f60) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000f00=2C m=3D0x1720034= >=2C c=3D0x1720040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1720034=2C c=3D0x1720040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0a26e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0a26e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15adae0) at ../src/SX.m3:151 >> #9 0x0016017c in CurrencySXProxy__Apply (cl=3D0x15ad7b0) at ../I386_DARWI= >N/CurrencySXProxy.m3 =3D> /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000f00) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000f00) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 20 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000ee0=2C j=3D0= >x2000eb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000e50=2C m=3D0x173c044= >=2C c=3D0x173c050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x173c044=2C c=3D0x173c050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb09a4e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb09a4e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad450) at ../src/SX.m3:151 >> #9 0x002d3613 in BoolSXProxy__Apply (cl=3D0x15ad794) at ../I386_DARWIN/Bo= >olSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000e50) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000e50) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 19 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000e30=2C j=3D0= >x2000e00) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000da0=2C m=3D0x171e034= >=2C c=3D0x171e040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x171e034=2C c=3D0x171e040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0922e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0922e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad3e8) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad778) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000da0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000da0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 18 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000d80=2C j=3D0= >x2000d50) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000cf0=2C m=3D0x1740044= >=2C c=3D0x1740050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1740044=2C c=3D0x1740050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb08a0e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb08a0e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad380) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad75c) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000cf0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000cf0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 17 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000cd0=2C j=3D0= >x2000ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000c40=2C m=3D0x1704044= >=2C c=3D0x1704050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1704044=2C c=3D0x1704050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb081ee84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb081ee84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad318) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad740) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000c40) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000c40) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 16 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000c20=2C j=3D0= >x2000bf0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000b90=2C m=3D0x1702044= >=2C c=3D0x1702050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1702044=2C c=3D0x1702050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb079ce84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb079ce84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad2b0) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad724) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000b90) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000b90) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 15 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000b70=2C j=3D0= >x2000b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000ae0=2C m=3D0x173a044= >=2C c=3D0x173a050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x173a044=2C c=3D0x173a050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb071ae84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb071ae84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad248) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad708) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000ae0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000ae0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 14 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000ac0=2C j=3D0= >x2000a90) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000a30=2C m=3D0x171a034= >=2C c=3D0x171a040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x171a034=2C c=3D0x171a040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0698e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0698e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad1e0) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad6ec) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000a30) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000a30) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 13 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000a10=2C j=3D0= >x20009e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000980=2C m=3D0x1718034= >=2C c=3D0x1718040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1718034=2C c=3D0x1718040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0616e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0616e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad618) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad6d0) at ../I386_DARWI= N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000980) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000980) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 12 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000960=2C j=3D0= >x2000930) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x20008d0=2C m=3D0x1716034= >=2C c=3D0x1716040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1716034=2C c=3D0x1716040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0594e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0594e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad5b0) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad6b4) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20008d0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20008d0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 11 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20008b0=2C j=3D0= >x2000880) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000820=2C m=3D0x1714034= >=2C c=3D0x1714040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1714034=2C c=3D0x1714040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0512e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0512e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad548) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad698) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000820) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000820) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 10 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000800=2C j=3D0= >x20007d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000770=2C m=3D0x1712034= >=2C c=3D0x1712040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1712034=2C c=3D0x1712040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0490e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0490e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15acea8) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad67c) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000770) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000770) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 9 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000750=2C j=3D0= >x2000720) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x20006c0=2C m=3D0x15b6034= >=2C c=3D0x15b6040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15b6034=2C c=3D0x15b6040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb040ee84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb040ee84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591ea8) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1591fd8) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20006c0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20006c0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 8 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20006a0=2C j=3D0= >x2000670) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000610=2C m=3D0x15b4034= >=2C c=3D0x15b4040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15b4034=2C c=3D0x15b4040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb038ce84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb038ce84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591bf8) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1591d28) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000610) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000610) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 7 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20005f0=2C j=3D0= >x20005c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000560=2C m=3D0x15b2034= >=2C c=3D0x15b2040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15b2034=2C c=3D0x15b2040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb030ae84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb030ae84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591a70) at ../src/SX.m3:151 >> #9 0x0016017c in CurrencySXProxy__Apply (cl=3D0x1591b98) at ../I386_DARWI= >N/CurrencySXProxy.m3 =3D> /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000560) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000560) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 6 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000540=2C j=3D0= >x2000510) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x20004b0=2C m=3D0x171c0c0= >=2C c=3D0x171c0cc=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x171c0c0=2C c=3D0x171c0cc) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0288e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0288e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591808) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1591938) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20004b0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20004b0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 5 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000490=2C j=3D0= >x2000460) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000400=2C m=3D0x15b0034= >=2C c=3D0x15b0040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15b0034=2C c=3D0x15b0040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0206e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0206e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591678) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15917a8) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000400) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000400) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 4 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20003e0=2C j=3D0= >x20003b0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000350=2C m=3D0x15ae034= >=2C c=3D0x15ae040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15ae034=2C c=3D0x15ae040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0184e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0184e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15914e8) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1591618) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000350) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000350) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 3 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000150=2C j=3D0= >x20002c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000260=2C m=3D0x159123c= >=2C c=3D0x159122c=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x159123c=2C c=3D0x159122c) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002ce79c in VarProxyDefs__NotifyApply (cl=3D0x1591248) at ../src/Var= >ProxyDefs.m3:55 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000260) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000260) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 2 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613c20) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003beefd in ThreadPThread__InitMutex (m=3D0x23480ac=2C root=3D0x2348= >0a8=2C Clean=3D0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >> #4 0x003befce in ThreadPThread__LockMutex (m=3D0x23480a8) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #5 0x00355ff6 in Rd__GetChar (rd=3D0x23480a8) at ../src/rw/Rd.m3:33 >> #6 0x00364b5d in Lex__Skip (rd=3D0x23480a8=2C cs=3D0x587ff8) at ../src/fm= >tlex/Lex.m3:46 >> #7 0x00366e53 in Lex__ReadReal (rd=3D0x23480a8=2C sign=3D0xb0080ca3=2C di= >gits=3D0xb0080cbc=2C digCnt=3D0xb0080ca8=2C exp=3D0xb0080cac) at ../src/fmt= >lex/Lex.m3:569 >> #8 0x003678f0 in Lex__LongReal (rd=3D0x23480a8) at ../src/fmtlex/Lex.m3:6= >62 >> #9 0x0036834e in Scan__LongReal (txt=3D0x234807c) at ../src/fmtlex/Scan.m= >3:77 >> #10 0x003260a0 in XTime__ClApply (cl=3D0x15971b8) at ../src/XTime.m3:185 >> #11 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161a0b0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161a0b0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #13 0x9713885d in _pthread_start () >> #14 0x971386e2 in thread_start () >> >> Thread 1 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x16076f0=2C j=3D0= >x16076c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x1607660=2C m=3D0x15ac4b0= >=2C c=3D0x242f190=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003c1499 in ThreadPThread__XJoin (self=3D0x1607660=2C t=3D0x242f174= >=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:513 >> #6 0x003c15ae in Thread__Join (t=3D0x242f174) at ../src/thread/PTHREAD/Th= >readPThread.m3:525 >> #7 0x003158c9 in ProcUtils__Wait (c=3D0x242f0d4) at ../src/ProcUtils.m3:3= >18 >> #8 0x0024618a in SchemeCommandRunner__RealRunTimeoutCommandApply (proc=3D= >0x1738cc4=2C interp=3D0x2367eac=2C args=3D0x239bd88) at ../src/SchemeComman= >dRunner.m3:164 >> #9 0x00245e07 in SchemeCommandRunner__RunTimeoutCommandApply (proc=3D0x17= >38cc4=2C interp=3D0x2367eac=2C args=3D0x239bd88) at ../src/SchemeCommandRun= >ner.m3:129 >> #10 0x00245405 in SchemeCommandRunner__RunCommandApply (proc=3D0x1738cc4= >=2C interp=3D0x2367eac=2C args=3D0x239bd70) at ../src/SchemeCommandRunner.m= >3:23 >> #11 0x0025c183 in SchemePrimitive__EDApply (ed=3D0x1738340=2C t=3D0x236b5= >40=2C interp=3D0x2367eac=2C args=3D0x239bd70) at ../src/SchemePrimitive.m3:= >207 >> #12 0x00256d12 in SchemePrimitive__Prims (t=3D0x236b540=2C interp=3D0x236= >7eac=2C args=3D0x239bd70=2C x=3D0x239a328=2C y=3D0x239bd5c=2C free=3D0xbfff= >e82f) at ../src/SchemePrimitive.m3:580 >> #13 0x0025bb2b in SchemePrimitive__Apply2 (t=3D0x236b540=2C interp=3D0x23= >67eac=2C a1=3D0x239a328=2C a2=3D0x239bd5c) at ../src/SchemePrimitive.m3:549 >> #14 0x0024d640 in Scheme__EvalInternal (t=3D0x2367eac=2C x=3D0x239a288=2C= > env=3D0x239bce0) at ../src/Scheme.m3:585 >> #15 0x0024d3a8 in Scheme__EvalInternal (t=3D0x2367eac=2C x=3D0x239a1d8=2C= > env=3D0x239bce0) at ../src/Scheme.m3:582 >> #16 0x0024d82d in Scheme__Eval (t=3D0x2367eac=2C x=3D0x239b098=2C envP=3D= >0x2367ef4) at ../src/Scheme.m3:353 >> #17 0x0024b005 in Scheme__EvalInGlobalEnv (t=3D0x2367eac=2C x=3D0x239b098= >) at ../src/Scheme.m3:603 >> #18 0x0002aebc in SchemeCalculator__Calc (t=3D0x2367e9c=2C arr=3D0xbfffec= >dc) at ../src/SchemeCalculator.m3:61 >> #19 0x0000cbd3 in EuroDriver__Loop (t=3D0x224da38) at ../src/EuroDriver.m= >3:289 >> #20 0x00008820 in Main_M3 (mode=3D1) at ../src/Main.m3:268 >> #21 0x003b465a in RTLinker__RunMainBody (m=3D0x59e4c0) at ../src/runtime/= >common/RTLinker.m3:406 >> #22 0x003b3a8f in RTLinker__AddUnitI (m=3D0x59e4c0) at ../src/runtime/com= >mon/RTLinker.m3:113 >> #23 0x003b3b13 in RTLinker__AddUnit (b=3D0x6c5d) at ../src/runtime/common= >/RTLinker.m3:122 >> #24 0x000052ec in main (argc=3D19=2C argv=3D0xbffff1b4=2C envp=3D0xbffff2= >04) at _m3main.c:16 >> >> Thread 75 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003ac2e3 in ThreadPThread__PThreadLockMutex (mutex=3D0x5d3ac0=2C lin= >e=3D1288=2C index=3D2) at ../src/thread/PTHREAD/ThreadPThread.m3:1262 >> #4 0x003ac409 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD= >/ThreadPThread.m3:1288 >> #5 0x97137217 in _cthread_fork_prepare () >> #6 0x97137155 in fork () >> #7 0x0033bc4d in ProcessPosixCommon__Create_ForkExec (cmd=3D0x31e02ac=2C = >params=3D0x31e03c8=2C env=3D0x0=2C wd=3D0x53bf44=2C stdin=3D0x0=2C stdout= >=3D0x30e91cc=2C stderr=3D0x30ea700) at ../src/os/POSIX/ProcessPosixCommon.m= >3:75 >> #8 0x0033d137 in Process__Create (cmd=3D0x31e02ac=2C params=3D0x31e03c8= >=2C env=3D0x0=2C wd=3D0x53bf44=2C stdin=3D0x0=2C stdout=3D0x30e91cc=2C stde= >rr=3D0x30ea700) at ../src/os/POSIX/ProcessPosix.m3:21 >> #9 0x002ffdbc in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:18= >0 >> #10 0x003007c1 in ProcUtils__Apply (self=3D0x30eb88c) at ../src/ProcUtils= >.m3:274 >> #11 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161dd00) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #12 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161dd00) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #13 0x9713885d in _pthread_start () >> #14 0x971386e2 in thread_start () >> >> Thread 74 (process 67010): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D13=2C read=3D1=2C m3timeout= >=3D-1) at ../src/thread/Common/ThreadInternal.c:57 >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x161dc50=2C fd=3D13=2C r= >ead=3D1 '\001'=2C interval=3D-1=2C alertable=3D0 '\0') at ../src/thread/PTH= >READ/ThreadPThread.m3:627 >> #3 0x003aa6dc in SchedulerPosix__IOWait (fd=3D13=2C read=3D1 '\001'=2C ti= >meoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 >> #4 0x00338b5f in FilePosix__IntermittentRead (h=3D0x30ea6f0=2C b=3D0xb1ef= >8cf0=2C mayBlock=3D1 '\001') at ../src/os/POSIX/FilePosix.m3:220 >> #5 0x00347c68 in FileRd__Seek (rd=3D0x30ea710=2C pos=3D0=2C dontBlock=3D0= > '\0') at ../src/rw/FileRd.m3:83 >> #6 0x0033f64d in Rd__DoSeek (rd=3D0x30ea710) at ../src/rw/Rd.m3:54 >> #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=3D0x30ea710) at ../src/rw/Rd.m= >3:43 >> #8 0x0033f32d in Rd__GetChar (rd=3D0x30ea710) at ../src/rw/Rd.m3:34 >> #9 0x00300a0b in ProcUtils__SSApply (self=3D0x30eb854) at ../src/ProcUtil= >s.m3:54 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161dc50) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161dc50) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 73 (process 67010): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D11=2C read=3D1=2C m3timeout= >=3D-1) at ../src/thread/Common/ThreadInternal.c:57 >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x161dbc0=2C fd=3D11=2C r= >ead=3D1 '\001'=2C interval=3D-1=2C alertable=3D0 '\0') at ../src/thread/PTH= >READ/ThreadPThread.m3:627 >> #3 0x003aa6dc in SchedulerPosix__IOWait (fd=3D11=2C read=3D1 '\001'=2C ti= >meoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 >> #4 0x00338b5f in FilePosix__IntermittentRead (h=3D0x30e91bc=2C b=3D0xb1e7= >6cf0=2C mayBlock=3D1 '\001') at ../src/os/POSIX/FilePosix.m3:220 >> #5 0x00347c68 in FileRd__Seek (rd=3D0x30e91dc=2C pos=3D0=2C dontBlock=3D0= > '\0') at ../src/rw/FileRd.m3:83 >> #6 0x0033f64d in Rd__DoSeek (rd=3D0x30e91dc) at ../src/rw/Rd.m3:54 >> #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=3D0x30e91dc) at ../src/rw/Rd.m= >3:43 >> #8 0x0033f32d in Rd__GetChar (rd=3D0x30e91dc) at ../src/rw/Rd.m3:34 >> #9 0x00300a0b in ProcUtils__SSApply (self=3D0x30eb81c) at ../src/ProcUtil= >s.m3:54 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161dbc0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161dbc0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 72 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7ebe in ThreadPThread__InitMutex (m=3D0x31339fc=2C root=3D0x3133= >9f8=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >> #4 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x31339f8) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #5 0x0033f30b in Rd__GetChar (rd=3D0x31339f8) at ../src/rw/Rd.m3:33 >> #6 0x0034dffd in Lex__Skip (rd=3D0x31339f8=2C cs=3D0x548018) at ../src/fm= >tlex/Lex.m3:46 >> #7 0x003503c3 in Lex__ReadReal (rd=3D0x31339f8=2C sign=3D0xb1df47c3=2C di= >gits=3D0xb1df47dc=2C digCnt=3D0xb1df47c8=2C exp=3D0xb1df47cc) at ../src/fmt= >lex/Lex.m3:569 >> #8 0x00350ef5 in Lex__LongReal (rd=3D0x31339f8) at ../src/fmtlex/Lex.m3:6= >62 >> #9 0x003518f1 in Scan__LongReal (txt=3D0x25768e8) at ../src/fmtlex/Scan.m= >3:77 >> #10 0x0024f849 in SchemeInputPort__NextToken (t=3D0x30d4aec=2C wx=3D0x313= >37e8) at ../src/SchemeInputPort.m3:439 >> #11 0x0024fb9c in SchemeInputPort__ReadTail2 (t=3D0x30d4aec=2C wx=3D0x313= >37e8) at ../src/SchemeInputPort.m3:240 >> #12 0x0024e100 in SchemeInputPort__Read (t=3D0x30d4aec) at ../src/SchemeI= >nputPort.m3:179 >> #13 0x0024e2bc in SchemeInputPort__Read (t=3D0x30d4aec) at ../src/SchemeI= >nputPort.m3:191 >> #14 0x0024fb73 in SchemeInputPort__ReadTail2 (t=3D0x30d4aec=2C wx=3D0x313= >3620) at ../src/SchemeInputPort.m3:240 >> #15 0x0024e100 in SchemeInputPort__Read (t=3D0x30d4aec) at ../src/SchemeI= >nputPort.m3:179 >> #16 0x0024fb73 in SchemeInputPort__ReadTail2 (t=3D0x30d4aec=2C wx=3D0x313= >3548) at ../src/SchemeInputPort.m3:240 >> #17 0x0024e100 in SchemeInputPort__Read (t=3D0x30d4aec) at ../src/SchemeI= >nputPort.m3:179 >> #18 0x0023c6cd in Scheme__LoadPort (t=3D0x30d018c=2C in=3D0x30d4aec) at .= >./src/Scheme.m3:317 >> #19 0x002399e3 in Scheme__LoadRd (t=3D0x30d018c=2C rd=3D0x30d3cf0=2C fn= >=3D0x0) at ../src/Scheme.m3:174 >> #20 0x0023d255 in Scheme__ReadInitialFiles (t=3D0x30d018c=2C files=3D0x46= >fc8c) at ../src/Scheme.m3:134 >> #21 0x0023d5e7 in Scheme__Init2 (t=3D0x30d018c=2C input=3D0x20003b4=2C ou= >tput=3D0x20013e8=2C files=3D0x46fc8c=2C env=3D0x0) at ../src/Scheme.m3:127 >> #22 0x00239461 in Scheme__Init (t=3D0x30d018c=2C files=3D0x46fc8c=2C env= >=3D0x0) at ../src/Scheme.m3:102 >> #23 0x00029420 in SchemeCalculator__Init (t=3D0x30d017c=2C code=3D0x263fc= >cc) at ../src/SchemeCalculator.m3:28 >> #24 0x0000deef in EuroDriver__OApply (cl=3D0x3241b88) at ../src/EuroDrive= >r.m3:865 >> #25 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2307650) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #26 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2307650) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #27 0x9713885d in _pthread_start () >> #28 0x971386e2 in thread_start () >> >> Thread 71 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3b40) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= >.m3:1345 >> #4 0x003995a6 in RTHeapRep__RegisterFinalCleanup (r=3D0x31239f8=2C p=3D0x= >3a7d52) at ../src/runtime/common/RTCollector.m3:2148 >> #5 0x003a7f1e in ThreadPThread__InitMutex (m=3D0x31239fc=2C root=3D0x3123= >9f8=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:106 >> #6 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x31239f8) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #7 0x0033f30b in Rd__GetChar (rd=3D0x31239f8) at ../src/rw/Rd.m3:33 >> #8 0x0034dffd in Lex__Skip (rd=3D0x31239f8=2C cs=3D0x548018) at ../src/fm= >tlex/Lex.m3:46 >> #9 0x003503c3 in Lex__ReadReal (rd=3D0x31239f8=2C sign=3D0xb1d727c3=2C di= >gits=3D0xb1d727dc=2C digCnt=3D0xb1d727c8=2C exp=3D0xb1d727cc) at ../src/fmt= >lex/Lex.m3:569 >> #10 0x00350ef5 in Lex__LongReal (rd=3D0x31239f8) at ../src/fmtlex/Lex.m3:= >662 >> #11 0x003518f1 in Scan__LongReal (txt=3D0x25768e8) at ../src/fmtlex/Scan.= >m3:77 >> #12 0x0024f849 in SchemeInputPort__NextToken (t=3D0x3264aec=2C wx=3D0x312= >37e8) at ../src/SchemeInputPort.m3:439 >> #13 0x0024fb9c in SchemeInputPort__ReadTail2 (t=3D0x3264aec=2C wx=3D0x312= >37e8) at ../src/SchemeInputPort.m3:240 >> #14 0x0024e100 in SchemeInputPort__Read (t=3D0x3264aec) at ../src/SchemeI= >nputPort.m3:179 >> #15 0x0024e2bc in SchemeInputPort__Read (t=3D0x3264aec) at ../src/SchemeI= >nputPort.m3:191 >> #16 0x0024fb73 in SchemeInputPort__ReadTail2 (t=3D0x3264aec=2C wx=3D0x312= >3620) at ../src/SchemeInputPort.m3:240 >> #17 0x0024e100 in SchemeInputPort__Read (t=3D0x3264aec) at ../src/SchemeI= >nputPort.m3:179 >> #18 0x0024fb73 in SchemeInputPort__ReadTail2 (t=3D0x3264aec=2C wx=3D0x312= >3548) at ../src/SchemeInputPort.m3:240 >> #19 0x0024e100 in SchemeInputPort__Read (t=3D0x3264aec) at ../src/SchemeI= >nputPort.m3:179 >> #20 0x0023c6cd in Scheme__LoadPort (t=3D0x326018c=2C in=3D0x3264aec) at .= >./src/Scheme.m3:317 >> #21 0x002399e3 in Scheme__LoadRd (t=3D0x326018c=2C rd=3D0x3263cf0=2C fn= >=3D0x0) at ../src/Scheme.m3:174 >> #22 0x0023d255 in Scheme__ReadInitialFiles (t=3D0x326018c=2C files=3D0x46= >fc8c) at ../src/Scheme.m3:134 >> #23 0x0023d5e7 in Scheme__Init2 (t=3D0x326018c=2C input=3D0x20003b4=2C ou= >tput=3D0x20013e8=2C files=3D0x46fc8c=2C env=3D0x0) at ../src/Scheme.m3:127 >> #24 0x00239461 in Scheme__Init (t=3D0x326018c=2C files=3D0x46fc8c=2C env= >=3D0x0) at ../src/Scheme.m3:102 >> #25 0x00029420 in SchemeCalculator__Init (t=3D0x326017c=2C code=3D0x263fc= >cc) at ../src/SchemeCalculator.m3:28 >> #26 0x0000deef in EuroDriver__OApply (cl=3D0x3241af0) at ../src/EuroDrive= >r.m3:865 >> #27 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23075c0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #28 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23075c0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #29 0x9713885d in _pthread_start () >> #30 0x971386e2 in thread_start () >> >> Thread 67 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7ebe in ThreadPThread__InitMutex (m=3D0x2686284=2C root=3D0x2686= >280=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >> #4 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x2686280) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #5 0x003a7d30 in Thread__Acquire (m=3D0x2686280) at ../src/thread/PTHREAD= >/ThreadPThread.m3:81 >> #6 0x00343175 in RdClass__Lock (rd=3D0x2686280) at ../src/rw/Rd.m3:521 >> #7 0x0024d9ef in SchemeInputPort__Lock (t=3D0x2686368) at ../src/SchemeIn= >putPort.m3:72 >> #8 0x0024e87d in SchemeInputPort__NextToken (t=3D0x2686368=2C wx=3D0x2686= >388) at ../src/SchemeInputPort.m3:299 >> #9 0x0024e0bb in SchemeInputPort__Read (t=3D0x2686368) at ../src/SchemeIn= >putPort.m3:177 >> #10 0x00239a38 in Scheme__LoadEval (t=3D0x254018c=2C rd=3D0x2686280) at .= >./src/Scheme.m3:291 >> #11 0x00239abd in Scheme__LoadEvalText (t=3D0x254018c=2C txt=3D0x263fccc)= > at ../src/Scheme.m3:306 >> #12 0x00029574 in SchemeCalculator__Calc (t=3D0x254017c=2C arr=3D0xb1cf09= >e4) at ../src/SchemeCalculator.m3:47 >> #13 0x0000ee50 in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/Eur= >oDriver.m3:564 >> #14 0x0000e7d6 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/E= >uroDriver.m3:507 >> #15 0x000103ca in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriv= >er.m3:795 >> #16 0x0000e3a2 in EuroDriver__OApply (cl=3D0x3018bb0) at ../src/EuroDrive= >r.m3:892 >> #17 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23054a0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #18 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23054a0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #19 0x9713885d in _pthread_start () >> #20 0x971386e2 in thread_start () >> >> Thread 66 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x230d020=2C j=3D0= >x2305470) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2305410=2C m=3D0x311a158= >=2C c=3D0x311a164=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x311a158=2C c=3D0x311a164) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb1c6ecb8=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb1c6ecb8=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x0001063a in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDrive= >r.m3:832 >> #9 0x0000e3a2 in EuroDriver__OApply (cl=3D0x3018b18) at ../src/EuroDriver= >.m3:892 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2305410) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2305410) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 62 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x23019d0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x31b1584) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x003a7d30 in Thread__Acquire (m=3D0x31b1584) at ../src/thread/PTHREAD= >/ThreadPThread.m3:81 >> #5 0x002c5bb6 in SX__Lock (arr=3D0x327c430) at ../src/SX.m3:318 >> #6 0x002c5496 in SXSelect__WaitE (on=3D0xb1beccb8=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:241 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb1beccb8=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x0001063a in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDrive= >r.m3:832 >> #9 0x0000e3a2 in EuroDriver__OApply (cl=3D0x21fcc00) at ../src/EuroDriver= >.m3:892 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1626040) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1626040) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 61 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7ebe in ThreadPThread__InitMutex (m=3D0x252c4b4=2C root=3D0x252c= >4b0=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >> #4 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x252c4b0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #5 0x003a7d30 in Thread__Acquire (m=3D0x252c4b0) at ../src/thread/PTHREAD= >/ThreadPThread.m3:81 >> #6 0x00343175 in RdClass__Lock (rd=3D0x252c4b0) at ../src/rw/Rd.m3:521 >> #7 0x0024d9ef in SchemeInputPort__Lock (t=3D0x252c598) at ../src/SchemeIn= >putPort.m3:72 >> #8 0x0024e87d in SchemeInputPort__NextToken (t=3D0x252c598=2C wx=3D0x252c= >5b8) at ../src/SchemeInputPort.m3:299 >> #9 0x0024e0bb in SchemeInputPort__Read (t=3D0x252c598) at ../src/SchemeIn= >putPort.m3:177 >> #10 0x00239a38 in Scheme__LoadEval (t=3D0x26f018c=2C rd=3D0x252c4b0) at .= >./src/Scheme.m3:291 >> #11 0x00239abd in Scheme__LoadEvalText (t=3D0x26f018c=2C txt=3D0x263fccc)= > at ../src/Scheme.m3:306 >> #12 0x00029574 in SchemeCalculator__Calc (t=3D0x26f017c=2C arr=3D0xb1b6a8= >64) at ../src/SchemeCalculator.m3:47 >> #13 0x0000ee50 in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/Eur= >oDriver.m3:564 >> #14 0x0000e7d6 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/E= >uroDriver.m3:507 >> #15 0x000103ca in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriv= >er.m3:795 >> #16 0x0000e3a2 in EuroDriver__OApply (cl=3D0x21fcb68) at ../src/EuroDrive= >r.m3:892 >> #17 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1625f80) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #18 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1625f80) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #19 0x9713885d in _pthread_start () >> #20 0x971386e2 in thread_start () >> >> Thread 54 (process 67010): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D10=2C read=3D1=2C m3timeout= >=3D1) at ../src/thread/Common/ThreadInternal.c:57 >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x23071d0=2C fd=3D10=2C r= >ead=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001= >') at ../src/thread/PTHREAD/ThreadPThread.m3:627 >> #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=3D10=2C read=3D1 '\001'= >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 >> #4 0x003344ff in TCP__GetBytesFD (t=3D0x3050f80=2C arr=3D0x3053048=2C tim= >eout=3D-1) at ../src/POSIX/TCP.m3:326 >> #5 0x003365ce in ConnRW__RdSeek (rd=3D0x3053018=2C pos=3D390=2C dontBlock= >=3D0 '\0') at ../src/common/ConnRW.m3:69 >> #6 0x003424e3 in Rd__GetLine (rd=3D0x3053018) at ../src/rw/Rd.m3:426 >> #7 0x002a00d4 in TWSTester__RApply (cl=3D0x3055054) at ../src/TWSTester.m= >3:382 >> #8 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23071d0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #9 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23071d0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #10 0x9713885d in _pthread_start () >> #11 0x971386e2 in thread_start () >> >> Thread 53 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x1621150= >=2C mutex=3D0x1621120=2C m3timeout=3D1294537044.5119109) at ../src/thread/P= >THREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x16210c0=2C n=3D0.5=2C al= >ertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D0.5) at ../src/thread/PTHREAD/ThreadP= >Thread.m3:567 >> #6 0x00286610 in PMTWS__TSCApply (cl=3D0x3050e30) at ../src/PMTWS.m3:229 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x16210c0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x16210c0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 52 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3b40) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= >.m3:1345 >> #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=3D24=2C dataAlignment= >=3D4=2C thread=3D0x1621054) at ../src/runtime/common/RTAllocator.m3:363 >> #5 0x0038f2c7 in RTAllocator__GetTracedObj (def=3D0x5d6bf4) at ../src/run= >time/common/RTAllocator.m3:224 >> #6 0x0038ed60 in RTHooks__AllocateTracedObj (defn=3D0x5d6bf4) at ../src/r= >untime/common/RTAllocator.m3:122 >> #7 0x003bc686 in RTHooks__Concat (t=3D0x3240a08=2C u=3D0x52c460) at ../sr= >c/text/TextCat.m3:28 >> #8 0x0029e655 in TWSTester__MakeString (contract=3D0xb19e4dc0) at ../src/= >TWSTester.m3:92 >> #9 0x0029ea07 in TWSTester__ReqMktData (t=3D0x30505a8=2C tickerId=3D4=2C = >contract=3D0xb19e4dc0) at ../src/TWSTester.m3:136 >> #10 0x002aa233 in TWSTestBridge__MreqMktData (t=3D0x30505a8=2C tickerId= >=3D4=2C contract=3D0xb19e4dc0) at ../src/TWSTestBridge.m3 =3D> ../src/TWSBr= >idgeG.mg:580 >> #11 0x00286034 in PMTWS__TSCApply (cl=3D0x3050dec) at ../src/PMTWS.m3:210 >> #12 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1621010) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #13 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1621010) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #14 0x9713885d in _pthread_start () >> #15 0x971386e2 in thread_start () >> >> Thread 51 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3b40) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= >.m3:1345 >> #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=3D136=2C dataAlignmen= >t=3D8=2C thread=3D0x1620ed4) at ../src/runtime/common/RTAllocator.m3:363 >> #5 0x0038f048 in RTAllocator__GetTracedRef (def=3D0x5711e0) at ../src/run= >time/common/RTAllocator.m3:202 >> #6 0x0038ed2f in RTHooks__AllocateTracedRef (defn=3D0x5711e0) at ../src/r= >untime/common/RTAllocator.m3:115 >> #7 0x000a8f49 in IntDBTable_gcoms_instrumentTbl__Put (tbl=3D0x328f110=2C = >key=3D0xb1962d7c=2C val=3D0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_in= >strumentTbl.m3 =3D> /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 >> #8 0x000a5ecc in DBTable_gcoms_instrumentMonitor__CopyC (cl=3D0x26608c0= >=2C res=3D0x328f110) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 = >=3D> /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 >> #9 0x00085c9f in GCOMSPortfolio__Lock (t=3D0x2660590) at ../src/GCOMSPort= >folio.m3:94 >> #10 0x000288d9 in SXPortfolio__Scan (t=3D0x300c578) at ../src/SXPortfolio= >.m3:47 >> #11 0x0002920d in SXPortfolio__Apply (cl=3D0x3050324) at ../src/SXPortfol= >io.m3:113 >> #12 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620e90) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #13 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620e90) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #14 0x9713885d in _pthread_start () >> #15 0x971386e2 in thread_start () >> >> Thread 50 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4ad9= >44=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= >25 >> #5 0x000d9ad8 in DBTable_gcoms_aux_ordrMonitor__DbNow (db=3D0x26602c4) at= > ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/calarm/= >ratsql/src/TableMonitor.mg:456 >> #6 0x000d9cdf in DBTable_gcoms_aux_ordrMonitor__CheckForNew (cl=3D0x300c2= >18) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/c= >alarm/ratsql/src/TableMonitor.mg:467 >> #7 0x000d9a01 in DBTable_gcoms_aux_ordrMonitor__Sync (cl=3D0x300c218) at = >../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/calarm/r= >atsql/src/TableMonitor.mg:445 >> #8 0x000d9588 in DBTable_gcoms_aux_ordrMonitor__ApplyC (cl=3D0x300c218) a= >t ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/calarm= >/ratsql/src/TableMonitor.mg:393 >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620d80) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620d80) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #11 0x9713885d in _pthread_start () >> #12 0x971386e2 in thread_start () >> >> Thread 49 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x1620d60= >=2C mutex=3D0x1620cd0=2C m3timeout=3D1294537044.970454) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x1620d00=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000db5a3 in DBTable_gcoms_aux_ordrMonitor__CleanerApply (cl=3D0x300c= >410) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/= >calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620d00) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620d00) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 48 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4aa2= >28=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= >25 >> #5 0x000cb8aa in DBTable_gcoms_fillMonitor__DbNow (db=3D0x26602c4) at ../= >I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/s= >rc/TableMonitor.mg:456 >> #6 0x000cbbf5 in DBTable_gcoms_fillMonitor__CheckForNew (cl=3D0x300bf48) = >at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ra= >tsql/src/TableMonitor.mg:467 >> #7 0x000cb7d3 in DBTable_gcoms_fillMonitor__Sync (cl=3D0x300bf48) at ../I= >386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/sr= >c/TableMonitor.mg:445 >> #8 0x000cb35a in DBTable_gcoms_fillMonitor__ApplyC (cl=3D0x300bf48) at ..= >/I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/= >src/TableMonitor.mg:393 >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620b50) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620b50) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #11 0x9713885d in _pthread_start () >> #12 0x971386e2 in thread_start () >> >> Thread 47 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x16243d0= >=2C mutex=3D0x1620ac0=2C m3timeout=3D1294537044.9675839) at ../src/thread/P= >THREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x1620af0=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000cd5e3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=3D0x300c140)= > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= >atsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620af0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620af0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 46 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4abd= >98=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= >25 >> #5 0x000d2b9a in DBTable_gcoms_aux_instrumentMonitor__DbNow (db=3D0x26602= >c4) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Users/mi= >ka/t/calarm/ratsql/src/TableMonitor.mg:456 >> #6 0x000d2dbf in DBTable_gcoms_aux_instrumentMonitor__CheckForNew (cl=3D0= >x30091c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Us= >ers/mika/t/calarm/ratsql/src/TableMonitor.mg:467 >> #7 0x000d2ac3 in DBTable_gcoms_aux_instrumentMonitor__Sync (cl=3D0x30091c= >8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Users/mik= >a/t/calarm/ratsql/src/TableMonitor.mg:445 >> #8 0x000d264a in DBTable_gcoms_aux_instrumentMonitor__ApplyC (cl=3D0x3009= >1c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Users/m= >ika/t/calarm/ratsql/src/TableMonitor.mg:393 >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2306710) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2306710) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #11 0x9713885d in _pthread_start () >> #12 0x971386e2 in thread_start () >> >> Thread 45 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x230b2d0= >=2C mutex=3D0x2306680=2C m3timeout=3D1294537044.960629) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x23066b0=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000d469b in DBTable_gcoms_aux_instrumentMonitor__CleanerApply (cl=3D= >0x30093c0) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /U= >sers/mika/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23066b0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23066b0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 44 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a15= >9c=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= >25 >> #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=3D0x26602c4) = >at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cal= >arm/ratsql/src/TableMonitor.mg:456 >> #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=3D0x320= >5b38) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika= >/t/calarm/ratsql/src/TableMonitor.mg:467 >> #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=3D0x3205b38) a= >t ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cala= >rm/ratsql/src/TableMonitor.mg:445 >> #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x3205b38)= > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= >larm/ratsql/src/TableMonitor.mg:393 >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x230b000) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x230b000) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #11 0x9713885d in _pthread_start () >> #12 0x971386e2 in thread_start () >> >> Thread 43 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x230afe0= >=2C mutex=3D0x230af20=2C m3timeout=3D1294537044.8138101) at ../src/thread/P= >THREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x230af80=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x32= >05d30) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= >a/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x230af80) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x230af80) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 42 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a15= >9c=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= >25 >> #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=3D0x26602c4) = >at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cal= >arm/ratsql/src/TableMonitor.mg:456 >> #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=3D0x320= >57b0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika= >/t/calarm/ratsql/src/TableMonitor.mg:467 >> #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=3D0x32057b0) a= >t ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cala= >rm/ratsql/src/TableMonitor.mg:445 >> #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x32057b0)= > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= >larm/ratsql/src/TableMonitor.mg:393 >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x230aca0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x230aca0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #11 0x9713885d in _pthread_start () >> #12 0x971386e2 in thread_start () >> >> Thread 41 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x2301860= >=2C mutex=3D0x230ab40=2C m3timeout=3D1294537044.8138311) at ../src/thread/P= >THREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x230aba0=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x32= >059a8) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= >a/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x230aba0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x230aba0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 40 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a6b= >9c=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= >25 >> #5 0x000bd587 in DBTable_gcoms_ordr_statusMonitor__DbNow (db=3D0x26602c4)= > at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mika/t/c= >alarm/ratsql/src/TableMonitor.mg:456 >> #6 0x000bd76e in DBTable_gcoms_ordr_statusMonitor__CheckForNew (cl=3D0x32= >05390) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mi= >ka/t/calarm/ratsql/src/TableMonitor.mg:467 >> #7 0x000bd4b0 in DBTable_gcoms_ordr_statusMonitor__Sync (cl=3D0x3205390) = >at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mika/t/ca= >larm/ratsql/src/TableMonitor.mg:445 >> #8 0x000bd037 in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=3D0x3205390= >) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mika/t/= >calarm/ratsql/src/TableMonitor.mg:393 >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1621f10) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1621f10) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #11 0x9713885d in _pthread_start () >> #12 0x971386e2 in thread_start () >> >> Thread 39 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x16242f0= >=2C mutex=3D0x1621ee0=2C m3timeout=3D1294537044.8137701) at ../src/thread/P= >THREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x1622280=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000bf010 in DBTable_gcoms_ordr_statusMonitor__CleanerApply (cl=3D0x3= >205588) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/m= >ika/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1622280) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1622280) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 38 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a31= >44=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= >25 >> #5 0x000adb3f in DBTable_gcoms_strategyMonitor__DbNow (db=3D0x26602c4) at= > ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/calarm/= >ratsql/src/TableMonitor.mg:456 >> #6 0x000add46 in DBTable_gcoms_strategyMonitor__CheckForNew (cl=3D0x2660b= >88) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/c= >alarm/ratsql/src/TableMonitor.mg:467 >> #7 0x000ada68 in DBTable_gcoms_strategyMonitor__Sync (cl=3D0x2660b88) at = >../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/calarm/r= >atsql/src/TableMonitor.mg:445 >> #8 0x000ad5ef in DBTable_gcoms_strategyMonitor__ApplyC (cl=3D0x2660b88) a= >t ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/calarm= >/ratsql/src/TableMonitor.mg:393 >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161b820) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161b820) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #11 0x9713885d in _pthread_start () >> #12 0x971386e2 in thread_start () >> >> Thread 37 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x2306160= >=2C mutex=3D0x2305f70=2C m3timeout=3D1294537044.6482379) at ../src/thread/P= >THREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x2306100=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000af60a in DBTable_gcoms_strategyMonitor__CleanerApply (cl=3D0x2660= >d78) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/= >calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2306100) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2306100) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 36 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a15= >9c=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= >25 >> #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=3D0x26602c4) = >at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cal= >arm/ratsql/src/TableMonitor.mg:456 >> #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=3D0x266= >08c0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika= >/t/calarm/ratsql/src/TableMonitor.mg:467 >> #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=3D0x26608c0) a= >t ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cala= >rm/ratsql/src/TableMonitor.mg:445 >> #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x26608c0)= > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= >larm/ratsql/src/TableMonitor.mg:393 >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2305e30) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2305e30) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #11 0x9713885d in _pthread_start () >> #12 0x971386e2 in thread_start () >> >> Thread 35 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x2305dd0= >=2C mutex=3D0x2305c40=2C m3timeout=3D1294537044.6481991) at ../src/thread/P= >THREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x2305d70=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x26= >60ab0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= >a/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2305d70) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2305d70) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 34 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3b40) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= >.m3:1345 >> #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=3D32=2C dataAlignment= >=3D4=2C thread=3D0x1623e04) at ../src/runtime/common/RTAllocator.m3:363 >> #5 0x0038f2c7 in RTAllocator__GetTracedObj (def=3D0x5c87d4) at ../src/run= >time/common/RTAllocator.m3:224 >> #6 0x0038ed60 in RTHooks__AllocateTracedObj (defn=3D0x5c87d4) at ../src/r= >untime/common/RTAllocator.m3:122 >> #7 0x00260a50 in DatabaseUtils__FilterUnprintable (t=3D0x4aa228) at ../sr= >c/DatabaseUtils.m3:124 >> #8 0x0026b6ae in UnsafeDatabase__ExecM (t=3D0x2660178=2C query=3D0x4aa228= >=2C busyWait=3D0 '\0'=2C abortConnectionOnFail=3D1 '\001') at ../src/Unsafe= >Database.m3:217 >> #9 0x0026baa5 in UnsafeDatabase__TExecM (t=3D0x2660178=2C query=3D0x4aa22= >8=2C busyWait=3D0 '\0'=2C abortConnectionOnFail=3D1 '\001') at ../src/Unsaf= >eDatabase.m3:258 >> #10 0x002587f9 in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4aa= >228=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:= >126 >> #11 0x000cb8aa in DBTable_gcoms_fillMonitor__DbNow (db=3D0x26602c4) at ..= >/I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/= >src/TableMonitor.mg:456 >> #12 0x000cbbf5 in DBTable_gcoms_fillMonitor__CheckForNew (cl=3D0x26605f8)= > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= >atsql/src/TableMonitor.mg:467 >> #13 0x000cb7d3 in DBTable_gcoms_fillMonitor__Sync (cl=3D0x26605f8) at ../= >I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/s= >rc/TableMonitor.mg:445 >> #14 0x000cb35a in DBTable_gcoms_fillMonitor__ApplyC (cl=3D0x26605f8) at .= >./I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql= >/src/TableMonitor.mg:393 >> #15 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623dc0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #16 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623dc0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #17 0x9713885d in _pthread_start () >> #18 0x971386e2 in thread_start () >> >> Thread 33 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x1623da0= >=2C mutex=3D0x1623640=2C m3timeout=3D1294537044.6482589) at ../src/thread/P= >THREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x1623d40=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000cd5e3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=3D0x26607e8)= > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= >atsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623d40) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623d40) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 32 (process 67010): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D9=2C read=3D1=2C m3timeout=3D= >1) at ../src/thread/Common/ThreadInternal.c:57 >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x1623c00=2C fd=3D9=2C re= >ad=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001'= >) at ../src/thread/PTHREAD/ThreadPThread.m3:627 >> #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=3D9=2C read=3D1 '\001'= >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 >> #4 0x003344ff in TCP__GetBytesFD (t=3D0x267015c=2C arr=3D0x2690040=2C tim= >eout=3D-1) at ../src/POSIX/TCP.m3:326 >> #5 0x003365ce in ConnRW__RdSeek (rd=3D0x2690010=2C pos=3D0=2C dontBlock= >=3D0 '\0') at ../src/common/ConnRW.m3:69 >> #6 0x003424e3 in Rd__GetLine (rd=3D0x2690010) at ../src/rw/Rd.m3:426 >> #7 0x00256bb0 in UpdateMonitor__InApplyP (cl=3D0x269204c) at ../src/Updat= >eMonitor.m3:240 >> #8 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623c00) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #9 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623c00) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #10 0x9713885d in _pthread_start () >> #11 0x971386e2 in thread_start () >> >> Thread 31 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x1623470=2C j=3D0= >x1623ba0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x1623b40=2C m=3D0x2670220= >=2C c=3D0x267022c=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2670220=2C c=3D0x267022c) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002567b1 in UpdateMonitor__OutApplyP (p=3D0x267017c) at ../src/Updat= >eMonitor.m3:178 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623b40) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623b40) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 30 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23016c0=2C j=3D0= >x2305a80) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2305a20=2C m=3D0x2660378= >=2C c=3D0x26603ac=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2660378=2C c=3D0x26603ac) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x00259145 in DesynchronizedDB__PApply (p=3D0x26603bc) at ../src/Desyn= >chronizedDB.m3:216 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2305a20) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2305a20) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 29 (process 67010): >> #0 0x9716c1d6 in __wait4 () >> #1 0x9716c1c9 in waitpid$UNIX2003 () >> #2 0x003add58 in Uexec__waitpid (i=3D67040=2C j=3D0xb0e36b4c=2C k=3D0) at= > ../src/unix/Common/Uexec.c:67 >> #3 0x003aaa51 in SchedulerPosix__WaitProcess (pid=3D67040=2C status=3D0xb= >0e36b4c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 >> #4 0x0033ca19 in Process__Wait (p=3D0x2650590) at ../src/os/POSIX/Process= >PosixCommon.m3:275 >> #5 0x002ffdf6 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:18= >5 >> #6 0x003007c1 in ProcUtils__Apply (self=3D0x2640284) at ../src/ProcUtils.= >m3:274 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x16233b0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x16233b0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 28 (process 67010): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D7=2C read=3D1=2C m3timeout=3D= >1) at ../src/thread/Common/ThreadInternal.c:57 >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x1623300=2C fd=3D7=2C re= >ad=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001'= >) at ../src/thread/PTHREAD/ThreadPThread.m3:627 >> #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=3D7=2C read=3D1 '\001'= >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 >> #4 0x003344ff in TCP__GetBytesFD (t=3D0x26402c4=2C arr=3D0x2642358=2C tim= >eout=3D-1) at ../src/POSIX/TCP.m3:326 >> #5 0x003365ce in ConnRW__RdSeek (rd=3D0x2642328=2C pos=3D0=2C dontBlock= >=3D0 '\0') at ../src/common/ConnRW.m3:69 >> #6 0x0033f64d in Rd__DoSeek (rd=3D0x2642328) at ../src/rw/Rd.m3:54 >> #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=3D0x2642328) at ../src/rw/Rd.m= >3:43 >> #8 0x0033f32d in Rd__GetChar (rd=3D0x2642328) at ../src/rw/Rd.m3:34 >> #9 0x002b26e9 in ReadLine__ReadALine (t=3D0x264000c) at ../src/ReadLine.m= >3:151 >> #10 0x002b4a56 in ReadLine__ReadLine (t=3D0x264000c) at ../src/ReadLine.m= >3:411 >> #11 0x0022a383 in SchemeReadLine__GetCh (p=3D0x2644364) at ../src/SchemeR= >eadLine.m3:80 >> #12 0x0024e942 in SchemeInputPort__NextToken (t=3D0x2644364=2C wx=3D0x264= >43e8) at ../src/SchemeInputPort.m3:309 >> #13 0x0024e0bb in SchemeInputPort__Read (t=3D0x2644364) at ../src/SchemeI= >nputPort.m3:177 >> #14 0x0022abaa in SchemeReadLine__MainLoop (rl=3D0x264000c=2C scm=3D0x256= >b9e4) at ../src/SchemeReadLine.m3:146 >> #15 0x00006bb7 in Main__SCApply (c=3D0x263fed0) at ../src/Main.m3:92 >> #16 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623300) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #17 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623300) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #18 0x9713885d in _pthread_start () >> #19 0x971386e2 in thread_start () >> >> Thread 27 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x161bd50) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x25400a4) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x002c77db in SXLongReal__Update (v=3D0x2540010=2C newValue=3D12937197= >75.9374268=2C when=3D1293719775.9374378) at ../I386_DARWIN/SXLongReal.m3 = >=3D> ../src/SXType.mg:79 >> #5 0x002c7abe in SXLongReal__SetVar (v=3D0x2540010=2C newValue=3D12937197= >75.9374268=2C when=3D1293719775.9374378) at ../I386_DARWIN/SXLongReal.m3 = >=3D> ../src/SXType.mg:98 >> #6 0x002eaaf7 in SXTimer__Loop (cl=3D0x21e11cc) at ../src/SXTimer.m3:64 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161b610) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161b610) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 26 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23016a0=2C j=3D0= >x2301670) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2301610=2C m=3D0x2114828= >=2C c=3D0x2114858=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2114828=2C c=3D0x2114858) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x000974c8 in GCOMSOrderStatus__Apply (cl=3D0x2114868) at ../src/GCOMS= >OrderStatus.m3:166 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2301610) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2301610) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 25 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300540=2C j=3D0= >x2301580) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x23015b0=2C m=3D0x211476c= >=2C c=3D0x2114778=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x211476c=2C c=3D0x2114778) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x0009d268 in GCOMSBusyOrders__Apply (cl=3D0x2114788) at ../src/GCOMSB= >usyOrders.m3:63 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23015b0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23015b0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 24 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300d90=2C j=3D0= >x2300d60) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300d00=2C m=3D0x21d0044= >=2C c=3D0x21d0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x21d0044=2C c=3D0x21d0050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0bace84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0bace84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2111418) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2111548) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300d00) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300d00) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 23 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300ce0=2C j=3D0= >x2300cb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300c50=2C m=3D0x21c0044= >=2C c=3D0x21c0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x21c0044=2C c=3D0x21c0050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0b2ae84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0b2ae84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2111288) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x21113b8) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300c50) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300c50) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 22 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300c30=2C j=3D0= >x2300c00) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300ba0=2C m=3D0x21b0044= >=2C c=3D0x21b0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x21b0044=2C c=3D0x21b0050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0aa8e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0aa8e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110fd8) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2111108) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300ba0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300ba0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 21 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300b80=2C j=3D0= >x2300b50) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300af0=2C m=3D0x21a0044= >=2C c=3D0x21a0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x21a0044=2C c=3D0x21a0050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0a26e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0a26e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110e50) at ../src/SX.m3:151 >> #9 0x00163596 in CurrencySXProxy__Apply (cl=3D0x2110f78) at ../I386_DARWI= >N/CurrencySXProxy.m3 =3D> /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300af0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300af0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 20 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300a10=2C j=3D0= >x23009e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300980=2C m=3D0x2190044= >=2C c=3D0x2190050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2190044=2C c=3D0x2190050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb09a4e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb09a4e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110b48) at ../src/SX.m3:151 >> #9 0x002bf3d5 in BoolSXProxy__Apply (cl=3D0x2110c70) at ../I386_DARWIN/Bo= >olSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300980) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300980) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 19 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300960=2C j=3D0= >x2300930) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x23008d0=2C m=3D0x2180044= >=2C c=3D0x2180050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2180044=2C c=3D0x2180050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0922e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0922e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x21109b8) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2110ae8) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23008d0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23008d0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 18 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23008b0=2C j=3D0= >x2300880) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300820=2C m=3D0x2170044= >=2C c=3D0x2170050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2170044=2C c=3D0x2170050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb08a0e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb08a0e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110828) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2110958) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300820) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300820) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 17 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300800=2C j=3D0= >x23007d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300770=2C m=3D0x2160044= >=2C c=3D0x2160050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2160044=2C c=3D0x2160050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb081ee84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb081ee84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110698) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x21107c8) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300770) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300770) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 16 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300750=2C j=3D0= >x2300720) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x23006c0=2C m=3D0x2150044= >=2C c=3D0x2150050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2150044=2C c=3D0x2150050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb079ce84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb079ce84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110508) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2110638) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23006c0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23006c0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 15 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23006a0=2C j=3D0= >x2300670) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300610=2C m=3D0x2140044= >=2C c=3D0x2140050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2140044=2C c=3D0x2140050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb071ae84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb071ae84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110378) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x21104a8) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300610) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300610) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 14 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161af10=2C j=3D0= >x161aee0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161ae80=2C m=3D0x2130044= >=2C c=3D0x2130050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2130044=2C c=3D0x2130050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0698e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0698e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x21101e8) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2110318) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161ae80) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161ae80) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 13 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23005f0=2C j=3D0= >x23005c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300560=2C m=3D0x2120044= >=2C c=3D0x2120050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2120044=2C c=3D0x2120050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0616e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0616e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20c0c40) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x21100ac) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300560) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300560) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 12 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23004c0=2C j=3D0= >x2300490) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300430=2C m=3D0x2080044= >=2C c=3D0x2080050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2080044=2C c=3D0x2080050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0594e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0594e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20c0ab0) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x20c0be0) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300430) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300430) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 11 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300410=2C j=3D0= >x23003e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300380=2C m=3D0x20f0044= >=2C c=3D0x20f0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x20f0044=2C c=3D0x20f0050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0512e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0512e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20c0920) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x20c0a50) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300380) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300380) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 10 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161aad0=2C j=3D0= >x161aaa0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161aa40=2C m=3D0x20b0044= >=2C c=3D0x20b0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x20b0044=2C c=3D0x20b0050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0490e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0490e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020e88) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020fb8) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161aa40) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161aa40) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 9 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23002a0=2C j=3D0= >x2300270) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300210=2C m=3D0x2090044= >=2C c=3D0x2090050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2090044=2C c=3D0x2090050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb040ee84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb040ee84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020cf8) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020e28) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300210) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300210) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 8 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a9c0=2C j=3D0= >x161a990) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a930=2C m=3D0x20e0034= >=2C c=3D0x20e0040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x20e0034=2C c=3D0x20e0040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb038ce84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb038ce84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020a48) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020b78) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a930) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a930) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 7 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a910=2C j=3D0= >x161a8e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a880=2C m=3D0x20a0034= >=2C c=3D0x20a0040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x20a0034=2C c=3D0x20a0040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb030ae84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb030ae84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20208c0) at ../src/SX.m3:151 >> #9 0x00163596 in CurrencySXProxy__Apply (cl=3D0x20209e8) at ../I386_DARWI= >N/CurrencySXProxy.m3 =3D> /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a880) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a880) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 6 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a860=2C j=3D0= >x161a830) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a7d0=2C m=3D0x2050044= >=2C c=3D0x2050050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2050044=2C c=3D0x2050050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0288e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0288e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020658) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020788) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a7d0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a7d0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 5 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a7b0=2C j=3D0= >x161a780) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a720=2C m=3D0x2040044= >=2C c=3D0x2040050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2040044=2C c=3D0x2040050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0206e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0206e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20204c8) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x20205f8) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a720) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a720) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 4 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a290=2C j=3D0= >x161a6f0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a690=2C m=3D0x2030044= >=2C c=3D0x2030050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2030044=2C c=3D0x2030050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0184e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0184e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020338) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020468) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a690) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a690) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 3 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x1619840=2C j=3D0= >x161a600) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a230=2C m=3D0x202008c= >=2C c=3D0x202007c=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x202008c=2C c=3D0x202007c) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002ba948 in VarProxyDefs__NotifyApply (cl=3D0x2020098) at ../src/Var= >ProxyDefs.m3:55 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a230) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a230) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 2 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7ebe in ThreadPThread__InitMutex (m=3D0x20100ac=2C root=3D0x2010= >0a8=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >> #4 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x20100a8) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #5 0x0033f30b in Rd__GetChar (rd=3D0x20100a8) at ../src/rw/Rd.m3:33 >> #6 0x0034dffd in Lex__Skip (rd=3D0x20100a8=2C cs=3D0x548018) at ../src/fm= >tlex/Lex.m3:46 >> #7 0x003503c3 in Lex__ReadReal (rd=3D0x20100a8=2C sign=3D0xb00809e3=2C di= >gits=3D0xb00809fc=2C digCnt=3D0xb00809e8=2C exp=3D0xb00809ec) at ../src/fmt= >lex/Lex.m3:569 >> #8 0x00350ef5 in Lex__LongReal (rd=3D0x20100a8) at ../src/fmtlex/Lex.m3:6= >62 >> #9 0x003518f1 in Scan__LongReal (txt=3D0x201007c) at ../src/fmtlex/Scan.m= >3:77 >> #10 0x0030ef75 in XTime__ClApply (cl=3D0x2004624) at ../src/XTime.m3:185 >> #11 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a0b0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #12 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a0b0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #13 0x9713885d in _pthread_start () >> #14 0x971386e2 in thread_start () >> >> Thread 1 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x16076f0=2C j=3D0= >x16076c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x1607660=2C m=3D0x2000084= >=2C c=3D0x30eb8bc=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003aa1f3 in ThreadPThread__XJoin (self=3D0x1607660=2C t=3D0x30eb8a0= >=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:513 >> #6 0x003aa2f5 in Thread__Join (t=3D0x30eb8a0) at ../src/thread/PTHREAD/Th= >readPThread.m3:525 >> #7 0x002ff2b8 in ProcUtils__Wait (c=3D0x30eb800) at ../src/ProcUtils.m3:3= >18 >> #8 0x00234ebd in SchemeCommandRunner__RealRunTimeoutCommandApply (proc=3D= >0x21e0b44=2C interp=3D0x3241ec4=2C args=3D0x30e775c) at ../src/SchemeComman= >dRunner.m3:164 >> #9 0x00234b4f in SchemeCommandRunner__RunTimeoutCommandApply (proc=3D0x21= >e0b44=2C interp=3D0x3241ec4=2C args=3D0x30e775c) at ../src/SchemeCommandRun= >ner.m3:129 >> #10 0x00234217 in SchemeCommandRunner__RunCommandApply (proc=3D0x21e0b44= >=2C interp=3D0x3241ec4=2C args=3D0x30e7744) at ../src/SchemeCommandRunner.m= >3:23 >> #11 0x0024b81b in SchemePrimitive__EDApply (ed=3D0x21e01c0=2C t=3D0x32458= >44=2C interp=3D0x3241ec4=2C args=3D0x30e7744) at ../src/SchemePrimitive.m3:= >207 >> #12 0x00246509 in SchemePrimitive__Prims (t=3D0x3245844=2C interp=3D0x324= >1ec4=2C args=3D0x30e7744=2C x=3D0x30e5cfc=2C y=3D0x30e7730=2C free=3D0xbfff= >ea1f) at ../src/SchemePrimitive.m3:580 >> #13 0x0024b1cb in SchemePrimitive__Apply2 (t=3D0x3245844=2C interp=3D0x32= >41ec4=2C a1=3D0x30e5cfc=2C a2=3D0x30e7730) at ../src/SchemePrimitive.m3:549 >> #14 0x0023c16f in Scheme__EvalInternal (t=3D0x3241ec4=2C x=3D0x30e5c5c=2C= > env=3D0x30e76b4) at ../src/Scheme.m3:585 >> #15 0x0023bedf in Scheme__EvalInternal (t=3D0x3241ec4=2C x=3D0x30e5bac=2C= > env=3D0x30e76b4) at ../src/Scheme.m3:582 >> #16 0x0023c35e in Scheme__Eval (t=3D0x3241ec4=2C x=3D0x30e6a6c=2C envP=3D= >0x3241f0c) at ../src/Scheme.m3:353 >> #17 0x00239bcf in Scheme__EvalInGlobalEnv (t=3D0x3241ec4=2C x=3D0x30e6a6c= >) at ../src/Scheme.m3:603 >> #18 0x0002972b in SchemeCalculator__Calc (t=3D0x3241eb4=2C arr=3D0xbfffee= >3c) at ../src/SchemeCalculator.m3:61 >> #19 0x0000c8af in EuroDriver__Loop (t=3D0x3205a80) at ../src/EuroDriver.m= >3:289 >> #20 0x00008781 in Main_M3 (mode=3D1) at ../src/Main.m3:268 >> #21 0x0039d83d in RTLinker__RunMainBody (m=3D0x55e420) at ../src/runtime/= >common/RTLinker.m3:406 >> #22 0x0039cc99 in RTLinker__AddUnitI (m=3D0x55e420) at ../src/runtime/com= >mon/RTLinker.m3:113 >> #23 0x0039cd1a in RTLinker__AddUnit (b=3D0x6be3) at ../src/runtime/common= >/RTLinker.m3:122 >> #24 0x0000528c in main (argc=3D19=2C argv=3D0xbffff330=2C envp=3D0xbffff3= >80) at _m3main.c:16 > = From jay.krell at cornell.edu Sun Jan 9 02:52:35 2011 From: jay.krell at cornell.edu (Jay K) Date: Sun, 9 Jan 2011 01:52:35 +0000 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: <20110109015040.F196E1A205B@async.async.caltech.edu> References: <0A37C595-C896-4B66-9EDF-61BB30645321@cs.purdue.edu> , , <20110109014355.0A01F1A205B@async.async.caltech.edu>, , <20110109015040.F196E1A205B@async.async.caltech.edu> Message-ID: -march=i686 vs. i586 I assume helped. The int32 vs. int64 problems should remain. ?- Jay ---------------------------------------- > To: jay.krell at cornell.edu > Date: Sat, 8 Jan 2011 17:50:40 -0800 > From: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > On the plus side, the compiler bug you thought you had fixed has indeed disappeared. > > Mika > > Jay K writes: > > > >Tony raised legit issue w/ my fix. I will try another very soon (tonight). > > > > > >Index: ThreadPThread.m3 > >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= > >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= > >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > >RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3= > >=2Cv > >retrieving revision 1.247 > >diff -u -r1.247 ThreadPThread.m3 > >--- ThreadPThread.m3=A0=A0=A0 9 Jan 2011 00:36:07 -0000=A0=A0=A0 1.247 > >+++ ThreadPThread.m3=A0=A0=A0 9 Jan 2011 01:14:16 -0000 > >@@ -1283=2C10 +1283=2C10 @@ > >=A0=A0=A0=A0=A0=A0 cond: Condition=3B > >=A0=A0 BEGIN > >=A0=A0=A0=A0 Acquire(joinMu)=3B > >-=A0=A0=A0 LockHeap()=3B > >=A0=A0=A0=A0 FOR i :=3D FIRST(locks) TO LAST(locks) DO > >=A0=A0=A0=A0=A0=A0 PThreadLockMutex(locks[i]=2C ThisLine()=2C i)=3B > >=A0=A0=A0=A0 END=3B > >+=A0=A0=A0 LockHeap()=3B > >=A0=A0=A0=A0 (* Walk activations and lock all threads=2C conditions. > >=A0=A0=A0=A0=A0 * NOTE: We have initMu=2C activeMu=2C so slots > >=A0=A0=A0=A0=A0 * won't change=2C conditions and mutexes > > > > > > > >=A0- Jay > > > >---------------------------------------- > >> To: hosking at cs.purdue.edu > >> Date: Sat=2C 8 Jan 2011 17:43:55 -0800 > >> From: mika at async.caltech.edu > >> CC: m3devel at elegosoft.com > >> Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > >> > >> > >> Well I spent the whole day figuring out how to update the compiler.. > >> finally got everything working and I think this is with the very latest > >> version (Jay just committed something two hours ago and it's in here). > >> > >> Or... wait.. did he go back a version and re-introduce the deadlock? > >> That would explain why it's behaving the same way as it was before... > >> > >> Mika > >> > >> > >> > >> Thread 68 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613c20) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=3D0x613c20=2C lin= > >e=3D1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > >> #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD= > >/ThreadPThread.m3:1279 > >> #5 0x97137217 in _cthread_fork_prepare () > >> #6 0x97137155 in fork () > >> #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=3D0x242c2ac=2C = > >params=3D0x242c3ac=2C env=3D0x0=2C wd=3D0x57bf44=2C stdin=3D0x0=2C stdout= > >=3D0x239f9a4=2C stderr=3D0x2433508) at ../src/os/POSIX/ProcessPosixCommon.m= > >3:75 > >> #8 0x00353de5 in Process__Create (cmd=3D0x242c2ac=2C params=3D0x242c3ac= > >=2C env=3D0x0=2C wd=3D0x57bf44=2C stdin=3D0x0=2C stdout=3D0x239f9a4=2C stde= > >rr=3D0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > >> #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:18= > >0 > >> #10 0x00316d6e in ProcUtils__Apply (self=3D0x242f160) at ../src/ProcUtils= > >.m3:274 > >> #11 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2009600) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2009600) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #13 0x9713885d in _pthread_start () > >> #14 0x971386e2 in thread_start () > >> > >> Thread 67 (process 32362): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D13=2C read=3D1=2C m3timeout= > >=3D-1) at ../src/thread/Common/ThreadInternal.c:31 > >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x2009550=2C fd=3D13=2C r= > >ead=3D1 '\001'=2C interval=3D-1=2C alertable=3D0 '\0') at ../src/thread/PTH= > >READ/ThreadPThread.m3:627 > >> #3 0x003c19a4 in SchedulerPosix__IOWait (fd=3D13=2C read=3D1 '\001'=2C ti= > >meoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 > >> #4 0x0034f862 in FilePosix__IntermittentRead (h=3D0x24334f8=2C b=3D0xb1df= > >4cd0=2C mayBlock=3D1 '\001') at ../src/os/POSIX/FilePosix.m3:220 > >> #5 0x0035e935 in FileRd__Seek (rd=3D0x2433518=2C pos=3D0=2C dontBlock=3D0= > > '\0') at ../src/rw/FileRd.m3:83 > >> #6 0x00356338 in Rd__DoSeek (rd=3D0x2433518) at ../src/rw/Rd.m3:54 > >> #7 0x003560c1 in UnsafeRd__FastGetChar (rd=3D0x2433518) at ../src/rw/Rd.m= > >3:43 > >> #8 0x00356018 in Rd__GetChar (rd=3D0x2433518) at ../src/rw/Rd.m3:34 > >> #9 0x00316fbc in ProcUtils__SSApply (self=3D0x242f128) at ../src/ProcUtil= > >s.m3:54 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2009550) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2009550) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 66 (process 32362): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D11=2C read=3D1=2C m3timeout= > >=3D-1) at ../src/thread/Common/ThreadInternal.c:31 > >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x20094a0=2C fd=3D11=2C r= > >ead=3D1 '\001'=2C interval=3D-1=2C alertable=3D0 '\0') at ../src/thread/PTH= > >READ/ThreadPThread.m3:627 > >> #3 0x003c19a4 in SchedulerPosix__IOWait (fd=3D11=2C read=3D1 '\001'=2C ti= > >meoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 > >> #4 0x0034f862 in FilePosix__IntermittentRead (h=3D0x239f994=2C b=3D0xb1d7= > >2cd0=2C mayBlock=3D1 '\001') at ../src/os/POSIX/FilePosix.m3:220 > >> #5 0x0035e935 in FileRd__Seek (rd=3D0x239f9b4=2C pos=3D0=2C dontBlock=3D0= > > '\0') at ../src/rw/FileRd.m3:83 > >> #6 0x00356338 in Rd__DoSeek (rd=3D0x239f9b4) at ../src/rw/Rd.m3:54 > >> #7 0x003560c1 in UnsafeRd__FastGetChar (rd=3D0x239f9b4) at ../src/rw/Rd.m= > >3:43 > >> #8 0x00356018 in Rd__GetChar (rd=3D0x239f9b4) at ../src/rw/Rd.m3:34 > >> #9 0x00316fbc in ProcUtils__SSApply (self=3D0x242f0f0) at ../src/ProcUtil= > >s.m3:54 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20094a0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20094a0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 65 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613c20) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003beefd in ThreadPThread__InitMutex (m=3D0x242a6f8=2C root=3D0x242a= > >6f4=2C Clean=3D0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >> #4 0x003befce in ThreadPThread__LockMutex (m=3D0x242a6f4) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #5 0x00355ff6 in Rd__GetChar (rd=3D0x242a6f4) at ../src/rw/Rd.m3:33 > >> #6 0x00364b5d in Lex__Skip (rd=3D0x242a6f4=2C cs=3D0x587ff8) at ../src/fm= > >tlex/Lex.m3:46 > >> #7 0x00366e53 in Lex__ReadReal (rd=3D0x242a6f4=2C sign=3D0xb1cf0603=2C di= > >gits=3D0xb1cf061c=2C digCnt=3D0xb1cf0608=2C exp=3D0xb1cf060c) at ../src/fmt= > >lex/Lex.m3:569 > >> #8 0x003678f0 in Lex__LongReal (rd=3D0x242a6f4) at ../src/fmtlex/Lex.m3:6= > >62 > >> #9 0x0036834e in Scan__LongReal (txt=3D0x1753494) at ../src/fmtlex/Scan.m= > >3:77 > >> #10 0x002603f5 in SchemeInputPort__NextToken (t=3D0x2380de4=2C wx=3D0x242= > >a4a8) at ../src/SchemeInputPort.m3:439 > >> #11 0x00260756 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x242= > >a4a8) at ../src/SchemeInputPort.m3:240 > >> #12 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= > >nputPort.m3:179 > >> #13 0x0025edad in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= > >nputPort.m3:191 > >> #14 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x242= > >a40c) at ../src/SchemeInputPort.m3:240 > >> #15 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= > >nputPort.m3:179 > >> #16 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x239= > >ddc4) at ../src/SchemeInputPort.m3:240 > >> #17 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= > >nputPort.m3:179 > >> #18 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x239= > >dc4c) at ../src/SchemeInputPort.m3:240 > >> #19 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= > >nputPort.m3:179 > >> #20 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x239= > >da8c) at ../src/SchemeInputPort.m3:240 > >> #21 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= > >nputPort.m3:179 > >> #22 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x239= > >d9b4) at ../src/SchemeInputPort.m3:240 > >> #23 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= > >nputPort.m3:179 > >> #24 0x0024db82 in Scheme__LoadPort (t=3D0x237018c=2C in=3D0x2380de4) at .= > >./src/Scheme.m3:317 > >> #25 0x0024ae56 in Scheme__LoadRd (t=3D0x237018c=2C rd=3D0x2379cfc=2C fn= > >=3D0x0) at ../src/Scheme.m3:174 > >> #26 0x0024e659 in Scheme__ReadInitialFiles (t=3D0x237018c=2C files=3D0x4a= > >fc8c) at ../src/Scheme.m3:134 > >> #27 0x0024ea46 in Scheme__Init2 (t=3D0x237018c=2C input=3D0x15ac4ec=2C ou= > >tput=3D0x15ac514=2C files=3D0x4afc8c=2C env=3D0x0) at ../src/Scheme.m3:127 > >> #28 0x0024a89a in Scheme__Init (t=3D0x237018c=2C files=3D0x4afc8c=2C env= > >=3D0x0) at ../src/Scheme.m3:102 > >> #29 0x0002abbc in SchemeCalculator__Init (t=3D0x237017c=2C code=3D0x22554= > >1c) at ../src/SchemeCalculator.m3:28 > >> #30 0x0000e373 in EuroDriver__OApply (cl=3D0x2367b70) at ../src/EuroDrive= > >r.m3:865 > >> #31 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2008b80) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #32 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2008b80) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #33 0x9713885d in _pthread_start () > >> #34 0x971386e2 in thread_start () > >> > >> Thread 64 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613ca0) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= > >.m3:1336 > >> #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=3D0x2430f38=2C p=3D0x= > >3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > >> #5 0x003bef65 in ThreadPThread__InitMutex (m=3D0x2430f3c=2C root=3D0x2430= > >f38=2C Clean=3D0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > >> #6 0x003befce in ThreadPThread__LockMutex (m=3D0x2430f38) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #7 0x00355ff6 in Rd__GetChar (rd=3D0x2430f38) at ../src/rw/Rd.m3:33 > >> #8 0x00364b5d in Lex__Skip (rd=3D0x2430f38=2C cs=3D0x587ff8) at ../src/fm= > >tlex/Lex.m3:46 > >> #9 0x00366e53 in Lex__ReadReal (rd=3D0x2430f38=2C sign=3D0xb1c6e7c3=2C di= > >gits=3D0xb1c6e7dc=2C digCnt=3D0xb1c6e7c8=2C exp=3D0xb1c6e7cc) at ../src/fmt= > >lex/Lex.m3:569 > >> #10 0x003678f0 in Lex__LongReal (rd=3D0x2430f38) at ../src/fmtlex/Lex.m3:= > >662 > >> #11 0x0036834e in Scan__LongReal (txt=3D0x1753494) at ../src/fmtlex/Scan.= > >m3:77 > >> #12 0x002603f5 in SchemeInputPort__NextToken (t=3D0x237ede4=2C wx=3D0x243= > >0e44) at ../src/SchemeInputPort.m3:439 > >> #13 0x00260756 in SchemeInputPort__ReadTail2 (t=3D0x237ede4=2C wx=3D0x243= > >0e44) at ../src/SchemeInputPort.m3:240 > >> #14 0x0025ebdd in SchemeInputPort__Read (t=3D0x237ede4) at ../src/SchemeI= > >nputPort.m3:179 > >> #15 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x237ede4=2C wx=3D0x243= > >0db0) at ../src/SchemeInputPort.m3:240 > >> #16 0x0025ebdd in SchemeInputPort__Read (t=3D0x237ede4) at ../src/SchemeI= > >nputPort.m3:179 > >> #17 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x237ede4=2C wx=3D0x243= > >0cd8) at ../src/SchemeInputPort.m3:240 > >> #18 0x0025ebdd in SchemeInputPort__Read (t=3D0x237ede4) at ../src/SchemeI= > >nputPort.m3:179 > >> #19 0x0024db82 in Scheme__LoadPort (t=3D0x236e18c=2C in=3D0x237ede4) at .= > >./src/Scheme.m3:317 > >> #20 0x0024ae56 in Scheme__LoadRd (t=3D0x236e18c=2C rd=3D0x2377cfc=2C fn= > >=3D0x0) at ../src/Scheme.m3:174 > >> #21 0x0024e659 in Scheme__ReadInitialFiles (t=3D0x236e18c=2C files=3D0x4a= > >fc8c) at ../src/Scheme.m3:134 > >> #22 0x0024ea46 in Scheme__Init2 (t=3D0x236e18c=2C input=3D0x15ac4ec=2C ou= > >tput=3D0x15ac514=2C files=3D0x4afc8c=2C env=3D0x0) at ../src/Scheme.m3:127 > >> #23 0x0024a89a in Scheme__Init (t=3D0x236e18c=2C files=3D0x4afc8c=2C env= > >=3D0x0) at ../src/Scheme.m3:102 > >> #24 0x0002abbc in SchemeCalculator__Init (t=3D0x236e17c=2C code=3D0x22554= > >1c) at ../src/SchemeCalculator.m3:28 > >> #25 0x0000e373 in EuroDriver__OApply (cl=3D0x2367ad8) at ../src/EuroDrive= > >r.m3:865 > >> #26 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2008af0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #27 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2008af0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #28 0x9713885d in _pthread_start () > >> #29 0x971386e2 in thread_start () > >> > >> Thread 60 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x2006bc0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003befff in ThreadPThread__LockMutex (m=3D0x22cc724) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x003bed47 in Thread__Acquire (m=3D0x22cc724) at ../src/thread/PTHREAD= > >/ThreadPThread.m3:81 > >> #5 0x002d9fb9 in SX__Lock (arr=3D0x235a9a4) at ../src/SX.m3:318 > >> #6 0x002d983f in SXSelect__WaitE (on=3D0xb1beccd8=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:241 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb1beccd8=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDrive= > >r.m3:832 > >> #9 0x0000e830 in EuroDriver__OApply (cl=3D0x22aad10) at ../src/EuroDriver= > >.m3:892 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2007080) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2007080) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 59 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613c20) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003beefd in ThreadPThread__InitMutex (m=3D0x2354a24=2C root=3D0x2354= > >a20=2C Clean=3D0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >> #4 0x003befce in ThreadPThread__LockMutex (m=3D0x2354a20) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #5 0x003bed47 in Thread__Acquire (m=3D0x2354a20) at ../src/thread/PTHREAD= > >/ThreadPThread.m3:81 > >> #6 0x00359e60 in RdClass__Lock (rd=3D0x2354a20) at ../src/rw/Rd.m3:521 > >> #7 0x0025e4c4 in SchemeInputPort__Lock (t=3D0x2354b08) at ../src/SchemeIn= > >putPort.m3:72 > >> #8 0x0025f3dc in SchemeInputPort__NextToken (t=3D0x2354b08=2C wx=3D0x2354= > >b28) at ../src/SchemeInputPort.m3:299 > >> #9 0x0025eb94 in SchemeInputPort__Read (t=3D0x2354b08) at ../src/SchemeIn= > >putPort.m3:177 > >> #10 0x0024aea9 in Scheme__LoadEval (t=3D0x224418c=2C rd=3D0x2354a20) at .= > >./src/Scheme.m3:291 > >> #11 0x0024af22 in Scheme__LoadEvalText (t=3D0x224418c=2C txt=3D0x225541c)= > > at ../src/Scheme.m3:306 > >> #12 0x0002ad28 in SchemeCalculator__Calc (t=3D0x224417c=2C arr=3D0xb1b6ab= > >04) at ../src/SchemeCalculator.m3:47 > >> #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/Eur= > >oDriver.m3:564 > >> #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/E= > >uroDriver.m3:507 > >> #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriv= > >er.m3:795 > >> #16 0x0000e830 in EuroDriver__OApply (cl=3D0x22aac78) at ../src/EuroDrive= > >r.m3:892 > >> #17 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2007020) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #18 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2007020) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #19 0x9713885d in _pthread_start () > >> #20 0x971386e2 in thread_start () > >> > >> Thread 54 (process 32362): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D10=2C read=3D1=2C m3timeout= > >=3D1) at ../src/thread/Common/ThreadInternal.c:31 > >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x161dfc0=2C fd=3D10=2C r= > >ead=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001= > >') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > >> #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=3D10=2C read=3D1 '\001'= > >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > >> #4 0x00346693 in TCP__GetBytesFD (t=3D0x22211d8=2C arr=3D0x22f400c=2C tim= > >eout=3D-1) at ../src/POSIX/TCP.m3:326 > >> #5 0x00348786 in ConnRW__RdSeek (rd=3D0x2221260=2C pos=3D267=2C dontBlock= > >=3D0 '\0') at ../src/common/ConnRW.m3:69 > >> #6 0x003591ce in Rd__GetLine (rd=3D0x2221260) at ../src/rw/Rd.m3:426 > >> #7 0x002b2826 in TWSTester__RApply (cl=3D0x2221290) at ../src/TWSTester.m= > >3:382 > >> #8 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161dfc0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #9 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161dfc0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #10 0x9713885d in _pthread_start () > >> #11 0x971386e2 in thread_start () > >> > >> Thread 53 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161deb0= > >=2C mutex=3D0x161e1c0=2C m3timeout=3D1294411605.506855) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161e160=2C n=3D0.5=2C al= > >ertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D0.5) at ../src/thread/PTHREAD/ThreadP= > >Thread.m3:567 > >> #6 0x00297efc in PMTWS__TSCApply (cl=3D0x2221088) at ../src/PMTWS.m3:229 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161e160) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161e160) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 52 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613ca0) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= > >.m3:1336 > >> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=3D24=2C dataAlignment= > >=3D4=2C thread=3D0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > >> #5 0x003a5a99 in RTAllocator__GetTracedObj (def=3D0x616d54) at ../src/run= > >time/common/RTAllocator.m3:224 > >> #6 0x003a550f in RTHooks__AllocateTracedObj (defn=3D0x616d54) at ../src/r= > >untime/common/RTAllocator.m3:122 > >> #7 0x003d3c0e in RTHooks__Concat (t=3D0x23669ec=2C u=3D0x56c460) at ../sr= > >c/text/TextCat.m3:28 > >> #8 0x002b0dc2 in TWSTester__MakeString (contract=3D0xb19e4dc0) at ../src/= > >TWSTester.m3:92 > >> #9 0x002b11ac in TWSTester__ReqMktData (t=3D0x2220800=2C tickerId=3D3=2C = > >contract=3D0xb19e4dc0) at ../src/TWSTester.m3:136 > >> #10 0x002bccaf in TWSTestBridge__MreqMktData (t=3D0x2220800=2C tickerId= > >=3D3=2C contract=3D0xb19e4dc0) at ../src/TWSTestBridge.m3 =3D> ../src/TWSBr= > >idgeG.mg:580 > >> #11 0x002978ec in PMTWS__TSCApply (cl=3D0x2221044) at ../src/PMTWS.m3:210 > >> #12 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161e100) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161e100) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #14 0x9713885d in _pthread_start () > >> #15 0x971386e2 in thread_start () > >> > >> Thread 51 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613ca0) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= > >.m3:1336 > >> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=3D136=2C dataAlignmen= > >t=3D8=2C thread=3D0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > >> #5 0x003a581e in RTAllocator__GetTracedRef (def=3D0x5b1280) at ../src/run= > >time/common/RTAllocator.m3:202 > >> #6 0x003a54da in RTHooks__AllocateTracedRef (defn=3D0x5b1280) at ../src/r= > >untime/common/RTAllocator.m3:115 > >> #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=3D0x235f464=2C = > >key=3D0xb1962d7c=2C val=3D0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_in= > >strumentTbl.m3 =3D> /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > >> #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=3D0x228c080= > >=2C res=3D0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 = > >=3D> /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > >> #9 0x0008c6de in GCOMSPortfolio__Lock (t=3D0x2255cd8) at ../src/GCOMSPort= > >folio.m3:94 > >> #10 0x00029faa in SXPortfolio__Scan (t=3D0x229a888) at ../src/SXPortfolio= > >.m3:47 > >> #11 0x0002a998 in SXPortfolio__Apply (cl=3D0x222057c) at ../src/SXPortfol= > >io.m3:113 > >> #12 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x1626560) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x1626560) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #14 0x9713885d in _pthread_start () > >> #15 0x971386e2 in thread_start () > >> > >> Thread 50 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2005ac0= > >=2C mutex=3D0x20059b0=2C m3timeout=3D1294411629.006319) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2005a60=2C n=3D50=2C ale= > >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= > >eadPThread.m3:573 > >> #6 0x000e162d in DBTable_gcoms_aux_ordrMonitor__ApplyC (cl=3D0x229a528) a= > >t ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/calarm= > >/ratsql/src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2005a60) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2005a60) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 49 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2005a40= > >=2C mutex=3D0x20058e0=2C m3timeout=3D1294411606.0014169) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x20059e0=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000e357e in DBTable_gcoms_aux_ordrMonitor__CleanerApply (cl=3D0x229a= > >720) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/= > >calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20059e0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20059e0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 48 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161de60= > >=2C mutex=3D0x161aa50=2C m3timeout=3D1294411629.003248) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161aae0=2C n=3D50=2C ale= > >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= > >eadPThread.m3:573 > >> #6 0x000d2f00 in DBTable_gcoms_fillMonitor__ApplyC (cl=3D0x229a258) at ..= > >/I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/= > >src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161aae0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161aae0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 47 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161ac10= > >=2C mutex=3D0x1625c10=2C m3timeout=3D1294411605.9982891) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161aa80=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000d50b3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=3D0x229a450)= > > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= > >atsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161aa80) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161aa80) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 46 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2004440= > >=2C mutex=3D0x2004410=2C m3timeout=3D1294411678.997467) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x20043b0=2C n=3D100=2C al= > >ertable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D100) at ../src/thread/PTHREAD/Th= > >readPThread.m3:573 > >> #6 0x000da48e in DBTable_gcoms_aux_instrumentMonitor__ApplyC (cl=3D0x1711= > >268) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Users/m= > >ika/t/calarm/ratsql/src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20043b0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20043b0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 45 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x20038d0= > >=2C mutex=3D0x2004380=2C m3timeout=3D1294411605.9944479) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2004320=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000dc415 in DBTable_gcoms_aux_instrumentMonitor__CleanerApply (cl=3D= > >0x1711460) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /U= > >sers/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2004320) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2004320) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 44 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x20071d0= > >=2C mutex=3D0x20070e0=2C m3timeout=3D1294411678.9916439) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2007170=2C n=3D100=2C al= > >ertable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D100) at ../src/thread/PTHREAD/Th= > >readPThread.m3:573 > >> #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x224daf0)= > > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= > >larm/ratsql/src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2007170) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2007170) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 43 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x20046e0= > >=2C mutex=3D0x2006f50=2C m3timeout=3D1294411605.83337) at ../src/thread/PTH= > >READ/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2007110=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x22= > >4dce8) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= > >a/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2007110) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2007110) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 42 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161d830= > >=2C mutex=3D0x161d780=2C m3timeout=3D1294411678.981461) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161dae0=2C n=3D100=2C al= > >ertable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D100) at ../src/thread/PTHREAD/Th= > >readPThread.m3:573 > >> #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x224d768)= > > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= > >larm/ratsql/src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161dae0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161dae0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 41 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161d7e0= > >=2C mutex=3D0x161da50=2C m3timeout=3D1294411605.8302381) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161da80=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x22= > >4d960) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= > >a/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161da80) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161da80) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 40 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161d940= > >=2C mutex=3D0x161d910=2C m3timeout=3D1294411678.8294799) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161d8b0=2C n=3D100=2C al= > >ertable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D100) at ../src/thread/PTHREAD/Th= > >readPThread.m3:573 > >> #6 0x000c4b88 in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=3D0x224d348= > >) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mika/t/= > >calarm/ratsql/src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161d8b0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161d8b0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 39 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x16262c0= > >=2C mutex=3D0x161d750=2C m3timeout=3D1294411605.8264539) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161d850=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000c6a9a in DBTable_gcoms_ordr_statusMonitor__CleanerApply (cl=3D0x2= > >24d540) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/m= > >ika/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161d850) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161d850) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 38 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2003bc0= > >=2C mutex=3D0x2003cd0=2C m3timeout=3D1294411628.744529) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2003c70=2C n=3D50=2C ale= > >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= > >eadPThread.m3:573 > >> #6 0x000b4d70 in DBTable_gcoms_strategyMonitor__ApplyC (cl=3D0x228c348) a= > >t ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/calarm= > >/ratsql/src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2003c70) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2003c70) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 37 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2003ba0= > >=2C mutex=3D0x2003be0=2C m3timeout=3D1294411605.7216971) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2003c10=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000b6cc1 in DBTable_gcoms_strategyMonitor__CleanerApply (cl=3D0x228c= > >538) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/= > >calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2003c10) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2003c10) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 36 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x16256b0= > >=2C mutex=3D0x16255a0=2C m3timeout=3D1294411628.815861) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x1625650=2C n=3D50=2C ale= > >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= > >eadPThread.m3:573 > >> #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x228c080)= > > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= > >larm/ratsql/src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x1625650) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x1625650) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 35 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x1625630= > >=2C mutex=3D0x1625570=2C m3timeout=3D1294411605.7159209) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x16255d0=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x22= > >8c270) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= > >a/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x16255d0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x16255d0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 34 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2003a30= > >=2C mutex=3D0x20031e0=2C m3timeout=3D1294411628.7167931) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x20039d0=2C n=3D50=2C ale= > >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= > >eadPThread.m3:573 > >> #6 0x000d2f00 in DBTable_gcoms_fillMonitor__ApplyC (cl=3D0x2255d40) at ..= > >/I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/= > >src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20039d0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20039d0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 33 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x20034c0= > >=2C mutex=3D0x20038a0=2C m3timeout=3D1294411605.7081449) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2003970=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000d50b3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=3D0x2255f30)= > > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= > >atsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2003970) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2003970) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 32 (process 32362): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D9=2C read=3D1=2C m3timeout=3D= > >1) at ../src/thread/Common/ThreadInternal.c:31 > >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x2003780=2C fd=3D9=2C re= > >ad=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001'= > >) at ../src/thread/PTHREAD/ThreadPThread.m3:627 > >> #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=3D9=2C read=3D1 '\001'= > >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > >> #4 0x00346693 in TCP__GetBytesFD (t=3D0x227c15c=2C arr=3D0x227600c=2C tim= > >eout=3D-1) at ../src/POSIX/TCP.m3:326 > >> #5 0x00348786 in ConnRW__RdSeek (rd=3D0x227a010=2C pos=3D0=2C dontBlock= > >=3D0 '\0') at ../src/common/ConnRW.m3:69 > >> #6 0x003591ce in Rd__GetLine (rd=3D0x227a010) at ../src/rw/Rd.m3:426 > >> #7 0x002678d9 in UpdateMonitor__InApplyP (cl=3D0x227a040) at ../src/Updat= > >eMonitor.m3:240 > >> #8 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2003780) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #9 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2003780) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #10 0x9713885d in _pthread_start () > >> #11 0x971386e2 in thread_start () > >> > >> Thread 31 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2003420=2C j=3D0= > >x2003720) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x20036c0=2C m=3D0x227c220= > >=2C c=3D0x227c22c=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x227c220=2C c=3D0x227c22c) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002674cc in UpdateMonitor__OutApplyP (p=3D0x227c17c) at ../src/Updat= > >eMonitor.m3:178 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20036c0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20036c0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 30 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x161a290=2C j=3D0= > >x1625020) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x1624fc0=2C m=3D0x2255ac0= > >=2C c=3D0x2255af4=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x2255ac0=2C c=3D0x2255af4) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x0026a003 in DesynchronizedDB__PApply (p=3D0x2255b04) at ../src/Desyn= > >chronizedDB.m3:216 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x1624fc0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x1624fc0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 29 (process 32362): > >> #0 0x9716c1d6 in __wait4 () > >> #1 0x9716c1c9 in waitpid$UNIX2003 () > >> #2 0x003c50d5 in Uexec__waitpid (i=3D32392=2C j=3D0xb0e36b7c=2C k=3D0) at= > > ../src/unix/Common/Uexec.c:66 > >> #3 0x003c1d31 in SchedulerPosix__WaitProcess (pid=3D32392=2C status=3D0xb= > >0e36b7c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 > >> #4 0x003536dc in Process__Wait (p=3D0x22585fc) at ../src/os/POSIX/Process= > >PosixCommon.m3:275 > >> #5 0x003163ad in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:18= > >5 > >> #6 0x00316d6e in ProcUtils__Apply (self=3D0x2256284) at ../src/ProcUtils.= > >m3:274 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x16251a0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x16251a0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 28 (process 32362): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D8=2C read=3D1=2C m3timeout=3D= > >1) at ../src/thread/Common/ThreadInternal.c:31 > >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x20030c0=2C fd=3D8=2C re= > >ad=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001'= > >) at ../src/thread/PTHREAD/ThreadPThread.m3:627 > >> #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=3D8=2C read=3D1 '\001'= > >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > >> #4 0x00346693 in TCP__GetBytesFD (t=3D0x22562c4=2C arr=3D0x225e00c=2C tim= > >eout=3D-1) at ../src/POSIX/TCP.m3:326 > >> #5 0x00348786 in ConnRW__RdSeek (rd=3D0x2256318=2C pos=3D0=2C dontBlock= > >=3D0 '\0') at ../src/common/ConnRW.m3:69 > >> #6 0x00356338 in Rd__DoSeek (rd=3D0x2256318) at ../src/rw/Rd.m3:54 > >> #7 0x003560c1 in UnsafeRd__FastGetChar (rd=3D0x2256318) at ../src/rw/Rd.m= > >3:43 > >> #8 0x00356018 in Rd__GetChar (rd=3D0x2256318) at ../src/rw/Rd.m3:34 > >> #9 0x002c62c5 in ReadLine__ReadALine (t=3D0x225600c) at ../src/ReadLine.m= > >3:151 > >> #10 0x002c877e in ReadLine__ReadLine (t=3D0x225600c) at ../src/ReadLine.m= > >3:411 > >> #11 0x0023b1fb in SchemeReadLine__GetCh (p=3D0x2256348) at ../src/SchemeR= > >eadLine.m3:80 > >> #12 0x0025f4b3 in SchemeInputPort__NextToken (t=3D0x2256348=2C wx=3D0x225= > >63cc) at ../src/SchemeInputPort.m3:309 > >> #13 0x0025eb94 in SchemeInputPort__Read (t=3D0x2256348) at ../src/SchemeI= > >nputPort.m3:177 > >> #14 0x0023ba70 in SchemeReadLine__MainLoop (rl=3D0x225600c=2C scm=3D0x223= > >40d0) at ../src/SchemeReadLine.m3:146 > >> #15 0x00006c23 in Main__SCApply (c=3D0x2255620) at ../src/Main.m3:92 > >> #16 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20030c0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #17 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20030c0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #18 0x9713885d in _pthread_start () > >> #19 0x971386e2 in thread_start () > >> > >> Thread 27 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x161e470) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003befff in ThreadPThread__LockMutex (m=3D0x22440a4) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x002dbd63 in SXLongReal__Update (v=3D0x2244010=2C newValue=3D12937212= > >30.087589=2C when=3D1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 =3D>= > > ../src/SXType.mg:79 > >> #5 0x002dc086 in SXLongReal__SetVar (v=3D0x2244010=2C newValue=3D12937212= > >30.087589=2C when=3D1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 =3D>= > > ../src/SXType.mg:98 > >> #6 0x00300c16 in SXTimer__Loop (cl=3D0x173934c) at ../src/SXTimer.m3:64 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2001ec0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2001ec0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 26 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20011c0=2C j=3D0= > >x2001e10) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2001db0=2C m=3D0x1738078= > >=2C c=3D0x17380a8=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1738078=2C c=3D0x17380a8) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x0009e3d6 in GCOMSOrderStatus__Apply (cl=3D0x17380b8) at ../src/GCOMS= > >OrderStatus.m3:166 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2001db0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2001db0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 25 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x1619840=2C j=3D0= > >x1619920) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x161a170=2C m=3D0x15aab74= > >=2C c=3D0x15aab80=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15aab74=2C c=3D0x15aab80) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x000a4482 in GCOMSBusyOrders__Apply (cl=3D0x15aab90) at ../src/GCOMSB= > >usyOrders.m3:63 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161a170) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161a170) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 24 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20011a0=2C j=3D0= > >x2001170) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2001110=2C m=3D0x173e044= > >=2C c=3D0x173e050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x173e044=2C c=3D0x173e050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0bace84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0bace84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1594280) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15943b0) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2001110) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2001110) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 23 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20010f0=2C j=3D0= > >x20010c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2001060=2C m=3D0x1724034= > >=2C c=3D0x1724040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1724034=2C c=3D0x1724040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0b2ae84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0b2ae84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15940f0) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1594220) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2001060) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2001060) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 22 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2001040=2C j=3D0= > >x2001010) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000fb0=2C m=3D0x1722034= > >=2C c=3D0x1722040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1722034=2C c=3D0x1722040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0aa8e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0aa8e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15adb40) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad7cc) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000fb0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000fb0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 21 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000f90=2C j=3D0= > >x2000f60) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000f00=2C m=3D0x1720034= > >=2C c=3D0x1720040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1720034=2C c=3D0x1720040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0a26e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0a26e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15adae0) at ../src/SX.m3:151 > >> #9 0x0016017c in CurrencySXProxy__Apply (cl=3D0x15ad7b0) at ../I386_DARWI= > >N/CurrencySXProxy.m3 =3D> /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000f00) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000f00) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 20 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000ee0=2C j=3D0= > >x2000eb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000e50=2C m=3D0x173c044= > >=2C c=3D0x173c050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x173c044=2C c=3D0x173c050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb09a4e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb09a4e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad450) at ../src/SX.m3:151 > >> #9 0x002d3613 in BoolSXProxy__Apply (cl=3D0x15ad794) at ../I386_DARWIN/Bo= > >olSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000e50) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000e50) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 19 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000e30=2C j=3D0= > >x2000e00) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000da0=2C m=3D0x171e034= > >=2C c=3D0x171e040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x171e034=2C c=3D0x171e040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0922e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0922e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad3e8) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad778) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000da0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000da0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 18 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000d80=2C j=3D0= > >x2000d50) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000cf0=2C m=3D0x1740044= > >=2C c=3D0x1740050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1740044=2C c=3D0x1740050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb08a0e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb08a0e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad380) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad75c) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000cf0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000cf0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 17 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000cd0=2C j=3D0= > >x2000ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000c40=2C m=3D0x1704044= > >=2C c=3D0x1704050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1704044=2C c=3D0x1704050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb081ee84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb081ee84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad318) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad740) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000c40) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000c40) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 16 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000c20=2C j=3D0= > >x2000bf0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000b90=2C m=3D0x1702044= > >=2C c=3D0x1702050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1702044=2C c=3D0x1702050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb079ce84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb079ce84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad2b0) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad724) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000b90) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000b90) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 15 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000b70=2C j=3D0= > >x2000b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000ae0=2C m=3D0x173a044= > >=2C c=3D0x173a050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x173a044=2C c=3D0x173a050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb071ae84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb071ae84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad248) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad708) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000ae0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000ae0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 14 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000ac0=2C j=3D0= > >x2000a90) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000a30=2C m=3D0x171a034= > >=2C c=3D0x171a040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x171a034=2C c=3D0x171a040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0698e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0698e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad1e0) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad6ec) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000a30) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000a30) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 13 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000a10=2C j=3D0= > >x20009e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000980=2C m=3D0x1718034= > >=2C c=3D0x1718040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1718034=2C c=3D0x1718040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0616e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0616e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad618) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad6d0) at ../I386_DARWI= > N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000980) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000980) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 12 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000960=2C j=3D0= > >x2000930) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x20008d0=2C m=3D0x1716034= > >=2C c=3D0x1716040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1716034=2C c=3D0x1716040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0594e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0594e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad5b0) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad6b4) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20008d0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20008d0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 11 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20008b0=2C j=3D0= > >x2000880) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000820=2C m=3D0x1714034= > >=2C c=3D0x1714040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1714034=2C c=3D0x1714040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0512e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0512e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad548) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad698) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000820) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000820) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 10 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000800=2C j=3D0= > >x20007d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000770=2C m=3D0x1712034= > >=2C c=3D0x1712040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1712034=2C c=3D0x1712040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0490e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0490e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15acea8) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad67c) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000770) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000770) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 9 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000750=2C j=3D0= > >x2000720) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x20006c0=2C m=3D0x15b6034= > >=2C c=3D0x15b6040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15b6034=2C c=3D0x15b6040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb040ee84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb040ee84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591ea8) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1591fd8) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20006c0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20006c0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 8 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20006a0=2C j=3D0= > >x2000670) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000610=2C m=3D0x15b4034= > >=2C c=3D0x15b4040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15b4034=2C c=3D0x15b4040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb038ce84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb038ce84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591bf8) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1591d28) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000610) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000610) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 7 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20005f0=2C j=3D0= > >x20005c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000560=2C m=3D0x15b2034= > >=2C c=3D0x15b2040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15b2034=2C c=3D0x15b2040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb030ae84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb030ae84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591a70) at ../src/SX.m3:151 > >> #9 0x0016017c in CurrencySXProxy__Apply (cl=3D0x1591b98) at ../I386_DARWI= > >N/CurrencySXProxy.m3 =3D> /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000560) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000560) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 6 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000540=2C j=3D0= > >x2000510) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x20004b0=2C m=3D0x171c0c0= > >=2C c=3D0x171c0cc=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x171c0c0=2C c=3D0x171c0cc) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0288e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0288e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591808) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1591938) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20004b0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20004b0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 5 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000490=2C j=3D0= > >x2000460) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000400=2C m=3D0x15b0034= > >=2C c=3D0x15b0040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15b0034=2C c=3D0x15b0040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0206e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0206e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591678) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15917a8) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000400) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000400) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 4 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20003e0=2C j=3D0= > >x20003b0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000350=2C m=3D0x15ae034= > >=2C c=3D0x15ae040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15ae034=2C c=3D0x15ae040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0184e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0184e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15914e8) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1591618) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000350) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000350) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 3 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000150=2C j=3D0= > >x20002c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000260=2C m=3D0x159123c= > >=2C c=3D0x159122c=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x159123c=2C c=3D0x159122c) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002ce79c in VarProxyDefs__NotifyApply (cl=3D0x1591248) at ../src/Var= > >ProxyDefs.m3:55 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000260) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000260) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 2 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613c20) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003beefd in ThreadPThread__InitMutex (m=3D0x23480ac=2C root=3D0x2348= > >0a8=2C Clean=3D0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >> #4 0x003befce in ThreadPThread__LockMutex (m=3D0x23480a8) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #5 0x00355ff6 in Rd__GetChar (rd=3D0x23480a8) at ../src/rw/Rd.m3:33 > >> #6 0x00364b5d in Lex__Skip (rd=3D0x23480a8=2C cs=3D0x587ff8) at ../src/fm= > >tlex/Lex.m3:46 > >> #7 0x00366e53 in Lex__ReadReal (rd=3D0x23480a8=2C sign=3D0xb0080ca3=2C di= > >gits=3D0xb0080cbc=2C digCnt=3D0xb0080ca8=2C exp=3D0xb0080cac) at ../src/fmt= > >lex/Lex.m3:569 > >> #8 0x003678f0 in Lex__LongReal (rd=3D0x23480a8) at ../src/fmtlex/Lex.m3:6= > >62 > >> #9 0x0036834e in Scan__LongReal (txt=3D0x234807c) at ../src/fmtlex/Scan.m= > >3:77 > >> #10 0x003260a0 in XTime__ClApply (cl=3D0x15971b8) at ../src/XTime.m3:185 > >> #11 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161a0b0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161a0b0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #13 0x9713885d in _pthread_start () > >> #14 0x971386e2 in thread_start () > >> > >> Thread 1 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x16076f0=2C j=3D0= > >x16076c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x1607660=2C m=3D0x15ac4b0= > >=2C c=3D0x242f190=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003c1499 in ThreadPThread__XJoin (self=3D0x1607660=2C t=3D0x242f174= > >=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:513 > >> #6 0x003c15ae in Thread__Join (t=3D0x242f174) at ../src/thread/PTHREAD/Th= > >readPThread.m3:525 > >> #7 0x003158c9 in ProcUtils__Wait (c=3D0x242f0d4) at ../src/ProcUtils.m3:3= > >18 > >> #8 0x0024618a in SchemeCommandRunner__RealRunTimeoutCommandApply (proc=3D= > >0x1738cc4=2C interp=3D0x2367eac=2C args=3D0x239bd88) at ../src/SchemeComman= > >dRunner.m3:164 > >> #9 0x00245e07 in SchemeCommandRunner__RunTimeoutCommandApply (proc=3D0x17= > >38cc4=2C interp=3D0x2367eac=2C args=3D0x239bd88) at ../src/SchemeCommandRun= > >ner.m3:129 > >> #10 0x00245405 in SchemeCommandRunner__RunCommandApply (proc=3D0x1738cc4= > >=2C interp=3D0x2367eac=2C args=3D0x239bd70) at ../src/SchemeCommandRunner.m= > >3:23 > >> #11 0x0025c183 in SchemePrimitive__EDApply (ed=3D0x1738340=2C t=3D0x236b5= > >40=2C interp=3D0x2367eac=2C args=3D0x239bd70) at ../src/SchemePrimitive.m3:= > >207 > >> #12 0x00256d12 in SchemePrimitive__Prims (t=3D0x236b540=2C interp=3D0x236= > >7eac=2C args=3D0x239bd70=2C x=3D0x239a328=2C y=3D0x239bd5c=2C free=3D0xbfff= > >e82f) at ../src/SchemePrimitive.m3:580 > >> #13 0x0025bb2b in SchemePrimitive__Apply2 (t=3D0x236b540=2C interp=3D0x23= > >67eac=2C a1=3D0x239a328=2C a2=3D0x239bd5c) at ../src/SchemePrimitive.m3:549 > >> #14 0x0024d640 in Scheme__EvalInternal (t=3D0x2367eac=2C x=3D0x239a288=2C= > > env=3D0x239bce0) at ../src/Scheme.m3:585 > >> #15 0x0024d3a8 in Scheme__EvalInternal (t=3D0x2367eac=2C x=3D0x239a1d8=2C= > > env=3D0x239bce0) at ../src/Scheme.m3:582 > >> #16 0x0024d82d in Scheme__Eval (t=3D0x2367eac=2C x=3D0x239b098=2C envP=3D= > >0x2367ef4) at ../src/Scheme.m3:353 > >> #17 0x0024b005 in Scheme__EvalInGlobalEnv (t=3D0x2367eac=2C x=3D0x239b098= > >) at ../src/Scheme.m3:603 > >> #18 0x0002aebc in SchemeCalculator__Calc (t=3D0x2367e9c=2C arr=3D0xbfffec= > >dc) at ../src/SchemeCalculator.m3:61 > >> #19 0x0000cbd3 in EuroDriver__Loop (t=3D0x224da38) at ../src/EuroDriver.m= > >3:289 > >> #20 0x00008820 in Main_M3 (mode=3D1) at ../src/Main.m3:268 > >> #21 0x003b465a in RTLinker__RunMainBody (m=3D0x59e4c0) at ../src/runtime/= > >common/RTLinker.m3:406 > >> #22 0x003b3a8f in RTLinker__AddUnitI (m=3D0x59e4c0) at ../src/runtime/com= > >mon/RTLinker.m3:113 > >> #23 0x003b3b13 in RTLinker__AddUnit (b=3D0x6c5d) at ../src/runtime/common= > >/RTLinker.m3:122 > >> #24 0x000052ec in main (argc=3D19=2C argv=3D0xbffff1b4=2C envp=3D0xbffff2= > >04) at _m3main.c:16 > >> > >> Thread 75 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003ac2e3 in ThreadPThread__PThreadLockMutex (mutex=3D0x5d3ac0=2C lin= > >e=3D1288=2C index=3D2) at ../src/thread/PTHREAD/ThreadPThread.m3:1262 > >> #4 0x003ac409 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD= > >/ThreadPThread.m3:1288 > >> #5 0x97137217 in _cthread_fork_prepare () > >> #6 0x97137155 in fork () > >> #7 0x0033bc4d in ProcessPosixCommon__Create_ForkExec (cmd=3D0x31e02ac=2C = > >params=3D0x31e03c8=2C env=3D0x0=2C wd=3D0x53bf44=2C stdin=3D0x0=2C stdout= > >=3D0x30e91cc=2C stderr=3D0x30ea700) at ../src/os/POSIX/ProcessPosixCommon.m= > >3:75 > >> #8 0x0033d137 in Process__Create (cmd=3D0x31e02ac=2C params=3D0x31e03c8= > >=2C env=3D0x0=2C wd=3D0x53bf44=2C stdin=3D0x0=2C stdout=3D0x30e91cc=2C stde= > >rr=3D0x30ea700) at ../src/os/POSIX/ProcessPosix.m3:21 > >> #9 0x002ffdbc in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:18= > >0 > >> #10 0x003007c1 in ProcUtils__Apply (self=3D0x30eb88c) at ../src/ProcUtils= > >.m3:274 > >> #11 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161dd00) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #12 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161dd00) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #13 0x9713885d in _pthread_start () > >> #14 0x971386e2 in thread_start () > >> > >> Thread 74 (process 67010): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D13=2C read=3D1=2C m3timeout= > >=3D-1) at ../src/thread/Common/ThreadInternal.c:57 > >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x161dc50=2C fd=3D13=2C r= > >ead=3D1 '\001'=2C interval=3D-1=2C alertable=3D0 '\0') at ../src/thread/PTH= > >READ/ThreadPThread.m3:627 > >> #3 0x003aa6dc in SchedulerPosix__IOWait (fd=3D13=2C read=3D1 '\001'=2C ti= > >meoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 > >> #4 0x00338b5f in FilePosix__IntermittentRead (h=3D0x30ea6f0=2C b=3D0xb1ef= > >8cf0=2C mayBlock=3D1 '\001') at ../src/os/POSIX/FilePosix.m3:220 > >> #5 0x00347c68 in FileRd__Seek (rd=3D0x30ea710=2C pos=3D0=2C dontBlock=3D0= > > '\0') at ../src/rw/FileRd.m3:83 > >> #6 0x0033f64d in Rd__DoSeek (rd=3D0x30ea710) at ../src/rw/Rd.m3:54 > >> #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=3D0x30ea710) at ../src/rw/Rd.m= > >3:43 > >> #8 0x0033f32d in Rd__GetChar (rd=3D0x30ea710) at ../src/rw/Rd.m3:34 > >> #9 0x00300a0b in ProcUtils__SSApply (self=3D0x30eb854) at ../src/ProcUtil= > >s.m3:54 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161dc50) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161dc50) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 73 (process 67010): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D11=2C read=3D1=2C m3timeout= > >=3D-1) at ../src/thread/Common/ThreadInternal.c:57 > >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x161dbc0=2C fd=3D11=2C r= > >ead=3D1 '\001'=2C interval=3D-1=2C alertable=3D0 '\0') at ../src/thread/PTH= > >READ/ThreadPThread.m3:627 > >> #3 0x003aa6dc in SchedulerPosix__IOWait (fd=3D11=2C read=3D1 '\001'=2C ti= > >meoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 > >> #4 0x00338b5f in FilePosix__IntermittentRead (h=3D0x30e91bc=2C b=3D0xb1e7= > >6cf0=2C mayBlock=3D1 '\001') at ../src/os/POSIX/FilePosix.m3:220 > >> #5 0x00347c68 in FileRd__Seek (rd=3D0x30e91dc=2C pos=3D0=2C dontBlock=3D0= > > '\0') at ../src/rw/FileRd.m3:83 > >> #6 0x0033f64d in Rd__DoSeek (rd=3D0x30e91dc) at ../src/rw/Rd.m3:54 > >> #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=3D0x30e91dc) at ../src/rw/Rd.m= > >3:43 > >> #8 0x0033f32d in Rd__GetChar (rd=3D0x30e91dc) at ../src/rw/Rd.m3:34 > >> #9 0x00300a0b in ProcUtils__SSApply (self=3D0x30eb81c) at ../src/ProcUtil= > >s.m3:54 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161dbc0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161dbc0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 72 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7ebe in ThreadPThread__InitMutex (m=3D0x31339fc=2C root=3D0x3133= > >9f8=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >> #4 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x31339f8) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #5 0x0033f30b in Rd__GetChar (rd=3D0x31339f8) at ../src/rw/Rd.m3:33 > >> #6 0x0034dffd in Lex__Skip (rd=3D0x31339f8=2C cs=3D0x548018) at ../src/fm= > >tlex/Lex.m3:46 > >> #7 0x003503c3 in Lex__ReadReal (rd=3D0x31339f8=2C sign=3D0xb1df47c3=2C di= > >gits=3D0xb1df47dc=2C digCnt=3D0xb1df47c8=2C exp=3D0xb1df47cc) at ../src/fmt= > >lex/Lex.m3:569 > >> #8 0x00350ef5 in Lex__LongReal (rd=3D0x31339f8) at ../src/fmtlex/Lex.m3:6= > >62 > >> #9 0x003518f1 in Scan__LongReal (txt=3D0x25768e8) at ../src/fmtlex/Scan.m= > >3:77 > >> #10 0x0024f849 in SchemeInputPort__NextToken (t=3D0x30d4aec=2C wx=3D0x313= > >37e8) at ../src/SchemeInputPort.m3:439 > >> #11 0x0024fb9c in SchemeInputPort__ReadTail2 (t=3D0x30d4aec=2C wx=3D0x313= > >37e8) at ../src/SchemeInputPort.m3:240 > >> #12 0x0024e100 in SchemeInputPort__Read (t=3D0x30d4aec) at ../src/SchemeI= > >nputPort.m3:179 > >> #13 0x0024e2bc in SchemeInputPort__Read (t=3D0x30d4aec) at ../src/SchemeI= > >nputPort.m3:191 > >> #14 0x0024fb73 in SchemeInputPort__ReadTail2 (t=3D0x30d4aec=2C wx=3D0x313= > >3620) at ../src/SchemeInputPort.m3:240 > >> #15 0x0024e100 in SchemeInputPort__Read (t=3D0x30d4aec) at ../src/SchemeI= > >nputPort.m3:179 > >> #16 0x0024fb73 in SchemeInputPort__ReadTail2 (t=3D0x30d4aec=2C wx=3D0x313= > >3548) at ../src/SchemeInputPort.m3:240 > >> #17 0x0024e100 in SchemeInputPort__Read (t=3D0x30d4aec) at ../src/SchemeI= > >nputPort.m3:179 > >> #18 0x0023c6cd in Scheme__LoadPort (t=3D0x30d018c=2C in=3D0x30d4aec) at .= > >./src/Scheme.m3:317 > >> #19 0x002399e3 in Scheme__LoadRd (t=3D0x30d018c=2C rd=3D0x30d3cf0=2C fn= > >=3D0x0) at ../src/Scheme.m3:174 > >> #20 0x0023d255 in Scheme__ReadInitialFiles (t=3D0x30d018c=2C files=3D0x46= > >fc8c) at ../src/Scheme.m3:134 > >> #21 0x0023d5e7 in Scheme__Init2 (t=3D0x30d018c=2C input=3D0x20003b4=2C ou= > >tput=3D0x20013e8=2C files=3D0x46fc8c=2C env=3D0x0) at ../src/Scheme.m3:127 > >> #22 0x00239461 in Scheme__Init (t=3D0x30d018c=2C files=3D0x46fc8c=2C env= > >=3D0x0) at ../src/Scheme.m3:102 > >> #23 0x00029420 in SchemeCalculator__Init (t=3D0x30d017c=2C code=3D0x263fc= > >cc) at ../src/SchemeCalculator.m3:28 > >> #24 0x0000deef in EuroDriver__OApply (cl=3D0x3241b88) at ../src/EuroDrive= > >r.m3:865 > >> #25 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2307650) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #26 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2307650) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #27 0x9713885d in _pthread_start () > >> #28 0x971386e2 in thread_start () > >> > >> Thread 71 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3b40) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= > >.m3:1345 > >> #4 0x003995a6 in RTHeapRep__RegisterFinalCleanup (r=3D0x31239f8=2C p=3D0x= > >3a7d52) at ../src/runtime/common/RTCollector.m3:2148 > >> #5 0x003a7f1e in ThreadPThread__InitMutex (m=3D0x31239fc=2C root=3D0x3123= > >9f8=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > >> #6 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x31239f8) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #7 0x0033f30b in Rd__GetChar (rd=3D0x31239f8) at ../src/rw/Rd.m3:33 > >> #8 0x0034dffd in Lex__Skip (rd=3D0x31239f8=2C cs=3D0x548018) at ../src/fm= > >tlex/Lex.m3:46 > >> #9 0x003503c3 in Lex__ReadReal (rd=3D0x31239f8=2C sign=3D0xb1d727c3=2C di= > >gits=3D0xb1d727dc=2C digCnt=3D0xb1d727c8=2C exp=3D0xb1d727cc) at ../src/fmt= > >lex/Lex.m3:569 > >> #10 0x00350ef5 in Lex__LongReal (rd=3D0x31239f8) at ../src/fmtlex/Lex.m3:= > >662 > >> #11 0x003518f1 in Scan__LongReal (txt=3D0x25768e8) at ../src/fmtlex/Scan.= > >m3:77 > >> #12 0x0024f849 in SchemeInputPort__NextToken (t=3D0x3264aec=2C wx=3D0x312= > >37e8) at ../src/SchemeInputPort.m3:439 > >> #13 0x0024fb9c in SchemeInputPort__ReadTail2 (t=3D0x3264aec=2C wx=3D0x312= > >37e8) at ../src/SchemeInputPort.m3:240 > >> #14 0x0024e100 in SchemeInputPort__Read (t=3D0x3264aec) at ../src/SchemeI= > >nputPort.m3:179 > >> #15 0x0024e2bc in SchemeInputPort__Read (t=3D0x3264aec) at ../src/SchemeI= > >nputPort.m3:191 > >> #16 0x0024fb73 in SchemeInputPort__ReadTail2 (t=3D0x3264aec=2C wx=3D0x312= > >3620) at ../src/SchemeInputPort.m3:240 > >> #17 0x0024e100 in SchemeInputPort__Read (t=3D0x3264aec) at ../src/SchemeI= > >nputPort.m3:179 > >> #18 0x0024fb73 in SchemeInputPort__ReadTail2 (t=3D0x3264aec=2C wx=3D0x312= > >3548) at ../src/SchemeInputPort.m3:240 > >> #19 0x0024e100 in SchemeInputPort__Read (t=3D0x3264aec) at ../src/SchemeI= > >nputPort.m3:179 > >> #20 0x0023c6cd in Scheme__LoadPort (t=3D0x326018c=2C in=3D0x3264aec) at .= > >./src/Scheme.m3:317 > >> #21 0x002399e3 in Scheme__LoadRd (t=3D0x326018c=2C rd=3D0x3263cf0=2C fn= > >=3D0x0) at ../src/Scheme.m3:174 > >> #22 0x0023d255 in Scheme__ReadInitialFiles (t=3D0x326018c=2C files=3D0x46= > >fc8c) at ../src/Scheme.m3:134 > >> #23 0x0023d5e7 in Scheme__Init2 (t=3D0x326018c=2C input=3D0x20003b4=2C ou= > >tput=3D0x20013e8=2C files=3D0x46fc8c=2C env=3D0x0) at ../src/Scheme.m3:127 > >> #24 0x00239461 in Scheme__Init (t=3D0x326018c=2C files=3D0x46fc8c=2C env= > >=3D0x0) at ../src/Scheme.m3:102 > >> #25 0x00029420 in SchemeCalculator__Init (t=3D0x326017c=2C code=3D0x263fc= > >cc) at ../src/SchemeCalculator.m3:28 > >> #26 0x0000deef in EuroDriver__OApply (cl=3D0x3241af0) at ../src/EuroDrive= > >r.m3:865 > >> #27 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23075c0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #28 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23075c0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #29 0x9713885d in _pthread_start () > >> #30 0x971386e2 in thread_start () > >> > >> Thread 67 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7ebe in ThreadPThread__InitMutex (m=3D0x2686284=2C root=3D0x2686= > >280=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >> #4 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x2686280) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #5 0x003a7d30 in Thread__Acquire (m=3D0x2686280) at ../src/thread/PTHREAD= > >/ThreadPThread.m3:81 > >> #6 0x00343175 in RdClass__Lock (rd=3D0x2686280) at ../src/rw/Rd.m3:521 > >> #7 0x0024d9ef in SchemeInputPort__Lock (t=3D0x2686368) at ../src/SchemeIn= > >putPort.m3:72 > >> #8 0x0024e87d in SchemeInputPort__NextToken (t=3D0x2686368=2C wx=3D0x2686= > >388) at ../src/SchemeInputPort.m3:299 > >> #9 0x0024e0bb in SchemeInputPort__Read (t=3D0x2686368) at ../src/SchemeIn= > >putPort.m3:177 > >> #10 0x00239a38 in Scheme__LoadEval (t=3D0x254018c=2C rd=3D0x2686280) at .= > >./src/Scheme.m3:291 > >> #11 0x00239abd in Scheme__LoadEvalText (t=3D0x254018c=2C txt=3D0x263fccc)= > > at ../src/Scheme.m3:306 > >> #12 0x00029574 in SchemeCalculator__Calc (t=3D0x254017c=2C arr=3D0xb1cf09= > >e4) at ../src/SchemeCalculator.m3:47 > >> #13 0x0000ee50 in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/Eur= > >oDriver.m3:564 > >> #14 0x0000e7d6 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/E= > >uroDriver.m3:507 > >> #15 0x000103ca in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriv= > >er.m3:795 > >> #16 0x0000e3a2 in EuroDriver__OApply (cl=3D0x3018bb0) at ../src/EuroDrive= > >r.m3:892 > >> #17 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23054a0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #18 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23054a0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #19 0x9713885d in _pthread_start () > >> #20 0x971386e2 in thread_start () > >> > >> Thread 66 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x230d020=2C j=3D0= > >x2305470) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2305410=2C m=3D0x311a158= > >=2C c=3D0x311a164=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x311a158=2C c=3D0x311a164) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb1c6ecb8=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb1c6ecb8=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x0001063a in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDrive= > >r.m3:832 > >> #9 0x0000e3a2 in EuroDriver__OApply (cl=3D0x3018b18) at ../src/EuroDriver= > >.m3:892 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2305410) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2305410) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 62 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x23019d0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x31b1584) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x003a7d30 in Thread__Acquire (m=3D0x31b1584) at ../src/thread/PTHREAD= > >/ThreadPThread.m3:81 > >> #5 0x002c5bb6 in SX__Lock (arr=3D0x327c430) at ../src/SX.m3:318 > >> #6 0x002c5496 in SXSelect__WaitE (on=3D0xb1beccb8=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:241 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb1beccb8=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x0001063a in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDrive= > >r.m3:832 > >> #9 0x0000e3a2 in EuroDriver__OApply (cl=3D0x21fcc00) at ../src/EuroDriver= > >.m3:892 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1626040) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1626040) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 61 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7ebe in ThreadPThread__InitMutex (m=3D0x252c4b4=2C root=3D0x252c= > >4b0=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >> #4 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x252c4b0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #5 0x003a7d30 in Thread__Acquire (m=3D0x252c4b0) at ../src/thread/PTHREAD= > >/ThreadPThread.m3:81 > >> #6 0x00343175 in RdClass__Lock (rd=3D0x252c4b0) at ../src/rw/Rd.m3:521 > >> #7 0x0024d9ef in SchemeInputPort__Lock (t=3D0x252c598) at ../src/SchemeIn= > >putPort.m3:72 > >> #8 0x0024e87d in SchemeInputPort__NextToken (t=3D0x252c598=2C wx=3D0x252c= > >5b8) at ../src/SchemeInputPort.m3:299 > >> #9 0x0024e0bb in SchemeInputPort__Read (t=3D0x252c598) at ../src/SchemeIn= > >putPort.m3:177 > >> #10 0x00239a38 in Scheme__LoadEval (t=3D0x26f018c=2C rd=3D0x252c4b0) at .= > >./src/Scheme.m3:291 > >> #11 0x00239abd in Scheme__LoadEvalText (t=3D0x26f018c=2C txt=3D0x263fccc)= > > at ../src/Scheme.m3:306 > >> #12 0x00029574 in SchemeCalculator__Calc (t=3D0x26f017c=2C arr=3D0xb1b6a8= > >64) at ../src/SchemeCalculator.m3:47 > >> #13 0x0000ee50 in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/Eur= > >oDriver.m3:564 > >> #14 0x0000e7d6 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/E= > >uroDriver.m3:507 > >> #15 0x000103ca in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriv= > >er.m3:795 > >> #16 0x0000e3a2 in EuroDriver__OApply (cl=3D0x21fcb68) at ../src/EuroDrive= > >r.m3:892 > >> #17 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1625f80) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #18 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1625f80) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #19 0x9713885d in _pthread_start () > >> #20 0x971386e2 in thread_start () > >> > >> Thread 54 (process 67010): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D10=2C read=3D1=2C m3timeout= > >=3D1) at ../src/thread/Common/ThreadInternal.c:57 > >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x23071d0=2C fd=3D10=2C r= > >ead=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001= > >') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > >> #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=3D10=2C read=3D1 '\001'= > >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > >> #4 0x003344ff in TCP__GetBytesFD (t=3D0x3050f80=2C arr=3D0x3053048=2C tim= > >eout=3D-1) at ../src/POSIX/TCP.m3:326 > >> #5 0x003365ce in ConnRW__RdSeek (rd=3D0x3053018=2C pos=3D390=2C dontBlock= > >=3D0 '\0') at ../src/common/ConnRW.m3:69 > >> #6 0x003424e3 in Rd__GetLine (rd=3D0x3053018) at ../src/rw/Rd.m3:426 > >> #7 0x002a00d4 in TWSTester__RApply (cl=3D0x3055054) at ../src/TWSTester.m= > >3:382 > >> #8 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23071d0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #9 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23071d0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #10 0x9713885d in _pthread_start () > >> #11 0x971386e2 in thread_start () > >> > >> Thread 53 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x1621150= > >=2C mutex=3D0x1621120=2C m3timeout=3D1294537044.5119109) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x16210c0=2C n=3D0.5=2C al= > >ertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D0.5) at ../src/thread/PTHREAD/ThreadP= > >Thread.m3:567 > >> #6 0x00286610 in PMTWS__TSCApply (cl=3D0x3050e30) at ../src/PMTWS.m3:229 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x16210c0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x16210c0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 52 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3b40) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= > >.m3:1345 > >> #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=3D24=2C dataAlignment= > >=3D4=2C thread=3D0x1621054) at ../src/runtime/common/RTAllocator.m3:363 > >> #5 0x0038f2c7 in RTAllocator__GetTracedObj (def=3D0x5d6bf4) at ../src/run= > >time/common/RTAllocator.m3:224 > >> #6 0x0038ed60 in RTHooks__AllocateTracedObj (defn=3D0x5d6bf4) at ../src/r= > >untime/common/RTAllocator.m3:122 > >> #7 0x003bc686 in RTHooks__Concat (t=3D0x3240a08=2C u=3D0x52c460) at ../sr= > >c/text/TextCat.m3:28 > >> #8 0x0029e655 in TWSTester__MakeString (contract=3D0xb19e4dc0) at ../src/= > >TWSTester.m3:92 > >> #9 0x0029ea07 in TWSTester__ReqMktData (t=3D0x30505a8=2C tickerId=3D4=2C = > >contract=3D0xb19e4dc0) at ../src/TWSTester.m3:136 > >> #10 0x002aa233 in TWSTestBridge__MreqMktData (t=3D0x30505a8=2C tickerId= > >=3D4=2C contract=3D0xb19e4dc0) at ../src/TWSTestBridge.m3 =3D> ../src/TWSBr= > >idgeG.mg:580 > >> #11 0x00286034 in PMTWS__TSCApply (cl=3D0x3050dec) at ../src/PMTWS.m3:210 > >> #12 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1621010) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #13 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1621010) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #14 0x9713885d in _pthread_start () > >> #15 0x971386e2 in thread_start () > >> > >> Thread 51 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3b40) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= > >.m3:1345 > >> #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=3D136=2C dataAlignmen= > >t=3D8=2C thread=3D0x1620ed4) at ../src/runtime/common/RTAllocator.m3:363 > >> #5 0x0038f048 in RTAllocator__GetTracedRef (def=3D0x5711e0) at ../src/run= > >time/common/RTAllocator.m3:202 > >> #6 0x0038ed2f in RTHooks__AllocateTracedRef (defn=3D0x5711e0) at ../src/r= > >untime/common/RTAllocator.m3:115 > >> #7 0x000a8f49 in IntDBTable_gcoms_instrumentTbl__Put (tbl=3D0x328f110=2C = > >key=3D0xb1962d7c=2C val=3D0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_in= > >strumentTbl.m3 =3D> /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > >> #8 0x000a5ecc in DBTable_gcoms_instrumentMonitor__CopyC (cl=3D0x26608c0= > >=2C res=3D0x328f110) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 = > >=3D> /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > >> #9 0x00085c9f in GCOMSPortfolio__Lock (t=3D0x2660590) at ../src/GCOMSPort= > >folio.m3:94 > >> #10 0x000288d9 in SXPortfolio__Scan (t=3D0x300c578) at ../src/SXPortfolio= > >.m3:47 > >> #11 0x0002920d in SXPortfolio__Apply (cl=3D0x3050324) at ../src/SXPortfol= > >io.m3:113 > >> #12 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620e90) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #13 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620e90) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #14 0x9713885d in _pthread_start () > >> #15 0x971386e2 in thread_start () > >> > >> Thread 50 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4ad9= > >44=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= > >25 > >> #5 0x000d9ad8 in DBTable_gcoms_aux_ordrMonitor__DbNow (db=3D0x26602c4) at= > > ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/calarm/= > >ratsql/src/TableMonitor.mg:456 > >> #6 0x000d9cdf in DBTable_gcoms_aux_ordrMonitor__CheckForNew (cl=3D0x300c2= > >18) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/c= > >alarm/ratsql/src/TableMonitor.mg:467 > >> #7 0x000d9a01 in DBTable_gcoms_aux_ordrMonitor__Sync (cl=3D0x300c218) at = > >../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/calarm/r= > >atsql/src/TableMonitor.mg:445 > >> #8 0x000d9588 in DBTable_gcoms_aux_ordrMonitor__ApplyC (cl=3D0x300c218) a= > >t ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/calarm= > >/ratsql/src/TableMonitor.mg:393 > >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620d80) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620d80) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #11 0x9713885d in _pthread_start () > >> #12 0x971386e2 in thread_start () > >> > >> Thread 49 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x1620d60= > >=2C mutex=3D0x1620cd0=2C m3timeout=3D1294537044.970454) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x1620d00=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000db5a3 in DBTable_gcoms_aux_ordrMonitor__CleanerApply (cl=3D0x300c= > >410) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/= > >calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620d00) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620d00) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 48 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4aa2= > >28=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= > >25 > >> #5 0x000cb8aa in DBTable_gcoms_fillMonitor__DbNow (db=3D0x26602c4) at ../= > >I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/s= > >rc/TableMonitor.mg:456 > >> #6 0x000cbbf5 in DBTable_gcoms_fillMonitor__CheckForNew (cl=3D0x300bf48) = > >at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ra= > >tsql/src/TableMonitor.mg:467 > >> #7 0x000cb7d3 in DBTable_gcoms_fillMonitor__Sync (cl=3D0x300bf48) at ../I= > >386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/sr= > >c/TableMonitor.mg:445 > >> #8 0x000cb35a in DBTable_gcoms_fillMonitor__ApplyC (cl=3D0x300bf48) at ..= > >/I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/= > >src/TableMonitor.mg:393 > >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620b50) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620b50) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #11 0x9713885d in _pthread_start () > >> #12 0x971386e2 in thread_start () > >> > >> Thread 47 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x16243d0= > >=2C mutex=3D0x1620ac0=2C m3timeout=3D1294537044.9675839) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x1620af0=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000cd5e3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=3D0x300c140)= > > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= > >atsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620af0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620af0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 46 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4abd= > >98=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= > >25 > >> #5 0x000d2b9a in DBTable_gcoms_aux_instrumentMonitor__DbNow (db=3D0x26602= > >c4) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Users/mi= > >ka/t/calarm/ratsql/src/TableMonitor.mg:456 > >> #6 0x000d2dbf in DBTable_gcoms_aux_instrumentMonitor__CheckForNew (cl=3D0= > >x30091c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Us= > >ers/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > >> #7 0x000d2ac3 in DBTable_gcoms_aux_instrumentMonitor__Sync (cl=3D0x30091c= > >8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Users/mik= > >a/t/calarm/ratsql/src/TableMonitor.mg:445 > >> #8 0x000d264a in DBTable_gcoms_aux_instrumentMonitor__ApplyC (cl=3D0x3009= > >1c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Users/m= > >ika/t/calarm/ratsql/src/TableMonitor.mg:393 > >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2306710) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2306710) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #11 0x9713885d in _pthread_start () > >> #12 0x971386e2 in thread_start () > >> > >> Thread 45 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x230b2d0= > >=2C mutex=3D0x2306680=2C m3timeout=3D1294537044.960629) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x23066b0=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000d469b in DBTable_gcoms_aux_instrumentMonitor__CleanerApply (cl=3D= > >0x30093c0) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /U= > >sers/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23066b0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23066b0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 44 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a15= > >9c=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= > >25 > >> #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=3D0x26602c4) = > >at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cal= > >arm/ratsql/src/TableMonitor.mg:456 > >> #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=3D0x320= > >5b38) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika= > >/t/calarm/ratsql/src/TableMonitor.mg:467 > >> #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=3D0x3205b38) a= > >t ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cala= > >rm/ratsql/src/TableMonitor.mg:445 > >> #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x3205b38)= > > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= > >larm/ratsql/src/TableMonitor.mg:393 > >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x230b000) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x230b000) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #11 0x9713885d in _pthread_start () > >> #12 0x971386e2 in thread_start () > >> > >> Thread 43 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x230afe0= > >=2C mutex=3D0x230af20=2C m3timeout=3D1294537044.8138101) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x230af80=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x32= > >05d30) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= > >a/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x230af80) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x230af80) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 42 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a15= > >9c=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= > >25 > >> #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=3D0x26602c4) = > >at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cal= > >arm/ratsql/src/TableMonitor.mg:456 > >> #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=3D0x320= > >57b0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika= > >/t/calarm/ratsql/src/TableMonitor.mg:467 > >> #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=3D0x32057b0) a= > >t ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cala= > >rm/ratsql/src/TableMonitor.mg:445 > >> #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x32057b0)= > > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= > >larm/ratsql/src/TableMonitor.mg:393 > >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x230aca0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x230aca0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #11 0x9713885d in _pthread_start () > >> #12 0x971386e2 in thread_start () > >> > >> Thread 41 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x2301860= > >=2C mutex=3D0x230ab40=2C m3timeout=3D1294537044.8138311) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x230aba0=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x32= > >059a8) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= > >a/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x230aba0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x230aba0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 40 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a6b= > >9c=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= > >25 > >> #5 0x000bd587 in DBTable_gcoms_ordr_statusMonitor__DbNow (db=3D0x26602c4)= > > at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mika/t/c= > >alarm/ratsql/src/TableMonitor.mg:456 > >> #6 0x000bd76e in DBTable_gcoms_ordr_statusMonitor__CheckForNew (cl=3D0x32= > >05390) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mi= > >ka/t/calarm/ratsql/src/TableMonitor.mg:467 > >> #7 0x000bd4b0 in DBTable_gcoms_ordr_statusMonitor__Sync (cl=3D0x3205390) = > >at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mika/t/ca= > >larm/ratsql/src/TableMonitor.mg:445 > >> #8 0x000bd037 in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=3D0x3205390= > >) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mika/t/= > >calarm/ratsql/src/TableMonitor.mg:393 > >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1621f10) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1621f10) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #11 0x9713885d in _pthread_start () > >> #12 0x971386e2 in thread_start () > >> > >> Thread 39 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x16242f0= > >=2C mutex=3D0x1621ee0=2C m3timeout=3D1294537044.8137701) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x1622280=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000bf010 in DBTable_gcoms_ordr_statusMonitor__CleanerApply (cl=3D0x3= > >205588) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/m= > >ika/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1622280) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1622280) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 38 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a31= > >44=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= > >25 > >> #5 0x000adb3f in DBTable_gcoms_strategyMonitor__DbNow (db=3D0x26602c4) at= > > ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/calarm/= > >ratsql/src/TableMonitor.mg:456 > >> #6 0x000add46 in DBTable_gcoms_strategyMonitor__CheckForNew (cl=3D0x2660b= > >88) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/c= > >alarm/ratsql/src/TableMonitor.mg:467 > >> #7 0x000ada68 in DBTable_gcoms_strategyMonitor__Sync (cl=3D0x2660b88) at = > >../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/calarm/r= > >atsql/src/TableMonitor.mg:445 > >> #8 0x000ad5ef in DBTable_gcoms_strategyMonitor__ApplyC (cl=3D0x2660b88) a= > >t ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/calarm= > >/ratsql/src/TableMonitor.mg:393 > >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161b820) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161b820) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #11 0x9713885d in _pthread_start () > >> #12 0x971386e2 in thread_start () > >> > >> Thread 37 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x2306160= > >=2C mutex=3D0x2305f70=2C m3timeout=3D1294537044.6482379) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x2306100=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000af60a in DBTable_gcoms_strategyMonitor__CleanerApply (cl=3D0x2660= > >d78) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/= > >calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2306100) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2306100) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 36 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a15= > >9c=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= > >25 > >> #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=3D0x26602c4) = > >at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cal= > >arm/ratsql/src/TableMonitor.mg:456 > >> #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=3D0x266= > >08c0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika= > >/t/calarm/ratsql/src/TableMonitor.mg:467 > >> #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=3D0x26608c0) a= > >t ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cala= > >rm/ratsql/src/TableMonitor.mg:445 > >> #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x26608c0)= > > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= > >larm/ratsql/src/TableMonitor.mg:393 > >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2305e30) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2305e30) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #11 0x9713885d in _pthread_start () > >> #12 0x971386e2 in thread_start () > >> > >> Thread 35 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x2305dd0= > >=2C mutex=3D0x2305c40=2C m3timeout=3D1294537044.6481991) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x2305d70=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x26= > >60ab0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= > >a/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2305d70) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2305d70) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 34 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3b40) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= > >.m3:1345 > >> #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=3D32=2C dataAlignment= > >=3D4=2C thread=3D0x1623e04) at ../src/runtime/common/RTAllocator.m3:363 > >> #5 0x0038f2c7 in RTAllocator__GetTracedObj (def=3D0x5c87d4) at ../src/run= > >time/common/RTAllocator.m3:224 > >> #6 0x0038ed60 in RTHooks__AllocateTracedObj (defn=3D0x5c87d4) at ../src/r= > >untime/common/RTAllocator.m3:122 > >> #7 0x00260a50 in DatabaseUtils__FilterUnprintable (t=3D0x4aa228) at ../sr= > >c/DatabaseUtils.m3:124 > >> #8 0x0026b6ae in UnsafeDatabase__ExecM (t=3D0x2660178=2C query=3D0x4aa228= > >=2C busyWait=3D0 '\0'=2C abortConnectionOnFail=3D1 '\001') at ../src/Unsafe= > >Database.m3:217 > >> #9 0x0026baa5 in UnsafeDatabase__TExecM (t=3D0x2660178=2C query=3D0x4aa22= > >8=2C busyWait=3D0 '\0'=2C abortConnectionOnFail=3D1 '\001') at ../src/Unsaf= > >eDatabase.m3:258 > >> #10 0x002587f9 in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4aa= > >228=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:= > >126 > >> #11 0x000cb8aa in DBTable_gcoms_fillMonitor__DbNow (db=3D0x26602c4) at ..= > >/I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/= > >src/TableMonitor.mg:456 > >> #12 0x000cbbf5 in DBTable_gcoms_fillMonitor__CheckForNew (cl=3D0x26605f8)= > > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= > >atsql/src/TableMonitor.mg:467 > >> #13 0x000cb7d3 in DBTable_gcoms_fillMonitor__Sync (cl=3D0x26605f8) at ../= > >I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/s= > >rc/TableMonitor.mg:445 > >> #14 0x000cb35a in DBTable_gcoms_fillMonitor__ApplyC (cl=3D0x26605f8) at .= > >./I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql= > >/src/TableMonitor.mg:393 > >> #15 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623dc0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #16 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623dc0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #17 0x9713885d in _pthread_start () > >> #18 0x971386e2 in thread_start () > >> > >> Thread 33 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x1623da0= > >=2C mutex=3D0x1623640=2C m3timeout=3D1294537044.6482589) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x1623d40=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000cd5e3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=3D0x26607e8)= > > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= > >atsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623d40) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623d40) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 32 (process 67010): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D9=2C read=3D1=2C m3timeout=3D= > >1) at ../src/thread/Common/ThreadInternal.c:57 > >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x1623c00=2C fd=3D9=2C re= > >ad=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001'= > >) at ../src/thread/PTHREAD/ThreadPThread.m3:627 > >> #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=3D9=2C read=3D1 '\001'= > >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > >> #4 0x003344ff in TCP__GetBytesFD (t=3D0x267015c=2C arr=3D0x2690040=2C tim= > >eout=3D-1) at ../src/POSIX/TCP.m3:326 > >> #5 0x003365ce in ConnRW__RdSeek (rd=3D0x2690010=2C pos=3D0=2C dontBlock= > >=3D0 '\0') at ../src/common/ConnRW.m3:69 > >> #6 0x003424e3 in Rd__GetLine (rd=3D0x2690010) at ../src/rw/Rd.m3:426 > >> #7 0x00256bb0 in UpdateMonitor__InApplyP (cl=3D0x269204c) at ../src/Updat= > >eMonitor.m3:240 > >> #8 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623c00) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #9 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623c00) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #10 0x9713885d in _pthread_start () > >> #11 0x971386e2 in thread_start () > >> > >> Thread 31 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x1623470=2C j=3D0= > >x1623ba0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x1623b40=2C m=3D0x2670220= > >=2C c=3D0x267022c=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2670220=2C c=3D0x267022c) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002567b1 in UpdateMonitor__OutApplyP (p=3D0x267017c) at ../src/Updat= > >eMonitor.m3:178 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623b40) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623b40) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 30 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23016c0=2C j=3D0= > >x2305a80) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2305a20=2C m=3D0x2660378= > >=2C c=3D0x26603ac=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2660378=2C c=3D0x26603ac) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x00259145 in DesynchronizedDB__PApply (p=3D0x26603bc) at ../src/Desyn= > >chronizedDB.m3:216 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2305a20) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2305a20) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 29 (process 67010): > >> #0 0x9716c1d6 in __wait4 () > >> #1 0x9716c1c9 in waitpid$UNIX2003 () > >> #2 0x003add58 in Uexec__waitpid (i=3D67040=2C j=3D0xb0e36b4c=2C k=3D0) at= > > ../src/unix/Common/Uexec.c:67 > >> #3 0x003aaa51 in SchedulerPosix__WaitProcess (pid=3D67040=2C status=3D0xb= > >0e36b4c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 > >> #4 0x0033ca19 in Process__Wait (p=3D0x2650590) at ../src/os/POSIX/Process= > >PosixCommon.m3:275 > >> #5 0x002ffdf6 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:18= > >5 > >> #6 0x003007c1 in ProcUtils__Apply (self=3D0x2640284) at ../src/ProcUtils.= > >m3:274 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x16233b0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x16233b0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 28 (process 67010): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D7=2C read=3D1=2C m3timeout=3D= > >1) at ../src/thread/Common/ThreadInternal.c:57 > >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x1623300=2C fd=3D7=2C re= > >ad=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001'= > >) at ../src/thread/PTHREAD/ThreadPThread.m3:627 > >> #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=3D7=2C read=3D1 '\001'= > >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > >> #4 0x003344ff in TCP__GetBytesFD (t=3D0x26402c4=2C arr=3D0x2642358=2C tim= > >eout=3D-1) at ../src/POSIX/TCP.m3:326 > >> #5 0x003365ce in ConnRW__RdSeek (rd=3D0x2642328=2C pos=3D0=2C dontBlock= > >=3D0 '\0') at ../src/common/ConnRW.m3:69 > >> #6 0x0033f64d in Rd__DoSeek (rd=3D0x2642328) at ../src/rw/Rd.m3:54 > >> #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=3D0x2642328) at ../src/rw/Rd.m= > >3:43 > >> #8 0x0033f32d in Rd__GetChar (rd=3D0x2642328) at ../src/rw/Rd.m3:34 > >> #9 0x002b26e9 in ReadLine__ReadALine (t=3D0x264000c) at ../src/ReadLine.m= > >3:151 > >> #10 0x002b4a56 in ReadLine__ReadLine (t=3D0x264000c) at ../src/ReadLine.m= > >3:411 > >> #11 0x0022a383 in SchemeReadLine__GetCh (p=3D0x2644364) at ../src/SchemeR= > >eadLine.m3:80 > >> #12 0x0024e942 in SchemeInputPort__NextToken (t=3D0x2644364=2C wx=3D0x264= > >43e8) at ../src/SchemeInputPort.m3:309 > >> #13 0x0024e0bb in SchemeInputPort__Read (t=3D0x2644364) at ../src/SchemeI= > >nputPort.m3:177 > >> #14 0x0022abaa in SchemeReadLine__MainLoop (rl=3D0x264000c=2C scm=3D0x256= > >b9e4) at ../src/SchemeReadLine.m3:146 > >> #15 0x00006bb7 in Main__SCApply (c=3D0x263fed0) at ../src/Main.m3:92 > >> #16 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623300) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #17 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623300) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #18 0x9713885d in _pthread_start () > >> #19 0x971386e2 in thread_start () > >> > >> Thread 27 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x161bd50) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x25400a4) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x002c77db in SXLongReal__Update (v=3D0x2540010=2C newValue=3D12937197= > >75.9374268=2C when=3D1293719775.9374378) at ../I386_DARWIN/SXLongReal.m3 = > >=3D> ../src/SXType.mg:79 > >> #5 0x002c7abe in SXLongReal__SetVar (v=3D0x2540010=2C newValue=3D12937197= > >75.9374268=2C when=3D1293719775.9374378) at ../I386_DARWIN/SXLongReal.m3 = > >=3D> ../src/SXType.mg:98 > >> #6 0x002eaaf7 in SXTimer__Loop (cl=3D0x21e11cc) at ../src/SXTimer.m3:64 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161b610) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161b610) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 26 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23016a0=2C j=3D0= > >x2301670) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2301610=2C m=3D0x2114828= > >=2C c=3D0x2114858=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2114828=2C c=3D0x2114858) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x000974c8 in GCOMSOrderStatus__Apply (cl=3D0x2114868) at ../src/GCOMS= > >OrderStatus.m3:166 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2301610) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2301610) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 25 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300540=2C j=3D0= > >x2301580) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x23015b0=2C m=3D0x211476c= > >=2C c=3D0x2114778=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x211476c=2C c=3D0x2114778) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x0009d268 in GCOMSBusyOrders__Apply (cl=3D0x2114788) at ../src/GCOMSB= > >usyOrders.m3:63 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23015b0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23015b0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 24 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300d90=2C j=3D0= > >x2300d60) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300d00=2C m=3D0x21d0044= > >=2C c=3D0x21d0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x21d0044=2C c=3D0x21d0050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0bace84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0bace84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2111418) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2111548) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300d00) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300d00) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 23 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300ce0=2C j=3D0= > >x2300cb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300c50=2C m=3D0x21c0044= > >=2C c=3D0x21c0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x21c0044=2C c=3D0x21c0050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0b2ae84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0b2ae84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2111288) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x21113b8) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300c50) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300c50) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 22 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300c30=2C j=3D0= > >x2300c00) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300ba0=2C m=3D0x21b0044= > >=2C c=3D0x21b0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x21b0044=2C c=3D0x21b0050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0aa8e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0aa8e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110fd8) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2111108) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300ba0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300ba0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 21 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300b80=2C j=3D0= > >x2300b50) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300af0=2C m=3D0x21a0044= > >=2C c=3D0x21a0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x21a0044=2C c=3D0x21a0050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0a26e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0a26e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110e50) at ../src/SX.m3:151 > >> #9 0x00163596 in CurrencySXProxy__Apply (cl=3D0x2110f78) at ../I386_DARWI= > >N/CurrencySXProxy.m3 =3D> /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300af0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300af0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 20 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300a10=2C j=3D0= > >x23009e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300980=2C m=3D0x2190044= > >=2C c=3D0x2190050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2190044=2C c=3D0x2190050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb09a4e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb09a4e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110b48) at ../src/SX.m3:151 > >> #9 0x002bf3d5 in BoolSXProxy__Apply (cl=3D0x2110c70) at ../I386_DARWIN/Bo= > >olSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300980) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300980) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 19 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300960=2C j=3D0= > >x2300930) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x23008d0=2C m=3D0x2180044= > >=2C c=3D0x2180050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2180044=2C c=3D0x2180050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0922e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0922e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x21109b8) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2110ae8) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23008d0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23008d0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 18 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23008b0=2C j=3D0= > >x2300880) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300820=2C m=3D0x2170044= > >=2C c=3D0x2170050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2170044=2C c=3D0x2170050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb08a0e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb08a0e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110828) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2110958) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300820) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300820) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 17 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300800=2C j=3D0= > >x23007d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300770=2C m=3D0x2160044= > >=2C c=3D0x2160050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2160044=2C c=3D0x2160050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb081ee84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb081ee84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110698) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x21107c8) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300770) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300770) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 16 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300750=2C j=3D0= > >x2300720) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x23006c0=2C m=3D0x2150044= > >=2C c=3D0x2150050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2150044=2C c=3D0x2150050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb079ce84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb079ce84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110508) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2110638) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23006c0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23006c0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 15 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23006a0=2C j=3D0= > >x2300670) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300610=2C m=3D0x2140044= > >=2C c=3D0x2140050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2140044=2C c=3D0x2140050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb071ae84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb071ae84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110378) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x21104a8) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300610) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300610) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 14 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161af10=2C j=3D0= > >x161aee0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161ae80=2C m=3D0x2130044= > >=2C c=3D0x2130050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2130044=2C c=3D0x2130050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0698e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0698e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x21101e8) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2110318) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161ae80) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161ae80) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 13 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23005f0=2C j=3D0= > >x23005c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300560=2C m=3D0x2120044= > >=2C c=3D0x2120050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2120044=2C c=3D0x2120050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0616e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0616e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20c0c40) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x21100ac) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300560) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300560) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 12 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23004c0=2C j=3D0= > >x2300490) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300430=2C m=3D0x2080044= > >=2C c=3D0x2080050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2080044=2C c=3D0x2080050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0594e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0594e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20c0ab0) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x20c0be0) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300430) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300430) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 11 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300410=2C j=3D0= > >x23003e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300380=2C m=3D0x20f0044= > >=2C c=3D0x20f0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x20f0044=2C c=3D0x20f0050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0512e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0512e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20c0920) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x20c0a50) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300380) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300380) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 10 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161aad0=2C j=3D0= > >x161aaa0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161aa40=2C m=3D0x20b0044= > >=2C c=3D0x20b0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x20b0044=2C c=3D0x20b0050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0490e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0490e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020e88) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020fb8) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161aa40) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161aa40) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 9 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23002a0=2C j=3D0= > >x2300270) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300210=2C m=3D0x2090044= > >=2C c=3D0x2090050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2090044=2C c=3D0x2090050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb040ee84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb040ee84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020cf8) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020e28) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300210) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300210) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 8 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a9c0=2C j=3D0= > >x161a990) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a930=2C m=3D0x20e0034= > >=2C c=3D0x20e0040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x20e0034=2C c=3D0x20e0040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb038ce84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb038ce84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020a48) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020b78) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a930) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a930) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 7 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a910=2C j=3D0= > >x161a8e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a880=2C m=3D0x20a0034= > >=2C c=3D0x20a0040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x20a0034=2C c=3D0x20a0040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb030ae84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb030ae84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20208c0) at ../src/SX.m3:151 > >> #9 0x00163596 in CurrencySXProxy__Apply (cl=3D0x20209e8) at ../I386_DARWI= > >N/CurrencySXProxy.m3 =3D> /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a880) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a880) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 6 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a860=2C j=3D0= > >x161a830) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a7d0=2C m=3D0x2050044= > >=2C c=3D0x2050050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2050044=2C c=3D0x2050050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0288e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0288e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020658) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020788) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a7d0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a7d0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 5 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a7b0=2C j=3D0= > >x161a780) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a720=2C m=3D0x2040044= > >=2C c=3D0x2040050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2040044=2C c=3D0x2040050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0206e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0206e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20204c8) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x20205f8) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a720) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a720) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 4 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a290=2C j=3D0= > >x161a6f0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a690=2C m=3D0x2030044= > >=2C c=3D0x2030050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2030044=2C c=3D0x2030050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0184e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0184e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020338) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020468) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a690) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a690) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 3 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x1619840=2C j=3D0= > >x161a600) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a230=2C m=3D0x202008c= > >=2C c=3D0x202007c=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x202008c=2C c=3D0x202007c) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002ba948 in VarProxyDefs__NotifyApply (cl=3D0x2020098) at ../src/Var= > >ProxyDefs.m3:55 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a230) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a230) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 2 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7ebe in ThreadPThread__InitMutex (m=3D0x20100ac=2C root=3D0x2010= > >0a8=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >> #4 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x20100a8) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #5 0x0033f30b in Rd__GetChar (rd=3D0x20100a8) at ../src/rw/Rd.m3:33 > >> #6 0x0034dffd in Lex__Skip (rd=3D0x20100a8=2C cs=3D0x548018) at ../src/fm= > >tlex/Lex.m3:46 > >> #7 0x003503c3 in Lex__ReadReal (rd=3D0x20100a8=2C sign=3D0xb00809e3=2C di= > >gits=3D0xb00809fc=2C digCnt=3D0xb00809e8=2C exp=3D0xb00809ec) at ../src/fmt= > >lex/Lex.m3:569 > >> #8 0x00350ef5 in Lex__LongReal (rd=3D0x20100a8) at ../src/fmtlex/Lex.m3:6= > >62 > >> #9 0x003518f1 in Scan__LongReal (txt=3D0x201007c) at ../src/fmtlex/Scan.m= > >3:77 > >> #10 0x0030ef75 in XTime__ClApply (cl=3D0x2004624) at ../src/XTime.m3:185 > >> #11 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a0b0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #12 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a0b0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #13 0x9713885d in _pthread_start () > >> #14 0x971386e2 in thread_start () > >> > >> Thread 1 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x16076f0=2C j=3D0= > >x16076c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x1607660=2C m=3D0x2000084= > >=2C c=3D0x30eb8bc=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003aa1f3 in ThreadPThread__XJoin (self=3D0x1607660=2C t=3D0x30eb8a0= > >=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:513 > >> #6 0x003aa2f5 in Thread__Join (t=3D0x30eb8a0) at ../src/thread/PTHREAD/Th= > >readPThread.m3:525 > >> #7 0x002ff2b8 in ProcUtils__Wait (c=3D0x30eb800) at ../src/ProcUtils.m3:3= > >18 > >> #8 0x00234ebd in SchemeCommandRunner__RealRunTimeoutCommandApply (proc=3D= > >0x21e0b44=2C interp=3D0x3241ec4=2C args=3D0x30e775c) at ../src/SchemeComman= > >dRunner.m3:164 > >> #9 0x00234b4f in SchemeCommandRunner__RunTimeoutCommandApply (proc=3D0x21= > >e0b44=2C interp=3D0x3241ec4=2C args=3D0x30e775c) at ../src/SchemeCommandRun= > >ner.m3:129 > >> #10 0x00234217 in SchemeCommandRunner__RunCommandApply (proc=3D0x21e0b44= > >=2C interp=3D0x3241ec4=2C args=3D0x30e7744) at ../src/SchemeCommandRunner.m= > >3:23 > >> #11 0x0024b81b in SchemePrimitive__EDApply (ed=3D0x21e01c0=2C t=3D0x32458= > >44=2C interp=3D0x3241ec4=2C args=3D0x30e7744) at ../src/SchemePrimitive.m3:= > >207 > >> #12 0x00246509 in SchemePrimitive__Prims (t=3D0x3245844=2C interp=3D0x324= > >1ec4=2C args=3D0x30e7744=2C x=3D0x30e5cfc=2C y=3D0x30e7730=2C free=3D0xbfff= > >ea1f) at ../src/SchemePrimitive.m3:580 > >> #13 0x0024b1cb in SchemePrimitive__Apply2 (t=3D0x3245844=2C interp=3D0x32= > >41ec4=2C a1=3D0x30e5cfc=2C a2=3D0x30e7730) at ../src/SchemePrimitive.m3:549 > >> #14 0x0023c16f in Scheme__EvalInternal (t=3D0x3241ec4=2C x=3D0x30e5c5c=2C= > > env=3D0x30e76b4) at ../src/Scheme.m3:585 > >> #15 0x0023bedf in Scheme__EvalInternal (t=3D0x3241ec4=2C x=3D0x30e5bac=2C= > > env=3D0x30e76b4) at ../src/Scheme.m3:582 > >> #16 0x0023c35e in Scheme__Eval (t=3D0x3241ec4=2C x=3D0x30e6a6c=2C envP=3D= > >0x3241f0c) at ../src/Scheme.m3:353 > >> #17 0x00239bcf in Scheme__EvalInGlobalEnv (t=3D0x3241ec4=2C x=3D0x30e6a6c= > >) at ../src/Scheme.m3:603 > >> #18 0x0002972b in SchemeCalculator__Calc (t=3D0x3241eb4=2C arr=3D0xbfffee= > >3c) at ../src/SchemeCalculator.m3:61 > >> #19 0x0000c8af in EuroDriver__Loop (t=3D0x3205a80) at ../src/EuroDriver.m= > >3:289 > >> #20 0x00008781 in Main_M3 (mode=3D1) at ../src/Main.m3:268 > >> #21 0x0039d83d in RTLinker__RunMainBody (m=3D0x55e420) at ../src/runtime/= > >common/RTLinker.m3:406 > >> #22 0x0039cc99 in RTLinker__AddUnitI (m=3D0x55e420) at ../src/runtime/com= > >mon/RTLinker.m3:113 > >> #23 0x0039cd1a in RTLinker__AddUnit (b=3D0x6be3) at ../src/runtime/common= > >/RTLinker.m3:122 > >> #24 0x0000528c in main (argc=3D19=2C argv=3D0xbffff330=2C envp=3D0xbffff3= > >80) at _m3main.c:16 > > = From mika at async.caltech.edu Sun Jan 9 10:35:33 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Sun, 09 Jan 2011 01:35:33 -0800 Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <20110109023648.2344ACC37A@birch.elegosoft.com> References: <20110109023648.2344ACC37A@birch.elegosoft.com> Message-ID: <20110109093533.74F061A205B@async.async.caltech.edu> Jay did you expect this to fix things? I'm still seeing the same problems... Jay Krell writes: >CVSROOT: /usr/cvs >Changes by: jkrell at birch. 11/01/09 03:36: >46 > >Modified files: > cm3/m3-libs/m3core/src/thread/PTHREAD/: > ThreadPThread.m3 > >Log message: > LockHeap later in ForkPrepare, try to f >ix deadlock with mutex initialization From hosking at cs.purdue.edu Sun Jan 9 10:52:27 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 9 Jan 2011 04:52:27 -0500 Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <20110109093533.74F061A205B@async.async.caltech.edu> References: <20110109023648.2344ACC37A@birch.elegosoft.com> <20110109093533.74F061A205B@async.async.caltech.edu> Message-ID: <166140D0-E5D0-43D3-BF61-BDB3604B7A6D@cs.purdue.edu> Jay, don't you need to order your unlocks in AtForkParent in reverse order to AtForkPrepare? That means you'd need to UnlockHeap before unlocking the other mutexes. On Jan 9, 2011, at 4:35 AM, Mika Nystrom wrote: > Jay did you expect this to fix things? > > I'm still seeing the same problems... > > > > Jay Krell writes: >> CVSROOT: /usr/cvs >> Changes by: jkrell at birch. 11/01/09 03:36: >> 46 >> >> Modified files: >> cm3/m3-libs/m3core/src/thread/PTHREAD/: >> ThreadPThread.m3 >> >> Log message: >> LockHeap later in ForkPrepare, try to f >> ix deadlock with mutex initialization From hosking at cs.purdue.edu Sun Jan 9 11:27:20 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 9 Jan 2011 05:27:20 -0500 Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <166140D0-E5D0-43D3-BF61-BDB3604B7A6D@cs.purdue.edu> References: <20110109023648.2344ACC37A@birch.elegosoft.com> <20110109093533.74F061A205B@async.async.caltech.edu> <166140D0-E5D0-43D3-BF61-BDB3604B7A6D@cs.purdue.edu> Message-ID: Jay, In order to support AtForkPrepare I think we will need to rework LockHeap. I'm working on it now. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 9, 2011, at 4:52 AM, Tony Hosking wrote: > Jay, don't you need to order your unlocks in AtForkParent in reverse order to AtForkPrepare? > That means you'd need to UnlockHeap before unlocking the other mutexes. > > On Jan 9, 2011, at 4:35 AM, Mika Nystrom wrote: > >> Jay did you expect this to fix things? >> >> I'm still seeing the same problems... >> >> >> >> Jay Krell writes: >>> CVSROOT: /usr/cvs >>> Changes by: jkrell at birch. 11/01/09 03:36: >>> 46 >>> >>> Modified files: >>> cm3/m3-libs/m3core/src/thread/PTHREAD/: >>> ThreadPThread.m3 >>> >>> Log message: >>> LockHeap later in ForkPrepare, try to f >>> ix deadlock with mutex initialization > From jay.krell at cornell.edu Sun Jan 9 22:03:15 2011 From: jay.krell at cornell.edu (Jay K) Date: Sun, 9 Jan 2011 21:03:15 +0000 Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: References: <20110109023648.2344ACC37A@birch.elegosoft.com>, <20110109093533.74F061A205B@async.async.caltech.edu>, <166140D0-E5D0-43D3-BF61-BDB3604B7A6D@cs.purdue.edu>, Message-ID: Right, oops, sorry, obvious error on my part? to leave the unlock order the same. I don't know what rework LockHeap needs though. Maybe there is a problem with it allowing recursion? i.e. ForkPrepare should assert that the lock count is 1? ?- Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Sun, 9 Jan 2011 05:27:20 -0500 > To: hosking at cs.purdue.edu > CC: jkrell at elego.de; m3devel at elegosoft.com > Subject: Re: [M3devel] [M3commit] CVS Update: cm3 > > Jay, > > In order to support AtForkPrepare I think we will need to rework LockHeap. > I'm working on it now. > > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 | Mobile +1 765 427 5484 > > > > > On Jan 9, 2011, at 4:52 AM, Tony Hosking wrote: > > > Jay, don't you need to order your unlocks in AtForkParent in reverse order to AtForkPrepare? > > That means you'd need to UnlockHeap before unlocking the other mutexes. > > > > On Jan 9, 2011, at 4:35 AM, Mika Nystrom wrote: > > > >> Jay did you expect this to fix things? > >> > >> I'm still seeing the same problems... > >> > >> > >> > >> Jay Krell writes: > >>> CVSROOT: /usr/cvs > >>> Changes by: jkrell at birch. 11/01/09 03:36: > >>> 46 > >>> > >>> Modified files: > >>> cm3/m3-libs/m3core/src/thread/PTHREAD/: > >>> ThreadPThread.m3 > >>> > >>> Log message: > >>> LockHeap later in ForkPrepare, try to f > >>> ix deadlock with mutex initialization > > > From rcolebur at SCIRES.COM Tue Jan 11 03:11:34 2011 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Mon, 10 Jan 2011 21:11:34 -0500 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: References: <20110107151412.026651A205B@async.async.caltech.edu>, <10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu> Message-ID: Yes, if you are going to hold multiple locks, need to define a partial lock order to avoid deadlock. Also, recall that I committed some test programs a while back to test multiple threads. These may prove helpful in debugging what is going on. Regards, Randy -----Original Message----- From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Friday, January 07, 2011 3:31 PM To: Tony; Mika Nystrom Cc: m3devel Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? We need a lock order. I guessed. Maybe poorly. I/we should study the code and these stacks more and determine its validity. Here is the code, *slightly* altered just now for debuggability. VAR locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; PROCEDURE AtForkPrepare() = VAR me := GetActivation(); act: Activation; cond: Condition; BEGIN Acquire(joinMu); LockHeap(); FOR i := FIRST(locks) TO LAST(locks) DO PThreadLockMutex(locks[i], ThisLine(), i); END; (* Walk activations and lock all threads, conditions. * NOTE: We have initMu, activeMu, so slots * won't change, conditions and mutexes * won't be initialized on-demand. *) act := me; REPEAT PThreadLockMutex(act.mutex, ThisLine(), -1); (*PThreadLockMutex(act.waitingOn, ThisLine());*) cond := slots[act.slot].join; IF cond # NIL THEN PThreadLockMutex(cond.mutex, ThisLine(), -2) END; act := act.next; UNTIL act = me; END AtForkPrepare; Mika, if this easy to reproduce, please try again from head. The problem is not fixed, but there's a little more information that will appear. - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Fri, 7 Jan 2011 10:42:38 -0500 > To: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > This has something to do with the fork handlers Jay introduced, which run when a process is forked. They invoke LockHeap in the parent before the fork, and UnlockHeap in the parent after the fork. It appears that your threads are stuck waiting on LockHeap. Also, we have two threads in your trace trying to acquire initMu. Jay, I think we have a deadlock caused by AtForkPrepare. Ideas? > > On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: > > > Hi m3devel (especially Tony), > > > > I'm having a problem with a Modula-3 program that seems to deadlock > > with one of my 60+ threads stuck in Process.Create. Is it possible > > there is a bug in ThreadPThread.m3? (Would be really nice to have a > > deadlock detector here, you know... rather than have the program go > > catatonic when there's a deadlock. Deadlock is stable so the detector > > could run very infrequently---i.e., be very inefficient---and still be > > extremely useful....) > > > > I don't think there is anything I ought to be able to do from "user > > code" that would cause Process.Create to be part of a deadlock cycle. > > Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) > > possibly exhibit itself as a failure of Process.Create to complete?? > > > > Below are backtraces of the threads stuck in some sort of locking > > activity, platform is I386_DARWIN at head as of a couple of weeks ago. > > (I deleted the threads that are up to other things than locking.) > > > > Mika > > > > Thread 68 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > > #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 > > #5 0x97137217 in _cthread_fork_prepare () > > #6 0x97137155 in fork () > > #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC > > ommon.m3:75 > > #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > > #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > > #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 > > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #13 0x9713885d in _pthread_start () > > #14 0x971386e2 in thread_start () > > > > Thread 65 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 > > #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 > > #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 > > #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > > #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 > > #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 > > #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 > > #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 > > #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 > > #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 > > #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 > > #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 > > #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 > > #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 > > #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 > > #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > > #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > > #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > > #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 > > #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #33 0x9713885d in _pthread_start () > > #34 0x971386e2 in thread_start () > > > > Thread 64 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 > > #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 > > #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 > > #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > > #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 > > #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 > > #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 > > #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 > > #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 > > #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 > > #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 > > #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > > #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > > #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > > #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 > > #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #28 0x9713885d in _pthread_start () > > #29 0x971386e2 in thread_start () > > > > Thread 60 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > > #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > > #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 > > #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 > > #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 > > #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > > #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 > > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #12 0x9713885d in _pthread_start () > > #13 0x971386e2 in thread_start () > > > > Thread 59 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > > #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 > > #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 > > #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 > > #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 > > #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 > > #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 > > #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 > > #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > > #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > > #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > > #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 > > #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #19 0x9713885d in _pthread_start () > > #20 0x971386e2 in thread_start () > > > > Thread 52 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > > #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 > > #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 > > #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 > > #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > > #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > > #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > > #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 > > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #14 0x9713885d in _pthread_start () > > #15 0x971386e2 in thread_start () > > > > Thread 51 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > > #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 > > #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 > > #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > > #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > > #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 > > #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 > > #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 > > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #14 0x9713885d in _pthread_start () > > #15 0x971386e2 in thread_start () > > > > Thread 27 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > > #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > > #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > > #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 > > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #9 0x9713885d in _pthread_start () > > #10 0x971386e2 in thread_start () > > > > Thread 2 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 > > #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 > > #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 > > #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 > > #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 > > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #13 0x9713885d in _pthread_start () > > #14 0x971386e2 in thread_start () > > > > > From hosking at cs.purdue.edu Tue Jan 11 04:49:04 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 10 Jan 2011 22:49:04 -0500 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: References: <20110107151412.026651A205B@async.async.caltech.edu>, <10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu> Message-ID: I'm reworking it. On Jan 10, 2011, at 9:11 PM, Coleburn, Randy wrote: > Yes, if you are going to hold multiple locks, need to define a partial lock order to avoid deadlock. > Also, recall that I committed some test programs a while back to test multiple threads. These may prove helpful in debugging what is going on. > Regards, > Randy > > -----Original Message----- > From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K > Sent: Friday, January 07, 2011 3:31 PM > To: Tony; Mika Nystrom > Cc: m3devel > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > > We need a lock order. I guessed. Maybe poorly. I/we should study the code and these stacks more and determine its validity. > > > Here is the code, *slightly* altered just now for debuggability. > > > VAR > locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; > > > > PROCEDURE AtForkPrepare() = > VAR me := GetActivation(); > act: Activation; > cond: Condition; > BEGIN > Acquire(joinMu); > LockHeap(); > FOR i := FIRST(locks) TO LAST(locks) DO > PThreadLockMutex(locks[i], ThisLine(), i); > END; > (* Walk activations and lock all threads, conditions. > * NOTE: We have initMu, activeMu, so slots > * won't change, conditions and mutexes > * won't be initialized on-demand. > *) > act := me; > REPEAT > PThreadLockMutex(act.mutex, ThisLine(), -1); > (*PThreadLockMutex(act.waitingOn, ThisLine());*) > cond := slots[act.slot].join; > IF cond # NIL THEN PThreadLockMutex(cond.mutex, ThisLine(), -2) END; > act := act.next; > UNTIL act = me; > END AtForkPrepare; > > > > Mika, if this easy to reproduce, please try again from head. > The problem is not fixed, but there's a little more information that will appear. > > > - Jay > > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Fri, 7 Jan 2011 10:42:38 -0500 >> To: mika at async.caltech.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? >> >> This has something to do with the fork handlers Jay introduced, which run when a process is forked. They invoke LockHeap in the parent before the fork, and UnlockHeap in the parent after the fork. It appears that your threads are stuck waiting on LockHeap. Also, we have two threads in your trace trying to acquire initMu. Jay, I think we have a deadlock caused by AtForkPrepare. Ideas? >> >> On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: >> >>> Hi m3devel (especially Tony), >>> >>> I'm having a problem with a Modula-3 program that seems to deadlock >>> with one of my 60+ threads stuck in Process.Create. Is it possible >>> there is a bug in ThreadPThread.m3? (Would be really nice to have a >>> deadlock detector here, you know... rather than have the program go >>> catatonic when there's a deadlock. Deadlock is stable so the detector >>> could run very infrequently---i.e., be very inefficient---and still be >>> extremely useful....) >>> >>> I don't think there is anything I ought to be able to do from "user >>> code" that would cause Process.Create to be part of a deadlock cycle. >>> Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) >>> possibly exhibit itself as a failure of Process.Create to complete?? >>> >>> Below are backtraces of the threads stuck in some sort of locking >>> activity, platform is I386_DARWIN at head as of a couple of weeks ago. >>> (I deleted the threads that are up to other things than locking.) >>> >>> Mika >>> >>> Thread 68 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 >>> #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 >>> #5 0x97137217 in _cthread_fork_prepare () >>> #6 0x97137155 in fork () >>> #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC >>> ommon.m3:75 >>> #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 >>> #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 >>> #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 >>> #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #13 0x9713885d in _pthread_start () >>> #14 0x971386e2 in thread_start () >>> >>> Thread 65 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >>> #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >>> #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 >>> #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 >>> #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 >>> #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 >>> #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 >>> #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 >>> #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 >>> #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>> #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 >>> #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 >>> #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>> #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 >>> #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>> #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 >>> #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>> #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 >>> #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>> #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 >>> #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>> #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 >>> #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 >>> #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 >>> #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 >>> #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 >>> #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 >>> #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 >>> #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #33 0x9713885d in _pthread_start () >>> #34 0x971386e2 in thread_start () >>> >>> Thread 64 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 >>> #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 >>> #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 >>> #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >>> #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 >>> #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 >>> #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 >>> #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 >>> #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 >>> #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 >>> #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 >>> #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 >>> #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 >>> #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 >>> #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 >>> #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 >>> #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 >>> #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 >>> #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 >>> #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 >>> #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 >>> #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 >>> #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 >>> #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #28 0x9713885d in _pthread_start () >>> #29 0x971386e2 in thread_start () >>> >>> Thread 60 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 >>> #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 >>> #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 >>> #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 >>> #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 >>> #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 >>> #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 >>> #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #12 0x9713885d in _pthread_start () >>> #13 0x971386e2 in thread_start () >>> >>> Thread 59 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >>> #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >>> #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 >>> #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 >>> #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 >>> #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 >>> #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 >>> #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 >>> #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 >>> #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 >>> #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 >>> #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 >>> #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 >>> #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 >>> #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #19 0x9713885d in _pthread_start () >>> #20 0x971386e2 in thread_start () >>> >>> Thread 52 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 >>> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 >>> #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 >>> #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 >>> #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 >>> #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 >>> #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 >>> #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 >>> #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 >>> #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #14 0x9713885d in _pthread_start () >>> #15 0x971386e2 in thread_start () >>> >>> Thread 51 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 >>> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 >>> #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 >>> #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 >>> #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 >>> #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 >>> #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 >>> #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 >>> #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 >>> #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #14 0x9713885d in _pthread_start () >>> #15 0x971386e2 in thread_start () >>> >>> Thread 27 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 >>> #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 >>> #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 >>> #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 >>> #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #9 0x9713885d in _pthread_start () >>> #10 0x971386e2 in thread_start () >>> >>> Thread 2 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >>> #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >>> #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 >>> #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 >>> #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 >>> #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 >>> #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 >>> #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 >>> #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #13 0x9713885d in _pthread_start () >>> #14 0x971386e2 in thread_start () >>> >>> >> > From hosking at cs.purdue.edu Tue Jan 11 06:58:35 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 11 Jan 2011 00:58:35 -0500 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: References: <20110106002615.77E782474003@birch.elegosoft.com>, , , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu> Message-ID: I know what the problem is. The fix is not particularly pretty, and will entail tracking the stack types for integers (Int32 or Int64) throughout code generation. This all leads me to wonder why we don't simply back LONGINT out of the language. [I had mentioned my increasing unease with LONGINT in a prior e-mail a long time ago.] We can replace LONGINT with Longint and Longword: Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] and define signed operations in Longint and unsigned operations in Longword. These can be implemented efficiently as wrappers to appropriate C routines operating on "long long" or inlined if performance is a particular concern. We can provide conversion routines to/from INTEGER as needs. Other than handling 64-bit file offsets, etc., does anyone really make use of LONGINT that argues convincingly for it to be retained? On Jan 8, 2011, at 6:55 PM, Jay K wrote: > > Thank you much. Please notice there are 2 or 3 similar problems. This shows only 1. > See test p250. > > > MODULE Main; > > PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; > > PROCEDURE F2() = > <*UNUSED*>VAR x: [0L..0L]; > BEGIN > END F2; > > PROCEDURE F3() = > VAR x: [0L..0L]; > BEGIN > F1(x); > END F3; > > BEGIN > F1(0L); > F2(); > F3(); > END Main. > > i.e. initializing local 0L..0L. > Passing 0L..0L parameter. > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Sat, 8 Jan 2011 16:59:33 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] codegen error (from Mika, new test p250) >> >> I'll look into this one. >> >> Antony Hosking | Associate Professor | Computer Science | Purdue University >> 305 N. University Street | West Lafayette | IN 47907 | USA >> Office +1 765 494 6001 | Mobile +1 765 427 5484 >> >> >> >> >> On Jan 8, 2011, at 12:17 AM, Jay K wrote: >> >>> >>> fyi, small repro: >>> >>> >>> MODULE Main; >>> >>> VAR x: [0L..0L]; >>> >>> PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; >>> >>> BEGIN >>> F2(x); >>> END Main. >>> >>> (32) start_call_direct procedure:0x4 level:0 >>> (33) load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 >>> (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] >>> (35) pop_param type:int_64 >>> >>> >>> - Jay >>> >>> >>> ________________________________ >>>> From: jay.krell at cornell.edu >>>> To: m3devel at elegosoft.com; mika at async.caltech.edu >>>> Subject: RE: codegen error (from Mika, new test p250) >>>> Date: Thu, 6 Jan 2011 01:21:00 +0000 >>>> >>>> fyi: >>>> >>>> jbook2:p250 jay$ rm -rf I386_DARWIN/ >>>> jbook2:p250 jay$ cm3 -keep >>>> --- building in I386_DARWIN --- >>>> >>>> new source -> compiling Main.m3 >>>> "../Main.m3", line 1: 1 code generation error >>>> 1 error encountered >>>> compilation failed => not building program "pgm" >>>> Fatal Error: package build failed >>>> jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment >>>> (4) comment comment:module global constants >>>> (6) comment comment:module global data >>>> (27) comment comment:F1 >>>> (34) comment comment:********* M3CG_Check ERROR >>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] >>>> (43) comment comment:F2 >>>> (73) comment comment:Main_M3 >>>> (74) comment comment:module main body Main_M3 >>>> (83) comment comment:global constant type descriptor >>>> (85) comment comment:global data type descriptor >>>> (87) comment comment:module global constants >>>> (90) comment comment:procedure names >>>> (94) comment comment:procedure table >>>> (101) comment comment:file name >>>> (103) comment comment:type map for _t0174bdf4 >>>> (106) comment comment:type description for _t0174bdf4 >>>> (110) comment comment:module global data >>>> (120) comment comment:typecell for _t0174bdf4 >>>> (141) comment comment:load map >>>> (4) comment comment:module global constants >>>> (6) comment comment:module global data >>>> (27) comment comment:F1 >>>> (34) comment comment:********* M3CG_Check ERROR >>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] >>>> (43) comment comment:F2 >>>> (73) comment comment:Main_M3 >>>> (74) comment comment:module main body Main_M3 >>>> (83) comment comment:global constant type descriptor >>>> (85) comment comment:global data type descriptor >>>> (87) comment comment:module global constants >>>> (90) comment comment:procedure names >>>> (94) comment comment:procedure table >>>> (101) comment comment:file name >>>> (103) comment comment:type map for _t0174bdf4 >>>> (106) comment comment:type description for _t0174bdf4 >>>> (110) comment comment:module global data >>>> (120) comment comment:typecell for _t0174bdf4 >>>> (141) comment comment:load map >>>> >>>> >>>> - Jay >>>> >>>> >>>>> Date: Thu, 6 Jan 2011 01:26:15 +0000 >>>>> To: m3commit at elegosoft.com >>>>> From: jkrell at elego.de >>>>> Subject: [M3commit] CVS Update: cm3 >>>>> >>>>> CVSROOT: /usr/cvs >>>>> Changes by: jkrell at birch. 11/01/06 01:26:15 >>>>> >>>>> Modified files: >>>>> cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 >>>>> >>>>> Log message: >>>>> slightly simpler, same error >>>>> >>> >> > From jay.krell at cornell.edu Tue Jan 11 08:33:57 2011 From: jay.krell at cornell.edu (Jay K) Date: Tue, 11 Jan 2011 07:33:57 +0000 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: References: <20110106002615.77E782474003@birch.elegosoft.com>, , , , , , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu>, , Message-ID: Quibbling with the details: Is this legal, on a 32bit system? Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] And even if it is legal, it is of dubious correctness, eh? For implementation of this in Modula-3, you want the low word to be unsigned and the high word to be signed. Granted, you want full range unsigned, so, like, Word.T, but you want 32 bits. There should therefore be, like, interfaces Word32 and Word64 (ok, you already have Long). As well, the implementation on 64bit targets will perhaps suffer. As well, does it work for 64bit targets? Isn't [00000...FFFFFFFF] 64 bits? Maybe you'd say: Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF BITS 32 FOR [16_00000000..16_FFFFFFFF] And then, *really*, you want the order/significance of the words to be endian-specific. So, you'd want perhaps 3 implementations: 64bit: Longint.T = INTEGER 32bit big endian: Longint.T = RECORD high: INTEGER; low: Word.T; END; 32bit little endian: Longint.T = RECORD low: Word.T; high: INTEGER; END; or maybe just two: ?big endian: Longint.T = RECORD high: some-32bit-signed-type; low: some-32bit-psuedo-unsigned-type; END; ?little endian: Longint.T = RECORD low some-32bit-psuedo-unsigned-type; low: some-32bit-signed-type; END; Ultimately, the very very very general true point is: ? extension via library is probably generally easier ? BUT only makes for good results in an adequate language, e.g. one with operator overloading! Surely surely the compiler isn't so unmalleable? ie. we aren't stuck with the language asis because the compiler is too hard to change? I can't argue too strongly in favor of LONGINT. But..definitely there should be some reasonable convenient efficient way for dealing with 64bit integers. ? 32bit C implementations have had very good mechanisms for 25+ years. ? It does seem a shame we seemingly can't/won't compete. And still. interface Rd/Wr I believe still need work.. Probably to add a parallel set of functions ending in "L". ?- Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Tue, 11 Jan 2011 00:58:35 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] codegen error (from Mika, new test p250) > > I know what the problem is. The fix is not particularly pretty, and will entail tracking the stack types for integers (Int32 or Int64) throughout code generation. > > This all leads me to wonder why we don't simply back LONGINT out of the language. > [I had mentioned my increasing unease with LONGINT in a prior e-mail a long time ago.] > > We can replace LONGINT with Longint and Longword: > > Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] > > and define signed operations in Longint and unsigned operations in Longword. > These can be implemented efficiently as wrappers to appropriate C routines operating on "long long" or inlined if performance is a particular concern. We can provide conversion routines to/from INTEGER as needs. > > Other than handling 64-bit file offsets, etc., does anyone really make use of LONGINT that argues convincingly for it to be retained? > > On Jan 8, 2011, at 6:55 PM, Jay K wrote: > > > > > Thank you much. Please notice there are 2 or 3 similar problems. This shows only 1. > > See test p250. > > > > > > MODULE Main; > > > > PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; > > > > PROCEDURE F2() = > > <*UNUSED*>VAR x: [0L..0L]; > > BEGIN > > END F2; > > > > PROCEDURE F3() = > > VAR x: [0L..0L]; > > BEGIN > > F1(x); > > END F3; > > > > BEGIN > > F1(0L); > > F2(); > > F3(); > > END Main. > > > > i.e. initializing local 0L..0L. > > Passing 0L..0L parameter. > > > > - Jay > > > > > > ---------------------------------------- > >> From: hosking at cs.purdue.edu > >> Date: Sat, 8 Jan 2011 16:59:33 -0500 > >> To: jay.krell at cornell.edu > >> CC: m3devel at elegosoft.com > >> Subject: Re: [M3devel] codegen error (from Mika, new test p250) > >> > >> I'll look into this one. > >> > >> Antony Hosking | Associate Professor | Computer Science | Purdue University > >> 305 N. University Street | West Lafayette | IN 47907 | USA > >> Office +1 765 494 6001 | Mobile +1 765 427 5484 > >> > >> > >> > >> > >> On Jan 8, 2011, at 12:17 AM, Jay K wrote: > >> > >>> > >>> fyi, small repro: > >>> > >>> > >>> MODULE Main; > >>> > >>> VAR x: [0L..0L]; > >>> > >>> PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; > >>> > >>> BEGIN > >>> F2(x); > >>> END Main. > >>> > >>> (32) start_call_direct procedure:0x4 level:0 > >>> (33) load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 > >>> (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] > >>> (35) pop_param type:int_64 > >>> > >>> > >>> - Jay > >>> > >>> > >>> ________________________________ > >>>> From: jay.krell at cornell.edu > >>>> To: m3devel at elegosoft.com; mika at async.caltech.edu > >>>> Subject: RE: codegen error (from Mika, new test p250) > >>>> Date: Thu, 6 Jan 2011 01:21:00 +0000 > >>>> > >>>> fyi: > >>>> > >>>> jbook2:p250 jay$ rm -rf I386_DARWIN/ > >>>> jbook2:p250 jay$ cm3 -keep > >>>> --- building in I386_DARWIN --- > >>>> > >>>> new source -> compiling Main.m3 > >>>> "../Main.m3", line 1: 1 code generation error > >>>> 1 error encountered > >>>> compilation failed => not building program "pgm" > >>>> Fatal Error: package build failed > >>>> jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment > >>>> (4) comment comment:module global constants > >>>> (6) comment comment:module global data > >>>> (27) comment comment:F1 > >>>> (34) comment comment:********* M3CG_Check ERROR > >>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] > >>>> (43) comment comment:F2 > >>>> (73) comment comment:Main_M3 > >>>> (74) comment comment:module main body Main_M3 > >>>> (83) comment comment:global constant type descriptor > >>>> (85) comment comment:global data type descriptor > >>>> (87) comment comment:module global constants > >>>> (90) comment comment:procedure names > >>>> (94) comment comment:procedure table > >>>> (101) comment comment:file name > >>>> (103) comment comment:type map for _t0174bdf4 > >>>> (106) comment comment:type description for _t0174bdf4 > >>>> (110) comment comment:module global data > >>>> (120) comment comment:typecell for _t0174bdf4 > >>>> (141) comment comment:load map > >>>> (4) comment comment:module global constants > >>>> (6) comment comment:module global data > >>>> (27) comment comment:F1 > >>>> (34) comment comment:********* M3CG_Check ERROR > >>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] > >>>> (43) comment comment:F2 > >>>> (73) comment comment:Main_M3 > >>>> (74) comment comment:module main body Main_M3 > >>>> (83) comment comment:global constant type descriptor > >>>> (85) comment comment:global data type descriptor > >>>> (87) comment comment:module global constants > >>>> (90) comment comment:procedure names > >>>> (94) comment comment:procedure table > >>>> (101) comment comment:file name > >>>> (103) comment comment:type map for _t0174bdf4 > >>>> (106) comment comment:type description for _t0174bdf4 > >>>> (110) comment comment:module global data > >>>> (120) comment comment:typecell for _t0174bdf4 > >>>> (141) comment comment:load map > >>>> > >>>> > >>>> - Jay > >>>> > >>>> > >>>>> Date: Thu, 6 Jan 2011 01:26:15 +0000 > >>>>> To: m3commit at elegosoft.com > >>>>> From: jkrell at elego.de > >>>>> Subject: [M3commit] CVS Update: cm3 > >>>>> > >>>>> CVSROOT: /usr/cvs > >>>>> Changes by: jkrell at birch. 11/01/06 01:26:15 > >>>>> > >>>>> Modified files: > >>>>> cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > >>>>> > >>>>> Log message: > >>>>> slightly simpler, same error > >>>>> > >>> > >> > > > From jay.krell at cornell.edu Tue Jan 11 08:36:06 2011 From: jay.krell at cornell.edu (Jay K) Date: Tue, 11 Jan 2011 07:36:06 +0000 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: References: <20110106002615.77E782474003@birch.elegosoft.com>, , , , , , , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu>, , , Message-ID: ps: can M3CG_Check be pushed into service to do the work? You know, it is already tracking everything and where the detection/error is currently. Can we make it, like, required, and have it cast/loophole as needed? Or is this too late and it might miss problems, such as incorrect/unchecked narrowing? ?- Jay ---------------------------------------- > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: RE: [M3devel] codegen error (from Mika, new test p250) > Date: Tue, 11 Jan 2011 07:33:57 +0000 > > > Quibbling with the details: > > Is this legal, on a 32bit system? > > Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] > > And even if it is legal, it is of dubious correctness, eh? > For implementation of this in Modula-3, you want the low word to be unsigned and the high word to be signed. > Granted, you want full range unsigned, so, like, Word.T, but you want 32 bits. > > There should therefore be, like, interfaces Word32 and Word64 (ok, you already have Long). > > As well, the implementation on 64bit targets will perhaps suffer. > > As well, does it work for 64bit targets? Isn't [00000...FFFFFFFF] 64 bits? > Maybe you'd say: > Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF BITS 32 FOR [16_00000000..16_FFFFFFFF] > > > And then, *really*, you want the order/significance of the words to be endian-specific. > > So, you'd want perhaps 3 implementations: > > 64bit: Longint.T = INTEGER > 32bit big endian: Longint.T = RECORD high: INTEGER; low: Word.T; END; > 32bit little endian: Longint.T = RECORD low: Word.T; high: INTEGER; END; > > > > or maybe just two: > > big endian: Longint.T = RECORD high: some-32bit-signed-type; low: some-32bit-psuedo-unsigned-type; END; > little endian: Longint.T = RECORD low some-32bit-psuedo-unsigned-type; low: some-32bit-signed-type; END; > > > > Ultimately, the very very very general true point is: > extension via library is probably generally easier > BUT only makes for good results in an adequate language, e.g. one with operator overloading! > > > Surely surely the compiler isn't so unmalleable? > ie. we aren't stuck with the language asis because the compiler is too hard to change? > > > I can't argue too strongly in favor of LONGINT. > > > But..definitely there should be some reasonable convenient efficient way for dealing with 64bit integers. > 32bit C implementations have had very good mechanisms for 25+ years. > It does seem a shame we seemingly can't/won't compete. > > > And still. interface Rd/Wr I believe still need work.. > Probably to add a parallel set of functions ending in "L". > > - Jay > > > ---------------------------------------- > > From: hosking at cs.purdue.edu > > Date: Tue, 11 Jan 2011 00:58:35 -0500 > > To: jay.krell at cornell.edu > > CC: m3devel at elegosoft.com > > Subject: Re: [M3devel] codegen error (from Mika, new test p250) > > > > I know what the problem is. The fix is not particularly pretty, and will entail tracking the stack types for integers (Int32 or Int64) throughout code generation. > > > > This all leads me to wonder why we don't simply back LONGINT out of the language. > > [I had mentioned my increasing unease with LONGINT in a prior e-mail a long time ago.] > > > > We can replace LONGINT with Longint and Longword: > > > > Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] > > > > and define signed operations in Longint and unsigned operations in Longword. > > These can be implemented efficiently as wrappers to appropriate C routines operating on "long long" or inlined if performance is a particular concern. We can provide conversion routines to/from INTEGER as needs. > > > > Other than handling 64-bit file offsets, etc., does anyone really make use of LONGINT that argues convincingly for it to be retained? > > > > On Jan 8, 2011, at 6:55 PM, Jay K wrote: > > > > > > > > Thank you much. Please notice there are 2 or 3 similar problems. This shows only 1. > > > See test p250. > > > > > > > > > MODULE Main; > > > > > > PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; > > > > > > PROCEDURE F2() = > > > <*UNUSED*>VAR x: [0L..0L]; > > > BEGIN > > > END F2; > > > > > > PROCEDURE F3() = > > > VAR x: [0L..0L]; > > > BEGIN > > > F1(x); > > > END F3; > > > > > > BEGIN > > > F1(0L); > > > F2(); > > > F3(); > > > END Main. > > > > > > i.e. initializing local 0L..0L. > > > Passing 0L..0L parameter. > > > > > > - Jay > > > > > > > > > ---------------------------------------- > > >> From: hosking at cs.purdue.edu > > >> Date: Sat, 8 Jan 2011 16:59:33 -0500 > > >> To: jay.krell at cornell.edu > > >> CC: m3devel at elegosoft.com > > >> Subject: Re: [M3devel] codegen error (from Mika, new test p250) > > >> > > >> I'll look into this one. > > >> > > >> Antony Hosking | Associate Professor | Computer Science | Purdue University > > >> 305 N. University Street | West Lafayette | IN 47907 | USA > > >> Office +1 765 494 6001 | Mobile +1 765 427 5484 > > >> > > >> > > >> > > >> > > >> On Jan 8, 2011, at 12:17 AM, Jay K wrote: > > >> > > >>> > > >>> fyi, small repro: > > >>> > > >>> > > >>> MODULE Main; > > >>> > > >>> VAR x: [0L..0L]; > > >>> > > >>> PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; > > >>> > > >>> BEGIN > > >>> F2(x); > > >>> END Main. > > >>> > > >>> (32) start_call_direct procedure:0x4 level:0 > > >>> (33) load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 > > >>> (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] > > >>> (35) pop_param type:int_64 > > >>> > > >>> > > >>> - Jay > > >>> > > >>> > > >>> ________________________________ > > >>>> From: jay.krell at cornell.edu > > >>>> To: m3devel at elegosoft.com; mika at async.caltech.edu > > >>>> Subject: RE: codegen error (from Mika, new test p250) > > >>>> Date: Thu, 6 Jan 2011 01:21:00 +0000 > > >>>> > > >>>> fyi: > > >>>> > > >>>> jbook2:p250 jay$ rm -rf I386_DARWIN/ > > >>>> jbook2:p250 jay$ cm3 -keep > > >>>> --- building in I386_DARWIN --- > > >>>> > > >>>> new source -> compiling Main.m3 > > >>>> "../Main.m3", line 1: 1 code generation error > > >>>> 1 error encountered > > >>>> compilation failed => not building program "pgm" > > >>>> Fatal Error: package build failed > > >>>> jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment > > >>>> (4) comment comment:module global constants > > >>>> (6) comment comment:module global data > > >>>> (27) comment comment:F1 > > >>>> (34) comment comment:********* M3CG_Check ERROR > > >>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] > > >>>> (43) comment comment:F2 > > >>>> (73) comment comment:Main_M3 > > >>>> (74) comment comment:module main body Main_M3 > > >>>> (83) comment comment:global constant type descriptor > > >>>> (85) comment comment:global data type descriptor > > >>>> (87) comment comment:module global constants > > >>>> (90) comment comment:procedure names > > >>>> (94) comment comment:procedure table > > >>>> (101) comment comment:file name > > >>>> (103) comment comment:type map for _t0174bdf4 > > >>>> (106) comment comment:type description for _t0174bdf4 > > >>>> (110) comment comment:module global data > > >>>> (120) comment comment:typecell for _t0174bdf4 > > >>>> (141) comment comment:load map > > >>>> (4) comment comment:module global constants > > >>>> (6) comment comment:module global data > > >>>> (27) comment comment:F1 > > >>>> (34) comment comment:********* M3CG_Check ERROR > > >>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] > > >>>> (43) comment comment:F2 > > >>>> (73) comment comment:Main_M3 > > >>>> (74) comment comment:module main body Main_M3 > > >>>> (83) comment comment:global constant type descriptor > > >>>> (85) comment comment:global data type descriptor > > >>>> (87) comment comment:module global constants > > >>>> (90) comment comment:procedure names > > >>>> (94) comment comment:procedure table > > >>>> (101) comment comment:file name > > >>>> (103) comment comment:type map for _t0174bdf4 > > >>>> (106) comment comment:type description for _t0174bdf4 > > >>>> (110) comment comment:module global data > > >>>> (120) comment comment:typecell for _t0174bdf4 > > >>>> (141) comment comment:load map > > >>>> > > >>>> > > >>>> - Jay > > >>>> > > >>>> > > >>>>> Date: Thu, 6 Jan 2011 01:26:15 +0000 > > >>>>> To: m3commit at elegosoft.com > > >>>>> From: jkrell at elego.de > > >>>>> Subject: [M3commit] CVS Update: cm3 > > >>>>> > > >>>>> CVSROOT: /usr/cvs > > >>>>> Changes by: jkrell at birch. 11/01/06 01:26:15 > > >>>>> > > >>>>> Modified files: > > >>>>> cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > > >>>>> > > >>>>> Log message: > > >>>>> slightly simpler, same error > > >>>>> > > >>> > > >> > > > > > > From jay.krell at cornell.edu Tue Jan 11 09:06:58 2011 From: jay.krell at cornell.edu (Jay K) Date: Tue, 11 Jan 2011 08:06:58 +0000 Subject: [M3devel] debugability of AtForkPrepare? Message-ID: ? This makes AtForkPrepare more debuggable, by sometimes indicating mutexes by index instead of pointer. It doesn't otherwise change it. Good/bad? Index: ThreadPThread.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3,v retrieving revision 1.252 diff -u -w -r1.252 ThreadPThread.m3 --- ThreadPThread.m3??? 11 Jan 2011 05:13:59 -0000??? 1.252 +++ ThreadPThread.m3??? 11 Jan 2011 08:03:22 -0000 @@ -1250,23 +1250,26 @@ ?VAR locks := ARRAY [0..4] OF pthread_mutex_t ?? { initMu, heapMu, activeMu, slotsMu, perfMu }; ? -PROCEDURE PThreadLockMutex(mutex: pthread_mutex_t; line: INTEGER) = +PROCEDURE PThreadLockMutex(mutex: pthread_mutex_t; +?????????????????????????? line: INTEGER; +?????????????????????????? index: INTEGER := -1) = ?? BEGIN -??? IF mutex # NIL THEN +??? IF index >= 0 THEN <*ASSERT mutex = NIL*> mutex := locks[index]; END; +??? IF mutex = NIL THEN RETURN; END; ?????? WITH r = pthread_mutex_lock(mutex) DO ???????? IF r # 0 THEN DieI(line, r) END; ?????? END; -??? END; ?? END PThreadLockMutex; ? ?PROCEDURE PThreadUnlockMutex(mutex: pthread_mutex_t; -???????????????????????????? line: INTEGER) = +???????????????????????????? line: INTEGER; +???????????????????????????? index: INTEGER := -1) = ?? BEGIN -??? IF mutex # NIL THEN +??? IF index >= 0 THEN <*ASSERT mutex = NIL*> mutex := locks[index]; END; +??? IF mutex = NIL THEN RETURN; END; ?????? WITH r = pthread_mutex_unlock(mutex) DO ???????? IF r # 0 THEN DieI(line, r) END; ?????? END; -??? END; ?? END PThreadUnlockMutex; ? ?PROCEDURE AtForkPrepare() = @@ -1276,7 +1279,7 @@ ?? BEGIN ???? Acquire(joinMu); ???? FOR i := FIRST(locks) TO LAST(locks) DO -????? PThreadLockMutex(locks[i], ThisLine()); +????? PThreadLockMutex(NIL, ThisLine(), i); ???? END; ???? (* Walk activations and lock all threads, conditions. ????? * NOTE: We have initMu, activeMu, so slots @@ -1308,7 +1311,7 @@ ?????? act := act.next; ???? UNTIL act = me; ???? FOR i := LAST(locks) TO FIRST(locks) BY -1 DO -????? PThreadUnlockMutex(locks[i], ThisLine()); +????? PThreadUnlockMutex(NIL, ThisLine(), i); ???? END; ???? Release(joinMu); ?? END AtForkParent; From mika at async.caltech.edu Tue Jan 11 11:29:23 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Tue, 11 Jan 2011 02:29:23 -0800 Subject: [M3devel] Thread testing program Message-ID: <20110111102923.AF8001A205B@async.async.caltech.edu> Hello everyone, After studying failure modes and implementation of the current threading implementation in CM3, I've developed a little stress-testing program, attached. Currently it crashes in various ways. It takes one command-line argument, the approximate number of threads to create (e.g., 100). It creates threads of three types: reader (reads a file), forker (forks a process), allocator (allocates memory that constantly goes out of scope). Files attached below. Happy 1/11/11. Mika My m3makefile: import ("libm3") implementation ("Main") program ("threadtest") My m3overrides (optional): if defined("CM3_VERSION") /* Critical Mass Modula-3 */ % see http://www.elegosoft.com/cm3/doc/help/cm3/cm3.html % not sure about this: build_standalone() m3_optimize("") end My Main.m3: (* $Id: Main.m3,v 1.1 2011/01/11 10:06:21 mika Exp $ *) MODULE Main; (* threading stress-test *) IMPORT Params, Scan, Thread, Rd, FileRd, Wr, FileWr, Process; VAR n := Scan.Int(Params.Get(1)); PROCEDURE MakeReaderThread() = BEGIN EVAL Thread.Fork(NEW(Thread.Closure, apply := RApply)) END MakeReaderThread; PROCEDURE MakeForkerThread() = BEGIN EVAL Thread.Fork(NEW(Thread.Closure, apply := FApply)) END MakeForkerThread; PROCEDURE MakeAllocatorThread() = BEGIN EVAL Thread.Fork(NEW(Thread.Closure, apply := AApply)) END MakeAllocatorThread; (**********************************************************************) PROCEDURE RApply(cl : Thread.Closure) : REFANY = BEGIN LOOP WITH rd = FileRd.Open(Filename) DO TRY LOOP VAR c := Rd.GetChar(rd); BEGIN END END EXCEPT Rd.EndOfFile => Rd.Close(rd) END END END END RApply; PROCEDURE FApply(cl : Thread.Closure) : REFANY = BEGIN LOOP WITH proc = Process.Create("sleep", ARRAY OF TEXT { "1" }) DO EVAL Process.Wait(proc) END END END FApply; PROCEDURE AApply(cl : Thread.Closure) : REFANY = BEGIN LOOP VAR arr := NEW(REF ARRAY OF INTEGER, 1025); BEGIN FOR i := FIRST(arr^)+1 TO LAST(arr^) DO arr[i] := arr[i] - arr[i-1] END END END END AApply; CONST Filename = "hohum"; PROCEDURE WriteAFile() = BEGIN WITH wr = FileWr.Open(Filename) DO FOR i := 1 TO 256 DO FOR j := 1 TO i DO Wr.PutChar(wr, VAL(ORD('A') + i MOD 25, CHAR)) END; Wr.PutChar(wr, '\n') END END END WriteAFile; BEGIN WriteAFile(); FOR i := 1 TO n DIV 3 DO MakeReaderThread() END; FOR i := 1 TO n DIV 3 DO MakeForkerThread() END; FOR i := 1 TO n DIV 3 DO MakeAllocatorThread() END; LOOP Thread.Pause(1.0d0) END END Main. From mika at async.caltech.edu Tue Jan 11 11:39:41 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Tue, 11 Jan 2011 02:39:41 -0800 Subject: [M3devel] Thread testing program In-Reply-To: <20110111102923.AF8001A205B@async.async.caltech.edu> References: <20110111102923.AF8001A205B@async.async.caltech.edu> Message-ID: <20110111103941.587FD1A205B@async.async.caltech.edu> Hmm, to make that program really useful it needs two enhancements: 1. check that the threads are indeed created (on AMD64_LINUX, the system deadlocks for me after 50) 2. check that the running threads are, indeed, making some sort of progress... As it is it is useful in a debugger but not for any kind of automated or foolproof testing, yet. Mika Mika Nystrom writes: > >Hello everyone, > >After studying failure modes and implementation of the current >threading implementation in CM3, I've developed a little stress-testing >program, attached. Currently it crashes in various ways. > >It takes one command-line argument, the approximate number of threads >to create (e.g., 100). It creates threads of three types: >reader (reads a file), forker (forks a process), allocator (allocates >memory that constantly goes out of scope). > >Files attached below. Happy 1/11/11. > > Mika > >My m3makefile: > >import ("libm3") > >implementation ("Main") > >program ("threadtest") > >My m3overrides (optional): > > if defined("CM3_VERSION") > /* Critical Mass Modula-3 */ >% see http://www.elegosoft.com/cm3/doc/help/cm3/cm3.html > >% not sure about this: > build_standalone() > > m3_optimize("") >end > >My Main.m3: > > >(* $Id: Main.m3,v 1.1 2011/01/11 10:06:21 mika Exp $ *) > >MODULE Main; > >(* threading stress-test *) > >IMPORT Params, Scan, Thread, Rd, FileRd, Wr, FileWr, Process; > >VAR n := Scan.Int(Params.Get(1)); > >PROCEDURE MakeReaderThread() = > BEGIN > EVAL Thread.Fork(NEW(Thread.Closure, apply := RApply)) > END MakeReaderThread; > >PROCEDURE MakeForkerThread() = > BEGIN > EVAL Thread.Fork(NEW(Thread.Closure, apply := FApply)) > END MakeForkerThread; > >PROCEDURE MakeAllocatorThread() = > BEGIN > EVAL Thread.Fork(NEW(Thread.Closure, apply := AApply)) > END MakeAllocatorThread; > >(**********************************************************************) > >PROCEDURE RApply(cl : Thread.Closure) : REFANY = > BEGIN > LOOP > WITH rd = FileRd.Open(Filename) DO > TRY > LOOP > VAR c := Rd.GetChar(rd); BEGIN END > END > EXCEPT > Rd.EndOfFile => Rd.Close(rd) > END > END > END > END RApply; > >PROCEDURE FApply(cl : Thread.Closure) : REFANY = > BEGIN > LOOP > WITH proc = Process.Create("sleep", > ARRAY OF TEXT { "1" }) DO > EVAL Process.Wait(proc) > END > END > END FApply; > >PROCEDURE AApply(cl : Thread.Closure) : REFANY = > BEGIN > LOOP > VAR > arr := NEW(REF ARRAY OF INTEGER, 1025); > BEGIN > FOR i := FIRST(arr^)+1 TO LAST(arr^) DO > arr[i] := arr[i] - arr[i-1] > END > END > END > END AApply; > > >CONST Filename = "hohum"; > >PROCEDURE WriteAFile() = > BEGIN > WITH wr = FileWr.Open(Filename) DO > FOR i := 1 TO 256 DO > FOR j := 1 TO i DO > Wr.PutChar(wr, VAL(ORD('A') + i MOD 25, CHAR)) > END; > Wr.PutChar(wr, '\n') > END > END > END WriteAFile; > >BEGIN > WriteAFile(); > FOR i := 1 TO n DIV 3 DO > MakeReaderThread() > END; > FOR i := 1 TO n DIV 3 DO > MakeForkerThread() > END; > FOR i := 1 TO n DIV 3 DO > MakeAllocatorThread() > END; > > LOOP > Thread.Pause(1.0d0) > END >END Main. > From mika at async.caltech.edu Tue Jan 11 16:53:34 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Tue, 11 Jan 2011 07:53:34 -0800 Subject: [M3devel] thread testing program in CM3 Message-ID: <20110111155334.498471A205B@async.async.caltech.edu> Hi again, I added the thread "stress tester" to the CM3 repository in the following location: m3-libs/m3core/tests/thread It no longer takes any command-line arguments, and now it prints friendly diagnostics. On FreeBSD4 under PM3, I see the following output: (82)pluto:~/t/threadtest/src>../FreeBSD4/threadtest Writing file...done Creating reader threads...done Creating forker threads...done Creating allocator threads...done running... laziest thread is 1294760062 seconds behind laziest thread is 11 seconds behind laziest thread is 9 seconds behind laziest thread is 9 seconds behind laziest thread is 9 seconds behind laziest thread is 9 seconds behind laziest thread is 8 seconds behind laziest thread is 10 seconds behind laziest thread is 7 seconds behind laziest thread is 8 seconds behind (83)pluto:~/t/threadtest/src>m3build -version m3build: PM3 Version 1.1.15 (Tue Sep 5 17:16:07 EDT 2000) (84)pluto:~/t/threadtest/src>uname -a FreeBSD pluto.gcapltd.com 5.5-RELEASE FreeBSD 5.5-RELEASE #0: Mon Sep 24 13:34:44 CDT 2007 root at pluto.gcapltd.com:/usr/src/sys/i386/compile/PLUTO i386 10 seconds is about right for 100 threads and a 0.1-second time quantum (if memory serves, that's what PM3 user threads use?) Mika From rodney_bates at lcwb.coop Tue Jan 11 18:53:00 2011 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Tue, 11 Jan 2011 11:53:00 -0600 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: References: <20110106002615.77E782474003@birch.elegosoft.com>, , , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu> Message-ID: <4D2C98FC.4030104@lcwb.coop> Tony Hosking wrote: > I know what the problem is. The fix is not particularly pretty, and will entail tracking the stack types for integers (Int32 or Int64) throughout code generation. > > This all leads me to wonder why we don't simply back LONGINT out of the language. > [I had mentioned my increasing unease with LONGINT in a prior e-mail a long time ago.] > > We can replace LONGINT with Longint and Longword: > > Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] Hmm, this is tricky. I think the BITS 64 FOR is not what we would want. First, it has no effect at all except when a Longint.T is a field of a record or object or an element of an array. Second, even in those cases, it would force the compiler _not_ to put any alignment padding ahead of the Longint.T field. The compiler could only choose between letting it be misaligned and generating code that would work on it that way, or, more likely, refusing to compile it. It does not force 64-bit alignment. This is all by existing rules of the language. Another thought would be: ARRAY [0..1] OF BITS 32 FOR [16_00000000..16_FFFFFFFF] This would lead to alignment within the array being as wanted, on both 32- and 64-bit machines. But as for the alignment of the entire array, it would not force anything. The alignment of an array type is naturally the alignment of its element type, but a Modula-3 BITS type has no alignment restriction at all, otherwise it could not be used as intended to allow programmer-controlled memory layout. There is another problem here. It stems from the fact that So-called "little endian" is an inconsistent system. It's only partly little-endian. To be consistently little-endian, it would have to read/write i/o streams into/from decreasing memory addresses and fetch instruction streams from decreasing addresses. It would then naturally result in the successively declared fields of records and elements of arrays (of increasing subscripts) being stored in decreasing addresses. So as it is, for either of these array types, we have: MSB LSB 0 1 2 3 4 5 6 7 <- big endian byte numbers in memory 7 6 5 4 3 2 1 0 <- hypothetical true little-endian 3 2 1 0 7 6 5 4 <- actual "little-endian" Actual little-endian numbers right-to-left only within each 32-bit piece, but left-to-right for the elements of the array. If this were a single scalar, instead of an array, the actual little-endian byte numbering would be the same as the middle line above. This means the array type, on a little-endian machine could not be passed to a normally-represented scalar formal parameter in any language. We could have a convention that the 32-bit words in the array were least significant in element zero, but that would just move the problem over to the big-endian machines. We could just require explicit conversion functions to be coded, but what type would they convert to? Note that we have to keep the semantics of BITS n FOR and [lb .. ub] consistent with the existing language, because these type constructors will be used for other purposes than just constructing Longint.T and Longword.T and surly are in lots of preexisting code. I don't see any way to both preserve language semantics and construct a longer integer type with decent properties using only preexisting types. I think we would have to say something like: "The types Longint.T and Longword.T are _just like_ " (but not equal to , so they could have unique rules). This would parallel the existing definition of CARDINAL as "just like [0 .. LAST(INTEGER)]" (but it's nevertheless a distinct type, so it pickles can do size adjustments on it, they way they do with INTEGER.) But once we resort to that and defining operators on it, I doubt it could be any cleaner or simpler than LONGINT. And I doubt it would simplify the subject compilation problem either. > > and define signed operations in Longint and unsigned operations in Longword. > These can be implemented efficiently as wrappers to appropriate C routines operating on "long long" or inlined if performance is a particular concern. We can provide conversion routines to/from INTEGER as needs. > > Other than handling 64-bit file offsets, etc., does anyone really make use of LONGINT that argues convincingly for it to be retained? > From hosking at cs.purdue.edu Tue Jan 11 20:29:09 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 11 Jan 2011 14:29:09 -0500 Subject: [M3devel] Thread testing program In-Reply-To: <20110111102923.AF8001A205B@async.async.caltech.edu> References: <20110111102923.AF8001A205B@async.async.caltech.edu> Message-ID: Did you stress test any older versions of M3? I believe we have had a number of regressions lately. On Jan 11, 2011, at 5:29 AM, Mika Nystrom wrote: > > Hello everyone, > > After studying failure modes and implementation of the current > threading implementation in CM3, I've developed a little stress-testing > program, attached. Currently it crashes in various ways. > > It takes one command-line argument, the approximate number of threads > to create (e.g., 100). It creates threads of three types: > reader (reads a file), forker (forks a process), allocator (allocates > memory that constantly goes out of scope). > > Files attached below. Happy 1/11/11. > > Mika > > My m3makefile: > > import ("libm3") > > implementation ("Main") > > program ("threadtest") > > My m3overrides (optional): > > if defined("CM3_VERSION") > /* Critical Mass Modula-3 */ > % see http://www.elegosoft.com/cm3/doc/help/cm3/cm3.html > > % not sure about this: > build_standalone() > > m3_optimize("") > end > > My Main.m3: > > > (* $Id: Main.m3,v 1.1 2011/01/11 10:06:21 mika Exp $ *) > > MODULE Main; > > (* threading stress-test *) > > IMPORT Params, Scan, Thread, Rd, FileRd, Wr, FileWr, Process; > > VAR n := Scan.Int(Params.Get(1)); > > PROCEDURE MakeReaderThread() = > BEGIN > EVAL Thread.Fork(NEW(Thread.Closure, apply := RApply)) > END MakeReaderThread; > > PROCEDURE MakeForkerThread() = > BEGIN > EVAL Thread.Fork(NEW(Thread.Closure, apply := FApply)) > END MakeForkerThread; > > PROCEDURE MakeAllocatorThread() = > BEGIN > EVAL Thread.Fork(NEW(Thread.Closure, apply := AApply)) > END MakeAllocatorThread; > > (**********************************************************************) > > PROCEDURE RApply(cl : Thread.Closure) : REFANY = > BEGIN > LOOP > WITH rd = FileRd.Open(Filename) DO > TRY > LOOP > VAR c := Rd.GetChar(rd); BEGIN END > END > EXCEPT > Rd.EndOfFile => Rd.Close(rd) > END > END > END > END RApply; > > PROCEDURE FApply(cl : Thread.Closure) : REFANY = > BEGIN > LOOP > WITH proc = Process.Create("sleep", > ARRAY OF TEXT { "1" }) DO > EVAL Process.Wait(proc) > END > END > END FApply; > > PROCEDURE AApply(cl : Thread.Closure) : REFANY = > BEGIN > LOOP > VAR > arr := NEW(REF ARRAY OF INTEGER, 1025); > BEGIN > FOR i := FIRST(arr^)+1 TO LAST(arr^) DO > arr[i] := arr[i] - arr[i-1] > END > END > END > END AApply; > > > CONST Filename = "hohum"; > > PROCEDURE WriteAFile() = > BEGIN > WITH wr = FileWr.Open(Filename) DO > FOR i := 1 TO 256 DO > FOR j := 1 TO i DO > Wr.PutChar(wr, VAL(ORD('A') + i MOD 25, CHAR)) > END; > Wr.PutChar(wr, '\n') > END > END > END WriteAFile; > > BEGIN > WriteAFile(); > FOR i := 1 TO n DIV 3 DO > MakeReaderThread() > END; > FOR i := 1 TO n DIV 3 DO > MakeForkerThread() > END; > FOR i := 1 TO n DIV 3 DO > MakeAllocatorThread() > END; > > LOOP > Thread.Pause(1.0d0) > END > END Main. > From rcolebur at SCIRES.COM Tue Jan 11 20:39:28 2011 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Tue, 11 Jan 2011 14:39:28 -0500 Subject: [M3devel] thread testing program in CM3 In-Reply-To: <20110111155334.498471A205B@async.async.caltech.edu> References: <20110111155334.498471A205B@async.async.caltech.edu> Message-ID: Thought I would give Mika's test program a try on Windows7, but ran into a glitch. I first tried updating everything from HEAD and rebuilding. During 2nd stage of rebuild, I get a failure on creating the DLL for m3core. See below. Jay, any ideas on what is wrong? --Randy Microsoft (R) Incremental Linker Version 10.00.30319.01 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 RealFloat.io LongFloat.io ExtendedFloat.io IEEESpecial.io IEEESpecial.mo Real.mo LongReal.mo Extended.mo DragonInt.io DragonInt.mo DragonT.io DragonT.mo Real.io LongReal.io Extended.io RealFloat.mo LongFloat.mo ExtendedFloat.mo RealRep.io LongRealRep.io FPU.io FPU.mo FloatMode.io FloatMode.mo 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 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 Creating library m3core.lib and object m3core.exp LINK : warning LNK4199: /DELAYLOAD:advapi32.dll ignored; no imports found from advapi32.dll LINK : warning LNK4199: /DELAYLOAD:netapi32.dll ignored; no imports found from netapi32.dll LINK : warning LNK4199: /DELAYLOAD:rpcrt4.dll ignored; no imports found from rpcrt4.dll LINK : warning LNK4199: /DELAYLOAD:iphlpapid.dll ignored; no imports found from iphlpapid.dll RuntimeError.mo : error LNK2001: unresolved external symbol __alloca m3core.dll : fatal error LNK1120: 1 unresolved externals -----Original Message----- From: Mika Nystrom [mailto:mika at async.caltech.edu] Sent: Tuesday, January 11, 2011 10:54 AM To: m3devel at elegosoft.com Cc: jkrell at elego.de Subject: [M3devel] thread testing program in CM3 Hi again, I added the thread "stress tester" to the CM3 repository in the following location: m3-libs/m3core/tests/thread It no longer takes any command-line arguments, and now it prints friendly diagnostics. On FreeBSD4 under PM3, I see the following output: (82)pluto:~/t/threadtest/src>../FreeBSD4/threadtest Writing file...done Creating reader threads...done Creating forker threads...done Creating allocator threads...done running... laziest thread is 1294760062 seconds behind laziest thread is 11 seconds behind laziest thread is 9 seconds behind laziest thread is 9 seconds behind laziest thread is 9 seconds behind laziest thread is 9 seconds behind laziest thread is 8 seconds behind laziest thread is 10 seconds behind laziest thread is 7 seconds behind laziest thread is 8 seconds behind (83)pluto:~/t/threadtest/src>m3build -version m3build: PM3 Version 1.1.15 (Tue Sep 5 17:16:07 EDT 2000) (84)pluto:~/t/threadtest/src>uname -a FreeBSD pluto.gcapltd.com 5.5-RELEASE FreeBSD 5.5-RELEASE #0: Mon Sep 24 13:34:44 CDT 2007 root at pluto.gcapltd.com:/usr/src/sys/i386/compile/PLUTO i386 10 seconds is about right for 100 threads and a 0.1-second time quantum (if memory serves, that's what PM3 user threads use?) Mika From hosking at cs.purdue.edu Tue Jan 11 21:19:32 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 11 Jan 2011 15:19:32 -0500 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: References: <20110106002615.77E782474003@birch.elegosoft.com>, , , , , , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu>, , Message-ID: <0446FCD5-D75A-4D43-89E4-D69BE6208362@cs.purdue.edu> The point is that we want to have an opaque type. One that can only meaningfully be manipulated by predefined library routines. What the bits look like would be immaterial. On Jan 11, 2011, at 2:33 AM, Jay K wrote: > > Quibbling with the details: > > Is this legal, on a 32bit system? > > Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] > > And even if it is legal, it is of dubious correctness, eh? > For implementation of this in Modula-3, you want the low word to be unsigned and the high word to be signed. > Granted, you want full range unsigned, so, like, Word.T, but you want 32 bits. > > There should therefore be, like, interfaces Word32 and Word64 (ok, you already have Long). > > As well, the implementation on 64bit targets will perhaps suffer. > > As well, does it work for 64bit targets? Isn't [00000...FFFFFFFF] 64 bits? > Maybe you'd say: > Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF BITS 32 FOR [16_00000000..16_FFFFFFFF] > > > And then, *really*, you want the order/significance of the words to be endian-specific. > > So, you'd want perhaps 3 implementations: > > 64bit: Longint.T = INTEGER > 32bit big endian: Longint.T = RECORD high: INTEGER; low: Word.T; END; > 32bit little endian: Longint.T = RECORD low: Word.T; high: INTEGER; END; > > > > or maybe just two: > > big endian: Longint.T = RECORD high: some-32bit-signed-type; low: some-32bit-psuedo-unsigned-type; END; > little endian: Longint.T = RECORD low some-32bit-psuedo-unsigned-type; low: some-32bit-signed-type; END; > > > > Ultimately, the very very very general true point is: > extension via library is probably generally easier > BUT only makes for good results in an adequate language, e.g. one with operator overloading! > > > Surely surely the compiler isn't so unmalleable? > ie. we aren't stuck with the language asis because the compiler is too hard to change? > > > I can't argue too strongly in favor of LONGINT. > > > But..definitely there should be some reasonable convenient efficient way for dealing with 64bit integers. > 32bit C implementations have had very good mechanisms for 25+ years. > It does seem a shame we seemingly can't/won't compete. > > > And still. interface Rd/Wr I believe still need work.. > Probably to add a parallel set of functions ending in "L". > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Tue, 11 Jan 2011 00:58:35 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] codegen error (from Mika, new test p250) >> >> I know what the problem is. The fix is not particularly pretty, and will entail tracking the stack types for integers (Int32 or Int64) throughout code generation. >> >> This all leads me to wonder why we don't simply back LONGINT out of the language. >> [I had mentioned my increasing unease with LONGINT in a prior e-mail a long time ago.] >> >> We can replace LONGINT with Longint and Longword: >> >> Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] >> >> and define signed operations in Longint and unsigned operations in Longword. >> These can be implemented efficiently as wrappers to appropriate C routines operating on "long long" or inlined if performance is a particular concern. We can provide conversion routines to/from INTEGER as needs. >> >> Other than handling 64-bit file offsets, etc., does anyone really make use of LONGINT that argues convincingly for it to be retained? >> >> On Jan 8, 2011, at 6:55 PM, Jay K wrote: >> >>> >>> Thank you much. Please notice there are 2 or 3 similar problems. This shows only 1. >>> See test p250. >>> >>> >>> MODULE Main; >>> >>> PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; >>> >>> PROCEDURE F2() = >>> <*UNUSED*>VAR x: [0L..0L]; >>> BEGIN >>> END F2; >>> >>> PROCEDURE F3() = >>> VAR x: [0L..0L]; >>> BEGIN >>> F1(x); >>> END F3; >>> >>> BEGIN >>> F1(0L); >>> F2(); >>> F3(); >>> END Main. >>> >>> i.e. initializing local 0L..0L. >>> Passing 0L..0L parameter. >>> >>> - Jay >>> >>> >>> ---------------------------------------- >>>> From: hosking at cs.purdue.edu >>>> Date: Sat, 8 Jan 2011 16:59:33 -0500 >>>> To: jay.krell at cornell.edu >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] codegen error (from Mika, new test p250) >>>> >>>> I'll look into this one. >>>> >>>> Antony Hosking | Associate Professor | Computer Science | Purdue University >>>> 305 N. University Street | West Lafayette | IN 47907 | USA >>>> Office +1 765 494 6001 | Mobile +1 765 427 5484 >>>> >>>> >>>> >>>> >>>> On Jan 8, 2011, at 12:17 AM, Jay K wrote: >>>> >>>>> >>>>> fyi, small repro: >>>>> >>>>> >>>>> MODULE Main; >>>>> >>>>> VAR x: [0L..0L]; >>>>> >>>>> PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; >>>>> >>>>> BEGIN >>>>> F2(x); >>>>> END Main. >>>>> >>>>> (32) start_call_direct procedure:0x4 level:0 >>>>> (33) load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 >>>>> (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] >>>>> (35) pop_param type:int_64 >>>>> >>>>> >>>>> - Jay >>>>> >>>>> >>>>> ________________________________ >>>>>> From: jay.krell at cornell.edu >>>>>> To: m3devel at elegosoft.com; mika at async.caltech.edu >>>>>> Subject: RE: codegen error (from Mika, new test p250) >>>>>> Date: Thu, 6 Jan 2011 01:21:00 +0000 >>>>>> >>>>>> fyi: >>>>>> >>>>>> jbook2:p250 jay$ rm -rf I386_DARWIN/ >>>>>> jbook2:p250 jay$ cm3 -keep >>>>>> --- building in I386_DARWIN --- >>>>>> >>>>>> new source -> compiling Main.m3 >>>>>> "../Main.m3", line 1: 1 code generation error >>>>>> 1 error encountered >>>>>> compilation failed => not building program "pgm" >>>>>> Fatal Error: package build failed >>>>>> jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment >>>>>> (4) comment comment:module global constants >>>>>> (6) comment comment:module global data >>>>>> (27) comment comment:F1 >>>>>> (34) comment comment:********* M3CG_Check ERROR >>>>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] >>>>>> (43) comment comment:F2 >>>>>> (73) comment comment:Main_M3 >>>>>> (74) comment comment:module main body Main_M3 >>>>>> (83) comment comment:global constant type descriptor >>>>>> (85) comment comment:global data type descriptor >>>>>> (87) comment comment:module global constants >>>>>> (90) comment comment:procedure names >>>>>> (94) comment comment:procedure table >>>>>> (101) comment comment:file name >>>>>> (103) comment comment:type map for _t0174bdf4 >>>>>> (106) comment comment:type description for _t0174bdf4 >>>>>> (110) comment comment:module global data >>>>>> (120) comment comment:typecell for _t0174bdf4 >>>>>> (141) comment comment:load map >>>>>> (4) comment comment:module global constants >>>>>> (6) comment comment:module global data >>>>>> (27) comment comment:F1 >>>>>> (34) comment comment:********* M3CG_Check ERROR >>>>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] >>>>>> (43) comment comment:F2 >>>>>> (73) comment comment:Main_M3 >>>>>> (74) comment comment:module main body Main_M3 >>>>>> (83) comment comment:global constant type descriptor >>>>>> (85) comment comment:global data type descriptor >>>>>> (87) comment comment:module global constants >>>>>> (90) comment comment:procedure names >>>>>> (94) comment comment:procedure table >>>>>> (101) comment comment:file name >>>>>> (103) comment comment:type map for _t0174bdf4 >>>>>> (106) comment comment:type description for _t0174bdf4 >>>>>> (110) comment comment:module global data >>>>>> (120) comment comment:typecell for _t0174bdf4 >>>>>> (141) comment comment:load map >>>>>> >>>>>> >>>>>> - Jay >>>>>> >>>>>> >>>>>>> Date: Thu, 6 Jan 2011 01:26:15 +0000 >>>>>>> To: m3commit at elegosoft.com >>>>>>> From: jkrell at elego.de >>>>>>> Subject: [M3commit] CVS Update: cm3 >>>>>>> >>>>>>> CVSROOT: /usr/cvs >>>>>>> Changes by: jkrell at birch. 11/01/06 01:26:15 >>>>>>> >>>>>>> Modified files: >>>>>>> cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 >>>>>>> >>>>>>> Log message: >>>>>>> slightly simpler, same error >>>>>>> >>>>> >>>> >>> >> > From hosking at cs.purdue.edu Tue Jan 11 21:21:23 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 11 Jan 2011 15:21:23 -0500 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: <4D2C98FC.4030104@lcwb.coop> References: <20110106002615.77E782474003@birch.elegosoft.com>, , , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu> <4D2C98FC.4030104@lcwb.coop> Message-ID: <90FDA6E2-5ACF-429E-B870-CF9941545028@cs.purdue.edu> Sigh. OK, for now I will fix the compiler to track the widths of values on the stack. On Jan 11, 2011, at 12:53 PM, Rodney M. Bates wrote: > > > Tony Hosking wrote: >> I know what the problem is. The fix is not particularly pretty, and will entail tracking the stack types for integers (Int32 or Int64) throughout code generation. >> This all leads me to wonder why we don't simply back LONGINT out of the language. >> [I had mentioned my increasing unease with LONGINT in a prior e-mail a long time ago.] >> We can replace LONGINT with Longint and Longword: >> Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] > > Hmm, this is tricky. I think the BITS 64 FOR is not what we would want. First, it has > no effect at all except when a Longint.T is a field of a record or object or an element > of an array. Second, even in those cases, it would force the compiler _not_ to put any > alignment padding ahead of the Longint.T field. The compiler could only choose between > letting it be misaligned and generating code that would work on it that way, or, more > likely, refusing to compile it. It does not force 64-bit alignment. This is all by > existing rules of the language. > > Another thought would be: > > ARRAY [0..1] OF BITS 32 FOR [16_00000000..16_FFFFFFFF] > > This would lead to alignment within the array being as wanted, on both 32- and 64-bit > machines. But as for the alignment of the entire array, it would not force anything. > The alignment of an array type is naturally the alignment of its element type, but a > Modula-3 BITS type has no alignment restriction at all, otherwise it could not be used > as intended to allow programmer-controlled memory layout. > > There is another problem here. It stems from the fact that > > > So-called "little endian" is an inconsistent system. It's only partly little-endian. > To be consistently little-endian, it would have to read/write i/o streams into/from > decreasing memory addresses and fetch instruction streams from decreasing addresses. > It would then naturally result in the successively declared fields of records and > elements of arrays (of increasing subscripts) being stored in decreasing addresses. > > > So as it is, for either of these array types, we have: > > MSB LSB > 0 1 2 3 4 5 6 7 <- big endian byte numbers in memory > 7 6 5 4 3 2 1 0 <- hypothetical true little-endian > 3 2 1 0 7 6 5 4 <- actual "little-endian" > > Actual little-endian numbers right-to-left only within each 32-bit piece, but > left-to-right for the elements of the array. If this were a single scalar, > instead of an array, the actual little-endian byte numbering would be the > same as the middle line above. > > This means the array type, on a little-endian machine could not be passed to a > normally-represented scalar formal parameter in any language. We could have a > convention that the 32-bit words in the array were least significant in element > zero, but that would just move the problem over to the big-endian machines. > We could just require explicit conversion functions to be coded, but what > type would they convert to? > > Note that we have to keep the semantics of BITS n FOR and [lb .. ub] consistent > with the existing language, because these type constructors will be used for other > purposes than just constructing Longint.T and Longword.T and surly are in lots of > preexisting code. > > I don't see any way to both preserve language semantics and construct a longer > integer type with decent properties using only preexisting types. I think we > would have to say something like: > > "The types Longint.T and Longword.T are _just like_ " > (but not equal to , so they could have unique rules). > > This would parallel the existing definition of CARDINAL as > > "just like [0 .. LAST(INTEGER)]" > (but it's nevertheless a distinct type, so it pickles can do size adjustments > on it, they way they do with INTEGER.) > > But once we resort to that and defining operators on it, I doubt it could be > any cleaner or simpler than LONGINT. And I doubt it would simplify the subject > compilation problem either. > > >> and define signed operations in Longint and unsigned operations in Longword. >> These can be implemented efficiently as wrappers to appropriate C routines operating on "long long" or inlined if performance is a particular concern. We can provide conversion routines to/from INTEGER as needs. >> Other than handling 64-bit file offsets, etc., does anyone really make use of LONGINT that argues convincingly for it to be retained? From hosking at cs.purdue.edu Tue Jan 11 21:18:09 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 11 Jan 2011 15:18:09 -0500 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: References: <20110106002615.77E782474003@birch.elegosoft.com>, , , , , , , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu>, , , Message-ID: <535DF907-85F2-469C-8447-9D7A70B5EF0D@cs.purdue.edu> No, that would be too late. I certainly don't want automatic loopholing in the code generator. I want explicit, checked types, as we currently have, to avoid the sorts of errors it has now thrown up. I do know what the problem is. On Jan 11, 2011, at 2:36 AM, Jay K wrote: > > ps: can M3CG_Check be pushed into service to do the work? > You know, it is already tracking everything and where the detection/error is currently. > Can we make it, like, required, and have it cast/loophole as needed? > Or is this too late and it might miss problems, such as incorrect/unchecked narrowing? > > > - Jay > > > ---------------------------------------- >> From: jay.krell at cornell.edu >> To: hosking at cs.purdue.edu >> CC: m3devel at elegosoft.com >> Subject: RE: [M3devel] codegen error (from Mika, new test p250) >> Date: Tue, 11 Jan 2011 07:33:57 +0000 >> >> >> Quibbling with the details: >> >> Is this legal, on a 32bit system? >> >> Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] >> >> And even if it is legal, it is of dubious correctness, eh? >> For implementation of this in Modula-3, you want the low word to be unsigned and the high word to be signed. >> Granted, you want full range unsigned, so, like, Word.T, but you want 32 bits. >> >> There should therefore be, like, interfaces Word32 and Word64 (ok, you already have Long). >> >> As well, the implementation on 64bit targets will perhaps suffer. >> >> As well, does it work for 64bit targets? Isn't [00000...FFFFFFFF] 64 bits? >> Maybe you'd say: >> Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF BITS 32 FOR [16_00000000..16_FFFFFFFF] >> >> >> And then, *really*, you want the order/significance of the words to be endian-specific. >> >> So, you'd want perhaps 3 implementations: >> >> 64bit: Longint.T = INTEGER >> 32bit big endian: Longint.T = RECORD high: INTEGER; low: Word.T; END; >> 32bit little endian: Longint.T = RECORD low: Word.T; high: INTEGER; END; >> >> >> >> or maybe just two: >> >> big endian: Longint.T = RECORD high: some-32bit-signed-type; low: some-32bit-psuedo-unsigned-type; END; >> little endian: Longint.T = RECORD low some-32bit-psuedo-unsigned-type; low: some-32bit-signed-type; END; >> >> >> >> Ultimately, the very very very general true point is: >> extension via library is probably generally easier >> BUT only makes for good results in an adequate language, e.g. one with operator overloading! >> >> >> Surely surely the compiler isn't so unmalleable? >> ie. we aren't stuck with the language asis because the compiler is too hard to change? >> >> >> I can't argue too strongly in favor of LONGINT. >> >> >> But..definitely there should be some reasonable convenient efficient way for dealing with 64bit integers. >> 32bit C implementations have had very good mechanisms for 25+ years. >> It does seem a shame we seemingly can't/won't compete. >> >> >> And still. interface Rd/Wr I believe still need work.. >> Probably to add a parallel set of functions ending in "L". >> >> - Jay >> >> >> ---------------------------------------- >>> From: hosking at cs.purdue.edu >>> Date: Tue, 11 Jan 2011 00:58:35 -0500 >>> To: jay.krell at cornell.edu >>> CC: m3devel at elegosoft.com >>> Subject: Re: [M3devel] codegen error (from Mika, new test p250) >>> >>> I know what the problem is. The fix is not particularly pretty, and will entail tracking the stack types for integers (Int32 or Int64) throughout code generation. >>> >>> This all leads me to wonder why we don't simply back LONGINT out of the language. >>> [I had mentioned my increasing unease with LONGINT in a prior e-mail a long time ago.] >>> >>> We can replace LONGINT with Longint and Longword: >>> >>> Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] >>> >>> and define signed operations in Longint and unsigned operations in Longword. >>> These can be implemented efficiently as wrappers to appropriate C routines operating on "long long" or inlined if performance is a particular concern. We can provide conversion routines to/from INTEGER as needs. >>> >>> Other than handling 64-bit file offsets, etc., does anyone really make use of LONGINT that argues convincingly for it to be retained? >>> >>> On Jan 8, 2011, at 6:55 PM, Jay K wrote: >>> >>>> >>>> Thank you much. Please notice there are 2 or 3 similar problems. This shows only 1. >>>> See test p250. >>>> >>>> >>>> MODULE Main; >>>> >>>> PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; >>>> >>>> PROCEDURE F2() = >>>> <*UNUSED*>VAR x: [0L..0L]; >>>> BEGIN >>>> END F2; >>>> >>>> PROCEDURE F3() = >>>> VAR x: [0L..0L]; >>>> BEGIN >>>> F1(x); >>>> END F3; >>>> >>>> BEGIN >>>> F1(0L); >>>> F2(); >>>> F3(); >>>> END Main. >>>> >>>> i.e. initializing local 0L..0L. >>>> Passing 0L..0L parameter. >>>> >>>> - Jay >>>> >>>> >>>> ---------------------------------------- >>>>> From: hosking at cs.purdue.edu >>>>> Date: Sat, 8 Jan 2011 16:59:33 -0500 >>>>> To: jay.krell at cornell.edu >>>>> CC: m3devel at elegosoft.com >>>>> Subject: Re: [M3devel] codegen error (from Mika, new test p250) >>>>> >>>>> I'll look into this one. >>>>> >>>>> Antony Hosking | Associate Professor | Computer Science | Purdue University >>>>> 305 N. University Street | West Lafayette | IN 47907 | USA >>>>> Office +1 765 494 6001 | Mobile +1 765 427 5484 >>>>> >>>>> >>>>> >>>>> >>>>> On Jan 8, 2011, at 12:17 AM, Jay K wrote: >>>>> >>>>>> >>>>>> fyi, small repro: >>>>>> >>>>>> >>>>>> MODULE Main; >>>>>> >>>>>> VAR x: [0L..0L]; >>>>>> >>>>>> PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; >>>>>> >>>>>> BEGIN >>>>>> F2(x); >>>>>> END Main. >>>>>> >>>>>> (32) start_call_direct procedure:0x4 level:0 >>>>>> (33) load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 >>>>>> (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] >>>>>> (35) pop_param type:int_64 >>>>>> >>>>>> >>>>>> - Jay >>>>>> >>>>>> >>>>>> ________________________________ >>>>>>> From: jay.krell at cornell.edu >>>>>>> To: m3devel at elegosoft.com; mika at async.caltech.edu >>>>>>> Subject: RE: codegen error (from Mika, new test p250) >>>>>>> Date: Thu, 6 Jan 2011 01:21:00 +0000 >>>>>>> >>>>>>> fyi: >>>>>>> >>>>>>> jbook2:p250 jay$ rm -rf I386_DARWIN/ >>>>>>> jbook2:p250 jay$ cm3 -keep >>>>>>> --- building in I386_DARWIN --- >>>>>>> >>>>>>> new source -> compiling Main.m3 >>>>>>> "../Main.m3", line 1: 1 code generation error >>>>>>> 1 error encountered >>>>>>> compilation failed => not building program "pgm" >>>>>>> Fatal Error: package build failed >>>>>>> jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment >>>>>>> (4) comment comment:module global constants >>>>>>> (6) comment comment:module global data >>>>>>> (27) comment comment:F1 >>>>>>> (34) comment comment:********* M3CG_Check ERROR >>>>>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] >>>>>>> (43) comment comment:F2 >>>>>>> (73) comment comment:Main_M3 >>>>>>> (74) comment comment:module main body Main_M3 >>>>>>> (83) comment comment:global constant type descriptor >>>>>>> (85) comment comment:global data type descriptor >>>>>>> (87) comment comment:module global constants >>>>>>> (90) comment comment:procedure names >>>>>>> (94) comment comment:procedure table >>>>>>> (101) comment comment:file name >>>>>>> (103) comment comment:type map for _t0174bdf4 >>>>>>> (106) comment comment:type description for _t0174bdf4 >>>>>>> (110) comment comment:module global data >>>>>>> (120) comment comment:typecell for _t0174bdf4 >>>>>>> (141) comment comment:load map >>>>>>> (4) comment comment:module global constants >>>>>>> (6) comment comment:module global data >>>>>>> (27) comment comment:F1 >>>>>>> (34) comment comment:********* M3CG_Check ERROR >>>>>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] >>>>>>> (43) comment comment:F2 >>>>>>> (73) comment comment:Main_M3 >>>>>>> (74) comment comment:module main body Main_M3 >>>>>>> (83) comment comment:global constant type descriptor >>>>>>> (85) comment comment:global data type descriptor >>>>>>> (87) comment comment:module global constants >>>>>>> (90) comment comment:procedure names >>>>>>> (94) comment comment:procedure table >>>>>>> (101) comment comment:file name >>>>>>> (103) comment comment:type map for _t0174bdf4 >>>>>>> (106) comment comment:type description for _t0174bdf4 >>>>>>> (110) comment comment:module global data >>>>>>> (120) comment comment:typecell for _t0174bdf4 >>>>>>> (141) comment comment:load map >>>>>>> >>>>>>> >>>>>>> - Jay >>>>>>> >>>>>>> >>>>>>>> Date: Thu, 6 Jan 2011 01:26:15 +0000 >>>>>>>> To: m3commit at elegosoft.com >>>>>>>> From: jkrell at elego.de >>>>>>>> Subject: [M3commit] CVS Update: cm3 >>>>>>>> >>>>>>>> CVSROOT: /usr/cvs >>>>>>>> Changes by: jkrell at birch. 11/01/06 01:26:15 >>>>>>>> >>>>>>>> Modified files: >>>>>>>> cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 >>>>>>>> >>>>>>>> Log message: >>>>>>>> slightly simpler, same error >>>>>>>> >>>>>> >>>>> >>>> >>> >> > From jay.krell at cornell.edu Tue Jan 11 21:48:31 2011 From: jay.krell at cornell.edu (Jay K) Date: Tue, 11 Jan 2011 20:48:31 +0000 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: <535DF907-85F2-469C-8447-9D7A70B5EF0D@cs.purdue.edu> References: <20110106002615.77E782474003@birch.elegosoft.com>, , , ,,, ,,, , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu>, , , , , , , , <535DF907-85F2-469C-8447-9D7A70B5EF0D@cs.purdue.edu> Message-ID: > The point is that we want to have an opaque type I find there is a frequent natural tension between opacity and ease and efficiency of implementation of the functions that do understand and manipulate the type. If the type is heap allocated and only ever passed around by pointer, the tension is fairly cheap to resolve with one pointer-to-pointer cast/loophole. If the type is potentially stack allocated and passed by value, the tension is less cheap to resolve -- the client still needs to know the size. And the code that does know the type inevitably will introduce an indirection in going through the opacity. Fully revealing the type to clients is also not great, as it allows breaking through the abstraction boundary. I can think of a few "good" examples. Word.T for example is easily mis-used. It would be nice if a client could not so easily use operator < on Word.T. However, Word.T's transparency does have some good properties. Another example in C++ is std::vector::iterator. std::vector::iterator is nearly the exact same interface as T*, except that it isn't guaranteed to be assignable/mixable with T*. Some older implementations made it T*, allowing for such accidental mixing. Newer implementations wrap the T* in an arbitrary struct just make it a different type. There is a bit of inconvenience in the implementation therefore, but probably no inefficiency, esp. due to heavy inlinability. This is probably an area that multiple languages could use improvement. Another thing to consider is ABI compatibility with C. Can I pass LONGINT to/from C and map it to "long long" or "__int64"? And alignment as was pointed out -- should alignment be 32 bits or 64 bits on 32bit targets? Generally, 32bit is actually ok. But maybe not for atomic operations. I'd kind of rather the alignment be 64bits, but this is a controversial area, related to how much target-dependent code we have and how we interface with C -- ie: cloning third party headers or cloning our own headers. Can the frontend be better structured to allow for an arbitrary number of integer and floating point types? So that adding "int128" and "float256" won't be difficult? You know -- replace series of ifs or case statements with loops over arrays? - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Tue, 11 Jan 2011 15:18:09 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] codegen error (from Mika, new test p250) > > No, that would be too late. I certainly don't want automatic loopholing in the code generator. I want explicit, checked types, as we currently have, to avoid the sorts of errors it has now thrown up. > > I do know what the problem is. > > On Jan 11, 2011, at 2:36 AM, Jay K wrote: > > > > > ps: can M3CG_Check be pushed into service to do the work? > > You know, it is already tracking everything and where the detection/error is currently. > > Can we make it, like, required, and have it cast/loophole as needed? > > Or is this too late and it might miss problems, such as incorrect/unchecked narrowing? > > > > > > - Jay > > > > > > ---------------------------------------- > >> From: jay.krell at cornell.edu > >> To: hosking at cs.purdue.edu > >> CC: m3devel at elegosoft.com > >> Subject: RE: [M3devel] codegen error (from Mika, new test p250) > >> Date: Tue, 11 Jan 2011 07:33:57 +0000 > >> > >> > >> Quibbling with the details: > >> > >> Is this legal, on a 32bit system? > >> > >> Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] > >> > >> And even if it is legal, it is of dubious correctness, eh? > >> For implementation of this in Modula-3, you want the low word to be unsigned and the high word to be signed. > >> Granted, you want full range unsigned, so, like, Word.T, but you want 32 bits. > >> > >> There should therefore be, like, interfaces Word32 and Word64 (ok, you already have Long). > >> > >> As well, the implementation on 64bit targets will perhaps suffer. > >> > >> As well, does it work for 64bit targets? Isn't [00000...FFFFFFFF] 64 bits? > >> Maybe you'd say: > >> Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF BITS 32 FOR [16_00000000..16_FFFFFFFF] > >> > >> > >> And then, *really*, you want the order/significance of the words to be endian-specific. > >> > >> So, you'd want perhaps 3 implementations: > >> > >> 64bit: Longint.T = INTEGER > >> 32bit big endian: Longint.T = RECORD high: INTEGER; low: Word.T; END; > >> 32bit little endian: Longint.T = RECORD low: Word.T; high: INTEGER; END; > >> > >> > >> > >> or maybe just two: > >> > >> big endian: Longint.T = RECORD high: some-32bit-signed-type; low: some-32bit-psuedo-unsigned-type; END; > >> little endian: Longint.T = RECORD low some-32bit-psuedo-unsigned-type; low: some-32bit-signed-type; END; > >> > >> > >> > >> Ultimately, the very very very general true point is: > >> extension via library is probably generally easier > >> BUT only makes for good results in an adequate language, e.g. one with operator overloading! > >> > >> > >> Surely surely the compiler isn't so unmalleable? > >> ie. we aren't stuck with the language asis because the compiler is too hard to change? > >> > >> > >> I can't argue too strongly in favor of LONGINT. > >> > >> > >> But..definitely there should be some reasonable convenient efficient way for dealing with 64bit integers. > >> 32bit C implementations have had very good mechanisms for 25+ years. > >> It does seem a shame we seemingly can't/won't compete. > >> > >> > >> And still. interface Rd/Wr I believe still need work.. > >> Probably to add a parallel set of functions ending in "L". > >> > >> - Jay > >> > >> > >> ---------------------------------------- > >>> From: hosking at cs.purdue.edu > >>> Date: Tue, 11 Jan 2011 00:58:35 -0500 > >>> To: jay.krell at cornell.edu > >>> CC: m3devel at elegosoft.com > >>> Subject: Re: [M3devel] codegen error (from Mika, new test p250) > >>> > >>> I know what the problem is. The fix is not particularly pretty, and will entail tracking the stack types for integers (Int32 or Int64) throughout code generation. > >>> > >>> This all leads me to wonder why we don't simply back LONGINT out of the language. > >>> [I had mentioned my increasing unease with LONGINT in a prior e-mail a long time ago.] > >>> > >>> We can replace LONGINT with Longint and Longword: > >>> > >>> Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] > >>> > >>> and define signed operations in Longint and unsigned operations in Longword. > >>> These can be implemented efficiently as wrappers to appropriate C routines operating on "long long" or inlined if performance is a particular concern. We can provide conversion routines to/from INTEGER as needs. > >>> > >>> Other than handling 64-bit file offsets, etc., does anyone really make use of LONGINT that argues convincingly for it to be retained? > >>> > >>> On Jan 8, 2011, at 6:55 PM, Jay K wrote: > >>> > >>>> > >>>> Thank you much. Please notice there are 2 or 3 similar problems. This shows only 1. > >>>> See test p250. > >>>> > >>>> > >>>> MODULE Main; > >>>> > >>>> PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; > >>>> > >>>> PROCEDURE F2() = > >>>> <*UNUSED*>VAR x: [0L..0L]; > >>>> BEGIN > >>>> END F2; > >>>> > >>>> PROCEDURE F3() = > >>>> VAR x: [0L..0L]; > >>>> BEGIN > >>>> F1(x); > >>>> END F3; > >>>> > >>>> BEGIN > >>>> F1(0L); > >>>> F2(); > >>>> F3(); > >>>> END Main. > >>>> > >>>> i.e. initializing local 0L..0L. > >>>> Passing 0L..0L parameter. > >>>> > >>>> - Jay > >>>> > >>>> > >>>> ---------------------------------------- > >>>>> From: hosking at cs.purdue.edu > >>>>> Date: Sat, 8 Jan 2011 16:59:33 -0500 > >>>>> To: jay.krell at cornell.edu > >>>>> CC: m3devel at elegosoft.com > >>>>> Subject: Re: [M3devel] codegen error (from Mika, new test p250) > >>>>> > >>>>> I'll look into this one. > >>>>> > >>>>> Antony Hosking | Associate Professor | Computer Science | Purdue University > >>>>> 305 N. University Street | West Lafayette | IN 47907 | USA > >>>>> Office +1 765 494 6001 | Mobile +1 765 427 5484 > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> On Jan 8, 2011, at 12:17 AM, Jay K wrote: > >>>>> > >>>>>> > >>>>>> fyi, small repro: > >>>>>> > >>>>>> > >>>>>> MODULE Main; > >>>>>> > >>>>>> VAR x: [0L..0L]; > >>>>>> > >>>>>> PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; > >>>>>> > >>>>>> BEGIN > >>>>>> F2(x); > >>>>>> END Main. > >>>>>> > >>>>>> (32) start_call_direct procedure:0x4 level:0 > >>>>>> (33) load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 > >>>>>> (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] > >>>>>> (35) pop_param type:int_64 > >>>>>> > >>>>>> > >>>>>> - Jay > >>>>>> > >>>>>> > >>>>>> ________________________________ > >>>>>>> From: jay.krell at cornell.edu > >>>>>>> To: m3devel at elegosoft.com; mika at async.caltech.edu > >>>>>>> Subject: RE: codegen error (from Mika, new test p250) > >>>>>>> Date: Thu, 6 Jan 2011 01:21:00 +0000 > >>>>>>> > >>>>>>> fyi: > >>>>>>> > >>>>>>> jbook2:p250 jay$ rm -rf I386_DARWIN/ > >>>>>>> jbook2:p250 jay$ cm3 -keep > >>>>>>> --- building in I386_DARWIN --- > >>>>>>> > >>>>>>> new source -> compiling Main.m3 > >>>>>>> "../Main.m3", line 1: 1 code generation error > >>>>>>> 1 error encountered > >>>>>>> compilation failed => not building program "pgm" > >>>>>>> Fatal Error: package build failed > >>>>>>> jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment > >>>>>>> (4) comment comment:module global constants > >>>>>>> (6) comment comment:module global data > >>>>>>> (27) comment comment:F1 > >>>>>>> (34) comment comment:********* M3CG_Check ERROR > >>>>>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] > >>>>>>> (43) comment comment:F2 > >>>>>>> (73) comment comment:Main_M3 > >>>>>>> (74) comment comment:module main body Main_M3 > >>>>>>> (83) comment comment:global constant type descriptor > >>>>>>> (85) comment comment:global data type descriptor > >>>>>>> (87) comment comment:module global constants > >>>>>>> (90) comment comment:procedure names > >>>>>>> (94) comment comment:procedure table > >>>>>>> (101) comment comment:file name > >>>>>>> (103) comment comment:type map for _t0174bdf4 > >>>>>>> (106) comment comment:type description for _t0174bdf4 > >>>>>>> (110) comment comment:module global data > >>>>>>> (120) comment comment:typecell for _t0174bdf4 > >>>>>>> (141) comment comment:load map > >>>>>>> (4) comment comment:module global constants > >>>>>>> (6) comment comment:module global data > >>>>>>> (27) comment comment:F1 > >>>>>>> (34) comment comment:********* M3CG_Check ERROR > >>>>>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] > >>>>>>> (43) comment comment:F2 > >>>>>>> (73) comment comment:Main_M3 > >>>>>>> (74) comment comment:module main body Main_M3 > >>>>>>> (83) comment comment:global constant type descriptor > >>>>>>> (85) comment comment:global data type descriptor > >>>>>>> (87) comment comment:module global constants > >>>>>>> (90) comment comment:procedure names > >>>>>>> (94) comment comment:procedure table > >>>>>>> (101) comment comment:file name > >>>>>>> (103) comment comment:type map for _t0174bdf4 > >>>>>>> (106) comment comment:type description for _t0174bdf4 > >>>>>>> (110) comment comment:module global data > >>>>>>> (120) comment comment:typecell for _t0174bdf4 > >>>>>>> (141) comment comment:load map > >>>>>>> > >>>>>>> > >>>>>>> - Jay > >>>>>>> > >>>>>>> > >>>>>>>> Date: Thu, 6 Jan 2011 01:26:15 +0000 > >>>>>>>> To: m3commit at elegosoft.com > >>>>>>>> From: jkrell at elego.de > >>>>>>>> Subject: [M3commit] CVS Update: cm3 > >>>>>>>> > >>>>>>>> CVSROOT: /usr/cvs > >>>>>>>> Changes by: jkrell at birch. 11/01/06 01:26:15 > >>>>>>>> > >>>>>>>> Modified files: > >>>>>>>> cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > >>>>>>>> > >>>>>>>> Log message: > >>>>>>>> slightly simpler, same error > >>>>>>>> > >>>>>> > >>>>> > >>>> > >>> > >> > > > From jay.krell at cornell.edu Tue Jan 11 21:51:15 2011 From: jay.krell at cornell.edu (Jay K) Date: Tue, 11 Jan 2011 20:51:15 +0000 Subject: [M3devel] thread testing program in CM3 In-Reply-To: References: <20110111155334.498471A205B@async.async.caltech.edu>, Message-ID: > RuntimeError.mo : error LNK2001: unresolved external symbol __alloca Understood. Due to last week's significant change to no longer know jmp_buf size in the compiler. Not yet fixed. - Jay ---------------------------------------- > From: rcolebur at SCIRES.COM > To: m3devel at elegosoft.com > Date: Tue, 11 Jan 2011 14:39:28 -0500 > Subject: Re: [M3devel] thread testing program in CM3 > > Thought I would give Mika's test program a try on Windows7, but ran into a glitch. > I first tried updating everything from HEAD and rebuilding. During 2nd stage of rebuild, I get a failure on creating the DLL for m3core. See below. Jay, any ideas on what is wrong? > --Randy > > Microsoft (R) Incremental Linker Version 10.00.30319.01 > 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 > RealFloat.io > LongFloat.io > ExtendedFloat.io > IEEESpecial.io > IEEESpecial.mo > Real.mo > LongReal.mo > Extended.mo > DragonInt.io > DragonInt.mo > DragonT.io > DragonT.mo > Real.io > LongReal.io > Extended.io > RealFloat.mo > LongFloat.mo > ExtendedFloat.mo > RealRep.io > LongRealRep.io > FPU.io > FPU.mo > FloatMode.io > FloatMode.mo > 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 > 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 > Creating library m3core.lib and object m3core.exp > LINK : warning LNK4199: /DELAYLOAD:advapi32.dll ignored; no imports found from advapi32.dll > LINK : warning LNK4199: /DELAYLOAD:netapi32.dll ignored; no imports found from netapi32.dll > LINK : warning LNK4199: /DELAYLOAD:rpcrt4.dll ignored; no imports found from rpcrt4.dll > LINK : warning LNK4199: /DELAYLOAD:iphlpapid.dll ignored; no imports found from iphlpapid.dll > RuntimeError.mo : error LNK2001: unresolved external symbol __alloca > m3core.dll : fatal error LNK1120: 1 unresolved externals > > -----Original Message----- > From: Mika Nystrom [mailto:mika at async.caltech.edu] > Sent: Tuesday, January 11, 2011 10:54 AM > To: m3devel at elegosoft.com > Cc: jkrell at elego.de > Subject: [M3devel] thread testing program in CM3 > > Hi again, > > I added the thread "stress tester" to the CM3 repository in the following > location: > > m3-libs/m3core/tests/thread > > It no longer takes any command-line arguments, and now it prints friendly > diagnostics. > > On FreeBSD4 under PM3, I see the following output: > > (82)pluto:~/t/threadtest/src>../FreeBSD4/threadtest > Writing file...done > Creating reader threads...done > Creating forker threads...done > Creating allocator threads...done > running... > laziest thread is 1294760062 seconds behind > laziest thread is 11 seconds behind > laziest thread is 9 seconds behind > laziest thread is 9 seconds behind > laziest thread is 9 seconds behind > laziest thread is 9 seconds behind > laziest thread is 8 seconds behind > laziest thread is 10 seconds behind > laziest thread is 7 seconds behind > laziest thread is 8 seconds behind > (83)pluto:~/t/threadtest/src>m3build -version > m3build: PM3 Version 1.1.15 (Tue Sep 5 17:16:07 EDT 2000) > (84)pluto:~/t/threadtest/src>uname -a > FreeBSD pluto.gcapltd.com 5.5-RELEASE FreeBSD 5.5-RELEASE #0: Mon Sep 24 13:34:44 CDT 2007 root at pluto.gcapltd.com:/usr/src/sys/i386/compile/PLUTO i386 > > > 10 seconds is about right for 100 threads and a 0.1-second time > quantum (if memory serves, that's what PM3 user threads use?) > > Mika From mika at async.caltech.edu Tue Jan 11 22:09:28 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Tue, 11 Jan 2011 13:09:28 -0800 Subject: [M3devel] Thread testing program In-Reply-To: References: <20110111102923.AF8001A205B@async.async.caltech.edu> Message-ID: <20110111210928.697421A205B@async.async.caltech.edu> AMD64_FREEBSD of some time ago (about a year) also doesn't seem to make any progress. But no, I haven't gone through any old versions systematically. The old PM3 is what I use in "production" systems, and it works... but unfortunately my next "production" system is slated to be a new Debian system. Mika Tony Hosking writes: >Did you stress test any older versions of M3? >I believe we have had a number of regressions lately. > >On Jan 11, 2011, at 5:29 AM, Mika Nystrom wrote: > >> >> Hello everyone, >> >> After studying failure modes and implementation of the current >> threading implementation in CM3, I've developed a little stress-testing >> program, attached. Currently it crashes in various ways. >> >> It takes one command-line argument, the approximate number of threads >> to create (e.g., 100). It creates threads of three types: >> reader (reads a file), forker (forks a process), allocator (allocates >> memory that constantly goes out of scope). >> >> Files attached below. Happy 1/11/11. >> >> Mika >> >> My m3makefile: >> >> import ("libm3") >> >> implementation ("Main") >> >> program ("threadtest") >> >> My m3overrides (optional): >> >> if defined("CM3_VERSION") >> /* Critical Mass Modula-3 */ >> % see http://www.elegosoft.com/cm3/doc/help/cm3/cm3.html >> >> % not sure about this: >> build_standalone() >> >> m3_optimize("") >> end >> >> My Main.m3: >> >> >> (* $Id: Main.m3,v 1.1 2011/01/11 10:06:21 mika Exp $ *) >> >> MODULE Main; >> >> (* threading stress-test *) >> >> IMPORT Params, Scan, Thread, Rd, FileRd, Wr, FileWr, Process; >> >> VAR n := Scan.Int(Params.Get(1)); >> >> PROCEDURE MakeReaderThread() = >> BEGIN >> EVAL Thread.Fork(NEW(Thread.Closure, apply := RApply)) >> END MakeReaderThread; >> >> PROCEDURE MakeForkerThread() = >> BEGIN >> EVAL Thread.Fork(NEW(Thread.Closure, apply := FApply)) >> END MakeForkerThread; >> >> PROCEDURE MakeAllocatorThread() = >> BEGIN >> EVAL Thread.Fork(NEW(Thread.Closure, apply := AApply)) >> END MakeAllocatorThread; >> >> (**********************************************************************) >> >> PROCEDURE RApply(cl : Thread.Closure) : REFANY = >> BEGIN >> LOOP >> WITH rd = FileRd.Open(Filename) DO >> TRY >> LOOP >> VAR c := Rd.GetChar(rd); BEGIN END >> END >> EXCEPT >> Rd.EndOfFile => Rd.Close(rd) >> END >> END >> END >> END RApply; >> >> PROCEDURE FApply(cl : Thread.Closure) : REFANY = >> BEGIN >> LOOP >> WITH proc = Process.Create("sleep", >> ARRAY OF TEXT { "1" }) DO >> EVAL Process.Wait(proc) >> END >> END >> END FApply; >> >> PROCEDURE AApply(cl : Thread.Closure) : REFANY = >> BEGIN > LOOP >> VAR >> arr := NEW(REF ARRAY OF INTEGER, 1025); >> BEGIN >> FOR i := FIRST(arr^)+1 TO LAST(arr^) DO >> arr[i] := arr[i] - arr[i-1] >> END >> END >> END >> END AApply; >> >> >> CONST Filename = "hohum"; >> >> PROCEDURE WriteAFile() = >> BEGIN >> WITH wr = FileWr.Open(Filename) DO >> FOR i := 1 TO 256 DO >> FOR j := 1 TO i DO >> Wr.PutChar(wr, VAL(ORD('A') + i MOD 25, CHAR)) >> END; >> Wr.PutChar(wr, '\n') >> END >> END >> END WriteAFile; >> >> BEGIN >> WriteAFile(); >> FOR i := 1 TO n DIV 3 DO >> MakeReaderThread() >> END; >> FOR i := 1 TO n DIV 3 DO >> MakeForkerThread() >> END; >> FOR i := 1 TO n DIV 3 DO >> MakeAllocatorThread() >> END; >> >> LOOP >> Thread.Pause(1.0d0) >> END >> END Main. >> From jay.krell at cornell.edu Tue Jan 11 22:53:48 2011 From: jay.krell at cornell.edu (Jay K) Date: Tue, 11 Jan 2011 21:53:48 +0000 Subject: [M3devel] Thread testing program In-Reply-To: <20110111210928.697421A205B@async.async.caltech.edu> References: <20110111102923.AF8001A205B@async.async.caltech.edu>, , <20110111210928.697421A205B@async.async.caltech.edu> Message-ID: >Did you stress test any older versions of M3? I recently tried to do anything with some older releases and didn't get far. The "most recent older" releases are somewhat lost (i.e. broken links on elegosoft due to crashed machine/disk; probably people should scrounge around and we might restore some of them, if they work much). Yet older releases largely don't work. Older cminstalls are statically linked (even to libc) and have invalid syscalls in them, and don't get anywhere. Older m3core doesn't build, and if you skip that, well, cm3 output doesn't work. I forget what the symptons were. I'm sure they worked on the OS'es of the day, but they were much to version-unportable imho. Granted, the level of incompatibilities in the newer versions of underlying systems is also quite surprising. Free/Open Unix systems don't seem to take binary compatibility seriously. - Jay ---------------------------------------- > To: hosking at cs.purdue.edu > Date: Tue, 11 Jan 2011 13:09:28 -0800 > From: mika at async.caltech.edu > CC: jkrell at elego.de; m3devel at elegosoft.com > Subject: Re: [M3devel] Thread testing program > > > AMD64_FREEBSD of some time ago (about a year) also doesn't seem to > make any progress. But no, I haven't gone through any old versions > systematically. The old PM3 is what I use in "production" systems, > and it works... but unfortunately my next "production" system is slated > to be a new Debian system. > > Mika > > Tony Hosking writes: > >Did you stress test any older versions of M3? > >I believe we have had a number of regressions lately. > > > >On Jan 11, 2011, at 5:29 AM, Mika Nystrom wrote: > > > >> > >> Hello everyone, > >> > >> After studying failure modes and implementation of the current > >> threading implementation in CM3, I've developed a little stress-testing > >> program, attached. Currently it crashes in various ways. > >> > >> It takes one command-line argument, the approximate number of threads > >> to create (e.g., 100). It creates threads of three types: > >> reader (reads a file), forker (forks a process), allocator (allocates > >> memory that constantly goes out of scope). > >> > >> Files attached below. Happy 1/11/11. > >> > >> Mika > >> > >> My m3makefile: > >> > >> import ("libm3") > >> > >> implementation ("Main") > >> > >> program ("threadtest") > >> > >> My m3overrides (optional): > >> > >> if defined("CM3_VERSION") > >> /* Critical Mass Modula-3 */ > >> % see http://www.elegosoft.com/cm3/doc/help/cm3/cm3.html > >> > >> % not sure about this: > >> build_standalone() > >> > >> m3_optimize("") > >> end > >> > >> My Main.m3: > >> > >> > >> (* $Id: Main.m3,v 1.1 2011/01/11 10:06:21 mika Exp $ *) > >> > >> MODULE Main; > >> > >> (* threading stress-test *) > >> > >> IMPORT Params, Scan, Thread, Rd, FileRd, Wr, FileWr, Process; > >> > >> VAR n := Scan.Int(Params.Get(1)); > >> > >> PROCEDURE MakeReaderThread() = > >> BEGIN > >> EVAL Thread.Fork(NEW(Thread.Closure, apply := RApply)) > >> END MakeReaderThread; > >> > >> PROCEDURE MakeForkerThread() = > >> BEGIN > >> EVAL Thread.Fork(NEW(Thread.Closure, apply := FApply)) > >> END MakeForkerThread; > >> > >> PROCEDURE MakeAllocatorThread() = > >> BEGIN > >> EVAL Thread.Fork(NEW(Thread.Closure, apply := AApply)) > >> END MakeAllocatorThread; > >> > >> (**********************************************************************) > >> > >> PROCEDURE RApply(cl : Thread.Closure) : REFANY = > >> BEGIN > >> LOOP > >> WITH rd = FileRd.Open(Filename) DO > >> TRY > >> LOOP > >> VAR c := Rd.GetChar(rd); BEGIN END > >> END > >> EXCEPT > >> Rd.EndOfFile => Rd.Close(rd) > >> END > >> END > >> END > >> END RApply; > >> > >> PROCEDURE FApply(cl : Thread.Closure) : REFANY = > >> BEGIN > >> LOOP > >> WITH proc = Process.Create("sleep", > >> ARRAY OF TEXT { "1" }) DO > >> EVAL Process.Wait(proc) > >> END > >> END > >> END FApply; > >> > >> PROCEDURE AApply(cl : Thread.Closure) : REFANY = > >> BEGIN > > LOOP > >> VAR > >> arr := NEW(REF ARRAY OF INTEGER, 1025); > >> BEGIN > >> FOR i := FIRST(arr^)+1 TO LAST(arr^) DO > >> arr[i] := arr[i] - arr[i-1] > >> END > >> END > >> END > >> END AApply; > >> > >> > >> CONST Filename = "hohum"; > >> > >> PROCEDURE WriteAFile() = > >> BEGIN > >> WITH wr = FileWr.Open(Filename) DO > >> FOR i := 1 TO 256 DO > >> FOR j := 1 TO i DO > >> Wr.PutChar(wr, VAL(ORD('A') + i MOD 25, CHAR)) > >> END; > >> Wr.PutChar(wr, '\n') > >> END > >> END > >> END WriteAFile; > >> > >> BEGIN > >> WriteAFile(); > >> FOR i := 1 TO n DIV 3 DO > >> MakeReaderThread() > >> END; > >> FOR i := 1 TO n DIV 3 DO > >> MakeForkerThread() > >> END; > >> FOR i := 1 TO n DIV 3 DO > >> MakeAllocatorThread() > >> END; > >> > >> LOOP > >> Thread.Pause(1.0d0) > >> END > >> END Main. > >> From hosking at cs.purdue.edu Wed Jan 12 02:43:19 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 11 Jan 2011 20:43:19 -0500 Subject: [M3devel] Thread testing program In-Reply-To: <20110111210928.697421A205B@async.async.caltech.edu> References: <20110111102923.AF8001A205B@async.async.caltech.edu> <20110111210928.697421A205B@async.async.caltech.edu> Message-ID: <6FB19D61-E757-4A06-878F-DA427142CEE9@cs.purdue.edu> Please try the latest commit. On Jan 11, 2011, at 4:09 PM, Mika Nystrom wrote: > > AMD64_FREEBSD of some time ago (about a year) also doesn't seem to > make any progress. But no, I haven't gone through any old versions > systematically. The old PM3 is what I use in "production" systems, > and it works... but unfortunately my next "production" system is slated > to be a new Debian system. > > Mika > > Tony Hosking writes: >> Did you stress test any older versions of M3? >> I believe we have had a number of regressions lately. >> >> On Jan 11, 2011, at 5:29 AM, Mika Nystrom wrote: >> >>> >>> Hello everyone, >>> >>> After studying failure modes and implementation of the current >>> threading implementation in CM3, I've developed a little stress-testing >>> program, attached. Currently it crashes in various ways. >>> >>> It takes one command-line argument, the approximate number of threads >>> to create (e.g., 100). It creates threads of three types: >>> reader (reads a file), forker (forks a process), allocator (allocates >>> memory that constantly goes out of scope). >>> >>> Files attached below. Happy 1/11/11. >>> >>> Mika >>> >>> My m3makefile: >>> >>> import ("libm3") >>> >>> implementation ("Main") >>> >>> program ("threadtest") >>> >>> My m3overrides (optional): >>> >>> if defined("CM3_VERSION") >>> /* Critical Mass Modula-3 */ >>> % see http://www.elegosoft.com/cm3/doc/help/cm3/cm3.html >>> >>> % not sure about this: >>> build_standalone() >>> >>> m3_optimize("") >>> end >>> >>> My Main.m3: >>> >>> >>> (* $Id: Main.m3,v 1.1 2011/01/11 10:06:21 mika Exp $ *) >>> >>> MODULE Main; >>> >>> (* threading stress-test *) >>> >>> IMPORT Params, Scan, Thread, Rd, FileRd, Wr, FileWr, Process; >>> >>> VAR n := Scan.Int(Params.Get(1)); >>> >>> PROCEDURE MakeReaderThread() = >>> BEGIN >>> EVAL Thread.Fork(NEW(Thread.Closure, apply := RApply)) >>> END MakeReaderThread; >>> >>> PROCEDURE MakeForkerThread() = >>> BEGIN >>> EVAL Thread.Fork(NEW(Thread.Closure, apply := FApply)) >>> END MakeForkerThread; >>> >>> PROCEDURE MakeAllocatorThread() = >>> BEGIN >>> EVAL Thread.Fork(NEW(Thread.Closure, apply := AApply)) >>> END MakeAllocatorThread; >>> >>> (**********************************************************************) >>> >>> PROCEDURE RApply(cl : Thread.Closure) : REFANY = >>> BEGIN >>> LOOP >>> WITH rd = FileRd.Open(Filename) DO >>> TRY >>> LOOP >>> VAR c := Rd.GetChar(rd); BEGIN END >>> END >>> EXCEPT >>> Rd.EndOfFile => Rd.Close(rd) >>> END >>> END >>> END >>> END RApply; >>> >>> PROCEDURE FApply(cl : Thread.Closure) : REFANY = >>> BEGIN >>> LOOP >>> WITH proc = Process.Create("sleep", >>> ARRAY OF TEXT { "1" }) DO >>> EVAL Process.Wait(proc) >>> END >>> END >>> END FApply; >>> >>> PROCEDURE AApply(cl : Thread.Closure) : REFANY = >>> BEGIN >> LOOP >>> VAR >>> arr := NEW(REF ARRAY OF INTEGER, 1025); >>> BEGIN >>> FOR i := FIRST(arr^)+1 TO LAST(arr^) DO >>> arr[i] := arr[i] - arr[i-1] >>> END >>> END >>> END >>> END AApply; >>> >>> >>> CONST Filename = "hohum"; >>> >>> PROCEDURE WriteAFile() = >>> BEGIN >>> WITH wr = FileWr.Open(Filename) DO >>> FOR i := 1 TO 256 DO >>> FOR j := 1 TO i DO >>> Wr.PutChar(wr, VAL(ORD('A') + i MOD 25, CHAR)) >>> END; >>> Wr.PutChar(wr, '\n') >>> END >>> END >>> END WriteAFile; >>> >>> BEGIN >>> WriteAFile(); >>> FOR i := 1 TO n DIV 3 DO >>> MakeReaderThread() >>> END; >>> FOR i := 1 TO n DIV 3 DO >>> MakeForkerThread() >>> END; >>> FOR i := 1 TO n DIV 3 DO >>> MakeAllocatorThread() >>> END; >>> >>> LOOP >>> Thread.Pause(1.0d0) >>> END >>> END Main. >>> From jay.krell at cornell.edu Wed Jan 12 07:28:26 2011 From: jay.krell at cornell.edu (Jay K) Date: Wed, 12 Jan 2011 06:28:26 +0000 Subject: [M3devel] cg.alloca Message-ID: I'd like to make alloca a separate operation in m3cg. Instead of a special function name that we check for. More like the atomics. I know how and can do it myself easily enough. ok? (and then I'll fix NT386) ?- Jay From jay.krell at cornell.edu Wed Jan 12 08:24:28 2011 From: jay.krell at cornell.edu (Jay K) Date: Wed, 12 Jan 2011 07:24:28 +0000 Subject: [M3devel] cg.alloca In-Reply-To: References: Message-ID: proposed diff attached ?- Jay ---------------------------------------- > From: jay.krell at cornell.edu > To: m3devel at elegosoft.com > Date: Wed, 12 Jan 2011 06:28:26 +0000 > Subject: [M3devel] cg.alloca > > > I'd like to make alloca a separate operation in m3cg. > Instead of a special function name that we check for. > More like the atomics. > I know how and can do it myself easily enough. > ok? > > > (and then I'll fix NT386) > > > - Jay > > -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: cg_alloca.txt URL: From hosking at cs.purdue.edu Wed Jan 12 18:08:41 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 12 Jan 2011 12:08:41 -0500 Subject: [M3devel] cg.alloca In-Reply-To: References: Message-ID: Why does it need to be a special function in the CG? gcc is perfectly capable of inlining it as a special builtin. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 12, 2011, at 1:28 AM, Jay K wrote: > > I'd like to make alloca a separate operation in m3cg. > Instead of a special function name that we check for. > More like the atomics. > I know how and can do it myself easily enough. > ok? > > > (and then I'll fix NT386) > > > - Jay > > From hosking at cs.purdue.edu Wed Jan 12 18:10:02 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 12 Jan 2011 12:10:02 -0500 Subject: [M3devel] cg.alloca In-Reply-To: References: Message-ID: <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu> I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 12, 2011, at 2:24 AM, Jay K wrote: > > proposed diff attached > > - Jay > > ---------------------------------------- >> From: jay.krell at cornell.edu >> To: m3devel at elegosoft.com >> Date: Wed, 12 Jan 2011 06:28:26 +0000 >> Subject: [M3devel] cg.alloca >> >> >> I'd like to make alloca a separate operation in m3cg. >> Instead of a special function name that we check for. >> More like the atomics. >> I know how and can do it myself easily enough. >> ok? >> >> >> (and then I'll fix NT386) >> >> >> - Jay >> >> > From jay.krell at cornell.edu Wed Jan 12 19:06:53 2011 From: jay.krell at cornell.edu (Jay K) Date: Wed, 12 Jan 2011 18:06:53 +0000 Subject: [M3devel] cg.alloca In-Reply-To: <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu> References: , , <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu> Message-ID: On NT386 the function is _chkstk, number of bytes in eax, return value in esp. Notice how in parse.c I had to strcmp for the function name. A little gross, but it does work. ? And C/C++ work that way. Notice how you implemented atomics. I half agree though. It could be a function call even for NT386. The atomics could be too. ?- Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Wed, 12 Jan 2011 12:10:02 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] cg.alloca > > I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. > > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 | Mobile +1 765 427 5484 > > > > > On Jan 12, 2011, at 2:24 AM, Jay K wrote: > > > > > proposed diff attached > > > > - Jay > > > > ---------------------------------------- > >> From: jay.krell at cornell.edu > >> To: m3devel at elegosoft.com > >> Date: Wed, 12 Jan 2011 06:28:26 +0000 > >> Subject: [M3devel] cg.alloca > >> > >> > >> I'd like to make alloca a separate operation in m3cg. > >> Instead of a special function name that we check for. > >> More like the atomics. > >> I know how and can do it myself easily enough. > >> ok? > >> > >> > >> (and then I'll fix NT386) > >> > >> > >> - Jay > >> > >> > > > From hosking at cs.purdue.edu Wed Jan 12 19:34:16 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 12 Jan 2011 13:34:16 -0500 Subject: [M3devel] cg.alloca In-Reply-To: References: , , <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu> Message-ID: No, the atomics can't be because they don't map directly to a gcc builtin, whereas alloca *does*. On Jan 12, 2011, at 1:06 PM, Jay K wrote: > > On NT386 the function is _chkstk, number of bytes in eax, return value in esp. > Notice how in parse.c I had to strcmp for the function name. A little gross, but it does work. > And C/C++ work that way. > Notice how you implemented atomics. > > I half agree though. It could be a function call even for NT386. > The atomics could be too. > > - Jay > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Wed, 12 Jan 2011 12:10:02 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] cg.alloca >> >> I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. >> >> >> Antony Hosking | Associate Professor | Computer Science | Purdue University >> 305 N. University Street | West Lafayette | IN 47907 | USA >> Office +1 765 494 6001 | Mobile +1 765 427 5484 >> >> >> >> >> On Jan 12, 2011, at 2:24 AM, Jay K wrote: >> >>> >>> proposed diff attached >>> >>> - Jay >>> >>> ---------------------------------------- >>>> From: jay.krell at cornell.edu >>>> To: m3devel at elegosoft.com >>>> Date: Wed, 12 Jan 2011 06:28:26 +0000 >>>> Subject: [M3devel] cg.alloca >>>> >>>> >>>> I'd like to make alloca a separate operation in m3cg. >>>> Instead of a special function name that we check for. >>>> More like the atomics. >>>> I know how and can do it myself easily enough. >>>> ok? >>>> >>>> >>>> (and then I'll fix NT386) >>>> >>>> >>>> - Jay >>>> >>>> >>> >> > From jay.krell at cornell.edu Wed Jan 12 21:09:43 2011 From: jay.krell at cornell.edu (Jay K) Date: Wed, 12 Jan 2011 20:09:43 +0000 Subject: [M3devel] cg.alloca In-Reply-To: References: , , , , <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu>, , Message-ID: - Are you ok with the ugly/inefficient strcmp? - And what will be a more significant but still not huge transform in m3back? alloca will translate to chkstk -- an actual function call, but renamed The parameter that was already pushed on the stack will be be poped into eax, whereas with an m3cg operation, it would have been put into eax more directly. The return sequence will probably mov esp into..either eax specifically, or any register..I don't think leaving it in esp is easy enough for m3back to deal with. Again a special case in the general function call/return path. (In reality, the transform is quite significant in m3cc, but it is below where we work.) It's a funny thing in general, these "built in functions" that get very special handling and aren't necessarily "functions" (as in "call"/"ret"). Not clear in general to me how to model them. It makes one wonder why add/sub/multiply/div aren't builtin functions? i.e. "everything" could be viewed as a function. - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Wed, 12 Jan 2011 13:34:16 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] cg.alloca > > No, the atomics can't be because they don't map directly to a gcc builtin, whereas alloca *does*. > > On Jan 12, 2011, at 1:06 PM, Jay K wrote: > > > > > On NT386 the function is _chkstk, number of bytes in eax, return value in esp. > > Notice how in parse.c I had to strcmp for the function name. A little gross, but it does work. > > And C/C++ work that way. > > Notice how you implemented atomics. > > > > I half agree though. It could be a function call even for NT386. > > The atomics could be too. > > > > - Jay > > > > ---------------------------------------- > >> From: hosking at cs.purdue.edu > >> Date: Wed, 12 Jan 2011 12:10:02 -0500 > >> To: jay.krell at cornell.edu > >> CC: m3devel at elegosoft.com > >> Subject: Re: [M3devel] cg.alloca > >> > >> I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. > >> > >> > >> Antony Hosking | Associate Professor | Computer Science | Purdue University > >> 305 N. University Street | West Lafayette | IN 47907 | USA > >> Office +1 765 494 6001 | Mobile +1 765 427 5484 > >> > >> > >> > >> > >> On Jan 12, 2011, at 2:24 AM, Jay K wrote: > >> > >>> > >>> proposed diff attached > >>> > >>> - Jay > >>> > >>> ---------------------------------------- > >>>> From: jay.krell at cornell.edu > >>>> To: m3devel at elegosoft.com > >>>> Date: Wed, 12 Jan 2011 06:28:26 +0000 > >>>> Subject: [M3devel] cg.alloca > >>>> > >>>> > >>>> I'd like to make alloca a separate operation in m3cg. > >>>> Instead of a special function name that we check for. > >>>> More like the atomics. > >>>> I know how and can do it myself easily enough. > >>>> ok? > >>>> > >>>> > >>>> (and then I'll fix NT386) > >>>> > >>>> > >>>> - Jay > >>>> > >>>> > >>> > >> > > > From hosking at cs.purdue.edu Wed Jan 12 21:13:40 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 12 Jan 2011 15:13:40 -0500 Subject: [M3devel] cg.alloca In-Reply-To: References: , , , , <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu>, , Message-ID: <9AEF5B45-D6A5-4651-944C-415D3EC595F6@cs.purdue.edu> On Jan 12, 2011, at 3:09 PM, Jay K wrote: > > - Are you ok with the ugly/inefficient strcmp? Where? > > - And what will be a more significant but still not huge transform in m3back? > alloca will translate to chkstk -- an actual function call, but renamed That's fine. I don't want to complicate m3middle for m3back, which is designed for speed not performance of the resulting code. > > The parameter that was already pushed on the stack will be be poped into eax, > whereas with an m3cg operation, it would have been put into eax more directly. > > The return sequence will probably mov esp into..either eax specifically, or any register..I don't think leaving it in esp is easy enough for m3back to deal with. Again a special case in the general function call/return path. > > > (In reality, the transform is quite significant in m3cc, but it is below where we work.) Indeed. > > > It's a funny thing in general, these "built in functions" that get very special handling and aren't necessarily "functions" (as in "call"/"ret"). Not clear in general to me how to model them. > > > It makes one wonder why add/sub/multiply/div aren't builtin functions? > i.e. "everything" could be viewed as a function. > > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Wed, 12 Jan 2011 13:34:16 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] cg.alloca >> >> No, the atomics can't be because they don't map directly to a gcc builtin, whereas alloca *does*. >> >> On Jan 12, 2011, at 1:06 PM, Jay K wrote: >> >>> >>> On NT386 the function is _chkstk, number of bytes in eax, return value in esp. >>> Notice how in parse.c I had to strcmp for the function name. A little gross, but it does work. >>> And C/C++ work that way. >>> Notice how you implemented atomics. >>> >>> I half agree though. It could be a function call even for NT386. >>> The atomics could be too. >>> >>> - Jay >>> >>> ---------------------------------------- >>>> From: hosking at cs.purdue.edu >>>> Date: Wed, 12 Jan 2011 12:10:02 -0500 >>>> To: jay.krell at cornell.edu >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] cg.alloca >>>> >>>> I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. >>>> >>>> >>>> Antony Hosking | Associate Professor | Computer Science | Purdue University >>>> 305 N. University Street | West Lafayette | IN 47907 | USA >>>> Office +1 765 494 6001 | Mobile +1 765 427 5484 >>>> >>>> >>>> >>>> >>>> On Jan 12, 2011, at 2:24 AM, Jay K wrote: >>>> >>>>> >>>>> proposed diff attached >>>>> >>>>> - Jay >>>>> >>>>> ---------------------------------------- >>>>>> From: jay.krell at cornell.edu >>>>>> To: m3devel at elegosoft.com >>>>>> Date: Wed, 12 Jan 2011 06:28:26 +0000 >>>>>> Subject: [M3devel] cg.alloca >>>>>> >>>>>> >>>>>> I'd like to make alloca a separate operation in m3cg. >>>>>> Instead of a special function name that we check for. >>>>>> More like the atomics. >>>>>> I know how and can do it myself easily enough. >>>>>> ok? >>>>>> >>>>>> >>>>>> (and then I'll fix NT386) >>>>>> >>>>>> >>>>>> - Jay >>>>>> >>>>>> >>>>> >>>> >>> >> From jay.krell at cornell.edu Wed Jan 12 21:36:18 2011 From: jay.krell at cornell.edu (Jay K) Date: Wed, 12 Jan 2011 20:36:18 +0000 Subject: [M3devel] cg.alloca In-Reply-To: <9AEF5B45-D6A5-4651-944C-415D3EC595F6@cs.purdue.edu> References: , ,,, , , <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu>, , , , , , <9AEF5B45-D6A5-4651-944C-415D3EC595F6@cs.purdue.edu> Message-ID: http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/m3cc/gcc/gcc/m3cg/parse.c I'm sure it is plenty fast, and I could make it faster probably by checking the length first and doing just one strcmp instead of 3, it's just the cleanliness perhaps.. though this is basically what the regular gcc backend does anyway -- map function names to builtins. m3_convert_function_to_builtin (tree p) { tree *slot = (tree *)htab_find_slot (builtins, p, NO_INSERT); if (slot) { p = *slot; } else { const char *name = IDENTIFIER_POINTER (DECL_NAME (p)); if (name[0] == 'a' || name[0] == '_') { if (strcmp(name, "alloca") == 0 || strcmp(name, "_alloca") == 0 || strcmp(name, "__builtin_alloca") == 0) { p = built_in_decls[BUILT_IN_ALLOCA]; } } } return p; } This might not even be needed -- the backend might do it anyway. What I was partly doing here though is giving myself flexibility in what string to use -- ie. I thought I might get away with "_alloca" and have it "just work" in m3back, and then do the translation here, rather than in Target.i3 have an Alloca: TEXT -- more target-dependent code. Given what I know now about NT/x86 though, this is a lost cause -- the function is "chkstk" and has a custom calling convention, so it won't "just work". That is, I can try using __builtin_alloca and try w/o the special casing above. Special casing in m3back is unavoidable, and what string we use is arguably arbitrary, or arguably should be "_chkstk" -- slight additional target-specificity. But heck, I'm also willing to go back to the old scheme for NT/x86 anyway, with the static allocation. Though I probably won't. I really need to fix the for i := 0 to 10 do try finally end thing -- to not alloca 10 times. - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Wed, 12 Jan 2011 15:13:40 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] cg.alloca > > > On Jan 12, 2011, at 3:09 PM, Jay K wrote: > > > > > - Are you ok with the ugly/inefficient strcmp? > > Where? > > > > > - And what will be a more significant but still not huge transform in m3back? > > alloca will translate to chkstk -- an actual function call, but renamed > > That's fine. I don't want to complicate m3middle for m3back, which is designed for speed not performance of the resulting code. > > > > > The parameter that was already pushed on the stack will be be poped into eax, > > whereas with an m3cg operation, it would have been put into eax more directly. > > > > The return sequence will probably mov esp into..either eax specifically, or any register..I don't think leaving it in esp is easy enough for m3back to deal with. Again a special case in the general function call/return path. > > > > > > (In reality, the transform is quite significant in m3cc, but it is below where we work.) > > Indeed. > > > > > > > It's a funny thing in general, these "built in functions" that get very special handling and aren't necessarily "functions" (as in "call"/"ret"). Not clear in general to me how to model them. > > > > > > It makes one wonder why add/sub/multiply/div aren't builtin functions? > > i.e. "everything" could be viewed as a function. > > > > > > - Jay > > > > > > ---------------------------------------- > >> From: hosking at cs.purdue.edu > >> Date: Wed, 12 Jan 2011 13:34:16 -0500 > >> To: jay.krell at cornell.edu > >> CC: m3devel at elegosoft.com > >> Subject: Re: [M3devel] cg.alloca > >> > >> No, the atomics can't be because they don't map directly to a gcc builtin, whereas alloca *does*. > >> > >> On Jan 12, 2011, at 1:06 PM, Jay K wrote: > >> > >>> > >>> On NT386 the function is _chkstk, number of bytes in eax, return value in esp. > >>> Notice how in parse.c I had to strcmp for the function name. A little gross, but it does work. > >>> And C/C++ work that way. > >>> Notice how you implemented atomics. > >>> > >>> I half agree though. It could be a function call even for NT386. > >>> The atomics could be too. > >>> > >>> - Jay > >>> > >>> ---------------------------------------- > >>>> From: hosking at cs.purdue.edu > >>>> Date: Wed, 12 Jan 2011 12:10:02 -0500 > >>>> To: jay.krell at cornell.edu > >>>> CC: m3devel at elegosoft.com > >>>> Subject: Re: [M3devel] cg.alloca > >>>> > >>>> I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. > >>>> > >>>> > >>>> Antony Hosking | Associate Professor | Computer Science | Purdue University > >>>> 305 N. University Street | West Lafayette | IN 47907 | USA > >>>> Office +1 765 494 6001 | Mobile +1 765 427 5484 > >>>> > >>>> > >>>> > >>>> > >>>> On Jan 12, 2011, at 2:24 AM, Jay K wrote: > >>>> > >>>>> > >>>>> proposed diff attached > >>>>> > >>>>> - Jay > >>>>> > >>>>> ---------------------------------------- > >>>>>> From: jay.krell at cornell.edu > >>>>>> To: m3devel at elegosoft.com > >>>>>> Date: Wed, 12 Jan 2011 06:28:26 +0000 > >>>>>> Subject: [M3devel] cg.alloca > >>>>>> > >>>>>> > >>>>>> I'd like to make alloca a separate operation in m3cg. > >>>>>> Instead of a special function name that we check for. > >>>>>> More like the atomics. > >>>>>> I know how and can do it myself easily enough. > >>>>>> ok? > >>>>>> > >>>>>> > >>>>>> (and then I'll fix NT386) > >>>>>> > >>>>>> > >>>>>> - Jay > >>>>>> > >>>>>> > >>>>> > >>>> > >>> > >> > From hosking at cs.purdue.edu Wed Jan 12 22:02:21 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 12 Jan 2011 16:02:21 -0500 Subject: [M3devel] cg.alloca In-Reply-To: References: , , , , , , <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu>, , , , , , <9AEF5B45-D6A5-4651-944C-415D3EC595F6@cs.purdue.edu> Message-ID: I think that's fine. On Jan 12, 2011, at 3:36 PM, Jay K wrote: > > http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/m3cc/gcc/gcc/m3cg/parse.c > > > I'm sure it is plenty fast, and I could make it faster probably by checking the length first and doing just one strcmp instead of 3, it's just the cleanliness perhaps.. though this is basically what the regular gcc backend does anyway -- map function names to builtins. > > > m3_convert_function_to_builtin (tree p) > { > tree *slot = (tree *)htab_find_slot (builtins, p, NO_INSERT); > if (slot) > { > p = *slot; > } > else > { > const char *name = IDENTIFIER_POINTER (DECL_NAME (p)); > if (name[0] == 'a' || name[0] == '_') > { > if (strcmp(name, "alloca") == 0 > || strcmp(name, "_alloca") == 0 > || strcmp(name, "__builtin_alloca") == 0) > { > p = built_in_decls[BUILT_IN_ALLOCA]; > } > } > } > return p; > } > > > This might not even be needed -- the backend might do it anyway. > What I was partly doing here though is giving myself flexibility in what string to use -- ie. I thought I might get away with "_alloca" and have it "just work" in m3back, and then do the translation here, rather than in Target.i3 have an Alloca: TEXT -- more target-dependent code. > > > Given what I know now about NT/x86 though, this is a lost cause -- the function is "chkstk" and has a custom calling convention, so it won't "just work". > > > That is, I can try using __builtin_alloca and try w/o the special casing above. > Special casing in m3back is unavoidable, and what string we use is arguably arbitrary, or arguably should be "_chkstk" -- slight additional target-specificity. > > > But heck, I'm also willing to go back to the old scheme for NT/x86 anyway, with the static allocation. Though I probably won't. > > > I really need to fix the for i := 0 to 10 do try finally end thing -- to not alloca 10 times. > > > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Wed, 12 Jan 2011 15:13:40 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] cg.alloca >> >> >> On Jan 12, 2011, at 3:09 PM, Jay K wrote: >> >>> >>> - Are you ok with the ugly/inefficient strcmp? >> >> Where? >> >>> >>> - And what will be a more significant but still not huge transform in m3back? >>> alloca will translate to chkstk -- an actual function call, but renamed >> >> That's fine. I don't want to complicate m3middle for m3back, which is designed for speed not performance of the resulting code. >> >>> >>> The parameter that was already pushed on the stack will be be poped into eax, >>> whereas with an m3cg operation, it would have been put into eax more directly. >>> >>> The return sequence will probably mov esp into..either eax specifically, or any register..I don't think leaving it in esp is easy enough for m3back to deal with. Again a special case in the general function call/return path. >>> >>> >>> (In reality, the transform is quite significant in m3cc, but it is below where we work.) >> >> Indeed. >> >>> >>> >>> It's a funny thing in general, these "built in functions" that get very special handling and aren't necessarily "functions" (as in "call"/"ret"). Not clear in general to me how to model them. >>> >>> >>> It makes one wonder why add/sub/multiply/div aren't builtin functions? >>> i.e. "everything" could be viewed as a function. >>> >>> >>> - Jay >>> >>> >>> ---------------------------------------- >>>> From: hosking at cs.purdue.edu >>>> Date: Wed, 12 Jan 2011 13:34:16 -0500 >>>> To: jay.krell at cornell.edu >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] cg.alloca >>>> >>>> No, the atomics can't be because they don't map directly to a gcc builtin, whereas alloca *does*. >>>> >>>> On Jan 12, 2011, at 1:06 PM, Jay K wrote: >>>> >>>>> >>>>> On NT386 the function is _chkstk, number of bytes in eax, return value in esp. >>>>> Notice how in parse.c I had to strcmp for the function name. A little gross, but it does work. >>>>> And C/C++ work that way. >>>>> Notice how you implemented atomics. >>>>> >>>>> I half agree though. It could be a function call even for NT386. >>>>> The atomics could be too. >>>>> >>>>> - Jay >>>>> >>>>> ---------------------------------------- >>>>>> From: hosking at cs.purdue.edu >>>>>> Date: Wed, 12 Jan 2011 12:10:02 -0500 >>>>>> To: jay.krell at cornell.edu >>>>>> CC: m3devel at elegosoft.com >>>>>> Subject: Re: [M3devel] cg.alloca >>>>>> >>>>>> I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. >>>>>> >>>>>> >>>>>> Antony Hosking | Associate Professor | Computer Science | Purdue University >>>>>> 305 N. University Street | West Lafayette | IN 47907 | USA >>>>>> Office +1 765 494 6001 | Mobile +1 765 427 5484 >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Jan 12, 2011, at 2:24 AM, Jay K wrote: >>>>>> >>>>>>> >>>>>>> proposed diff attached >>>>>>> >>>>>>> - Jay >>>>>>> >>>>>>> ---------------------------------------- >>>>>>>> From: jay.krell at cornell.edu >>>>>>>> To: m3devel at elegosoft.com >>>>>>>> Date: Wed, 12 Jan 2011 06:28:26 +0000 >>>>>>>> Subject: [M3devel] cg.alloca >>>>>>>> >>>>>>>> >>>>>>>> I'd like to make alloca a separate operation in m3cg. >>>>>>>> Instead of a special function name that we check for. >>>>>>>> More like the atomics. >>>>>>>> I know how and can do it myself easily enough. >>>>>>>> ok? >>>>>>>> >>>>>>>> >>>>>>>> (and then I'll fix NT386) >>>>>>>> >>>>>>>> >>>>>>>> - Jay >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >> From jay.krell at cornell.edu Wed Jan 12 22:11:29 2011 From: jay.krell at cornell.edu (Jay K) Date: Wed, 12 Jan 2011 21:11:29 +0000 Subject: [M3devel] cg.alloca In-Reply-To: References: , , ,,, , ,,<3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu>, ,,, , , , , , , <9AEF5B45-D6A5-4651-944C-415D3EC595F6@cs.purdue.edu>, , Message-ID: You prefer it asis, using function calls, possibly with special casing at the next level down to change to something else (or further down)? I can try removing the special casing in parse.c, e.g. by using __builtin_alloca in m3front. But you like it asis? No m3cg change? m3back could easily do a slightly better job if m3cg was changed. But granted, it doesn't matter, and if efficiency were paramount, the way it was a week ago was better still. - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Wed, 12 Jan 2011 16:02:21 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] cg.alloca > > I think that's fine. > > On Jan 12, 2011, at 3:36 PM, Jay K wrote: > > > > > http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/m3cc/gcc/gcc/m3cg/parse.c > > > > > > I'm sure it is plenty fast, and I could make it faster probably by checking the length first and doing just one strcmp instead of 3, it's just the cleanliness perhaps.. though this is basically what the regular gcc backend does anyway -- map function names to builtins. > > > > > > m3_convert_function_to_builtin (tree p) > > { > > tree *slot = (tree *)htab_find_slot (builtins, p, NO_INSERT); > > if (slot) > > { > > p = *slot; > > } > > else > > { > > const char *name = IDENTIFIER_POINTER (DECL_NAME (p)); > > if (name[0] == 'a' || name[0] == '_') > > { > > if (strcmp(name, "alloca") == 0 > > || strcmp(name, "_alloca") == 0 > > || strcmp(name, "__builtin_alloca") == 0) > > { > > p = built_in_decls[BUILT_IN_ALLOCA]; > > } > > } > > } > > return p; > > } > > > > > > This might not even be needed -- the backend might do it anyway. > > What I was partly doing here though is giving myself flexibility in what string to use -- ie. I thought I might get away with "_alloca" and have it "just work" in m3back, and then do the translation here, rather than in Target.i3 have an Alloca: TEXT -- more target-dependent code. > > > > > > Given what I know now about NT/x86 though, this is a lost cause -- the function is "chkstk" and has a custom calling convention, so it won't "just work". > > > > > > That is, I can try using __builtin_alloca and try w/o the special casing above. > > Special casing in m3back is unavoidable, and what string we use is arguably arbitrary, or arguably should be "_chkstk" -- slight additional target-specificity. > > > > > > But heck, I'm also willing to go back to the old scheme for NT/x86 anyway, with the static allocation. Though I probably won't. > > > > > > I really need to fix the for i := 0 to 10 do try finally end thing -- to not alloca 10 times. > > > > > > > > - Jay > > > > > > ---------------------------------------- > >> From: hosking at cs.purdue.edu > >> Date: Wed, 12 Jan 2011 15:13:40 -0500 > >> To: jay.krell at cornell.edu > >> CC: m3devel at elegosoft.com > >> Subject: Re: [M3devel] cg.alloca > >> > >> > >> On Jan 12, 2011, at 3:09 PM, Jay K wrote: > >> > >>> > >>> - Are you ok with the ugly/inefficient strcmp? > >> > >> Where? > >> > >>> > >>> - And what will be a more significant but still not huge transform in m3back? > >>> alloca will translate to chkstk -- an actual function call, but renamed > >> > >> That's fine. I don't want to complicate m3middle for m3back, which is designed for speed not performance of the resulting code. > >> > >>> > >>> The parameter that was already pushed on the stack will be be poped into eax, > >>> whereas with an m3cg operation, it would have been put into eax more directly. > >>> > >>> The return sequence will probably mov esp into..either eax specifically, or any register..I don't think leaving it in esp is easy enough for m3back to deal with. Again a special case in the general function call/return path. > >>> > >>> > >>> (In reality, the transform is quite significant in m3cc, but it is below where we work.) > >> > >> Indeed. > >> > >>> > >>> > >>> It's a funny thing in general, these "built in functions" that get very special handling and aren't necessarily "functions" (as in "call"/"ret"). Not clear in general to me how to model them. > >>> > >>> > >>> It makes one wonder why add/sub/multiply/div aren't builtin functions? > >>> i.e. "everything" could be viewed as a function. > >>> > >>> > >>> - Jay > >>> > >>> > >>> ---------------------------------------- > >>>> From: hosking at cs.purdue.edu > >>>> Date: Wed, 12 Jan 2011 13:34:16 -0500 > >>>> To: jay.krell at cornell.edu > >>>> CC: m3devel at elegosoft.com > >>>> Subject: Re: [M3devel] cg.alloca > >>>> > >>>> No, the atomics can't be because they don't map directly to a gcc builtin, whereas alloca *does*. > >>>> > >>>> On Jan 12, 2011, at 1:06 PM, Jay K wrote: > >>>> > >>>>> > >>>>> On NT386 the function is _chkstk, number of bytes in eax, return value in esp. > >>>>> Notice how in parse.c I had to strcmp for the function name. A little gross, but it does work. > >>>>> And C/C++ work that way. > >>>>> Notice how you implemented atomics. > >>>>> > >>>>> I half agree though. It could be a function call even for NT386. > >>>>> The atomics could be too. > >>>>> > >>>>> - Jay > >>>>> > >>>>> ---------------------------------------- > >>>>>> From: hosking at cs.purdue.edu > >>>>>> Date: Wed, 12 Jan 2011 12:10:02 -0500 > >>>>>> To: jay.krell at cornell.edu > >>>>>> CC: m3devel at elegosoft.com > >>>>>> Subject: Re: [M3devel] cg.alloca > >>>>>> > >>>>>> I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. > >>>>>> > >>>>>> > >>>>>> Antony Hosking | Associate Professor | Computer Science | Purdue University > >>>>>> 305 N. University Street | West Lafayette | IN 47907 | USA > >>>>>> Office +1 765 494 6001 | Mobile +1 765 427 5484 > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> On Jan 12, 2011, at 2:24 AM, Jay K wrote: > >>>>>> > >>>>>>> > >>>>>>> proposed diff attached > >>>>>>> > >>>>>>> - Jay > >>>>>>> > >>>>>>> ---------------------------------------- > >>>>>>>> From: jay.krell at cornell.edu > >>>>>>>> To: m3devel at elegosoft.com > >>>>>>>> Date: Wed, 12 Jan 2011 06:28:26 +0000 > >>>>>>>> Subject: [M3devel] cg.alloca > >>>>>>>> > >>>>>>>> > >>>>>>>> I'd like to make alloca a separate operation in m3cg. > >>>>>>>> Instead of a special function name that we check for. > >>>>>>>> More like the atomics. > >>>>>>>> I know how and can do it myself easily enough. > >>>>>>>> ok? > >>>>>>>> > >>>>>>>> > >>>>>>>> (and then I'll fix NT386) > >>>>>>>> > >>>>>>>> > >>>>>>>> - Jay > >>>>>>>> > >>>>>>>> > >>>>>>> > >>>>>> > >>>>> > >>>> > >> > From hosking at cs.purdue.edu Wed Jan 12 22:33:49 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 12 Jan 2011 16:33:49 -0500 Subject: [M3devel] cg.alloca In-Reply-To: References: , , , , , , , , <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu>, , , , , , , , , , <9AEF5B45-D6A5-4651-944C-415D3EC595F6@cs.purdue.edu>, , Message-ID: <4DAF1487-CD07-4890-8D84-288915898241@cs.purdue.edu> Yes, prefer as is. No m3cg change. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 12, 2011, at 4:11 PM, Jay K wrote: > > You prefer it asis, using function calls, possibly with special casing at the next level down to change to something else (or further down)? > > > I can try removing the special casing in parse.c, e.g. by using __builtin_alloca in m3front. > But you like it asis? > No m3cg change? > > > m3back could easily do a slightly better job if m3cg was changed. > But granted, it doesn't matter, and if efficiency were paramount, the way it was a week ago was better still. > > > - Jay > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Wed, 12 Jan 2011 16:02:21 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] cg.alloca >> >> I think that's fine. >> >> On Jan 12, 2011, at 3:36 PM, Jay K wrote: >> >>> >>> http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/m3cc/gcc/gcc/m3cg/parse.c >>> >>> >>> I'm sure it is plenty fast, and I could make it faster probably by checking the length first and doing just one strcmp instead of 3, it's just the cleanliness perhaps.. though this is basically what the regular gcc backend does anyway -- map function names to builtins. >>> >>> >>> m3_convert_function_to_builtin (tree p) >>> { >>> tree *slot = (tree *)htab_find_slot (builtins, p, NO_INSERT); >>> if (slot) >>> { >>> p = *slot; >>> } >>> else >>> { >>> const char *name = IDENTIFIER_POINTER (DECL_NAME (p)); >>> if (name[0] == 'a' || name[0] == '_') >>> { >>> if (strcmp(name, "alloca") == 0 >>> || strcmp(name, "_alloca") == 0 >>> || strcmp(name, "__builtin_alloca") == 0) >>> { >>> p = built_in_decls[BUILT_IN_ALLOCA]; >>> } >>> } >>> } >>> return p; >>> } >>> >>> >>> This might not even be needed -- the backend might do it anyway. >>> What I was partly doing here though is giving myself flexibility in what string to use -- ie. I thought I might get away with "_alloca" and have it "just work" in m3back, and then do the translation here, rather than in Target.i3 have an Alloca: TEXT -- more target-dependent code. >>> >>> >>> Given what I know now about NT/x86 though, this is a lost cause -- the function is "chkstk" and has a custom calling convention, so it won't "just work". >>> >>> >>> That is, I can try using __builtin_alloca and try w/o the special casing above. >>> Special casing in m3back is unavoidable, and what string we use is arguably arbitrary, or arguably should be "_chkstk" -- slight additional target-specificity. >>> >>> >>> But heck, I'm also willing to go back to the old scheme for NT/x86 anyway, with the static allocation. Though I probably won't. >>> >>> >>> I really need to fix the for i := 0 to 10 do try finally end thing -- to not alloca 10 times. >>> >>> >>> >>> - Jay >>> >>> >>> ---------------------------------------- >>>> From: hosking at cs.purdue.edu >>>> Date: Wed, 12 Jan 2011 15:13:40 -0500 >>>> To: jay.krell at cornell.edu >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] cg.alloca >>>> >>>> >>>> On Jan 12, 2011, at 3:09 PM, Jay K wrote: >>>> >>>>> >>>>> - Are you ok with the ugly/inefficient strcmp? >>>> >>>> Where? >>>> >>>>> >>>>> - And what will be a more significant but still not huge transform in m3back? >>>>> alloca will translate to chkstk -- an actual function call, but renamed >>>> >>>> That's fine. I don't want to complicate m3middle for m3back, which is designed for speed not performance of the resulting code. >>>> >>>>> >>>>> The parameter that was already pushed on the stack will be be poped into eax, >>>>> whereas with an m3cg operation, it would have been put into eax more directly. >>>>> >>>>> The return sequence will probably mov esp into..either eax specifically, or any register..I don't think leaving it in esp is easy enough for m3back to deal with. Again a special case in the general function call/return path. >>>>> >>>>> >>>>> (In reality, the transform is quite significant in m3cc, but it is below where we work.) >>>> >>>> Indeed. >>>> >>>>> >>>>> >>>>> It's a funny thing in general, these "built in functions" that get very special handling and aren't necessarily "functions" (as in "call"/"ret"). Not clear in general to me how to model them. >>>>> >>>>> >>>>> It makes one wonder why add/sub/multiply/div aren't builtin functions? >>>>> i.e. "everything" could be viewed as a function. >>>>> >>>>> >>>>> - Jay >>>>> >>>>> >>>>> ---------------------------------------- >>>>>> From: hosking at cs.purdue.edu >>>>>> Date: Wed, 12 Jan 2011 13:34:16 -0500 >>>>>> To: jay.krell at cornell.edu >>>>>> CC: m3devel at elegosoft.com >>>>>> Subject: Re: [M3devel] cg.alloca >>>>>> >>>>>> No, the atomics can't be because they don't map directly to a gcc builtin, whereas alloca *does*. >>>>>> >>>>>> On Jan 12, 2011, at 1:06 PM, Jay K wrote: >>>>>> >>>>>>> >>>>>>> On NT386 the function is _chkstk, number of bytes in eax, return value in esp. >>>>>>> Notice how in parse.c I had to strcmp for the function name. A little gross, but it does work. >>>>>>> And C/C++ work that way. >>>>>>> Notice how you implemented atomics. >>>>>>> >>>>>>> I half agree though. It could be a function call even for NT386. >>>>>>> The atomics could be too. >>>>>>> >>>>>>> - Jay >>>>>>> >>>>>>> ---------------------------------------- >>>>>>>> From: hosking at cs.purdue.edu >>>>>>>> Date: Wed, 12 Jan 2011 12:10:02 -0500 >>>>>>>> To: jay.krell at cornell.edu >>>>>>>> CC: m3devel at elegosoft.com >>>>>>>> Subject: Re: [M3devel] cg.alloca >>>>>>>> >>>>>>>> I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. >>>>>>>> >>>>>>>> >>>>>>>> Antony Hosking | Associate Professor | Computer Science | Purdue University >>>>>>>> 305 N. University Street | West Lafayette | IN 47907 | USA >>>>>>>> Office +1 765 494 6001 | Mobile +1 765 427 5484 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Jan 12, 2011, at 2:24 AM, Jay K wrote: >>>>>>>> >>>>>>>>> >>>>>>>>> proposed diff attached >>>>>>>>> >>>>>>>>> - Jay >>>>>>>>> >>>>>>>>> ---------------------------------------- >>>>>>>>>> From: jay.krell at cornell.edu >>>>>>>>>> To: m3devel at elegosoft.com >>>>>>>>>> Date: Wed, 12 Jan 2011 06:28:26 +0000 >>>>>>>>>> Subject: [M3devel] cg.alloca >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> I'd like to make alloca a separate operation in m3cg. >>>>>>>>>> Instead of a special function name that we check for. >>>>>>>>>> More like the atomics. >>>>>>>>>> I know how and can do it myself easily enough. >>>>>>>>>> ok? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> (and then I'll fix NT386) >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> - Jay >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>> >> From hosking at cs.purdue.edu Thu Jan 13 06:56:27 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 13 Jan 2011 00:56:27 -0500 Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <20110113032413.889001A205B@async.async.caltech.edu> References: <20110112183316.3F661CC37B@birch.elegosoft.com> <20110112215850.7E7851A205B@async.async.caltech.edu> <20110113032413.889001A205B@async.async.caltech.edu> Message-ID: In this trace, there are only a few threads not trying to acquire heapMu for allocation. I don't know what the spin_lock threads are doing... We're left with thread 39 stuck in some spin lock. Thread 35 is stuck in fork (in AtForkPrepare) waiting for heapMu. Thread 31 is stuck in InitMutex trying waiting for heapMu. I can't see any thread that actually holds heapMu. Except, now I see that RTCollector also has AtFork routines, which LockHeap/UnlockHeap. I think this means the atfork routines in ThreadPThread must invoke LockHeap/UnlockHeap to avoid deadlocking with itself! Yikes. I'll check in the change and perhaps you can see if that fixes things. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 12, 2011, at 10:24 PM, Mika Nystrom wrote: > > Tony Hosking writes: >> OK, backing right off. Try the latest. > > Hmm, think we're deadlocked again? > > My application goes catatonic almost right away, but the trace below is > from the threadtest program. > > > Continuing. > > Program received signal SIGINT, Interrupt. > 0x9710b136 in semaphore_wait_trap () ... > Thread 67 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 66 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 65 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 64 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 63 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 62 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 61 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 60 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 59 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 58 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 57 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 56 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 55 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 54 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 53 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 52 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 51 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 50 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 49 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 48 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 47 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 46 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 45 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 44 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 43 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 42 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 41 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 40 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 39 (process 86373): > #0 0xffff0279 in __spin_lock () > #1 0x97137203 in _cthread_fork_prepare () > #2 0x97137155 in fork () > #3 0x00007a21 in ProcessPosixCommon__Create_ForkExec (cmd=0x64334, params=0x64344, env=0x0, wd=0x0, stdin=0x0, stdout=0x0, stderr=0x0) at ../src/os/POSIX/ProcessPosixCommon.m3:75 > #4 0x00008f0b in Process__Create (cmd=0x64334, params=0x64344, env=0x0, wd=0x0, stdin=0x0, stdout=0x0, stderr=0x0) at ../src/os/POSIX/ProcessPosix.m3:21 > #5 0x0000329e in Main__FApply (cl=0xb05bc0) at ../src/Main.m3:56 > #6 0x00041068 in ThreadPThread__RunThread (me=0xe018c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #7 0x00040d97 in ThreadPThread__ThreadBase (param=0xe018c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #8 0x9713885d in _pthread_start () > #9 0x971386e2 in thread_start () > > Thread 38 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 37 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 36 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 35 (process 86373): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x00044929 in ThreadPThread__pthread_mutex_lock (i=0x7e920) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 > #3 0x000436d2 in ThreadPThread__PThreadLockMutex (mutex=0x7e920, line=1274) at ../src/thread/PTHREAD/ThreadPThread.m3:1253 > #4 0x000437b1 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1274 > #5 0x97137217 in _cthread_fork_prepare () > #6 0x97137155 in fork () > #7 0x00007a21 in ProcessPosixCommon__Create_ForkExec (cmd=0x64334, params=0x64344, env=0x0, wd=0x0, stdin=0x0, stdout=0x0, stderr=0x0) at ../src/os/POSIX/ProcessPosixCommon.m3:75 > #8 0x00008f0b in Process__Create (cmd=0x64334, params=0x64344, env=0x0, wd=0x0, stdin=0x0, stdout=0x0, stderr=0x0) at ../src/os/POSIX/ProcessPosix.m3:21 > #9 0x0000329e in Main__FApply (cl=0xb05ae0) at ../src/Main.m3:56 > #10 0x00041068 in ThreadPThread__RunThread (me=0xe01600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x00040d97 in ThreadPThread__ThreadBase (param=0xe01600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 31 (process 86373): > #0 0x9710b136 in semaphore_wait_trap () > #1 0x97110c53 in pthread_mutex_lock () > #2 0x00044929 in ThreadPThread__pthread_mutex_lock (i=0x7e920) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 > #3 0x00043bc4 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 > #4 0x0003f2e6 in ThreadPThread__InitMutex (m=0x2070010, root=0x207000c, Clean=0x3f1b6) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #5 0x0003f38f in ThreadPThread__LockMutex (m=0x207000c) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #6 0x000091e8 in Rd__GetChar (rd=0x207000c) at ../src/rw/Rd.m3:33 > #7 0x0000314d in Main__RApply (cl=0xb05a00) at ../src/Main.m3:42 > #8 0x00041068 in ThreadPThread__RunThread (me=0xe01340) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #9 0x00040d97 in ThreadPThread__ThreadBase (param=0xe01340) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #10 0x9713885d in _pthread_start () > #11 0x971386e2 in thread_start () From jay.krell at cornell.edu Thu Jan 13 16:14:21 2011 From: jay.krell at cornell.edu (Jay K) Date: Thu, 13 Jan 2011 15:14:21 +0000 Subject: [M3devel] parse.c builtins hashtable needed? In-Reply-To: References: <20110113145829.72EAD2474003@birch.elegosoft.com>, , Message-ID: Um. I don't see the point of the hashtable actually. All the calls except "m3_alloca" are translated "directly". I understand that if there were many things like this new m3_alloca, a hashtable would make sense. I understand as well that __builtin_alloca ought to just work w/o special handling, but I didn't debug why. I'm testing the below and expect it will work. Even if atomics are used much. ? Index: m3-sys/m3cc/gcc/gcc/m3cg/parse.c =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3cc/gcc/gcc/m3cg/parse.c,v retrieving revision 1.478 diff -u -r1.478 parse.c --- m3-sys/m3cc/gcc/gcc/m3cg/parse.c 13 Jan 2011 14:58:29 -0000 1.478 +++ m3-sys/m3cc/gcc/gcc/m3cg/parse.c 13 Jan 2011 15:10:35 -0000 @@ -1535,37 +1535,6 @@ return decl; } -/* Return a definition for a builtin function named NAME and whose data type - is TYPE. TYPE should be a function type with argument types. - FUNCTION_CODE tells later passes how to compile calls to this function. - See tree.h for its possible values. - - If LIBRARY_NAME is nonzero, use that for DECL_ASSEMBLER_NAME, - the name to be called if we can't opencode the function. If - ATTRS is nonzero, use that for the function's attribute list. - - copied from gcc/c-decl.c -*/ - -static GTY ((param_is (union tree_node))) htab_t builtins; - -static hashval_t -htab_hash_builtin (const PTR p) -{ - const_tree t = (const_tree)p; - - return htab_hash_pointer (DECL_NAME (t)); -} - -static int -htab_eq_builtin (const PTR p1, const PTR p2) -{ - const_tree t1 = (const_tree)p1; - const_tree t2 = (const_tree)p2; - - return DECL_NAME (t1) == DECL_NAME (t2); -} - static tree builtin_function (PCSTR name, tree type, #if GCC42 @@ -1595,13 +1564,6 @@ gcc_assert (!library_name); } - if (!builtins) - builtins = htab_create_ggc (1021, htab_hash_builtin, - htab_eq_builtin, NULL); - tree* slot = (tree *)htab_find_slot (builtins, decl, INSERT); - gcc_assert (*slot == NULL); - *slot = decl; - TREE_CHAIN (decl) = global_decls; global_decls = decl; @@ -2979,11 +2941,7 @@ static tree m3_convert_function_to_builtin (tree p) { - tree *slot = (tree *)htab_find_slot (builtins, p, NO_INSERT); - - if (slot) - p = *slot; - else if (DECL_NAME (p) == m3_alloca) + if (DECL_NAME (p) == m3_alloca) p = built_in_decls[BUILT_IN_ALLOCA]; return p; } ? - Jay From: jay.krell at cornell.edu To: jkrell at elego.de; m3commit at elegosoft.com Subject: RE: [M3commit] CVS Update: cm3 Date: Thu, 13 Jan 2011 15:06:37 +0000 Hm. I'll try the hashtable instead. - Jay From: jay.krell at cornell.edu To: jkrell at elego.de; m3commit at elegosoft.com Subject: RE: [M3commit] CVS Update: cm3 Date: Thu, 13 Jan 2011 15:00:24 +0000 Index: m3-sys/m3front/src/misc/Marker.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.m3,v retrieving revision 1.8 diff -u -r1.8 Marker.m3 --- m3-sys/m3front/src/misc/Marker.m3 6 Jan 2011 20:40:16 -0000 1.8 +++ m3-sys/m3front/src/misc/Marker.m3 13 Jan 2011 14:56:53 -0000 @@ -248,7 +248,7 @@ END; (* void* _alloca(size_t); *) IF (alloca = NIL) THEN - alloca := CG.Import_procedure (M3ID.Add ("_alloca"), 1, CG.Type.Addr, + alloca := CG.Import_procedure (M3ID.Add ("m3_alloca"), 1, CG.Type.Addr, Target.DefaultCall, new); IF (new) THEN EVAL CG.Declare_param (M3ID.NoID, Target.Word.size, Target.Word.align, Index: m3-sys/m3cc/gcc/gcc/m3cg/parse.c =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3cc/gcc/gcc/m3cg/parse.c,v retrieving revision 1.477 diff -u -r1.477 parse.c --- m3-sys/m3cc/gcc/gcc/m3cg/parse.c 5 Jan 2011 14:34:53 -0000 1.477 +++ m3-sys/m3cc/gcc/gcc/m3cg/parse.c 13 Jan 2011 14:56:53 -0000 @@ -473,6 +473,8 @@ #define t_void void_type_node static GTY (()) tree t_set; +static tree m3_alloca; + static const struct { UINT32 type_id; tree* t; } builtin_uids[] = { { UID_INTEGER, &t_int }, { UID_LONGINT, &t_longint }, @@ -1750,6 +1752,7 @@ bits_per_integer_tree = build_int_cst (t_word, BITS_PER_INTEGER); bytes_per_integer_tree = build_int_cst (t_word, BITS_PER_INTEGER / BITS_PER_UNIT); tree stdcall = get_identifier_with_length (CONSTANT_STRING_AND_LENGTH ("stdcall")); + m3_alloca = get_identifier_with_length (CONSTANT_STRING_AND_LENGTH ("m3_alloca")); stdcall_list = build_tree_list (stdcall, NULL); t_set = m3_build_pointer_type (t_word); @@ -2979,22 +2982,9 @@ tree *slot = (tree *)htab_find_slot (builtins, p, NO_INSERT); if (slot) - { p = *slot; - } - else - { - const char *name = IDENTIFIER_POINTER (DECL_NAME (p)); - if (name[0] == 'a' || name[0] == '_') - { - if (strcmp(name, "alloca") == 0 - || strcmp(name, "_alloca") == 0 - || strcmp(name, "__builtin_alloca") == 0) - { - p = built_in_decls[BUILT_IN_ALLOCA]; - } - } - } + else if (DECL_NAME (p) == m3_alloca) + p = built_in_decls[BUILT_IN_ALLOCA]; return p; } - Jay > Date: Thu, 13 Jan 2011 15:58:29 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 11/01/13 15:58:29 > > Modified files: > cm3/m3-sys/m3front/src/misc/: Marker.m3 > cm3/m3-sys/m3cc/gcc/gcc/m3cg/: parse.c > > Log message: > __builtin_alloca didn't work w/o translation > among alloca, _alloca, __builtin_alloca, make up our own name, m3_alloca > and do the comparison by pointer equality (since gcc uses > string interning) > I'd also go for _m3_alloca, __m3_alloca, or alloca, or darn near > anything else. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.caltech.edu Fri Jan 14 15:21:05 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Fri, 14 Jan 2011 06:21:05 -0800 Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <7023B2A2-F3A8-4381-9250-117CC632CE66@cs.purdue.edu> References: <20110113055848.D4DF02474003@birch.elegosoft.com> <20110113070302.E7E761A205B@async.async.caltech.edu> <20110113175307.0EB651A2061@async.async.caltech.edu> <7023B2A2-F3A8-4381-9250-117CC632CE66@cs.purdue.edu> Message-ID: <20110114142105.4B37A1A207A@async.async.caltech.edu> Tony, Yes on closer reflection I agree with your statement that it isn't surprising it runs slowly. What I have realized is that the simplicity of the user-threads implementation makes that implementation much more fair than the pthreads implementation appears to be. (Which is of course not a real problem but something that shows up in synthetic applications like the thread tester.) I added code to print the youngest and median thread in each of the three categories and I'd agree that what I see is about what you'd expect. The threads also have very different workloads, so under pthreads it's not surprising that some of them make progress faster than others. Here's the typical output now (99 threads, pthreads): [HAL:tests/thread/src] mika% ../I386_DARWIN/threadtest Writing file...done Creating reader threads...done Creating forker threads...done Creating allocator threads...done running...printing oldest/median age/newest laziest thread is 1295014272/0/0 seconds behind (read 1295014272/1295014272/0 fork 0/0/0 alloc 0/0/0) laziest thread is 1295014282/0/0 seconds behind (read 1295014282/7/0 fork 0/0/0 alloc 0/0/0) laziest thread is 1295014292/0/0 seconds behind (read 1295014292/6/0 fork 0/0/0 alloc 0/0/0) laziest thread is 35/1/0 seconds behind (read 35/9/1 fork 1/1/1 alloc 1/1/0) ... With PM3 user threads, the switching is probably just round-robin, and you get: (110)rover:~/cm3-writable/cm3/m3-libs/m3core/tests/thread/src>../FreeBSD4/threadtest Writing file...done Creating reader threads...done Creating forker threads...done Creating allocator threads...done running...printing oldest/median age/newest laziest thread is 9/4/0 seconds behind (read 9/7/4 fork 4/4/4 alloc 4/2/0) laziest thread is 8/4/0 seconds behind (read 8/7/4 fork 4/4/4 alloc 4/2/0) laziest thread is 8/4/0 seconds behind (read 8/6/4 fork 4/4/4 alloc 4/2/0) ... I only rarely see the assertion failure from the C code. I have not been able to reproduce it with @M3noincremental (yet). However I have seen a "more serious" assertion failure: [HAL:tests/thread/src] mika% ../I386_DARWIN/threadtest Writing file...done Creating reader threads...done Creating forker threads...done Creating allocator threads...done running...printing oldest/median age/newest *** *** runtime error: *** Thread client error: 22 *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 120 *** *** *** runtime error: *** An array subscript was out of range. *** file "../src/runtime/common/RTCollector.m3", line 418 *** Abort This happened with n = 9 threads. I tried it again in the debugger and only got the assertion for RTCollector. Here's the traceback for the crashing thread: Thread 10 (process 2811): #0 0x971784fe in __semwait_signal_nocancel () #1 0x971783e2 in nanosleep$NOCANCEL$UNIX2003 () #2 0x971f32aa in usleep$NOCANCEL$UNIX2003 () #3 0x972149c8 in abort () #4 0x000457a4 in Cstdlib__abort () at ../src/C/Common/CstdlibC.c:21 #5 0x0003de10 in RTOS__Crash () at ../src/runtime/POSIX/RTOS.m3:20 #6 0x00037ea4 in RTProcess__Crash (msg=0x0) at ../src/runtime/common/RTProcess.m3:65 #7 0x000362ed in RTError__EndError (crash=1 '\001') at ../src/runtime/common/RTError.m3:118 #8 0x00036005 in RTError__MsgS (file=0x6baa9, line=418, msgA=0x6c748, msgB=0x69890, msgC=0x6c748) at ../src/runtime/common/RTError.m3:40 #9 0x000366da in RTException__Crash (a=0xb0490a64, raises=0 '\0', rte=0x69740) at ../src/runtime/common/RTException.m3:79 #10 0x00036432 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:39 #11 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25 #12 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85 #13 0x000364c3 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:47 #14 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25 #15 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85 #16 0x0002655a in RTHooks__ReportFault (module=0x7b200, info=13378) at ../src/runtime/common/RTHooks.m3:111 #17 0x00033f2f in _m3_fault (arg=13378) at ../src/runtime/common/RTCollector.m3:393 #18 0x0002afb0 in RTCollector__Move (self=0x213000c, cp=0x2030014) at ../src/runtime/common/RTCollector.m3:418 #19 0x0002987f in RTHeapMap__Walk (x=0x2030014, pc=0x66068, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:202 #20 0x0002902a in RTHeapMap__DoWalkRef (t=0x782f4, a=0x2030014, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:62 #21 0x00029001 in RTHeapMap__DoWalkRef (t=0x786f4, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57 #22 0x00029001 in RTHeapMap__DoWalkRef (t=0x78808, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57 #23 0x00028fb4 in RTHeapMap__WalkRef (h=0x2030008, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:47 #24 0x0002d3ab in RTCollector__CleanBetween (h=0x2030008, he=0x2040000, clean=0 '\0') at ../src/runtime/common/RTCollector.m3:1091 #25 0x0002d1e2 in RTCollector__CleanPage (page=0x2030000) at ../src/runtime/common/RTCollector.m3:1064 #26 0x0002c8f9 in RTCollector__CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:885 #27 0x0002c012 in RTCollector__CollectSome () at ../src/runtime/common/RTCollector.m3:720 #28 0x0002bc54 in RTHeapRep__CollectEnough () at ../src/runtime/common/RTCollector.m3:654 #29 0x00027fd9 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa04794) at ../src/runtime/common/RTAllocator.m3:365 #30 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:294 #31 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:143 #32 0x00004001 in Main__AApply (cl=0xb054bc) at ../src/Main.m3:130 #33 0x0004145c in ThreadPThread__RunThread (me=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #34 0x0004118b in ThreadPThread__ThreadBase (param=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #35 0x9713885d in _pthread_start () #36 0x971386e2 in thread_start () Complete traceback attached below. Again, I modified the program from tests/thread/src/Main.m3 to read "nOver3 = 3" to get this behavior. Mika Tony Hosking writes: >I'm not surprised it runs slowly. There is a lot of contention for = >allocation of pages to satisfy all the allocation requests. Plus GC I = >expect. Can you try running with @M3noincremental and see how it goes? = >Weird about the assertion failure. I think we should be checking for = >EBUSY. > >On Jan 13, 2011, at 12:53 PM, Mika Nystrom wrote: > >> Tony, no, the test program=20 >>=20 >> (1) printed the assertion failure. >>=20 >> (2) did NOT deadlock >>=20 >> (3) ran very very slowly (at least some threads did) >>=20 >> (4) kept running after printing the assertion failure and exited = >normally >>=20 >> The actual application may have behaved differently but there seems to = >be >> enough here to constitute one or two bugs...? >>=20 >> My test program seems very effective, by the way. It has had = >objections >> to every version you've checked in so far... :-) >>=20 >> Mika >>=20 Thread 10 (process 2811): #0 0x971784fe in __semwait_signal_nocancel () #1 0x971783e2 in nanosleep$NOCANCEL$UNIX2003 () #2 0x971f32aa in usleep$NOCANCEL$UNIX2003 () #3 0x972149c8 in abort () #4 0x000457a4 in Cstdlib__abort () at ../src/C/Common/CstdlibC.c:21 #5 0x0003de10 in RTOS__Crash () at ../src/runtime/POSIX/RTOS.m3:20 #6 0x00037ea4 in RTProcess__Crash (msg=0x0) at ../src/runtime/common/RTProcess.m3:65 #7 0x000362ed in RTError__EndError (crash=1 '\001') at ../src/runtime/common/RTError.m3:118 #8 0x00036005 in RTError__MsgS (file=0x6baa9, line=418, msgA=0x6c748, msgB=0x69890, msgC=0x6c748) at ../src/runtime/common/RTError.m3:40 #9 0x000366da in RTException__Crash (a=0xb0490a64, raises=0 '\0', rte=0x69740) at ../src/runtime/common/RTException.m3:79 #10 0x00036432 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:39 #11 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25 #12 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85 #13 0x000364c3 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:47 #14 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25 #15 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85 #16 0x0002655a in RTHooks__ReportFault (module=0x7b200, info=13378) at ../src/runtime/common/RTHooks.m3:111 #17 0x00033f2f in _m3_fault (arg=13378) at ../src/runtime/common/RTCollector.m3:393 #18 0x0002afb0 in RTCollector__Move (self=0x213000c, cp=0x2030014) at ../src/runtime/common/RTCollector.m3:418 #19 0x0002987f in RTHeapMap__Walk (x=0x2030014, pc=0x66068, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:202 #20 0x0002902a in RTHeapMap__DoWalkRef (t=0x782f4, a=0x2030014, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:62 #21 0x00029001 in RTHeapMap__DoWalkRef (t=0x786f4, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57 #22 0x00029001 in RTHeapMap__DoWalkRef (t=0x78808, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57 #23 0x00028fb4 in RTHeapMap__WalkRef (h=0x2030008, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:47 #24 0x0002d3ab in RTCollector__CleanBetween (h=0x2030008, he=0x2040000, clean=0 '\0') at ../src/runtime/common/RTCollector.m3:1091 #25 0x0002d1e2 in RTCollector__CleanPage (page=0x2030000) at ../src/runtime/common/RTCollector.m3:1064 #26 0x0002c8f9 in RTCollector__CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:885 #27 0x0002c012 in RTCollector__CollectSome () at ../src/runtime/common/RTCollector.m3:720 #28 0x0002bc54 in RTHeapRep__CollectEnough () at ../src/runtime/common/RTCollector.m3:654 #29 0x00027fd9 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa04794) at ../src/runtime/common/RTAllocator.m3:365 #30 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:294 #31 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:143 #32 0x00004001 in Main__AApply (cl=0xb054bc) at ../src/Main.m3:130 #33 0x0004145c in ThreadPThread__RunThread (me=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #34 0x0004118b in ThreadPThread__ThreadBase (param=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #35 0x9713885d in _pthread_start () #36 0x971386e2 in thread_start () Thread 9 (process 2811): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 #4 0x00027fd4 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa046e4) at ../src/runtime/common/RTAllocator.m3:363 #5 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb040ee90) at ../src/runtime/common/RTAllocator.m3:294 #6 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb040ee90) at ../src/runtime/common/RTAllocator.m3:143 #7 0x00004001 in Main__AApply (cl=0xb05484) at ../src/Main.m3:130 #8 0x0004145c in ThreadPThread__RunThread (me=0xa046a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #9 0x0004118b in ThreadPThread__ThreadBase (param=0xa046a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #10 0x9713885d in _pthread_start () #11 0x971386e2 in thread_start () Thread 8 (process 2811): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 #4 0x00027fd4 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa04634) at ../src/runtime/common/RTAllocator.m3:363 #5 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb038ce90) at ../src/runtime/common/RTAllocator.m3:294 #6 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb038ce90) at ../src/runtime/common/RTAllocator.m3:143 #7 0x00004001 in Main__AApply (cl=0xb0544c) at ../src/Main.m3:130 #8 0x0004145c in ThreadPThread__RunThread (me=0xa045f0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #9 0x0004118b in ThreadPThread__ThreadBase (param=0xa045f0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #10 0x9713885d in _pthread_start () #11 0x971386e2 in thread_start () Thread 7 (process 2811): #0 0x9716c1d6 in __wait4 () #1 0x9716c1c9 in waitpid$UNIX2003 () #2 0x000453e7 in Uexec__waitpid (i=2843, j=0xb030ad8c, k=0) at ../src/unix/Common/Uexec.c:67 #3 0x00042252 in SchedulerPosix__WaitProcess (pid=2843, status=0xb030ad8c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 #4 0x00009928 in Process__Wait (p=0xb9000c) at ../src/os/POSIX/ProcessPosixCommon.m3:275 #5 0x00003e92 in Main__FApply (cl=0xb05414) at ../src/Main.m3:117 #6 0x0004145c in ThreadPThread__RunThread (me=0xa04590) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #7 0x0004118b in ThreadPThread__ThreadBase (param=0xa04590) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #8 0x9713885d in _pthread_start () #9 0x971386e2 in thread_start () Thread 6 (process 2811): #0 0x9716c1d6 in __wait4 () #1 0x9716c1c9 in waitpid$UNIX2003 () #2 0x000453e7 in Uexec__waitpid (i=2842, j=0xb0288d8c, k=0) at ../src/unix/Common/Uexec.c:67 #3 0x00042252 in SchedulerPosix__WaitProcess (pid=2842, status=0xb0288d8c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 #4 0x00009928 in Process__Wait (p=0xc1000c) at ../src/os/POSIX/ProcessPosixCommon.m3:275 #5 0x00003e92 in Main__FApply (cl=0xb053dc) at ../src/Main.m3:117 #6 0x0004145c in ThreadPThread__RunThread (me=0xa043a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #7 0x0004118b in ThreadPThread__ThreadBase (param=0xa043a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #8 0x9713885d in _pthread_start () #9 0x971386e2 in thread_start () Thread 5 (process 2811): #0 0x9716c1d6 in __wait4 () #1 0x9716c1c9 in waitpid$UNIX2003 () #2 0x000453e7 in Uexec__waitpid (i=2841, j=0xb0206d8c, k=0) at ../src/unix/Common/Uexec.c:67 #3 0x00042252 in SchedulerPosix__WaitProcess (pid=2841, status=0xb0206d8c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 #4 0x00009928 in Process__Wait (p=0xb7000c) at ../src/os/POSIX/ProcessPosixCommon.m3:275 #5 0x00003e92 in Main__FApply (cl=0xb053a4) at ../src/Main.m3:117 #6 0x0004145c in ThreadPThread__RunThread (me=0xa042f0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #7 0x0004118b in ThreadPThread__ThreadBase (param=0xa042f0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #8 0x9713885d in _pthread_start () #9 0x971386e2 in thread_start () Thread 4 (process 2811): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 #4 0x0003f6da in ThreadPThread__InitMutex (m=0x2120010, root=0x212000c, Clean=0x3f5aa) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #5 0x0003f783 in ThreadPThread__LockMutex (m=0x212000c) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #6 0x0000a323 in Rd__GetChar (rd=0x212000c) at ../src/rw/Rd.m3:33 #7 0x00003c2e in Main__RApply (cl=0xb0536c) at ../src/Main.m3:95 #8 0x0004145c in ThreadPThread__RunThread (me=0xa04240) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #9 0x0004118b in ThreadPThread__ThreadBase (param=0xa04240) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #10 0x9713885d in _pthread_start () #11 0x971386e2 in thread_start () Thread 3 (process 2811): #0 ThreadPThread__LockMutex (m=0xd0000c) at ../src/thread/PTHREAD/ThreadPThread.m3:122 #1 0x0000a323 in Rd__GetChar (rd=0xd0000c) at ../src/rw/Rd.m3:33 #2 0x00003c2e in Main__RApply (cl=0xb05334) at ../src/Main.m3:95 #3 0x0004145c in ThreadPThread__RunThread (me=0xa04190) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #4 0x0004118b in ThreadPThread__ThreadBase (param=0xa04190) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #5 0x9713885d in _pthread_start () #6 0x971386e2 in thread_start () Thread 2 (process 2811): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 #4 0x00027fd4 in RTAllocator__AllocTraced (dataSize=12, dataAlignment=4, thread=0xa040a4) at ../src/runtime/common/RTAllocator.m3:363 #5 0x00027387 in RTAllocator__GetTracedObj (def=0x77654) at ../src/runtime/common/RTAllocator.m3:224 #6 0x00026e20 in RTHooks__AllocateTracedObj (defn=0x77654) at ../src/runtime/common/RTAllocator.m3:122 #7 0x00005239 in FilePosix__New (fd=5, ds=1) at ../src/os/POSIX/FilePosix.m3:63 #8 0x000067df in FS__OpenFileReadonly (pn=0x64324) at ../src/os/POSIX/FSPosix.m3:182 #9 0x000103e8 in FileRd__Open (p=0x64324) at ../src/rw/FileRd.m3:16 #10 0x00003b9b in Main__RApply (cl=0xb052fc) at ../src/Main.m3:92 #11 0x0004145c in ThreadPThread__RunThread (me=0xa04060) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #12 0x0004118b in ThreadPThread__ThreadBase (param=0xa04060) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #13 0x9713885d in _pthread_start () #14 0x971386e2 in thread_start () Thread 1 (process 2811): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x00044c7c in ThreadPThread__pthread_cond_timedwait (cond=0xa03ca0, mutex=0xa03c70, m3timeout=1295014649.3298399) at ../src/thread/PTHREAD/ThreadPThreadC.c:430 #4 0x00041ca3 in ThreadPThread__XPause (self=0xa03c10, n=10, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x00041d73 in Thread__Pause (n=10) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000046e2 in Main_M3 (mode=1) at ../src/Main.m3:214 #7 0x00035549 in RTLinker__RunMainBody (m=0x76920) at ../src/runtime/common/RTLinker.m3:406 #8 0x000349a5 in RTLinker__AddUnitI (m=0x76920) at ../src/runtime/common/RTLinker.m3:113 #9 0x00034a26 in RTLinker__AddUnit (b=0x455c) at ../src/runtime/common/RTLinker.m3:122 #10 0x000039fc in main (argc=1, argv=0xbffff5cc, envp=0xbffff5d4) at _m3main.c:16 From hosking at cs.purdue.edu Fri Jan 14 17:08:54 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 14 Jan 2011 11:08:54 -0500 Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <20110114142105.4B37A1A207A@async.async.caltech.edu> References: <20110113055848.D4DF02474003@birch.elegosoft.com> <20110113070302.E7E761A205B@async.async.caltech.edu> <20110113175307.0EB651A2061@async.async.caltech.edu> <7023B2A2-F3A8-4381-9250-117CC632CE66@cs.purdue.edu> <20110114142105.4B37A1A207A@async.async.caltech.edu> Message-ID: <6CC44E59-D16C-452E-B9AC-73C19E51216F@cs.purdue.edu> Can you try to get the crash with @M3paranoidgc and report the result? It would be good to capture any abort that occurs in the debugger and show the traceback. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 14, 2011, at 9:21 AM, Mika Nystrom wrote: > Tony, > > Yes on closer reflection I agree with your statement that it isn't > surprising it runs slowly. What I have realized is that the simplicity of > the user-threads implementation makes that implementation much more fair > than the pthreads implementation appears to be. (Which is of course not > a real problem but something that shows up in synthetic applications like > the thread tester.) I added code to print the youngest and median thread > in each of the three categories and I'd agree that what I see is about > what you'd expect. The threads also have very different workloads, so under > pthreads it's not surprising that some of them make progress faster > than others. > > Here's the typical output now (99 threads, pthreads): > > [HAL:tests/thread/src] mika% ../I386_DARWIN/threadtest > Writing file...done > Creating reader threads...done > Creating forker threads...done > Creating allocator threads...done > running...printing oldest/median age/newest > laziest thread is 1295014272/0/0 seconds behind (read 1295014272/1295014272/0 fork 0/0/0 alloc 0/0/0) > laziest thread is 1295014282/0/0 seconds behind (read 1295014282/7/0 fork 0/0/0 alloc 0/0/0) > laziest thread is 1295014292/0/0 seconds behind (read 1295014292/6/0 fork 0/0/0 alloc 0/0/0) > laziest thread is 35/1/0 seconds behind (read 35/9/1 fork 1/1/1 alloc 1/1/0) > ... > > With PM3 user threads, the switching is probably just round-robin, and you get: > > (110)rover:~/cm3-writable/cm3/m3-libs/m3core/tests/thread/src>../FreeBSD4/threadtest > Writing file...done > Creating reader threads...done > Creating forker threads...done > Creating allocator threads...done > running...printing oldest/median age/newest > laziest thread is 9/4/0 seconds behind (read 9/7/4 fork 4/4/4 alloc 4/2/0) > laziest thread is 8/4/0 seconds behind (read 8/7/4 fork 4/4/4 alloc 4/2/0) > laziest thread is 8/4/0 seconds behind (read 8/6/4 fork 4/4/4 alloc 4/2/0) > ... > > I only rarely see the assertion failure from the C code. I have not been able > to reproduce it with @M3noincremental (yet). However I have seen a "more serious" > assertion failure: > > [HAL:tests/thread/src] mika% ../I386_DARWIN/threadtest > Writing file...done > Creating reader threads...done > Creating forker threads...done > Creating allocator threads...done > running...printing oldest/median age/newest > > > *** > *** runtime error: > *** Thread client error: 22 > *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 120 > *** > > > > *** > *** runtime error: > *** An array subscript was out of range. > *** file "../src/runtime/common/RTCollector.m3", line 418 > *** > > Abort > > This happened with n = 9 threads. > > I tried it again in the debugger and only got the assertion for RTCollector. > > Here's the traceback for the crashing thread: > > Thread 10 (process 2811): > #0 0x971784fe in __semwait_signal_nocancel () > #1 0x971783e2 in nanosleep$NOCANCEL$UNIX2003 () > #2 0x971f32aa in usleep$NOCANCEL$UNIX2003 () > #3 0x972149c8 in abort () > #4 0x000457a4 in Cstdlib__abort () at ../src/C/Common/CstdlibC.c:21 > #5 0x0003de10 in RTOS__Crash () at ../src/runtime/POSIX/RTOS.m3:20 > #6 0x00037ea4 in RTProcess__Crash (msg=0x0) at ../src/runtime/common/RTProcess.m3:65 > #7 0x000362ed in RTError__EndError (crash=1 '\001') at ../src/runtime/common/RTError.m3:118 > #8 0x00036005 in RTError__MsgS (file=0x6baa9, line=418, msgA=0x6c748, msgB=0x69890, msgC=0x6c748) at ../src/runtime/common/RTError.m3:40 > #9 0x000366da in RTException__Crash (a=0xb0490a64, raises=0 '\0', rte=0x69740) at ../src/runtime/common/RTException.m3:79 > #10 0x00036432 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:39 > #11 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25 > #12 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85 > #13 0x000364c3 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:47 > #14 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25 > #15 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85 > #16 0x0002655a in RTHooks__ReportFault (module=0x7b200, info=13378) at ../src/runtime/common/RTHooks.m3:111 > #17 0x00033f2f in _m3_fault (arg=13378) at ../src/runtime/common/RTCollector.m3:393 > #18 0x0002afb0 in RTCollector__Move (self=0x213000c, cp=0x2030014) at ../src/runtime/common/RTCollector.m3:418 > #19 0x0002987f in RTHeapMap__Walk (x=0x2030014, pc=0x66068, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:202 > #20 0x0002902a in RTHeapMap__DoWalkRef (t=0x782f4, a=0x2030014, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:62 > #21 0x00029001 in RTHeapMap__DoWalkRef (t=0x786f4, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57 > #22 0x00029001 in RTHeapMap__DoWalkRef (t=0x78808, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57 > #23 0x00028fb4 in RTHeapMap__WalkRef (h=0x2030008, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:47 > #24 0x0002d3ab in RTCollector__CleanBetween (h=0x2030008, he=0x2040000, clean=0 '\0') at ../src/runtime/common/RTCollector.m3:1091 > #25 0x0002d1e2 in RTCollector__CleanPage (page=0x2030000) at ../src/runtime/common/RTCollector.m3:1064 > #26 0x0002c8f9 in RTCollector__CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:885 > #27 0x0002c012 in RTCollector__CollectSome () at ../src/runtime/common/RTCollector.m3:720 > #28 0x0002bc54 in RTHeapRep__CollectEnough () at ../src/runtime/common/RTCollector.m3:654 > #29 0x00027fd9 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa04794) at ../src/runtime/common/RTAllocator.m3:365 > #30 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:294 > #31 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:143 > #32 0x00004001 in Main__AApply (cl=0xb054bc) at ../src/Main.m3:130 > #33 0x0004145c in ThreadPThread__RunThread (me=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #34 0x0004118b in ThreadPThread__ThreadBase (param=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #35 0x9713885d in _pthread_start () > #36 0x971386e2 in thread_start () > > > Complete traceback attached below. Again, I modified the program from > tests/thread/src/Main.m3 to read "nOver3 = 3" to get this behavior. > > Mika > > > > > Tony Hosking writes: >> I'm not surprised it runs slowly. There is a lot of contention for = >> allocation of pages to satisfy all the allocation requests. Plus GC I = >> expect. Can you try running with @M3noincremental and see how it goes? = >> Weird about the assertion failure. I think we should be checking for = >> EBUSY. >> >> On Jan 13, 2011, at 12:53 PM, Mika Nystrom wrote: >> >>> Tony, no, the test program=20 >>> =20 >>> (1) printed the assertion failure. >>> =20 >>> (2) did NOT deadlock >>> =20 >>> (3) ran very very slowly (at least some threads did) >>> =20 >>> (4) kept running after printing the assertion failure and exited = >> normally >>> =20 >>> The actual application may have behaved differently but there seems to = >> be >>> enough here to constitute one or two bugs...? >>> =20 >>> My test program seems very effective, by the way. It has had = >> objections >>> to every version you've checked in so far... :-) >>> =20 >>> Mika >>> =20 > > > Thread 10 (process 2811): > #0 0x971784fe in __semwait_signal_nocancel () > #1 0x971783e2 in nanosleep$NOCANCEL$UNIX2003 () > #2 0x971f32aa in usleep$NOCANCEL$UNIX2003 () > #3 0x972149c8 in abort () > #4 0x000457a4 in Cstdlib__abort () at ../src/C/Common/CstdlibC.c:21 > #5 0x0003de10 in RTOS__Crash () at ../src/runtime/POSIX/RTOS.m3:20 > #6 0x00037ea4 in RTProcess__Crash (msg=0x0) at ../src/runtime/common/RTProcess.m3:65 > #7 0x000362ed in RTError__EndError (crash=1 '\001') at ../src/runtime/common/RTError.m3:118 > #8 0x00036005 in RTError__MsgS (file=0x6baa9, line=418, msgA=0x6c748, msgB=0x69890, msgC=0x6c748) at ../src/runtime/common/RTError.m3:40 > #9 0x000366da in RTException__Crash (a=0xb0490a64, raises=0 '\0', rte=0x69740) at ../src/runtime/common/RTException.m3:79 > #10 0x00036432 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:39 > #11 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25 > #12 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85 > #13 0x000364c3 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:47 > #14 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25 > #15 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85 > #16 0x0002655a in RTHooks__ReportFault (module=0x7b200, info=13378) at ../src/runtime/common/RTHooks.m3:111 > #17 0x00033f2f in _m3_fault (arg=13378) at ../src/runtime/common/RTCollector.m3:393 > #18 0x0002afb0 in RTCollector__Move (self=0x213000c, cp=0x2030014) at ../src/runtime/common/RTCollector.m3:418 > #19 0x0002987f in RTHeapMap__Walk (x=0x2030014, pc=0x66068, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:202 > #20 0x0002902a in RTHeapMap__DoWalkRef (t=0x782f4, a=0x2030014, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:62 > #21 0x00029001 in RTHeapMap__DoWalkRef (t=0x786f4, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57 > #22 0x00029001 in RTHeapMap__DoWalkRef (t=0x78808, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57 > #23 0x00028fb4 in RTHeapMap__WalkRef (h=0x2030008, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:47 > #24 0x0002d3ab in RTCollector__CleanBetween (h=0x2030008, he=0x2040000, clean=0 '\0') at ../src/runtime/common/RTCollector.m3:1091 > #25 0x0002d1e2 in RTCollector__CleanPage (page=0x2030000) at ../src/runtime/common/RTCollector.m3:1064 > #26 0x0002c8f9 in RTCollector__CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:885 > #27 0x0002c012 in RTCollector__CollectSome () at ../src/runtime/common/RTCollector.m3:720 > #28 0x0002bc54 in RTHeapRep__CollectEnough () at ../src/runtime/common/RTCollector.m3:654 > #29 0x00027fd9 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa04794) at ../src/runtime/common/RTAllocator.m3:365 > #30 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:294 > #31 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:143 > #32 0x00004001 in Main__AApply (cl=0xb054bc) at ../src/Main.m3:130 > #33 0x0004145c in ThreadPThread__RunThread (me=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #34 0x0004118b in ThreadPThread__ThreadBase (param=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #35 0x9713885d in _pthread_start () > #36 0x971386e2 in thread_start () > > Thread 9 (process 2811): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 > #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 > #4 0x00027fd4 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa046e4) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb040ee90) at ../src/runtime/common/RTAllocator.m3:294 > #6 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb040ee90) at ../src/runtime/common/RTAllocator.m3:143 > #7 0x00004001 in Main__AApply (cl=0xb05484) at ../src/Main.m3:130 > #8 0x0004145c in ThreadPThread__RunThread (me=0xa046a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #9 0x0004118b in ThreadPThread__ThreadBase (param=0xa046a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #10 0x9713885d in _pthread_start () > #11 0x971386e2 in thread_start () > > Thread 8 (process 2811): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 > #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 > #4 0x00027fd4 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa04634) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb038ce90) at ../src/runtime/common/RTAllocator.m3:294 > #6 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb038ce90) at ../src/runtime/common/RTAllocator.m3:143 > #7 0x00004001 in Main__AApply (cl=0xb0544c) at ../src/Main.m3:130 > #8 0x0004145c in ThreadPThread__RunThread (me=0xa045f0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #9 0x0004118b in ThreadPThread__ThreadBase (param=0xa045f0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #10 0x9713885d in _pthread_start () > #11 0x971386e2 in thread_start () > > Thread 7 (process 2811): > #0 0x9716c1d6 in __wait4 () > #1 0x9716c1c9 in waitpid$UNIX2003 () > #2 0x000453e7 in Uexec__waitpid (i=2843, j=0xb030ad8c, k=0) at ../src/unix/Common/Uexec.c:67 > #3 0x00042252 in SchedulerPosix__WaitProcess (pid=2843, status=0xb030ad8c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 > #4 0x00009928 in Process__Wait (p=0xb9000c) at ../src/os/POSIX/ProcessPosixCommon.m3:275 > #5 0x00003e92 in Main__FApply (cl=0xb05414) at ../src/Main.m3:117 > #6 0x0004145c in ThreadPThread__RunThread (me=0xa04590) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #7 0x0004118b in ThreadPThread__ThreadBase (param=0xa04590) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #8 0x9713885d in _pthread_start () > #9 0x971386e2 in thread_start () > > Thread 6 (process 2811): > #0 0x9716c1d6 in __wait4 () > #1 0x9716c1c9 in waitpid$UNIX2003 () > #2 0x000453e7 in Uexec__waitpid (i=2842, j=0xb0288d8c, k=0) at ../src/unix/Common/Uexec.c:67 > #3 0x00042252 in SchedulerPosix__WaitProcess (pid=2842, status=0xb0288d8c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 > #4 0x00009928 in Process__Wait (p=0xc1000c) at ../src/os/POSIX/ProcessPosixCommon.m3:275 > #5 0x00003e92 in Main__FApply (cl=0xb053dc) at ../src/Main.m3:117 > #6 0x0004145c in ThreadPThread__RunThread (me=0xa043a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #7 0x0004118b in ThreadPThread__ThreadBase (param=0xa043a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #8 0x9713885d in _pthread_start () > #9 0x971386e2 in thread_start () > > Thread 5 (process 2811): > #0 0x9716c1d6 in __wait4 () > #1 0x9716c1c9 in waitpid$UNIX2003 () > #2 0x000453e7 in Uexec__waitpid (i=2841, j=0xb0206d8c, k=0) at ../src/unix/Common/Uexec.c:67 > #3 0x00042252 in SchedulerPosix__WaitProcess (pid=2841, status=0xb0206d8c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 > #4 0x00009928 in Process__Wait (p=0xb7000c) at ../src/os/POSIX/ProcessPosixCommon.m3:275 > #5 0x00003e92 in Main__FApply (cl=0xb053a4) at ../src/Main.m3:117 > #6 0x0004145c in ThreadPThread__RunThread (me=0xa042f0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #7 0x0004118b in ThreadPThread__ThreadBase (param=0xa042f0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #8 0x9713885d in _pthread_start () > #9 0x971386e2 in thread_start () > > Thread 4 (process 2811): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 > #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 > #4 0x0003f6da in ThreadPThread__InitMutex (m=0x2120010, root=0x212000c, Clean=0x3f5aa) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #5 0x0003f783 in ThreadPThread__LockMutex (m=0x212000c) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #6 0x0000a323 in Rd__GetChar (rd=0x212000c) at ../src/rw/Rd.m3:33 > #7 0x00003c2e in Main__RApply (cl=0xb0536c) at ../src/Main.m3:95 > #8 0x0004145c in ThreadPThread__RunThread (me=0xa04240) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #9 0x0004118b in ThreadPThread__ThreadBase (param=0xa04240) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #10 0x9713885d in _pthread_start () > #11 0x971386e2 in thread_start () > > Thread 3 (process 2811): > #0 ThreadPThread__LockMutex (m=0xd0000c) at ../src/thread/PTHREAD/ThreadPThread.m3:122 > #1 0x0000a323 in Rd__GetChar (rd=0xd0000c) at ../src/rw/Rd.m3:33 > #2 0x00003c2e in Main__RApply (cl=0xb05334) at ../src/Main.m3:95 > #3 0x0004145c in ThreadPThread__RunThread (me=0xa04190) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #4 0x0004118b in ThreadPThread__ThreadBase (param=0xa04190) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #5 0x9713885d in _pthread_start () > #6 0x971386e2 in thread_start () > > Thread 2 (process 2811): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 > #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 > #4 0x00027fd4 in RTAllocator__AllocTraced (dataSize=12, dataAlignment=4, thread=0xa040a4) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x00027387 in RTAllocator__GetTracedObj (def=0x77654) at ../src/runtime/common/RTAllocator.m3:224 > #6 0x00026e20 in RTHooks__AllocateTracedObj (defn=0x77654) at ../src/runtime/common/RTAllocator.m3:122 > #7 0x00005239 in FilePosix__New (fd=5, ds=1) at ../src/os/POSIX/FilePosix.m3:63 > #8 0x000067df in FS__OpenFileReadonly (pn=0x64324) at ../src/os/POSIX/FSPosix.m3:182 > #9 0x000103e8 in FileRd__Open (p=0x64324) at ../src/rw/FileRd.m3:16 > #10 0x00003b9b in Main__RApply (cl=0xb052fc) at ../src/Main.m3:92 > #11 0x0004145c in ThreadPThread__RunThread (me=0xa04060) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x0004118b in ThreadPThread__ThreadBase (param=0xa04060) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > Thread 1 (process 2811): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x00044c7c in ThreadPThread__pthread_cond_timedwait (cond=0xa03ca0, mutex=0xa03c70, m3timeout=1295014649.3298399) at ../src/thread/PTHREAD/ThreadPThreadC.c:430 > #4 0x00041ca3 in ThreadPThread__XPause (self=0xa03c10, n=10, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x00041d73 in Thread__Pause (n=10) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000046e2 in Main_M3 (mode=1) at ../src/Main.m3:214 > #7 0x00035549 in RTLinker__RunMainBody (m=0x76920) at ../src/runtime/common/RTLinker.m3:406 > #8 0x000349a5 in RTLinker__AddUnitI (m=0x76920) at ../src/runtime/common/RTLinker.m3:113 > #9 0x00034a26 in RTLinker__AddUnit (b=0x455c) at ../src/runtime/common/RTLinker.m3:122 > #10 0x000039fc in main (argc=1, argv=0xbffff5cc, envp=0xbffff5d4) at _m3main.c:16 From dabenavidesd at yahoo.es Sun Jan 16 03:27:40 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sun, 16 Jan 2011 02:27:40 +0000 (GMT) Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <20110116011827.DD31F2474003@birch.elegosoft.com> Message-ID: <19786.44534.qm@web29702.mail.ird.yahoo.com> Hi all: Yes, sure just that we need also for range checks and type checks, I mean, I guess the problem are not the client programs by itself if so why do you think they crashed unsafely? The problem is to test the implementation more deeply, perhaps Tony is the best man to do that part of the job I think. However unsafe code there is guaranteed by others to be right, I tend to feel that in those cases a more detailed test compliance is needed, I mean, we don't guarantee every platform behaves exactly as we think of it. Perhaps Jay could be indicated for that part of the job, I think. Thanks in advance --- El s?b, 15/1/11, Mika Nystrom escribi?: > De: Mika Nystrom > Asunto: [M3commit] CVS Update: cm3 > Para: m3commit at elegosoft.com > Fecha: s?bado, 15 de enero, 2011 21:18 > CVSROOT: /usr/cvs > Changes by: mika at birch. > 11/01/16 02:18:27 > > Modified files: > cm3/m3-libs/m3core/tests/thread/src/: > Main.m3 > > Log message: > give the user something to look at while > the program runs (also shows off deadlock well) > > From dabenavidesd at yahoo.es Sun Jan 16 04:36:23 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sun, 16 Jan 2011 03:36:23 +0000 (GMT) Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <19786.44534.qm@web29702.mail.ird.yahoo.com> Message-ID: <878606.72309.qm@web29713.mail.ird.yahoo.com> Hi all: The best source of a check for both cases is a test set for Modula-3 vs C threading programs. I mean what source of it might come to crash if we allow just normal range and type checking by itself on the Modula-3 programs, just C part that we don't have, I assume the Modula-3 parts touching it are thread safe as it's the collector, if a program is to crash badly, it should crash in the Modula-3 version and be unsafely crashed at a certain level on C in some cases (sort of the exceptional cases), I'm more interested that it doesn't crash on both sides, sort of being a good M3 behaved guy, that is, what it would mean is we do have a problem on the threading library implementation (not tested, unmarked exception, or uncaught ones?), given platforms behave well, that sometimes I think they do, but we don't know, that's why we need test some assertions if so (not generate the code if you want to run assembly smoothly sure). Perhaps the best approach here is just to test it right goes into C mode and then is just part of the safe modules to guard type check the bad inputs or outputs ISTYPE() is a good way of doing it if you may allow me say. Thanks in advance. --- El s?b, 15/1/11, Daniel Alejandro Benavides D. escribi?: > De: Daniel Alejandro Benavides D. > Asunto: Re: [M3devel] [M3commit] CVS Update: cm3 > Para: m3commit at elegosoft.com, mika at elego.de, m3devel at elegosoft.com > Fecha: s?bado, 15 de enero, 2011 21:27 > Hi all: > Yes, sure just that we need also for range checks and type > checks, I mean, I guess the problem are not the client > programs by itself if so why do you think they crashed > unsafely? > The problem is to test the implementation more deeply, > perhaps Tony is the best man to do that part of the job I > think. > However unsafe code there is guaranteed by others to be > right, I tend to feel that in those cases a more detailed > test compliance is needed, I mean, we don't guarantee every > platform behaves exactly as we think of it. Perhaps Jay > could be indicated for that part of the job, I think. > Thanks in advance > > --- El s?b, 15/1/11, Mika Nystrom > escribi?: > > > De: Mika Nystrom > > Asunto: [M3commit] CVS Update: cm3 > > Para: m3commit at elegosoft.com > > Fecha: s?bado, 15 de enero, 2011 21:18 > > CVSROOT: /usr/cvs > > Changes by: > mika at birch. > > 11/01/16 02:18:27 > > > > Modified files: > > > cm3/m3-libs/m3core/tests/thread/src/: > > Main.m3 > > > > Log message: > > give the user something to > look at while > > the program runs (also shows off deadlock well) > > > > > > > > From mark at wickensonline.co.uk Mon Jan 17 01:01:36 2011 From: mark at wickensonline.co.uk (Mark Wickens) Date: Mon, 17 Jan 2011 00:01:36 +0000 Subject: [M3devel] Just to prove I've been paying attention for a long time Message-ID: <4D3386E0.20609@wickensonline.co.uk> Thought this might bring a little nostalgia for some - it certainly did for me! Although I only dabbled in Modula-3 I did listen in to the mailing list of the time... From daemon Tue Nov 14 01:36:05 1995 Status: RO X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil] ["2877" "Mon" "13" "November" "1995" "11:58:44" "-0800" "heydon at pa.dec.com" "heydon at pa.dec.com" nil "89" "Re: Modula3 Postcard under Linux Slackware 3.0" "^From:" nil nil "11" nil nil (number " " mark " heydon at pa.dec.com Nov 13 89/2877 " thread-indent "\"Re: Modula3 Postcard under Linux Slackware 3.0\"\n") nil] nil) Received: from jess.luton.ac.uk by ellen.luton.ac.uk; (5.65v3.2/1.1.8.2/09Nov95-0144PM) id AA01562; Tue, 14 Nov 1995 01:36:03 GMT Received: from mail1.digital.com (mail1.digital.com [204.123.2.50]) by jess.luton.ac.uk (8.6.12/8.6.9) with SMTP id BAA01082 for ; Tue, 14 Nov 1995 01:34:41 GMT Received: from src-mail.pa.dec.com by mail1.digital.com; (5.65 EXP 4/12/95 for V3.2/1.0/WV) id AA05303; Mon, 13 Nov 1995 17:20:40 -0800 Received: by src-mail.pa.dec.com; id AA27318; Mon, 13 Nov 95 17:19:14 -0800 Received: by src-news.pa.dec.com; id AA07755; Mon, 13 Nov 95 17:19:13 -0800 Received: by src-news.pa.dec.com; id AA07750; Mon, 13 Nov 95 17:19:12 -0800 Newsgroups: comp.lang.modula3 Path: src.dec.com!heydon Message-Id: <9511131958.AA03371 at juniper.pa.dec.com> In-Reply-To: m3-request at src.dec.com Distribution: world X-Received: by juniper.pa.dec.com; id AA03371; Mon, 13 Nov 1995 11:58:45 -0800 X-Received: by src-news.pa.dec.com; id AA19102; Mon, 13 Nov 95 11:58:46 -0800 X-Mts: smtp Lines: 89 From: heydon at pa.dec.com To: omalley at ics.uci.edu Cc: comp.lang.modula3.usenet at pa.dec.com Subject: Re: Modula3 Postcard under Linux Slackware 3.0 Date: Mon, 13 Nov 95 11:58:44 -0800 Owen, You asked: > However, it is dying in linking Postcard because it can't find > getdirentries. I'm not surprised that the linker can't find it, > because I can't find it either. (There is an extern definition in the > header file, but it doesn't seem to be in any of the libraries.) Am I > missing it somewhere? Is there a newer version of libc that actually > has getdirentries? We've fixed the "getdirentries" problem in the sources at SRC, so it should be included in the next release. In the meantime, you can fix the problem yourself by removing the following declarations from the file named "src/OSUtils.m3" in the "postcard" package: FROM Utypes IMPORT u_short, ino_t; CONST MaxDirNameLen = 64; TYPE DirEntry = RECORD (* directory types somehow missing from Unix.i3 *) d_ino: ino_t; d_reclen: u_short; d_namelen: u_short; d_name: ARRAY [0..MaxDirNameLen-1] OF CHAR; END; <*UNUSED*> PROCEDURE OldEnumerate (path: Text.T): TextList.T RAISES {FileError} = VAR head: TextList.T := NIL; tail, this: TextList.T; t: TEXT; length: int; buffer: ARRAY [0..1023] OF CHAR; de: UNTRACED REF DirEntry; pbase: long; i: INTEGER; p := ConvertPath(path); f := Unix.open(p, Unix.O_RDONLY, 0); BEGIN IF f < 0 THEN RAISE FileError(ErrorMessage(Uerror.errno)); END; TRY LOOP length := Unix.getdirentries( f, ADR(buffer), BYTESIZE(buffer), pbase); IF length < 0 THEN RAISE FileError(ErrorMessage(Uerror.errno)); END; IF length = 0 THEN EXIT; END; i := 0; LOOP de := LOOPHOLE(ADR(buffer[i]), UNTRACED REF DirEntry); IF (de^.d_ino # 0) THEN t := M3toC.CopyStoT (ADR(de^.d_name)); IF NOT (Text.Equal (t, ".") OR Text.Equal (t, "..")) THEN this := TextList.Cons(t, NIL); IF head = NIL THEN head := this; ELSE tail.tail := this; END; tail := this; END; END; INC(i, de^.d_reclen); IF i >= length THEN EXIT; END; END; END; FINALLY EVAL Unix.close(f); END; RETURN head END OldEnumerate; The call to "getdirentries" is in the "OldEnumerate" procedure, but that procedure is never called. The other IMPORT, CONST, and TYPE declarations are only used by "OldEnumerate", so they should be removed to keep the compiler from issuing a warning. Let me know if you apply this patch and still have any problems. - Allan -------------------------------------------------------------------- Allan Heydon Digital Equipment Corporation heydon at pa.dec.com Systems Research Center (415) 853-2142 130 Lytton Avenue (415) 853-2104 (FAX) Palo Alto, CA 94301 From mika at async.caltech.edu Mon Jan 17 18:44:43 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Mon, 17 Jan 2011 09:44:43 -0800 Subject: [M3devel] JSON Message-ID: <20110117174443.B8E3A1A207A@async.async.caltech.edu> Hello m3devel, Does anyone out there have a JSON parser/generator for Modula-3? Mika From dabenavidesd at yahoo.es Tue Jan 18 03:08:14 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Tue, 18 Jan 2011 02:08:14 +0000 (GMT) Subject: [M3devel] JSON In-Reply-To: <20110117174443.B8E3A1A207A@async.async.caltech.edu> Message-ID: <957736.88198.qm@web29718.mail.ird.yahoo.com> Hi all: I think I saw when doing some research on JavaScript, that there was sort or something like an implementation tool from Scheme to JavaScript compiler, however I don't know about exactly what about that. I think it was FOSS, just that didn't fill my purposes (type inference) at that time. Perhaps you can interface easily with JavaScript from the Scheme interpreter if it was written in Scheme (the JavaScript generator I'm talking about). However I must tell you, the next big change in JavaScript is comprehensive, so perhaps you want to look at literature for that. Hope it helps. If not, just don't know what else could be useful than that, thanks in advance --- El lun, 17/1/11, Mika Nystrom escribi?: > De: Mika Nystrom > Asunto: [M3devel] JSON > Para: m3devel at elegosoft.com > Fecha: lunes, 17 de enero, 2011 12:44 > Hello m3devel, > > Does anyone out there have a JSON parser/generator for > Modula-3? > > Mika > From darko at darko.org Tue Jan 18 04:51:43 2011 From: darko at darko.org (Darko) Date: Mon, 17 Jan 2011 19:51:43 -0800 Subject: [M3devel] JSON In-Reply-To: <20110117174443.B8E3A1A207A@async.async.caltech.edu> References: <20110117174443.B8E3A1A207A@async.async.caltech.edu> Message-ID: I have a little programmable expression parser which will take anything you can express in operators (prefix, infix, postfix), function calls and "groupfix" operators, which are basically a comma seperated list between two symbols. Do you have a grammar? On 17/01/2011, at 9:44 AM, Mika Nystrom wrote: > Hello m3devel, > > Does anyone out there have a JSON parser/generator for Modula-3? > > Mika From lemming at henning-thielemann.de Thu Jan 20 13:23:39 2011 From: lemming at henning-thielemann.de (Henning Thielemann) Date: Thu, 20 Jan 2011 13:23:39 +0100 Subject: [M3devel] operator overloading? In-Reply-To: References: Message-ID: <4D38294B.9080705@henning-thielemann.de> Jay K wrote: > Is it really so difficult to add operator overloading to the language? > > From a user's point of view, I know it is very useful in certain > situations. I have a dejavu. This must have been discussed here several times. I remember Rodney Bates' coining "syntactic heroin". "Operator overloading" is actually two extensions: 1. Allowing to write functions in an infix way, preferably using symbols instead of letters. 2. Allow to reuse the same function name depending on context. The first issue is a syntactic one, but a hard one. For infix operators you must define associativity and precedence. If you define it within a module, the parser must adapt to the precedence rules, as it parses them. Alternatively you could define precedence in different syntax descriptions files using a custom language - also bad because you need a new language and management for a new kind of source file. You can no longer just run m3pp from within your editor on a draft of your program, because formatting also depends on precedences. You rather want expressions formatted as long_expresssion + other_long_expression * last_long_expression instead of long_expresssion + other_long_expression * last_long_expression In Haskell precedences are defined by numbers from 0 to 9 and you can declare left-, right- and no associativity. That does not scale well. In PROLOG you have numeric precedences in the range 1-1000 or so, and a little more fine grained associativity rules. In Agda you have numeric precedences also in a quite large range (1-1000 or so) and mixfix notation, that is, a function with three arguments can be written according to a pattern like (if _ then _ else _). I still think that the most natural way to define precedences is by relations like "'-' shall bind as much as '+', whereas '*' should bind stronger than '+'". Those numeric precedences are to maintain, just like line numbers in old BASICs. The second issue is the resolution of ambiguous names. Modula-3 has no support for this, currently. Haskell solves this cleanly using 'type classes', that despite the name do not have much in common with object-oriented classes. But these type classes are based on Hindley-Milner type system that allows e.g. to assert that two operands have the same type, another thing that Modula-3 does not have and that cannot easily be added. In short, I think both infix or mixfix notation and resolution of ambiguous names require fundamental changes to Modula-3. If they are essential for you, it might be easier for you to use a language that supports them well. -- Mit freundlichen Gruessen Henning Thielemann Viele Gruesse Henning Martin-Luther-Universitaet Halle-Wittenberg, Institut fuer Informatik Tel. +49 - 345 - 55 24773 Fax +49 - 345 - 55 27333 From dragisha at m3w.org Thu Jan 20 14:34:02 2011 From: dragisha at m3w.org (=?utf-8?Q?Dragi=C5=A1a_Duri=C4=87?=) Date: Thu, 20 Jan 2011 14:34:02 +0100 Subject: [M3devel] operator overloading? [no, please!] In-Reply-To: <4D38294B.9080705@henning-thielemann.de> References: <4D38294B.9080705@henning-thielemann.de> Message-ID: <16D538BA-8279-4326-B37D-420F8DEC29FE@m3w.org> I hope this subject will die, and fast :). With operator overloading it is not Modula-3 anymore. Not nearly. I have scripting language, developed in-house and influenced by Modula-3 and a need for some more dynamic features, need which arises from time to time. It is extensible extension language, parsed to AST and interpreted from there. When I get time, I'll generate something object from it, but it works as it is. One of my plans is to extend it to used ObjectiveC objects and runtime... All outside of Modula-3 but near enough to be fully useable. Please don't kill Modula-3! On Jan 20, 2011, at 1:23 PM, Henning Thielemann wrote: ... From schlepptop at henning-thielemann.de Thu Jan 20 21:30:17 2011 From: schlepptop at henning-thielemann.de (Henning Thielemann) Date: Thu, 20 Jan 2011 21:30:17 +0100 Subject: [M3devel] operator overloading? In-Reply-To: References: <08B4C568-4EF9-40A5-9144-606D3A5CF1E0@cs.purdue.edu> <20101121192734.DB4761A208C@async.async.caltech.edu> Message-ID: <4D389B59.20009@henning-thielemann.de> Tony Hosking schrieb: > > > On Nov 21, 2010, at 3:11 PM, Jay K wrote: > >> > I'm now starting to wish that we had left LONGINT out, >> >> >> Just now? :) >> (This is another reason I'm somewhat open to tediously using >> Target.Int in frontend, >> in case we do lose LONGINT.) > > What it really suggests is that we need a proper infinite precision > integer library. Do we have one somewhere already? I have coded BigInteger in arithmetic package. It is not tuned in any way (no Fourier transform and such tricks) and may contain bugs. You may better call GNU multi precision library GMP. From dragisha at m3w.org Thu Jan 20 22:46:13 2011 From: dragisha at m3w.org (=?utf-8?Q?Dragi=C5=A1a_Duri=C4=87?=) Date: Thu, 20 Jan 2011 22:46:13 +0100 Subject: [M3devel] operator overloading? In-Reply-To: <4D389B59.20009@henning-thielemann.de> References: <08B4C568-4EF9-40A5-9144-606D3A5CF1E0@cs.purdue.edu> <20101121192734.DB4761A208C@async.async.caltech.edu> <4D389B59.20009@henning-thielemann.de> Message-ID: openssl library implements arbitrary precision integers, and I am using it on Windows, Linux and OSX. My binding is not complete but is useful, and I can submit it to cm3 for use/extending/... dd On Jan 20, 2011, at 9:30 PM, Henning Thielemann wrote: > Tony Hosking schrieb: >> >> >> On Nov 21, 2010, at 3:11 PM, Jay K wrote: >> >>>> I'm now starting to wish that we had left LONGINT out, >>> >>> >>> Just now? :) >>> (This is another reason I'm somewhat open to tediously using >>> Target.Int in frontend, >>> in case we do lose LONGINT.) >> >> What it really suggests is that we need a proper infinite precision >> integer library. Do we have one somewhere already? > > I have coded BigInteger in arithmetic package. It is not tuned in any > way (no Fourier transform and such tricks) and may contain bugs. You may > better call GNU multi precision library GMP. > From dabenavidesd at yahoo.es Fri Jan 21 18:40:54 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Fri, 21 Jan 2011 17:40:54 +0000 (GMT) Subject: [M3devel] operator overloading? In-Reply-To: Message-ID: <982895.94898.qm@web29716.mail.ird.yahoo.com> Hi all: I think besides is a needed feature and is in the Green Book to have arithmetic overflow. The longer I see this, I came to see that we would need to simulate each arithmetic overflow case to see whether is ALU or FPU model we have that. This requires simulation overhead in the compiler but I guess the option would be have this infrastructure for source language compliance, thus allowing not compliant hardware to solve this issues with something like this, see: http://nvl.nist.gov/pub/nistpubs/jres/101/2/j2anut.pdf In any case there might not be too much delay for architectures such as VLSI. Thanks in advance --- El jue, 20/1/11, Dragi?a Duri? escribi?: > De: Dragi?a Duri? > Asunto: Re: [M3devel] operator overloading? > Para: "Henning Thielemann" > CC: "m3devel" > Fecha: jueves, 20 de enero, 2011 16:46 > openssl library implements arbitrary > precision integers, and I am using it on Windows, Linux and > OSX. My binding is not complete but is useful, and I can > submit it to cm3 for use/extending/... > > dd > > On Jan 20, 2011, at 9:30 PM, Henning Thielemann wrote: > > > Tony Hosking schrieb: > >> > >> > >> On Nov 21, 2010, at 3:11 PM, Jay K wrote: > >> > >>>> I'm now starting to wish that we had left > LONGINT out, > >>> > >>> > >>> Just now? :) > >>> (This is another reason I'm somewhat open to > tediously using > >>> Target.Int in frontend, > >>> in case we do lose LONGINT.) > >> > >> What it really suggests is that we need a proper > infinite precision > >> integer library. Do we have one somewhere > already? > > > > I have coded BigInteger in arithmetic package. It is > not tuned in any > > way (no Fourier transform and such tricks) and may > contain bugs. You may > > better call GNU multi precision library GMP. > > > > From dabenavidesd at yahoo.es Fri Jan 21 20:54:05 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Fri, 21 Jan 2011 19:54:05 +0000 (GMT) Subject: [M3devel] operator overloading? In-Reply-To: <982895.94898.qm@web29716.mail.ird.yahoo.com> Message-ID: <989777.56540.qm@web29708.mail.ird.yahoo.com> Hi all: there are some tools already to do that kind of computing like in the Modula-3* (see: http://books.google.com/books?id=D67qFdGbrw0C&lpg=PA276&ots=-0xGnTICFX&dq=vlsi%20modula3&pg=PA276#v=onepage&q&f=false ), Model Language (see: http://www.isys.uni-klu.ac.at/PDF/1996-0020-StBo.pdf ) or the Modula-3D (see: ftp://ftp.cs.caltech.edu/tr/cs-tr-93-15.ps.Z ), indeed for that kind of problems too, which address the source level language part automatically, semi-automatically, or syntactically-oriented correspondingly, they could be managed as like language expression extensions or addressed as special language pragmas, so can be run on any kind or types of machines, like without FPU see Modula-3D report, etc. Besides that there is a source compatible framework which allows to detect such type of programming more comprehensibly and automatically if so that could be extended too, click on Look inside on: http://www.springerlink.com/content/2k65413251m333rp/ We do have the distributed framework CM3-IDE to offer that additional kind service if so Thanks in advance --- El vie, 21/1/11, Daniel Alejandro Benavides D. escribi?: > De: Daniel Alejandro Benavides D. > Asunto: Re: [M3devel] operator overloading? > Para: "Henning Thielemann" , "Dragi?a Duri?" > CC: "m3devel" > Fecha: viernes, 21 de enero, 2011 12:40 > Hi all: > I think besides is a needed feature and is in the Green > Book to have arithmetic overflow. > The longer I see this, I came to see that we would need to > simulate each arithmetic overflow case to see whether is ALU > or FPU model we have that. This requires simulation overhead > in the compiler but I guess the option would be have this > infrastructure for source language compliance, thus allowing > not compliant hardware to solve this issues with something > like this, see: > http://nvl.nist.gov/pub/nistpubs/jres/101/2/j2anut.pdf > In any case there might not be too much delay for > architectures such as VLSI. > Thanks in advance > > --- El jue, 20/1/11, Dragi?a Duri? > escribi?: > > > De: Dragi?a Duri? > > Asunto: Re: [M3devel] operator overloading? > > Para: "Henning Thielemann" > > CC: "m3devel" > > Fecha: jueves, 20 de enero, 2011 16:46 > > openssl library implements arbitrary > > precision integers, and I am using it on Windows, > Linux and > > OSX. My binding is not complete but is useful, and I > can > > submit it to cm3 for use/extending/... > > > > dd > > > > On Jan 20, 2011, at 9:30 PM, Henning Thielemann > wrote: > > > > > Tony Hosking schrieb: > > >> > > >> > > >> On Nov 21, 2010, at 3:11 PM, Jay K wrote: > > >> > > >>>> I'm now starting to wish that we had > left > > LONGINT out, > > >>> > > >>> > > >>> Just now? :) > > >>> (This is another reason I'm somewhat open > to > > tediously using > > >>> Target.Int in frontend, > > >>> in case we do lose LONGINT.) > > >> > > >> What it really suggests is that we need a > proper > > infinite precision > > >> integer library. Do we have one > somewhere > > already? > > > > > > I have coded BigInteger in arithmetic package. It > is > > not tuned in any > > > way (no Fourier transform and such tricks) and > may > > contain bugs. You may > > > better call GNU multi precision library GMP. > > > > > > > > > > > From dabenavidesd at yahoo.es Sat Jan 22 02:27:11 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sat, 22 Jan 2011 01:27:11 +0000 (GMT) Subject: [M3devel] operator overloading? In-Reply-To: <989777.56540.qm@web29708.mail.ird.yahoo.com> Message-ID: <302227.69373.qm@web29711.mail.ird.yahoo.com> Hi all: I think the basic building blocks are ready, just that need assembling. One must see however how it must be the model for each non-compliant hardware platform, the Modula-3 system works in such advanced simulations fortunately, like for cache mechanisms and computer models: http://www.liacs.nl/CS/HPC/apparc-deliverables/PME4a.html and http://www.liacs.nl/CS/HPC/apparc-deliverables/HwA6.html however are not parallel per-se but a later version was to be built to do that. Also to note that there is some work on GPGPU.org, although its in initial state they are pushing for getting the platform running accelerated in it. Thank in advance --- El vie, 21/1/11, Daniel Alejandro Benavides D. escribi?: > De: Daniel Alejandro Benavides D. > Asunto: Re: [M3devel] operator overloading? > Para: "Henning Thielemann" , "Dragi?a Duri?" > CC: "m3devel" > Fecha: viernes, 21 de enero, 2011 14:54 > Hi all: > there are some tools already to do that kind of computing > like in the Modula-3* (see: http://books.google.com/books?id=D67qFdGbrw0C&lpg=PA276&ots=-0xGnTICFX&dq=vlsi%20modula3&pg=PA276#v=onepage&q&f=false > ), Model Language (see: http://www.isys.uni-klu.ac.at/PDF/1996-0020-StBo.pdf ) > or the Modula-3D (see: ftp://ftp.cs.caltech.edu/tr/cs-tr-93-15.ps.Z > ), indeed for that kind of problems too, which address the > source level language part automatically, > semi-automatically, or syntactically-oriented > correspondingly, they could be managed as like language > expression extensions or addressed as special language > pragmas, so can be run on any kind or types of machines, > like without FPU see Modula-3D report, etc. > Besides that there is a source compatible framework which > allows to detect such type of programming more > comprehensibly and automatically if so that could be > extended too, click on Look inside on: > http://www.springerlink.com/content/2k65413251m333rp/ > We do have the distributed framework CM3-IDE to offer that > additional kind service if so > > Thanks in advance > > --- El vie, 21/1/11, Daniel Alejandro Benavides D. > escribi?: > > > De: Daniel Alejandro Benavides D. > > Asunto: Re: [M3devel] operator overloading? > > Para: "Henning Thielemann" , > "Dragi?a Duri?" > > CC: "m3devel" > > Fecha: viernes, 21 de enero, 2011 12:40 > > Hi all: > > I think besides is a needed feature and is in the > Green > > Book to have arithmetic overflow. > > The longer I see this, I came to see that we would > need to > > simulate each arithmetic overflow case to see whether > is ALU > > or FPU model we have that. This requires simulation > overhead > > in the compiler but I guess the option would be have > this > > infrastructure for source language compliance, thus > allowing > > not compliant hardware to solve this issues with > something > > like this, see: > > http://nvl.nist.gov/pub/nistpubs/jres/101/2/j2anut.pdf > > In any case there might not be too much delay for > > architectures such as VLSI. > > Thanks in advance > > > > --- El jue, 20/1/11, Dragi?a Duri? > > escribi?: > > > > > De: Dragi?a Duri? > > > Asunto: Re: [M3devel] operator overloading? > > > Para: "Henning Thielemann" > > > CC: "m3devel" > > > Fecha: jueves, 20 de enero, 2011 16:46 > > > openssl library implements arbitrary > > > precision integers, and I am using it on > Windows, > > Linux and > > > OSX. My binding is not complete but is useful, > and I > > can > > > submit it to cm3 for use/extending/... > > > > > > dd > > > > > > On Jan 20, 2011, at 9:30 PM, Henning Thielemann > > wrote: > > > > > > > Tony Hosking schrieb: > > > >> > > > >> > > > >> On Nov 21, 2010, at 3:11 PM, Jay K > wrote: > > > >> > > > >>>> I'm now starting to wish that we > had > > left > > > LONGINT out, > > > >>> > > > >>> > > > >>> Just now? :) > > > >>> (This is another reason I'm somewhat > open > > to > > > tediously using > > > >>> Target.Int in frontend, > > > >>> in case we do lose LONGINT.) > > > >> > > > >> What it really suggests is that we need > a > > proper > > > infinite precision > > > >> integer library. Do we have one > > somewhere > > > already? > > > > > > > > I have coded BigInteger in arithmetic > package. It > > is > > > not tuned in any > > > > way (no Fourier transform and such tricks) > and > > may > > > contain bugs. You may > > > > better call GNU multi precision library > GMP. > > > > > > > > > > > > > > > > > > > > > > From mika at async.caltech.edu Sat Jan 22 03:15:03 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Fri, 21 Jan 2011 18:15:03 -0800 Subject: [M3devel] compile problem on LINUXLIBC6 Message-ID: <20110122021503.615621A205B@async.async.caltech.edu> On the following system: Linux ballista 2.6.34.7-0.5-desktop #1 SMP PREEMPT 2010-10-25 08:40:12 +0200 i686 i686 i386 GNU/Linux gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/i586-suse-linux/4.5/lto-wrapper Target: i586-suse-linux Configured with: ../configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib --libexecdir=/usr/lib --enable-languages=c,c++,objc,fortran,obj-c++,java,ada --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.5 --enable-ssp --disable-libssp --disable-plugin --with-bugurl=http://bugs.opensuse.org/ --with-pkgversion='SUSE Linux' --disable-libgcj --disable-libmudflap --with-slibdir=/lib --with-system-zlib --enable-__cxa_atexit --enable-libstdcxx-allocator=new --disable-libstdcxx-pch --enable-version-specific-runtime-libs --program-suffix=-4.5 --enable-linux-futex --without-system-libunwind --enable-gold --with-plugin-ld=/usr/bin/gold --with-arch-32=i586 --with-tune=generic --build=i586-suse-linux Thread model: posix gcc version 4.5.0 20100604 [gcc-4_5-branch revision 160292] (SUSE Linux) Installing 5.8.6 from the web and then attempting to compile the CVS head using "upgrade.py" leads to the following: echo ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o ./sha1.o ./alloca.o ./argv.o ./choose-temp.o ./concat.o ./cp-demint.o ./crc32.o ./dyn-string.o ./fdmatch.o ./fibheap.o ./filename_cmp.o ./floatformat.o ./fnmatch.o ./fopen_unlocked.o ./getopt.o ./getopt1.o ./getpwd.o ./getruntime.o ./hashtab.o ./hex.o ./lbasename.o ./lrealpath.o ./make-relative-prefix.o ./make-temp-file.o ./objalloc.o ./obstack.o ./partition.o ./pexecute.o ./physmem.o ./pex-common.o ./pex-one.o ./pex-unix.o ./safe-ctype.o ./sort.o ./spaces.o ./splay-tree.o ./strerror.o ./strsignal.o ./unlink-if-ordinary.o ./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o ./xstrerror.o ./xstrndup.o > required-list make[2]: Entering directory `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' make[1]: Leaving directory `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty' cd . && cd libcpp && make MAKE=make AUTOCONF=: AUTOMAKE=: LEX='touch lex.yy.c' MAKEINFO=: libcpp.a cd . && cd libcpp && make MAKE=make AUTOCONF=: AUTOMAKE=: LEX='touch lex.yy.c' MAKEINFO=: libcpp.a g++ -I../../gcc-4.5/libcpp -I. -I../../gcc-4.5/libcpp/../include -I../../gcc-4.5/libcpp/include -g -O2 -W -Wall -Wwrite-strings -Wmissing-format-attribute -pedantic -Wno-long-long -I../../gcc-4.5/libcpp -I. -I../../gcc-4.5/libcpp/../include -I../../gcc-4.5/libcpp/include -c -o charset.o -MT charset.o -MMD -MP -MF .deps/charset.Tpo ../../gcc-4.5/libcpp/charset.c In file included from ../../gcc-4.5/libcpp/system.h:335:0, from ../../gcc-4.5/libcpp/charset.c:24: ../../gcc-4.5/libcpp/../include/libiberty.h:106:36: error: new declaration ? /usr/include/string.h:601:28: error: ambiguates old declaration ? make: *** [charset.o] Error 1 "/home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile", line 273: quake runtime error: exit 2: cd . && cd libcpp && make MAKE=make AUTOCONF=: AUTOMAKE=: LEX='touch lex.yy.c' MAKEINFO=: libcpp.a --procedure-- -line- -file--- exec -- m3cc_Run 273 /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile include_dir 518 /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile 5 /home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/m3make.args Fatal Error: package build failed *** execution of [, ] failed *** It looks like a clash between a declaration in libiberty.h and one in string.h Mika From dabenavidesd at yahoo.es Sat Jan 22 16:48:59 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sat, 22 Jan 2011 15:48:59 +0000 (GMT) Subject: [M3devel] compile problem on LINUXLIBC6 In-Reply-To: <20110122021503.615621A205B@async.async.caltech.edu> Message-ID: <957815.3691.qm@web29701.mail.ird.yahoo.com> Hi all: I wonder why it's making libcpp, does it some tool use it? just for c this days? anyway it would be good if you can test it just with another compiler version, perhaps the clash is product of incompability of version 4.50, 4.5.1 -><- perhaps you can try to build the gcc trunk to see how it builds, if it builds then you have a problem of compability in your gcc headers, This is why is this C code is sort of not portable, you don't know when you get a compiler error after thinking it is OK. Then if so, try to use gcc trunk instead to build in your cm3 building. Thanks in advance --- El vie, 21/1/11, Mika Nystrom escribi?: > De: Mika Nystrom > Asunto: [M3devel] compile problem on LINUXLIBC6 > Para: m3devel at elegosoft.com > Fecha: viernes, 21 de enero, 2011 21:15 > > On the following system: > > Linux ballista 2.6.34.7-0.5-desktop #1 SMP PREEMPT > 2010-10-25 08:40:12 +0200 i686 i686 i386 GNU/Linux > > gcc -v > Using built-in specs. > COLLECT_GCC=gcc > COLLECT_LTO_WRAPPER=/usr/lib/gcc/i586-suse-linux/4.5/lto-wrapper > Target: i586-suse-linux > Configured with: ../configure --prefix=/usr > --infodir=/usr/share/info --mandir=/usr/share/man > --libdir=/usr/lib --libexecdir=/usr/lib > --enable-languages=c,c++,objc,fortran,obj-c++,java,ada > --enable-checking=release > --with-gxx-include-dir=/usr/include/c++/4.5 --enable-ssp > --disable-libssp --disable-plugin --with-bugurl=http://bugs.opensuse.org/ --with-pkgversion='SUSE > Linux' --disable-libgcj --disable-libmudflap > --with-slibdir=/lib --with-system-zlib --enable-__cxa_atexit > --enable-libstdcxx-allocator=new --disable-libstdcxx-pch > --enable-version-specific-runtime-libs --program-suffix=-4.5 > --enable-linux-futex --without-system-libunwind > --enable-gold --with-plugin-ld=/usr/bin/gold > --with-arch-32=i586 --with-tune=generic > --build=i586-suse-linux > Thread model: posix > gcc version 4.5.0 20100604 [gcc-4_5-branch revision 160292] > (SUSE Linux) > > Installing 5.8.6 from the web and then attempting to > compile the CVS head using "upgrade.py" leads > to the following: > > echo ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o > ./sha1.o ./alloca.o ./argv.o ./choose-temp.o ./concat.o > ./cp-demint.o ./crc32.o ./dyn-string.o ./fdmatch.o > ./fibheap.o ./filename_cmp.o ./floatformat.o ./fnmatch.o > ./fopen_unlocked.o ./getopt.o ./getopt1.o ./getpwd.o > ./getruntime.o ./hashtab.o ./hex.o ./lbasename.o > ./lrealpath.o ./make-relative-prefix.o ./make-temp-file.o > ./objalloc.o ./obstack.o ./partition.o ./pexecute.o > ./physmem.o ./pex-common.o ./pex-one.o ./pex-unix.o > ./safe-ctype.o ./sort.o ./spaces.o ./splay-tree.o > ./strerror.o ./strsignal.o ./unlink-if-ordinary.o > ./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o > ./xstrerror.o ./xstrndup.o > required-list > make[2]: Entering directory > `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' > make[2]: Nothing to be done for `all'. > make[2]: Leaving directory > `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' > make[1]: Leaving directory > `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty' > cd . && cd libcpp && make > MAKE=make AUTOCONF=: AUTOMAKE=: LEX='touch lex.yy.c' > MAKEINFO=: libcpp.a > cd . && cd libcpp && make > MAKE=make AUTOCONF=: AUTOMAKE=: LEX='touch lex.yy.c' > MAKEINFO=: libcpp.a > g++ -I../../gcc-4.5/libcpp -I. > -I../../gcc-4.5/libcpp/../include > -I../../gcc-4.5/libcpp/include -g -O2 -W -Wall > -Wwrite-strings -Wmissing-format-attribute -pedantic > -Wno-long-long -I../../gcc-4.5/libcpp -I. > -I../../gcc-4.5/libcpp/../include > -I../../gcc-4.5/libcpp/include -c -o charset.o -MT > charset.o -MMD -MP -MF .deps/charset.Tpo > ../../gcc-4.5/libcpp/charset.c > In file included from ../../gcc-4.5/libcpp/system.h:335:0, > > from ../../gcc-4.5/libcpp/charset.c:24: > ../../gcc-4.5/libcpp/../include/libiberty.h:106:36: error: > new declaration ? > /usr/include/string.h:601:28: error: ambiguates old > declaration ? > make: *** [charset.o] Error 1 > "/home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile", line > 273: quake runtime error: exit 2: cd . && cd libcpp > && make MAKE=make AUTOCONF=: AUTOMAKE=: > LEX='touch lex.yy.c' MAKEINFO=: libcpp.a > > --procedure-- -line- -file--- > exec > -- > m3cc_Run 273 > /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile > include_dir 518 > /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile > > 5 > /home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/m3make.args > > Fatal Error: package build failed > *** execution of [ 0x814db54>, ] > failed *** > > It looks like a clash between a declaration in libiberty.h > and one in string.h > > Mika > From mika at async.caltech.edu Sat Jan 22 17:31:29 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Sat, 22 Jan 2011 08:31:29 -0800 Subject: [M3devel] compile problem on LINUXLIBC6 In-Reply-To: <957815.3691.qm@web29701.mail.ird.yahoo.com> References: <957815.3691.qm@web29701.mail.ird.yahoo.com> Message-ID: <20110122163129.927431A205B@async.async.caltech.edu> In order to build m3cc, all I had to do was remove the declaration for basename() from /usr/cvs/cm3/m3-sys/m3cc/gcc-4.5/include/libiberty.h I find it a bit odd since my system uses gcc 4.5.0 but am not quite sure what should be done about it. Mika "Daniel Alejandro Benavides D." writes: >Hi all: >I wonder why it's making libcpp, does it some tool use it? just for c this = >days? anyway it would be good if you can test it just with another compiler= > version, perhaps the clash is product of incompability of version 4.50, 4.= >5.1 -><- perhaps you can try to build the gcc trunk to see how it builds, i= >f it builds then you have a problem of compability in your gcc headers, Thi= >s is why is this C code is sort of not portable, you don't know when you ge= >t a compiler error after thinking it is OK. >Then if so, try to use gcc trunk instead to build in your cm3 building. >Thanks in advance > >--- El vie, 21/1/11, Mika Nystrom escribi=F3: > >> De: Mika Nystrom >> Asunto: [M3devel] compile problem on LINUXLIBC6 >> Para: m3devel at elegosoft.com >> Fecha: viernes, 21 de enero, 2011 21:15 >>=20 >> On the following system: >>=20 >> Linux ballista 2.6.34.7-0.5-desktop #1 SMP PREEMPT >> 2010-10-25 08:40:12 +0200 i686 i686 i386 GNU/Linux >>=20 >> gcc -v >> Using built-in specs. >> COLLECT_GCC=3Dgcc >> COLLECT_LTO_WRAPPER=3D/usr/lib/gcc/i586-suse-linux/4.5/lto-wrapper >> Target: i586-suse-linux >> Configured with: ../configure --prefix=3D/usr >> --infodir=3D/usr/share/info --mandir=3D/usr/share/man >> --libdir=3D/usr/lib --libexecdir=3D/usr/lib >> --enable-languages=3Dc,c++,objc,fortran,obj-c++,java,ada >> --enable-checking=3Drelease >> --with-gxx-include-dir=3D/usr/include/c++/4.5 --enable-ssp >> --disable-libssp --disable-plugin --with-bugurl=3Dhttp://bugs.opensuse.or= >g/ --with-pkgversion=3D'SUSE >> Linux' --disable-libgcj --disable-libmudflap >> --with-slibdir=3D/lib --with-system-zlib --enable-__cxa_atexit >> --enable-libstdcxx-allocator=3Dnew --disable-libstdcxx-pch >> --enable-version-specific-runtime-libs --program-suffix=3D-4.5 >> --enable-linux-futex --without-system-libunwind >> --enable-gold --with-plugin-ld=3D/usr/bin/gold >> --with-arch-32=3Di586 --with-tune=3Dgeneric >> --build=3Di586-suse-linux >> Thread model: posix >> gcc version 4.5.0 20100604 [gcc-4_5-branch revision 160292] >> (SUSE Linux) >>=20 >> Installing 5.8.6 from the web and then attempting to >> compile the CVS head using "upgrade.py" leads >> to the following: >>=20 >> echo ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o >> ./sha1.o ./alloca.o ./argv.o ./choose-temp.o ./concat.o >> ./cp-demint.o ./crc32.o ./dyn-string.o ./fdmatch.o >> ./fibheap.o ./filename_cmp.o ./floatformat.o ./fnmatch.o >> ./fopen_unlocked.o ./getopt.o ./getopt1.o ./getpwd.o >> ./getruntime.o ./hashtab.o ./hex.o ./lbasename.o >> ./lrealpath.o ./make-relative-prefix.o ./make-temp-file.o >> ./objalloc.o ./obstack.o ./partition.o ./pexecute.o >> ./physmem.o ./pex-common.o ./pex-one.o ./pex-unix.o >> ./safe-ctype.o ./sort.o ./spaces.o ./splay-tree.o >> ./strerror.o ./strsignal.o ./unlink-if-ordinary.o >> ./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o >> ./xstrerror.o ./xstrndup.o > required-list >> make[2]: Entering directory >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' >> make[2]: Nothing to be done for `all'. >> make[2]: Leaving directory >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' >> make[1]: Leaving directory >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty' >> cd . && cd libcpp && make=20 >> MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: LEX=3D'touch lex.yy.c' >> MAKEINFO=3D: libcpp.a >> cd . && cd libcpp && make=20 >> MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: LEX=3D'touch lex.yy.c' >> MAKEINFO=3D: libcpp.a >> g++ -I../../gcc-4.5/libcpp -I. >> -I../../gcc-4.5/libcpp/../include >> -I../../gcc-4.5/libcpp/include -g -O2 -W -Wall >> -Wwrite-strings -Wmissing-format-attribute -pedantic >> -Wno-long-long -I../../gcc-4.5/libcpp -I. >> -I../../gcc-4.5/libcpp/../include >> -I../../gcc-4.5/libcpp/include -c -o charset.o -MT >> charset.o -MMD -MP -MF .deps/charset.Tpo >> ../../gcc-4.5/libcpp/charset.c >> In file included from ../../gcc-4.5/libcpp/system.h:335:0, >> =20 >> from ../../gcc-4.5/libcpp/charset.c:24: >> ../../gcc-4.5/libcpp/../include/libiberty.h:106:36: error: >> new declaration =E2 >> /usr/include/string.h:601:28: error: ambiguates old >> declaration =E2 >> make: *** [charset.o] Error 1 >> "/home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile", line >> 273: quake runtime error: exit 2: cd . && cd libcpp >> && make MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: >> LEX=3D'touch lex.yy.c' MAKEINFO=3D: libcpp.a >>=20 >> --procedure-- -line- -file--- >> exec =20 >> -- >> m3cc_Run 273=20 >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile >> include_dir 518=20 >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile >> =20 >> 5=20 >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/m3make.args >>=20 >> Fatal Error: package build failed >> *** execution of [> 0x814db54>, ] >> failed *** >>=20 >> It looks like a clash between a declaration in libiberty.h >> and one in string.h >>=20 >> Mika >> =0A=0A=0A From jay.krell at cornell.edu Sat Jan 22 20:44:58 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 22 Jan 2011 19:44:58 +0000 Subject: [M3devel] compile problem on LINUXLIBC6 In-Reply-To: <20110122163129.927431A205B@async.async.caltech.edu> References: <957815.3691.qm@web29701.mail.ird.yahoo.com>, <20110122163129.927431A205B@async.async.caltech.edu> Message-ID: libcpp is part of any gcc frontend/backend. I have reduced it significantly, but it is still there. Maybe it was caused by this: 2010-12-26 18:50 jkrell * m3-sys/m3cc/src/clean_marker.txt: system.h: all systems have: stddef.h limits.h abort realloc ... anyway, I made a change that should resolve this. Let me know. I'll try to keep up with Hudson, but things have changed semi-permanently very significantly for me..less time on Modula-3 probably forever now... (I'll still try to fix the jumpbuf over-use and maybe stack-walker absence...) - Jay > To: dabenavidesd at yahoo.es > Date: Sat, 22 Jan 2011 08:31:29 -0800 > From: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] compile problem on LINUXLIBC6 > > In order to build m3cc, all I had to do was remove the declaration for > basename() from /usr/cvs/cm3/m3-sys/m3cc/gcc-4.5/include/libiberty.h > > I find it a bit odd since my system uses gcc 4.5.0 but am not quite sure > what should be done about it. > > Mika > > "Daniel Alejandro Benavides D." writes: > >Hi all: > >I wonder why it's making libcpp, does it some tool use it? just for c this = > >days? anyway it would be good if you can test it just with another compiler= > > version, perhaps the clash is product of incompability of version 4.50, 4.= > >5.1 -><- perhaps you can try to build the gcc trunk to see how it builds, i= > >f it builds then you have a problem of compability in your gcc headers, Thi= > >s is why is this C code is sort of not portable, you don't know when you ge= > >t a compiler error after thinking it is OK. > >Then if so, try to use gcc trunk instead to build in your cm3 building. > >Thanks in advance > > > >--- El vie, 21/1/11, Mika Nystrom escribi=F3: > > > >> De: Mika Nystrom > >> Asunto: [M3devel] compile problem on LINUXLIBC6 > >> Para: m3devel at elegosoft.com > >> Fecha: viernes, 21 de enero, 2011 21:15 > >>=20 > >> On the following system: > >>=20 > >> Linux ballista 2.6.34.7-0.5-desktop #1 SMP PREEMPT > >> 2010-10-25 08:40:12 +0200 i686 i686 i386 GNU/Linux > >>=20 > >> gcc -v > >> Using built-in specs. > >> COLLECT_GCC=3Dgcc > >> COLLECT_LTO_WRAPPER=3D/usr/lib/gcc/i586-suse-linux/4.5/lto-wrapper > >> Target: i586-suse-linux > >> Configured with: ../configure --prefix=3D/usr > >> --infodir=3D/usr/share/info --mandir=3D/usr/share/man > >> --libdir=3D/usr/lib --libexecdir=3D/usr/lib > >> --enable-languages=3Dc,c++,objc,fortran,obj-c++,java,ada > >> --enable-checking=3Drelease > >> --with-gxx-include-dir=3D/usr/include/c++/4.5 --enable-ssp > >> --disable-libssp --disable-plugin --with-bugurl=3Dhttp://bugs.opensuse.or= > >g/ --with-pkgversion=3D'SUSE > >> Linux' --disable-libgcj --disable-libmudflap > >> --with-slibdir=3D/lib --with-system-zlib --enable-__cxa_atexit > >> --enable-libstdcxx-allocator=3Dnew --disable-libstdcxx-pch > >> --enable-version-specific-runtime-libs --program-suffix=3D-4.5 > >> --enable-linux-futex --without-system-libunwind > >> --enable-gold --with-plugin-ld=3D/usr/bin/gold > >> --with-arch-32=3Di586 --with-tune=3Dgeneric > >> --build=3Di586-suse-linux > >> Thread model: posix > >> gcc version 4.5.0 20100604 [gcc-4_5-branch revision 160292] > >> (SUSE Linux) > >>=20 > >> Installing 5.8.6 from the web and then attempting to > >> compile the CVS head using "upgrade.py" leads > >> to the following: > >>=20 > >> echo ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o > >> ./sha1.o ./alloca.o ./argv.o ./choose-temp.o ./concat.o > >> ./cp-demint.o ./crc32.o ./dyn-string.o ./fdmatch.o > >> ./fibheap.o ./filename_cmp.o ./floatformat.o ./fnmatch.o > >> ./fopen_unlocked.o ./getopt.o ./getopt1.o ./getpwd.o > >> ./getruntime.o ./hashtab.o ./hex.o ./lbasename.o > >> ./lrealpath.o ./make-relative-prefix.o ./make-temp-file.o > >> ./objalloc.o ./obstack.o ./partition.o ./pexecute.o > >> ./physmem.o ./pex-common.o ./pex-one.o ./pex-unix.o > >> ./safe-ctype.o ./sort.o ./spaces.o ./splay-tree.o > >> ./strerror.o ./strsignal.o ./unlink-if-ordinary.o > >> ./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o > >> ./xstrerror.o ./xstrndup.o > required-list > >> make[2]: Entering directory > >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' > >> make[2]: Nothing to be done for `all'. > >> make[2]: Leaving directory > >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' > >> make[1]: Leaving directory > >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty' > >> cd . && cd libcpp && make=20 > >> MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: LEX=3D'touch lex.yy.c' > >> MAKEINFO=3D: libcpp.a > >> cd . && cd libcpp && make=20 > >> MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: LEX=3D'touch lex.yy.c' > >> MAKEINFO=3D: libcpp.a > >> g++ -I../../gcc-4.5/libcpp -I. > >> -I../../gcc-4.5/libcpp/../include > >> -I../../gcc-4.5/libcpp/include -g -O2 -W -Wall > >> -Wwrite-strings -Wmissing-format-attribute -pedantic > >> -Wno-long-long -I../../gcc-4.5/libcpp -I. > >> -I../../gcc-4.5/libcpp/../include > >> -I../../gcc-4.5/libcpp/include -c -o charset.o -MT > >> charset.o -MMD -MP -MF .deps/charset.Tpo > >> ../../gcc-4.5/libcpp/charset.c > >> In file included from ../../gcc-4.5/libcpp/system.h:335:0, > >> =20 > >> from ../../gcc-4.5/libcpp/charset.c:24: > >> ../../gcc-4.5/libcpp/../include/libiberty.h:106:36: error: > >> new declaration =E2 > >> /usr/include/string.h:601:28: error: ambiguates old > >> declaration =E2 > >> make: *** [charset.o] Error 1 > >> "/home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile", line > >> 273: quake runtime error: exit 2: cd . && cd libcpp > >> && make MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: > >> LEX=3D'touch lex.yy.c' MAKEINFO=3D: libcpp.a > >>=20 > >> --procedure-- -line- -file--- > >> exec =20 > >> -- > >> m3cc_Run 273=20 > >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile > >> include_dir 518=20 > >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile > >> =20 > >> 5=20 > >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/m3make.args > >>=20 > >> Fatal Error: package build failed > >> *** execution of [ >> 0x814db54>, ] > >> failed *** > >>=20 > >> It looks like a clash between a declaration in libiberty.h > >> and one in string.h > >>=20 > >> Mika > >> =0A=0A=0A -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Sun Jan 23 08:08:29 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sun, 23 Jan 2011 07:08:29 +0000 (GMT) Subject: [M3devel] compile problem on LINUXLIBC6 In-Reply-To: Message-ID: <121185.91775.qm@web29703.mail.ird.yahoo.com> hi all: yes I think you are correct in that too, ok. About your time/effort paradigm. Let me tell you something if you allow me: here in my country I was talking with another co partner, here, we have this kind of thinking : "you don't need to be talented, you just need to work hard", and certainly I have read lot of times perhaps that the harder things are, more worth they are. Certainly both of them are surely right, but let me tell you what a "neuro linguist" programmer says about that (I don't remember his name though he gives international conferences): "most of people think that the harder you work the more work you get done, but I tell you something is better to work intelligently than harder, if you are intelligent worker you get things done and are more worth the value, this is a paradigm you need to work your entire life to get something done and you realize how much trouble you can get solve if you are smarter than hard worker". I think also is true, the last point I mean, why we should spend the all night reading other people's code, even if they are worth, we should be better than that. My point is this, ok let's do some hard work in an intelligent way, we will be smarter than others by following the smarter things they had on harder things, but doing hard work on it if you don't need that last thing then you have a point. Then now, in this thing, let's be clear IA prominent guys are working towards making and u turn (maybe just and an "ear" turn here we say too). If I interpret this guys well, without too much knowledge of the ideas I do now something; at some point they should be going a little backwards to start over from where they went to work in fields that are not worth today, you see, a lot of work doesn't imply worth results even if finished, but intelligent work even if not absolutely complete is more worth the value than those they did. So I was reading a Computer magazine, March 1982, a local copy courtesy of somebody here. And what where doing Japanese Fifth Computer Generation Computer Systems plans at those days, planning the according following next decade of computing, the computers fifth generation FGCS. Basically what they were trying to do in order to do the major tasks, to build a complete framework up to a complete stack of technology in some of its subtasks (I know, but why should we worry if others are working nicely on the other parts, tell me if so): technology systematization, which compromised the following points: "Specifically this involve: (1) Modular programming and verification technology (2) A theory to specify description and program synthesis (3) A system for program synthesis, and program verfication and a program base (4) A system to maintain, improve and manage programs (5) A consultant system for program design " ____________SYSTEMATIZATION TECHNOLOGY_________________ Intelligent???????? | Knowledge |? Systematization | Database programming?? | base design | for computer????? | and distributed system?????????????? |? system?????? |?? architecture????? | database system ________________________________________________________________ in [1] Treleaven and Lima, ?Japan's Fifth Generation Computer Systems,? Computer, vol. 15, no. 8, pp. 79-88, 1982. Basically they wanted to build automatic language translators for languages like japanese to english, etc, a system to receive speech, and system to retrieve images. They main problem was that when arrived in the next decade they didn't get the expected rate or objective of efficiency was: 1-10 BIPS with a computer of 1G-10G of memory =? (though first goal was 1200'000.000 logical inferences per second, LIPS. 1 LIPS = [100..300] MIPS) = 400 000 MIPS and in full goal = 333'333.333 LIPS however they got was for first goal: 30.000 LIPS = 100 MIPS. The long term goal was not achieved but because of technical problem in the theory and semantic of concurrent languages. You can read about this on http://en.wikipedia.org/wiki/Fifth_generation_computer and: http://books.google.com/books?id=BlRrHHpoxLgC&lpg=PA14&ots=ArxnlvBiyx&dq=inference%20machine%20-learning&pg=PA15#v=onepage&q&f=false But for the long term project was getting just 200 000 LIPS < 700 MIPS ? Obviously this is not god like 100 times slower than thought, so they stopped funding the project and continue a sequel in another one. And NEC was one of the participants, precisely they wrote back in 1995 a bayesian algorithm in? Modula-3, looking for a chess contest (see http://www.nzdl.org/gsdlmod?e=d-00000-00---off-0tcc--00-0----0-10-0---0---0direct-10---4-------0-1l--11-en-50---20-about---00-0-1-00-0-0-11-1-0utfZz-8-10-0-0-11-1-0utfZz-8-00&a=d&c=tcc&cl=CL2.5&d=HASH01ddef928d9edae8cb47030b.5) Surely you are worried about this kind of issues, but I tell you I think we have a point if so, there are good opportunities they are just waiting for us and good looking for good chance of making it. Thanks in advance --- El s?b, 22/1/11, Jay K escribi?: De: Jay K Asunto: RE: [M3devel] compile problem on LINUXLIBC6 Para: "Mika Nystrom" , dabenavidesd at yahoo.es CC: "m3devel" Fecha: s?bado, 22 de enero, 2011 14:44 libcpp is part of any gcc frontend/backend. I have reduced it significantly, but it is still there. Maybe it was caused by this: 2010-12-26 18:50 jkrell * m3-sys/m3cc/src/clean_marker.txt: system.h: all systems have: stddef.h limits.h abort realloc ... anyway, I made a change that should resolve this. Let me know. I'll try to keep up with Hudson, but things have changed semi-permanently very significantly for me..less time on Modula-3 probably forever now... (I'll still try to fix the jumpbuf over-use and maybe stack-walker absence...) ?- Jay > To: dabenavidesd at yahoo.es > Date: Sat, 22 Jan 2011 08:31:29 -0800 > From: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] compile problem on LINUXLIBC6 > > In order to build m3cc, all I had to do was remove the declaration for > basename() from /usr/cvs/cm3/m3-sys/m3cc/gcc-4.5/include/libiberty.h > > I find it a bit odd since my system uses gcc 4.5.0 but am not quite sure > what should be done about it. > > Mika > > "Daniel Alejandro Benavides D." writes: > >Hi all: > >I wonder why it's making libcpp, does it some tool use it? just for c this = > >days? anyway it would be good if you can test it just with another compiler= > > version, perhaps the clash is product of incompability of version 4.50, 4.= > >5.1 -><- perhaps you can try to build the gcc trunk to see how it builds, i= > >f it builds then you have a problem of compability in your gcc headers, Thi= > >s is why is this C code is sort of not portable, you don't know when you ge= > >t a compiler error after thinking it is OK. > >Then if so, try to use gcc trunk instead to build in your cm3 building. > >Thanks in advance > > > >--- El vie, 21/1/11, Mika Nystrom escribi=F3: > > > >> De: Mika Nystrom > >> Asunto: [M3devel] compile problem on LINUXLIBC6 > >> Para: m3devel at elegosoft.com > >> Fecha: viernes, 21 de enero, 2011 21:15 > >>=20 > >> On the following system: > >>=20 > >> Linux ballista 2.6.34.7-0.5-desktop #1 SMP PREEMPT > >> 2010-10-25 08:40:12 +0200 i686 i686 i386 GNU/Linux > >>=20 > >> gcc -v > >> Using built-in specs. > >> COLLECT_GCC=3Dgcc > >> COLLECT_LTO_WRAPPER=3D/usr/lib/gcc/i586-suse-linux/4.5/lto-wrapper > >> Target: i586-suse-linux > >> Configured with: ../configure --prefix=3D/usr > >> --infodir=3D/usr/share/info --mandir=3D/usr/share/man > >> --libdir=3D/usr/lib --libexecdir=3D/usr/lib > >> --enable-languages=3Dc,c++,objc,fortran,obj-c++,java,ada > >> --enable-checking=3Drelease > >> --with-gxx-include-dir=3D/usr/include/c++/4.5 --enable-ssp > >> --disable-libssp --disable-plugin --with-bugurl=3Dhttp://bugs.opensuse.or= > >g/ --with-pkgversion=3D'SUSE > >> Linux' --disable-libgcj --disable-libmudflap > >> --with-slibdir=3D/lib --with-system-zlib --enable-__cxa_atexit > >> --enable-libstdcxx-allocator=3Dnew --disable-libstdcxx-pch > >> --enable-version-specific-runtime-libs --program-suffix=3D-4.5 > >> --enable-linux-futex --without-system-libunwind > >> --enable-gold --with-plugin-ld=3D/usr/bin/gold > >> --with-arch-32=3Di586 --with-tune=3Dgeneric > >> --build=3Di586-suse-linux > >> Thread model: posix > >> gcc version 4.5.0 20100604 [gcc-4_5-branch revision 160292] > >> (SUSE Linux) > >>=20 > >> Installing 5.8.6 from the web and then attempting to > >> compile the CVS head using "upgrade.py" leads > >> to the following: > >>=20 > >> echo ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o > >> ./sha1.o ./alloca.o ./argv.o ./choose-temp.o ./concat.o > >> ./cp-demint.o ./crc32.o ./dyn-string.o ./fdmatch.o > >> ./fibheap.o ./filename_cmp.o ./floatformat.o ./fnmatch.o > >> ./fopen_unlocked.o ./getopt.o ./getopt1.o ./getpwd.o > >> ./getruntime.o ./hashtab.o ./hex.o ./lbasename.o > >> ./lrealpath.o ./make-relative-prefix.o ./make-temp-file.o > >> ./objalloc.o ./obstack.o ./partition.o ./pexecute.o > >> ./physmem.o ./pex-common.o ./pex-one.o ./pex-unix.o > >> ./safe-ctype.o ./sort.o ./spaces.o ./splay-tree.o > >> ./strerror.o ./strsignal.o ./unlink-if-ordinary.o > >> ./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o > >> ./xstrerror.o ./xstrndup.o > required-list > >> make[2]: Entering directory > >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' > >> make[2]: Nothing to be done for `all'. > >> make[2]: Leaving directory > >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' > >> make[1]: Leaving directory > >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty' > >> cd . && cd libcpp && make=20 > >> MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: LEX=3D'touch lex.yy.c' > >> MAKEINFO=3D: libcpp.a > >> cd . && cd libcpp && make=20 > >> MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: LEX=3D'touch lex.yy.c' > >> MAKEINFO=3D: libcpp.a > >> g++ -I../../gcc-4.5/libcpp -I. > >> -I../../gcc-4.5/libcpp/../include > >> -I../../gcc-4.5/libcpp/include -g -O2 -W -Wall > >> -Wwrite-strings -Wmissing-format-attribute -pedantic > >> -Wno-long-long -I../../gcc-4.5/libcpp -I. > >> -I../../gcc-4.5/libcpp/../include > >> -I../../gcc-4.5/libcpp/include -c -o charset.o -MT > >> charset.o -MMD -MP -MF .deps/charset.Tpo > >> ../../gcc-4.5/libcpp/charset.c > >> In file included from ../../gcc-4.5/libcpp/system.h:335:0, > >> =20 > >> from ../../gcc-4.5/libcpp/charset.c:24: > >> ../../gcc-4.5/libcpp/../include/libiberty.h:106:36: error: > >> new declaration =E2 > >> /usr/include/string.h:601:28: error: ambiguates old > >> declaration =E2 > >> make: *** [charset.o] Error 1 > >> "/home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile", line > >> 273: quake runtime error: exit 2: cd . && cd libcpp > >> && make MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: > >> LEX=3D'touch lex.yy.c' MAKEINFO=3D: libcpp.a > >>=20 > >> --procedure-- -line- -file--- > >> exec =20 > >> -- > >> m3cc_Run 273=20 > >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile > >> include_dir 518=20 > >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile > >> =20 > >> 5=20 > >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/m3make.args > >>=20 > >> Fatal Error: package build failed > >> *** execution of [ >> 0x814db54>, ] > >> failed *** > >>=20 > >> It looks like a clash between a declaration in libiberty.h > >> and one in string.h > >>=20 > >> Mika > >> =0A=0A=0A -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Jan 29 11:40:42 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 29 Jan 2011 10:40:42 +0000 Subject: [M3devel] hardware clearance -- Sparc/solaris Message-ID: http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=120677831684 This was the Solaris/sparc Hudson node for a while. It doesn't seem needed now that we have the opencsw machines, unless we want to be "independent". ? Anyone here can have it for shipping or half shipping. Thanks, - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Sun Jan 30 03:18:37 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sun, 30 Jan 2011 02:18:37 +0000 (GMT) Subject: [M3devel] About Juno-2 and automating debugging software Message-ID: <299610.86962.qm@web29707.mail.ird.yahoo.com> Hi all: I was watching a book, sort of wondering what your ideas you might have about that. The idea behind this book, is sort of the same in some point to what it is ESC/Modula-3. in [1] W. R. Murray, Automatic program debugging for intelligent tutoring systems. Pitman, 1988. A technical report here, get it: ftp://ftp.cs.utexas.edu/pub/AI-Lab/tech-reports/UT-AI-TR-86-27.pdf You will see its rationale is that a program must be capable of catching more bugs and errors from the program, than a syntactical analyzer, which is the idea behind ESC/Modula-3, even if not a fully decidable problem as Greg Neslon says. Well I just put it there so we may see how about such a thing an Automatic debugger in Juno-2, as the Automatic Program Debugger is a declarative language Lisp subset and a subset of Lisp implementation is available, sort of nice thing to have already and Boyer-Moore underneath it theorem prover also available, see on: http://www.cs.utexas.edu/~moore/best-ideas/nqthm/index.html (Unreacheable code, etc like program errors, etc). Sort of nice having strong competence in the arena (see on: http://www.cs.cmu.edu/afs/cs/project/jair/pub/volume4/bhansali96a-html/paper.htm ) with sketchup and stuff, and Juno-2 alternative JVM already written backend and so (not for animations but sort amenable for dynamic code generation?). Only missing thing was just Prolog logical compiler but also being written one for proof of soundness of modula-3 type system typechecking Thanks in advance From dabenavidesd at yahoo.es Sun Jan 30 06:43:13 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sun, 30 Jan 2011 05:43:13 +0000 (GMT) Subject: [M3devel] About Juno-2 and automating debugging software In-Reply-To: <299610.86962.qm@web29707.mail.ird.yahoo.com> Message-ID: <459675.89026.qm@web29709.mail.ird.yahoo.com> Hi all: I think the speed improvement we might have in Juno-2 (to prove the concept) is to develop an interface for the constraint equational non-linear solving, perhaps done in CUDA see: http://en.wikipedia.org/wiki/CUDA like interface or OpenCL if so, and perhaps create a model for it under SOFA, see: http://en.wikipedia.org/wiki/SOFA_(Simulation_Open_Framework_Architecture) like model as some solvers already do that: http://www.sofa-framework.org/docs/sofa-tled-isbms08.pdf Also a FPU model would be needed of it or added to current modes of operation of Float point types, besides tohers like legacy x87 support, and newer ones. In this way we could prove the interface and give a proof of the concept. Indeed is heavy work and might not be reasonable to put first in a TODO list, but be aware this guys of GPGPU are creating so many things like large array of clusters to processing any kind of data, we might try to do that or some of it. And you know time is running for all and every should be keeping the pace. Perhaps this would require some sophistication in the needed machinery like 2 or three GPGPU or so, but still worth the value I think Thanks in advance, PD please if anybody has a CUDA or OpenCL interface design or already in mind or any ideas on this please speak up --- El s?b, 29/1/11, Daniel Alejandro Benavides D. escribi?: > De: Daniel Alejandro Benavides D. > Asunto: [M3devel] About Juno-2 and automating debugging software > Para: m3devel at elegosoft.com > Fecha: s?bado, 29 de enero, 2011 21:18 > Hi all: > I was watching a book, sort of wondering what your ideas > you might have about that. > The idea behind this book, is sort of the same in some > point to what it is ESC/Modula-3. > in > [1] W. R. Murray, Automatic program debugging for > intelligent tutoring systems. Pitman, 1988. > A technical report here, get it: > ftp://ftp.cs.utexas.edu/pub/AI-Lab/tech-reports/UT-AI-TR-86-27.pdf > > You will see its rationale is that a program must be > capable of catching more bugs and errors from the program, > than a syntactical analyzer, which is the idea behind > ESC/Modula-3, even if not a fully decidable problem as Greg > Neslon says. > > Well I just put it there so we may see how about such a > thing an Automatic debugger in Juno-2, as the Automatic > Program Debugger is a declarative language Lisp subset and a > subset of Lisp implementation is available, sort of nice > thing to have already and Boyer-Moore underneath it theorem > prover also available, see on: > http://www.cs.utexas.edu/~moore/best-ideas/nqthm/index.html > (Unreacheable code, etc like program errors, etc). > > Sort of nice having strong competence in the arena (see > on: > http://www.cs.cmu.edu/afs/cs/project/jair/pub/volume4/bhansali96a-html/paper.htm > ) with sketchup and stuff, and Juno-2 alternative JVM > already written backend and so (not for animations but sort > amenable for dynamic code generation?). > Only missing thing was just Prolog logical compiler but > also being written one for proof of soundness of modula-3 > type system typechecking > Thanks in advance > > > > From jay.krell at cornell.edu Sun Jan 30 11:45:17 2011 From: jay.krell at cornell.edu (Jay K) Date: Sun, 30 Jan 2011 10:45:17 +0000 Subject: [M3devel] fixing try/setjmp in a loop? Message-ID: I'm trying to fix the inadvertant change I made where FOR i := 1 TO 10 DO TRY FINALLY END will call alloca 10 times. I'm not familiar with the frontend, and it is hard for me to understand. It seems like it is probably very well factored, written by someone who really knew what they were doing, but it is dense, and not verbosely commented. Something like this?? But this doesn't work. What am I missing? And, we should go the next step and merge the jmpbuf pointer variable with the jmpbuf field in the EF1, right? ? 1.txt Index: src/misc/Marker.i3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.i3,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 Marker.i3 --- src/misc/Marker.i3 14 Jan 2001 13:40:31 -0000 1.1.1.1 +++ src/misc/Marker.i3 30 Jan 2011 10:41:18 -0000 @@ -64,9 +64,12 @@ PROCEDURE SetLock (acquire: BOOLEAN; var: CG.Var; offset: INTEGER); (* generate the call to acquire or release a mutex *) -PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label); +PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label; + jumpbuf: Variable.T); (* call 'setjmp' on 'frame's jmpbuf and branch to 'handler' on re-returns. *) PROCEDURE Reset (); +PROCEDURE NewJumpbuf (): Variable.T; + END Marker. Index: src/misc/Marker.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.m3,v retrieving revision 1.9 diff -u -r1.9 Marker.m3 --- src/misc/Marker.m3 13 Jan 2011 14:58:28 -0000 1.9 +++ src/misc/Marker.m3 30 Jan 2011 10:41:18 -0000 @@ -10,7 +10,7 @@ MODULE Marker; IMPORT CG, Error, Type, Variable, ProcType, ESet, Expr, AssignStmt; -IMPORT M3ID, M3RT, Target, Module, RunTyme, Procedure, Host; +IMPORT M3ID, M3RT, Target, Module, RunTyme, Procedure, Host, Addr; TYPE Kind = { zFINALLY, zFINALLYPROC, zLOCK, zEXIT, zTRY, zTRYELSE, @@ -231,8 +231,10 @@ END; END CallFinallyHandler; -PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label) = +PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label; + jumpbuf: Variable.T) = VAR new: BOOLEAN; + label := CG.Next_label (); BEGIN (* int setjmp(void* ); *) IF (setjmp = NIL) THEN @@ -262,13 +264,33 @@ Target.Word.size, Target.Word.align, Target.Word.cg_type, 0); END; - - (* frame.jmpbuf = alloca(Csetjmp__Jumpbuf_size); *) + + (* IF jumpuf # NIL THEN + * frame.jmpbuf = alloca(Csetjmp__Jumpbuf_size); + * END + *) + + CG.Load_nil (); + Variable.Load (jumpbuf); + CG.If_compare (CG.Type.Addr, CG.Cmp.NE, label, CG.Maybe); + CG.Start_call_direct (alloca, 0, Target.Address.cg_type); CG.Load_int (Target.Word.cg_type, Jumpbuf_size); CG.Pop_param (Target.Word.cg_type); CG.Call_direct (alloca, Target.Address.cg_type); + + (* FUTURE: We should actually have a Variable + * for the entire EF1, including initializing the jumpbuf + * in it. That would save us this extra load/store, + * and save a local variable. + *) + Variable.LoadLValue (jumpbuf); + CG.Swap (); + CG.Store_indirect (CG.Type.Addr, 0, Target.Address.size); + Variable.Load (jumpbuf); + CG.Store_addr (frame, M3RT.EF1_jmpbuf); + CG.Set_label (label); (* setmp(frame.jmpbuf) *) CG.Start_call_direct (setjmp, 0, Target.Integer.cg_type); @@ -806,5 +828,15 @@ tos := 0; END Reset; +PROCEDURE NewJumpbuf (): Variable.T = + VAR jumpbuf: Variable.T; + BEGIN + jumpbuf := Variable.New (M3ID.NoID, TRUE); + Variable.BindType (jumpbuf, Addr.T, indirect := FALSE, + readonly := FALSE, open_array_ok := FALSE, + needs_init := TRUE); + RETURN jumpbuf; + END NewJumpbuf; + BEGIN END Marker. Index: src/stmts/TryFinStmt.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/stmts/TryFinStmt.m3,v retrieving revision 1.6 diff -u -r1.6 TryFinStmt.m3 --- src/stmts/TryFinStmt.m3 5 Jan 2011 14:34:54 -0000 1.6 +++ src/stmts/TryFinStmt.m3 30 Jan 2011 10:41:18 -0000 @@ -10,6 +10,7 @@ IMPORT M3ID, CG, Token, Scanner, Stmt, StmtRep, Marker, Target, Type, Addr; IMPORT RunTyme, Procedure, ProcBody, M3RT, Scope, Fmt, Host, TryStmt, Module; +IMPORT Variable; FROM Stmt IMPORT Outcome; TYPE @@ -20,6 +21,7 @@ viaProc : BOOLEAN; scope : Scope.T; handler : HandlerProc; + jumpbuf : Variable.T := NIL; OVERRIDES check := Check; compile := Compile; @@ -63,6 +65,11 @@ RETURN p; END Parse; +PROCEDURE UsesSetjmp (p: P): BOOLEAN = + BEGIN + RETURN NOT (Target.Has_stack_walker OR p.viaProc); + END UsesSetjmp; + PROCEDURE Check (p: P; VAR cs: Stmt.CheckState) = VAR zz: Scope.T; oc: Stmt.Outcomes; name: INTEGER; BEGIN @@ -95,6 +102,9 @@ END; END; TryStmt.PopHandler (); + IF UsesSetjmp (p) THEN + p.jumpbuf := Marker.NewJumpbuf (); + END; END Check; PROCEDURE HandlerName (uid: INTEGER): TEXT = @@ -106,11 +116,16 @@ END HandlerName; PROCEDURE Compile (p: P): Stmt.Outcomes = + VAR usesSetjmp := FALSE; + result: Stmt.Outcomes; BEGIN - IF Target.Has_stack_walker THEN RETURN Compile1 (p); - ELSIF p.viaProc THEN RETURN Compile2 (p); - ELSE RETURN Compile3 (p); + IF Target.Has_stack_walker THEN result := Compile1 (p); + ELSIF p.viaProc THEN result := Compile2 (p); + ELSE usesSetjmp := TRUE; + result := Compile3 (p); END; + <* ASSERT usesSetjmp = UsesSetjmp (p) *> + RETURN result; END Compile; PROCEDURE Compile1 (p: P): Stmt.Outcomes = @@ -302,7 +317,9 @@ l := CG.Next_label (3); CG.Set_label (l, barrier := TRUE); Marker.PushFrame (frame, M3RT.HandlerClass.Finally); - Marker.CaptureState (frame, l+1); + <* ASSERT UsesSetjmp (p) *> + <* ASSERT p.jumpbuf # NIL *> + Marker.CaptureState (frame, l+1, p.jumpbuf); (* compile the body *) Marker.PushFinally (l, l+1, frame); Index: src/stmts/TryStmt.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/stmts/TryStmt.m3,v retrieving revision 1.3 diff -u -r1.3 TryStmt.m3 --- src/stmts/TryStmt.m3 5 Jan 2011 14:34:54 -0000 1.3 +++ src/stmts/TryStmt.m3 30 Jan 2011 10:41:18 -0000 @@ -22,6 +22,7 @@ hasElse : BOOLEAN; elseBody : Stmt.T; handled : ESet.T; + jumpbuf : Variable.T := NIL; OVERRIDES check := Check; compile := Compile; @@ -153,6 +154,14 @@ p.handles := h3; END ReverseHandlers; +PROCEDURE UsesSetjmp (p: P): BOOLEAN = + BEGIN + IF (p.handles = NIL) AND (NOT p.hasElse) THEN + RETURN FALSE; + END; + RETURN NOT Target.Has_stack_walker; + END UsesSetjmp; + PROCEDURE Check (p: P; VAR cs: Stmt.CheckState) = VAR h: Handler; handled: ESet.T; BEGIN @@ -182,6 +191,10 @@ WHILE (h # NIL) DO CheckHandler (h, cs); h := h.next; END; Stmt.TypeCheck (p.elseBody, cs); PopHandler (); + + IF UsesSetjmp (p) THEN + p.jumpbuf := Marker.NewJumpbuf (); + END; END Check; PROCEDURE CheckLabels (h: Handler; scope: Scope.T; VAR cs: Stmt.CheckState) = @@ -245,14 +258,19 @@ END CheckHandler; PROCEDURE Compile (p: P): Stmt.Outcomes = + VAR usesSetjmp := FALSE; + result: Stmt.Outcomes; BEGIN IF (p.handles = NIL) AND (NOT p.hasElse) THEN - RETURN Stmt.Compile (p.body); - END; - IF Target.Has_stack_walker - THEN RETURN Compile1 (p); - ELSE RETURN Compile2 (p); + result := Stmt.Compile (p.body); + ELSIF Target.Has_stack_walker THEN + result := Compile1 (p); + ELSE + usesSetjmp := TRUE; + result := Compile2 (p); END; + <* ASSERT usesSetjmp = UsesSetjmp (p) *> + RETURN result; END Compile; PROCEDURE Compile1 (p: P): Stmt.Outcomes = @@ -423,7 +441,9 @@ END; (* capture the machine state *) - Marker.CaptureState (frame, l+1); + <* ASSERT UsesSetjmp (p) *> + <* ASSERT p.jumpbuf # NIL *> + Marker.CaptureState (frame, l+1, p.jumpbuf); (* compile the body *) oc := Stmt.Compile (p.body); Thanks, - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Mon Jan 31 05:20:58 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Mon, 31 Jan 2011 04:20:58 +0000 (GMT) Subject: [M3devel] About Juno-2 and automating debugging software In-Reply-To: <459675.89026.qm@web29709.mail.ird.yahoo.com> Message-ID: <22454.41538.qm@web29715.mail.ird.yahoo.com> Hi all: yes, I believe is doable especially if you think this issue comes again in another form, the AI guys thinking what went wrong, well nothing went wrong as I realize now, there is a lot of research certainly, but in the end is just the same thing like before, and you can see this like the reuse of concepts of prior knowledge as is mentioned between other by Dr Andrew Tanenbaum, it just happens when something like this: see, the GPGPU GPU stuff alike is a nother come of the concept of explicit parallelism and its implication in computing fields, surely more developed in terms of the hardware this was I believe, but at the end is just another way of calling Transputers in earlier times, is just like it, then it was not an abandoned thing like before, just a reuse of the concept, and in practical terms this what it is the Occam Occam2 and alike languages; there is one in particular of my interest here the one built for drawing using CSP of Hoare, the language is called Armadillo see a slide show here, specially check for the Computer magazine backcover in p. 6 in: https://lsl.unal.edu.co/fl18/conferencias/09.20_ArmadilloTortugav02.pdf (Also its Armadillo, small, but kind of sweet animal and very nicely armored, it is found here in the wildness parts here in the sea costs of the Atlantic Caribbean sea in the north of south America, but also a kind domestic animal if you live in some country like this here too) I believe I have no seen this animal in any Oreilly front cover book, I believe from the ones I have seen (am I correct?). Well to state this less profound, the called abstraction for machine generation of this sort of derivate of Lisp Logo CSP and Modula-3 uses the Modula-3 structural equivalence type system part of Modula-3 type checking and the most part of it dynamically typecheking of it, so its Object Oriented if you can say that. Still it has records as in Modula-3 and fell like you were there, never the less, all sort of non-imperative forms of the language, like floating point types and sort of Arithmetic ones, well sort of the integer I believe, though It might be expandable if one just arranges that as well I believe in its core runtime. It's not supposed to be interactively run but to be to run semi-interpretable as an Armacode binary representation up to a tree which takes not so much time to build up and run to the execution time, also it has an option to be dynamically interpreted as a core of a JIT inserted calls to runtime functions I think. It serves well for the purpose of checking it with a possible ESC/Armadillo checker but also permits same kind of applicable and beyond Modula-3 optimizations also via an hypothetical super optimizer code generator for Modula-3 language as linker and loader module subsystem. Instead of having if its own interpretation subsystem by itself, it lives and relies on the connection with other parts of the system like m3-ui and function from Modula-3 IO to rightly process nice and fast graphics by its own self extension libraries and data types, like turtle, etc. Well, I just thought this might be helpful to find a better way to analyze a possible upgraded middle end interface for future CUDA or OpenCL platforms in the way it works for Modula-3 threads and types, with such an abstraction which perhaps does allow to create an accurate creative Juno-2 optimizations and stuff from there too that might be useful to speed up it too. It might be useful to note the product mentioned in the slide in the terms it writes as a Multi-transputer, sort of a multi-user high middle-end server which came with open OS soured and customizable processor interconnection and compatibility to other operating systems via LAN NICs. Sort even nicer profilability than one may think, very advanced for this days I still would say, or at least sophisticated for its time (compared to this times), see an explanation of its architecture: http://www-users.cs.york.ac.uk/susan/bib/ss/occam/multit.htm In any sense it is not intended to create a bigger scene just short pictures the bigger problem to dedicate more time to less independent functionality like interoperability between both platforms and stuff alike. Well, hope it's bit of contribution makes a good chance to create workable for real platform for the intent to continue this eventually, some of its last effort was I see: http://books.google.com/books?id=fpKF8r9ithQC&lpg=PP1&pg=PP1#v=onepage&q&f=false which sort of an amenable way of coping with its development research, see for the Transterpreter part or Multi-Transterpreter :) Thanks in advance --- El dom, 30/1/11, Daniel Alejandro Benavides D. escribi?: > De: Daniel Alejandro Benavides D. > Asunto: Re: [M3devel] About Juno-2 and automating debugging software > Para: m3devel at elegosoft.com > Fecha: domingo, 30 de enero, 2011 00:43 > Hi all: > I think the speed improvement we might have in Juno-2 (to > prove the concept) is to develop an interface for the > constraint equational non-linear solving, perhaps done in > CUDA see: > http://en.wikipedia.org/wiki/CUDA > > like interface or OpenCL if so, and perhaps create a model > for it under SOFA, see: > http://en.wikipedia.org/wiki/SOFA_(Simulation_Open_Framework_Architecture) > > like model as some solvers already do that: > http://www.sofa-framework.org/docs/sofa-tled-isbms08.pdf > > Also a FPU model would be needed of it or added to current > modes of operation of Float point types, besides tohers like > legacy x87 support, and newer ones. > In this way we could prove the interface and give a proof > of the concept. > Indeed is heavy work and might not be reasonable to put > first in a TODO list, but be aware this guys of GPGPU are > creating so many things like large array of clusters to > processing any kind of data, we might try to do that or some > of it. And you know time is running for all and every should > be keeping the pace. > Perhaps this would require some sophistication in the > needed machinery like 2 or three GPGPU or so, but still > worth the value I think > Thanks in advance, > > PD please if anybody has a CUDA or OpenCL interface design > or already in mind or any ideas on this please speak up > > --- El s?b, 29/1/11, Daniel Alejandro Benavides D. > escribi?: > > > De: Daniel Alejandro Benavides D. > > Asunto: [M3devel] About Juno-2 and automating > debugging software > > Para: m3devel at elegosoft.com > > Fecha: s?bado, 29 de enero, 2011 21:18 > > Hi all: > > I was watching a book, sort of wondering what your > ideas > > you might have about that. > > The idea behind this book, is sort of the same in > some > > point to what it is ESC/Modula-3. > > in > > [1] W. R. Murray, Automatic program debugging for > > intelligent tutoring systems. Pitman, 1988. > > A technical report here, get it: > > ftp://ftp.cs.utexas.edu/pub/AI-Lab/tech-reports/UT-AI-TR-86-27.pdf > > > > You will see its rationale is that a program must be > > capable of catching more bugs and errors from the > program, > > than a syntactical analyzer, which is the idea behind > > ESC/Modula-3, even if not a fully decidable problem as > Greg > > Neslon says. > > > > Well I just put it there so we may see how about such > a > > thing an Automatic debugger in Juno-2, as the > Automatic > > Program Debugger is a declarative language Lisp subset > and a > > subset of Lisp implementation is available, sort of > nice > > thing to have already and Boyer-Moore underneath it > theorem > > prover also available, see on: > > http://www.cs.utexas.edu/~moore/best-ideas/nqthm/index.html > > (Unreacheable code, etc like program errors, etc). > > > > Sort of nice having strong competence in the arena > (see > > on: > > http://www.cs.cmu.edu/afs/cs/project/jair/pub/volume4/bhansali96a-html/paper.htm > > ) with sketchup and stuff, and Juno-2 > alternative JVM > > already written backend and so (not for animations but > sort > > amenable for dynamic code generation?). > > Only missing thing was just Prolog logical compiler > but > > also being written one for proof of soundness of > modula-3 > > type system typechecking > > Thanks in advance > > > > > > > > > > > > From hosking at cs.purdue.edu Mon Jan 31 18:14:09 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 31 Jan 2011 12:14:09 -0500 Subject: [M3devel] fixing try/setjmp in a loop? In-Reply-To: References: Message-ID: <36BA1892-1828-43A7-B706-AE87B3D98EA1@cs.purdue.edu> Hi Jay, I've not had a chance to digest this, but I do understand the problem. We need the Variable to be entered into the outermost scope of the procedure in which the TRY appears so that it will have initialization code (assigning NIL) generated for it on entry to the procedure. Then your usage of the variable should simply check for NIL and alloca if it is, as you already appear to do here. It would be possible to have the initialization code perform the alloca but then we would have an alloca for every TRY block in a procedure even if they never execute. Probably not the best plan. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 30, 2011, at 5:45 AM, Jay K wrote: > I'm trying to fix the inadvertant change I made where > FOR i := 1 TO 10 DO TRY FINALLY END > > will call alloca 10 times. > > I'm not familiar with the frontend, and it is hard for me to understand. > It seems like it is probably very well factored, written by someone who really knew what they were doing, > but it is dense, and not verbosely commented. > > Something like this?? But this doesn't work. What am I missing? > And, we should go the next step and merge the jmpbuf pointer variable with the jmpbuf field in the EF1, right? > > > ? 1.txt > Index: src/misc/Marker.i3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.i3,v > retrieving revision 1.1.1.1 > diff -u -r1.1.1.1 Marker.i3 > --- src/misc/Marker.i3 14 Jan 2001 13:40:31 -0000 1.1.1.1 > +++ src/misc/Marker.i3 30 Jan 2011 10:41:18 -0000 > @@ -64,9 +64,12 @@ > PROCEDURE SetLock (acquire: BOOLEAN; var: CG.Var; offset: INTEGER); > (* generate the call to acquire or release a mutex *) > > -PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label); > +PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label; > + jumpbuf: Variable.T); > (* call 'setjmp' on 'frame's jmpbuf and branch to 'handler' on re-returns. *) > > PROCEDURE Reset (); > > +PROCEDURE NewJumpbuf (): Variable.T; > + > END Marker. > Index: src/misc/Marker.m3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.m3,v > retrieving revision 1.9 > diff -u -r1.9 Marker.m3 > --- src/misc/Marker.m3 13 Jan 2011 14:58:28 -0000 1.9 > +++ src/misc/Marker.m3 30 Jan 2011 10:41:18 -0000 > @@ -10,7 +10,7 @@ > MODULE Marker; > > IMPORT CG, Error, Type, Variable, ProcType, ESet, Expr, AssignStmt; > -IMPORT M3ID, M3RT, Target, Module, RunTyme, Procedure, Host; > +IMPORT M3ID, M3RT, Target, Module, RunTyme, Procedure, Host, Addr; > > TYPE > Kind = { zFINALLY, zFINALLYPROC, zLOCK, zEXIT, zTRY, zTRYELSE, > @@ -231,8 +231,10 @@ > END; > END CallFinallyHandler; > > -PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label) = > +PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label; > + jumpbuf: Variable.T) = > VAR new: BOOLEAN; > + label := CG.Next_label (); > BEGIN > (* int setjmp(void* ); *) > IF (setjmp = NIL) THEN > @@ -262,13 +264,33 @@ > Target.Word.size, Target.Word.align, > Target.Word.cg_type, 0); > END; > - > - (* frame.jmpbuf = alloca(Csetjmp__Jumpbuf_size); *) > + > + (* IF jumpuf # NIL THEN > + * frame.jmpbuf = alloca(Csetjmp__Jumpbuf_size); > + * END > + *) > + > + CG.Load_nil (); > + Variable.Load (jumpbuf); > + CG.If_compare (CG.Type.Addr, CG.Cmp.NE, label, CG.Maybe); > + > CG.Start_call_direct (alloca, 0, Target.Address.cg_type); > CG.Load_int (Target.Word.cg_type, Jumpbuf_size); > CG.Pop_param (Target.Word.cg_type); > CG.Call_direct (alloca, Target.Address.cg_type); > + > + (* FUTURE: We should actually have a Variable > + * for the entire EF1, including initializing the jumpbuf > + * in it. That would save us this extra load/store, > + * and save a local variable. > + *) > + Variable.LoadLValue (jumpbuf); > + CG.Swap (); > + CG.Store_indirect (CG.Type.Addr, 0, Target.Address.size); > + Variable.Load (jumpbuf); > + > CG.Store_addr (frame, M3RT.EF1_jmpbuf); > + CG.Set_label (label); > > (* setmp(frame.jmpbuf) *) > CG.Start_call_direct (setjmp, 0, Target.Integer.cg_type); > @@ -806,5 +828,15 @@ > tos := 0; > END Reset; > > +PROCEDURE NewJumpbuf (): Variable.T = > + VAR jumpbuf: Variable.T; > + BEGIN > + jumpbuf := Variable.New (M3ID.NoID, TRUE); > + Variable.BindType (jumpbuf, Addr.T, indirect := FALSE, > + readonly := FALSE, open_array_ok := FALSE, > + needs_init := TRUE); > + RETURN jumpbuf; > + END NewJumpbuf; > + > BEGIN > END Marker. > Index: src/stmts/TryFinStmt.m3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-sys/m3front/src/stmts/TryFinStmt.m3,v > retrieving revision 1.6 > diff -u -r1.6 TryFinStmt.m3 > --- src/stmts/TryFinStmt.m3 5 Jan 2011 14:34:54 -0000 1.6 > +++ src/stmts/TryFinStmt.m3 30 Jan 2011 10:41:18 -0000 > @@ -10,6 +10,7 @@ > > IMPORT M3ID, CG, Token, Scanner, Stmt, StmtRep, Marker, Target, Type, Addr; > IMPORT RunTyme, Procedure, ProcBody, M3RT, Scope, Fmt, Host, TryStmt, Module; > +IMPORT Variable; > FROM Stmt IMPORT Outcome; > > TYPE > @@ -20,6 +21,7 @@ > viaProc : BOOLEAN; > scope : Scope.T; > handler : HandlerProc; > + jumpbuf : Variable.T := NIL; > OVERRIDES > check := Check; > compile := Compile; > @@ -63,6 +65,11 @@ > RETURN p; > END Parse; > > +PROCEDURE UsesSetjmp (p: P): BOOLEAN = > + BEGIN > + RETURN NOT (Target.Has_stack_walker OR p.viaProc); > + END UsesSetjmp; > + > PROCEDURE Check (p: P; VAR cs: Stmt.CheckState) = > VAR zz: Scope.T; oc: Stmt.Outcomes; name: INTEGER; > BEGIN > @@ -95,6 +102,9 @@ > END; > END; > TryStmt.PopHandler (); > + IF UsesSetjmp (p) THEN > + p.jumpbuf := Marker.NewJumpbuf (); > + END; > END Check; > > PROCEDURE HandlerName (uid: INTEGER): TEXT = > @@ -106,11 +116,16 @@ > END HandlerName; > > PROCEDURE Compile (p: P): Stmt.Outcomes = > + VAR usesSetjmp := FALSE; > + result: Stmt.Outcomes; > BEGIN > - IF Target.Has_stack_walker THEN RETURN Compile1 (p); > - ELSIF p.viaProc THEN RETURN Compile2 (p); > - ELSE RETURN Compile3 (p); > + IF Target.Has_stack_walker THEN result := Compile1 (p); > + ELSIF p.viaProc THEN result := Compile2 (p); > + ELSE usesSetjmp := TRUE; > + result := Compile3 (p); > END; > + <* ASSERT usesSetjmp = UsesSetjmp (p) *> > + RETURN result; > END Compile; > > PROCEDURE Compile1 (p: P): Stmt.Outcomes = > @@ -302,7 +317,9 @@ > l := CG.Next_label (3); > CG.Set_label (l, barrier := TRUE); > Marker.PushFrame (frame, M3RT.HandlerClass.Finally); > - Marker.CaptureState (frame, l+1); > + <* ASSERT UsesSetjmp (p) *> > + <* ASSERT p.jumpbuf # NIL *> > + Marker.CaptureState (frame, l+1, p.jumpbuf); > > (* compile the body *) > Marker.PushFinally (l, l+1, frame); > Index: src/stmts/TryStmt.m3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-sys/m3front/src/stmts/TryStmt.m3,v > retrieving revision 1.3 > diff -u -r1.3 TryStmt.m3 > --- src/stmts/TryStmt.m3 5 Jan 2011 14:34:54 -0000 1.3 > +++ src/stmts/TryStmt.m3 30 Jan 2011 10:41:18 -0000 > @@ -22,6 +22,7 @@ > hasElse : BOOLEAN; > elseBody : Stmt.T; > handled : ESet.T; > + jumpbuf : Variable.T := NIL; > OVERRIDES > check := Check; > compile := Compile; > @@ -153,6 +154,14 @@ > p.handles := h3; > END ReverseHandlers; > > +PROCEDURE UsesSetjmp (p: P): BOOLEAN = > + BEGIN > + IF (p.handles = NIL) AND (NOT p.hasElse) THEN > + RETURN FALSE; > + END; > + RETURN NOT Target.Has_stack_walker; > + END UsesSetjmp; > + > PROCEDURE Check (p: P; VAR cs: Stmt.CheckState) = > VAR h: Handler; handled: ESet.T; > BEGIN > @@ -182,6 +191,10 @@ > WHILE (h # NIL) DO CheckHandler (h, cs); h := h.next; END; > Stmt.TypeCheck (p.elseBody, cs); > PopHandler (); > + > + IF UsesSetjmp (p) THEN > + p.jumpbuf := Marker.NewJumpbuf (); > + END; > END Check; > > PROCEDURE CheckLabels (h: Handler; scope: Scope.T; VAR cs: Stmt.CheckState) = > @@ -245,14 +258,19 @@ > END CheckHandler; > > PROCEDURE Compile (p: P): Stmt.Outcomes = > + VAR usesSetjmp := FALSE; > + result: Stmt.Outcomes; > BEGIN > IF (p.handles = NIL) AND (NOT p.hasElse) THEN > - RETURN Stmt.Compile (p.body); > - END; > - IF Target.Has_stack_walker > - THEN RETURN Compile1 (p); > - ELSE RETURN Compile2 (p); > + result := Stmt.Compile (p.body); > + ELSIF Target.Has_stack_walker THEN > + result := Compile1 (p); > + ELSE > + usesSetjmp := TRUE; > + result := Compile2 (p); > END; > + <* ASSERT usesSetjmp = UsesSetjmp (p) *> > + RETURN result; > END Compile; > > PROCEDURE Compile1 (p: P): Stmt.Outcomes = > @@ -423,7 +441,9 @@ > END; > > (* capture the machine state *) > - Marker.CaptureState (frame, l+1); > + <* ASSERT UsesSetjmp (p) *> > + <* ASSERT p.jumpbuf # NIL *> > + Marker.CaptureState (frame, l+1, p.jumpbuf); > > (* compile the body *) > oc := Stmt.Compile (p.body); > > Thanks, > - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Jan 31 20:19:51 2011 From: jay.krell at cornell.edu (Jay K) Date: Mon, 31 Jan 2011 19:19:51 +0000 Subject: [M3devel] fixing try/setjmp in a loop? In-Reply-To: <36BA1892-1828-43A7-B706-AE87B3D98EA1@cs.purdue.edu> References: , <36BA1892-1828-43A7-B706-AE87B3D98EA1@cs.purdue.edu> Message-ID: Right..I also tried Scope.Insert, didn't seem to help. But I think I might be doing it too late. I'll try doing it in Parse instead of Check. Though I don't recall if Parse knows enough -- if it knows if CaptureState will be called. I agree/disagree about alloca up front, with the obvious reasons -- it is smaller code to alloca up front, and it somewhat more closely resembles the old pattern: IF Foo() THEN RETURN ELSE TRY FINALLY in the old way would use the stack, so we could too. But the allocation is slower/larger now (alloca possibly aligning up more than needed). Anyway, this point isn't the problem. The problem is my inability to work with m3front. I'll look at it a bit more -- i.e. as I said, moving the code to Parse. The other improvement I'd like to make: currently, if I had it working, what I'm aiming for is: struct EF1{ ... jmpbuf* jb } ef1; jmpbuf* jb = 0; jb = jb ? jb : alloca(sizeof(*jb)); ef1.jb = jb; setjmp(ef1.jb); but it'd be better to have: struct EF1{ ... jmpbuf* jb } ef1; ef1.jb = 0; ef1.jb = ef1.jb ? ef1.jb : alloca(sizeof(*jb)); setjmp(ef1.jb); ie. we don't need the extra pointer variable, the pointer in the record should suffice. [not sure where to put this in email] I tried figuring out how to determine the current vs. topmost-in-current-function scope. I'm not sure if Scope.Top is about in a function or if it is module scope, or even perhaps some outside-all-modules scope. But Scope.Insert doesn't let you specify a scope, so I kinda hoped it'd just use the correct scope. Anyway, I'll look again at introducing the Variable.New and Scope.Insert during Parse. Even if it doesn't get used, that might be ok, since there is tracking of use, and declaring it might not cause any waste if it isn't used. Thanks, - Jay From: hosking at cs.purdue.edu Date: Mon, 31 Jan 2011 12:14:09 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com Subject: Re: [M3devel] fixing try/setjmp in a loop? Hi Jay, I've not had a chance to digest this, but I do understand the problem. We need the Variable to be entered into the outermost scope of the procedure in which the TRY appears so that it will have initialization code (assigning NIL) generated for it on entry to the procedure. Then your usage of the variable should simply check for NIL and alloca if it is, as you already appear to do here. It would be possible to have the initialization code perform the alloca but then we would have an alloca for every TRY block in a procedure even if they never execute. Probably not the best plan. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 30, 2011, at 5:45 AM, Jay K wrote: I'm trying to fix the inadvertant change I made where FOR i := 1 TO 10 DO TRY FINALLY END will call alloca 10 times. I'm not familiar with the frontend, and it is hard for me to understand. It seems like it is probably very well factored, written by someone who really knew what they were doing, but it is dense, and not verbosely commented. Something like this?? But this doesn't work. What am I missing? And, we should go the next step and merge the jmpbuf pointer variable with the jmpbuf field in the EF1, right? ? 1.txt Index: src/misc/Marker.i3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.i3,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 Marker.i3 --- src/misc/Marker.i3 14 Jan 2001 13:40:31 -0000 1.1.1.1 +++ src/misc/Marker.i3 30 Jan 2011 10:41:18 -0000 @@ -64,9 +64,12 @@ PROCEDURE SetLock (acquire: BOOLEAN; var: CG.Var; offset: INTEGER); (* generate the call to acquire or release a mutex *) -PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label); +PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label; + jumpbuf: Variable.T); (* call 'setjmp' on 'frame's jmpbuf and branch to 'handler' on re-returns. *) PROCEDURE Reset (); +PROCEDURE NewJumpbuf (): Variable.T; + END Marker. Index: src/misc/Marker.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.m3,v retrieving revision 1.9 diff -u -r1.9 Marker.m3 --- src/misc/Marker.m3 13 Jan 2011 14:58:28 -0000 1.9 +++ src/misc/Marker.m3 30 Jan 2011 10:41:18 -0000 @@ -10,7 +10,7 @@ MODULE Marker; IMPORT CG, Error, Type, Variable, ProcType, ESet, Expr, AssignStmt; -IMPORT M3ID, M3RT, Target, Module, RunTyme, Procedure, Host; +IMPORT M3ID, M3RT, Target, Module, RunTyme, Procedure, Host, Addr; TYPE Kind = { zFINALLY, zFINALLYPROC, zLOCK, zEXIT, zTRY, zTRYELSE, @@ -231,8 +231,10 @@ END; END CallFinallyHandler; -PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label) = +PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label; + jumpbuf: Variable.T) = VAR new: BOOLEAN; + label := CG.Next_label (); BEGIN (* int setjmp(void* ); *) IF (setjmp = NIL) THEN @@ -262,13 +264,33 @@ Target.Word.size, Target.Word.align, Target.Word.cg_type, 0); END; - - (* frame.jmpbuf = alloca(Csetjmp__Jumpbuf_size); *) + + (* IF jumpuf # NIL THEN + * frame.jmpbuf = alloca(Csetjmp__Jumpbuf_size); + * END + *) + + CG.Load_nil (); + Variable.Load (jumpbuf); + CG.If_compare (CG.Type.Addr, CG.Cmp.NE, label, CG.Maybe); + CG.Start_call_direct (alloca, 0, Target.Address.cg_type); CG.Load_int (Target.Word.cg_type, Jumpbuf_size); CG.Pop_param (Target.Word.cg_type); CG.Call_direct (alloca, Target.Address.cg_type); + + (* FUTURE: We should actually have a Variable + * for the entire EF1, including initializing the jumpbuf + * in it. That would save us this extra load/store, + * and save a local variable. + *) + Variable.LoadLValue (jumpbuf); + CG.Swap (); + CG.Store_indirect (CG.Type.Addr, 0, Target.Address.size); + Variable.Load (jumpbuf); + CG.Store_addr (frame, M3RT.EF1_jmpbuf); + CG.Set_label (label); (* setmp(frame.jmpbuf) *) CG.Start_call_direct (setjmp, 0, Target.Integer.cg_type); @@ -806,5 +828,15 @@ tos := 0; END Reset; +PROCEDURE NewJumpbuf (): Variable.T = + VAR jumpbuf: Variable.T; + BEGIN + jumpbuf := Variable.New (M3ID.NoID, TRUE); + Variable.BindType (jumpbuf, Addr.T, indirect := FALSE, + readonly := FALSE, open_array_ok := FALSE, + needs_init := TRUE); + RETURN jumpbuf; + END NewJumpbuf; + BEGIN END Marker. Index: src/stmts/TryFinStmt.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/stmts/TryFinStmt.m3,v retrieving revision 1.6 diff -u -r1.6 TryFinStmt.m3 --- src/stmts/TryFinStmt.m3 5 Jan 2011 14:34:54 -0000 1.6 +++ src/stmts/TryFinStmt.m3 30 Jan 2011 10:41:18 -0000 @@ -10,6 +10,7 @@ IMPORT M3ID, CG, Token, Scanner, Stmt, StmtRep, Marker, Target, Type, Addr; IMPORT RunTyme, Procedure, ProcBody, M3RT, Scope, Fmt, Host, TryStmt, Module; +IMPORT Variable; FROM Stmt IMPORT Outcome; TYPE @@ -20,6 +21,7 @@ viaProc : BOOLEAN; scope : Scope.T; handler : HandlerProc; + jumpbuf : Variable.T := NIL; OVERRIDES check := Check; compile := Compile; @@ -63,6 +65,11 @@ RETURN p; END Parse; +PROCEDURE UsesSetjmp (p: P): BOOLEAN = + BEGIN + RETURN NOT (Target.Has_stack_walker OR p.viaProc); + END UsesSetjmp; + PROCEDURE Check (p: P; VAR cs: Stmt.CheckState) = VAR zz: Scope.T; oc: Stmt.Outcomes; name: INTEGER; BEGIN @@ -95,6 +102,9 @@ END; END; TryStmt.PopHandler (); + IF UsesSetjmp (p) THEN + p.jumpbuf := Marker.NewJumpbuf (); + END; END Check; PROCEDURE HandlerName (uid: INTEGER): TEXT = @@ -106,11 +116,16 @@ END HandlerName; PROCEDURE Compile (p: P): Stmt.Outcomes = + VAR usesSetjmp := FALSE; + result: Stmt.Outcomes; BEGIN - IF Target.Has_stack_walker THEN RETURN Compile1 (p); - ELSIF p.viaProc THEN RETURN Compile2 (p); - ELSE RETURN Compile3 (p); + IF Target.Has_stack_walker THEN result := Compile1 (p); + ELSIF p.viaProc THEN result := Compile2 (p); + ELSE usesSetjmp := TRUE; + result := Compile3 (p); END; + <* ASSERT usesSetjmp = UsesSetjmp (p) *> + RETURN result; END Compile; PROCEDURE Compile1 (p: P): Stmt.Outcomes = @@ -302,7 +317,9 @@ l := CG.Next_label (3); CG.Set_label (l, barrier := TRUE); Marker.PushFrame (frame, M3RT.HandlerClass.Finally); - Marker.CaptureState (frame, l+1); + <* ASSERT UsesSetjmp (p) *> + <* ASSERT p.jumpbuf # NIL *> + Marker.CaptureState (frame, l+1, p.jumpbuf); (* compile the body *) Marker.PushFinally (l, l+1, frame); Index: src/stmts/TryStmt.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/stmts/TryStmt.m3,v retrieving revision 1.3 diff -u -r1.3 TryStmt.m3 --- src/stmts/TryStmt.m3 5 Jan 2011 14:34:54 -0000 1.3 +++ src/stmts/TryStmt.m3 30 Jan 2011 10:41:18 -0000 @@ -22,6 +22,7 @@ hasElse : BOOLEAN; elseBody : Stmt.T; handled : ESet.T; + jumpbuf : Variable.T := NIL; OVERRIDES check := Check; compile := Compile; @@ -153,6 +154,14 @@ p.handles := h3; END ReverseHandlers; +PROCEDURE UsesSetjmp (p: P): BOOLEAN = + BEGIN + IF (p.handles = NIL) AND (NOT p.hasElse) THEN + RETURN FALSE; + END; + RETURN NOT Target.Has_stack_walker; + END UsesSetjmp; + PROCEDURE Check (p: P; VAR cs: Stmt.CheckState) = VAR h: Handler; handled: ESet.T; BEGIN @@ -182,6 +191,10 @@ WHILE (h # NIL) DO CheckHandler (h, cs); h := h.next; END; Stmt.TypeCheck (p.elseBody, cs); PopHandler (); + + IF UsesSetjmp (p) THEN + p.jumpbuf := Marker.NewJumpbuf (); + END; END Check; PROCEDURE CheckLabels (h: Handler; scope: Scope.T; VAR cs: Stmt.CheckState) = @@ -245,14 +258,19 @@ END CheckHandler; PROCEDURE Compile (p: P): Stmt.Outcomes = + VAR usesSetjmp := FALSE; + result: Stmt.Outcomes; BEGIN IF (p.handles = NIL) AND (NOT p.hasElse) THEN - RETURN Stmt.Compile (p.body); - END; - IF Target.Has_stack_walker - THEN RETURN Compile1 (p); - ELSE RETURN Compile2 (p); + result := Stmt.Compile (p.body); + ELSIF Target.Has_stack_walker THEN + result := Compile1 (p); + ELSE + usesSetjmp := TRUE; + result := Compile2 (p); END; + <* ASSERT usesSetjmp = UsesSetjmp (p) *> + RETURN result; END Compile; PROCEDURE Compile1 (p: P): Stmt.Outcomes = @@ -423,7 +441,9 @@ END; (* capture the machine state *) - Marker.CaptureState (frame, l+1); + <* ASSERT UsesSetjmp (p) *> + <* ASSERT p.jumpbuf # NIL *> + Marker.CaptureState (frame, l+1, p.jumpbuf); (* compile the body *) oc := Stmt.Compile (p.body); Thanks, - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Jan 31 21:26:20 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 31 Jan 2011 15:26:20 -0500 Subject: [M3devel] fixing try/setjmp in a loop? In-Reply-To: References: , <36BA1892-1828-43A7-B706-AE87B3D98EA1@cs.purdue.edu> Message-ID: I think we need to have a way to get the scope of the containing procedure. TryStmt.Parse is not the right place. If I get some time soon I can take a look at this. On Jan 31, 2011, at 2:19 PM, Jay K wrote: > Right..I also tried Scope.Insert, didn't seem to help. > > But I think I might be doing it too late. I'll try doing it in Parse instead of Check. > Though I don't recall if Parse knows enough -- if it knows if CaptureState will be called. > I agree/disagree about alloca up front, with the obvious reasons -- it is smaller code to alloca up front, and it somewhat > more closely resembles the old pattern: > > IF Foo() THEN > RETURN > ELSE TRY FINALLY > > in the old way would use the stack, so we could too. > But the allocation is slower/larger now (alloca possibly aligning up more than needed). > Anyway, this point isn't the problem. The problem is my inability to work with m3front. > I'll look at it a bit more -- i.e. as I said, moving the code to Parse. > > The other improvement I'd like to make: > > currently, if I had it working, what I'm aiming for is: > struct EF1{ ... jmpbuf* jb } ef1; > jmpbuf* jb = 0; > > jb = jb ? jb : alloca(sizeof(*jb)); > ef1.jb = jb; > setjmp(ef1.jb); > > but it'd be better to have: > > struct EF1{ ... jmpbuf* jb } ef1; > ef1.jb = 0; > > ef1.jb = ef1.jb ? ef1.jb : alloca(sizeof(*jb)); > setjmp(ef1.jb); > > > ie. we don't need the extra pointer variable, the pointer in the record should suffice. > > > [not sure where to put this in email] > I tried figuring out how to determine the current vs. topmost-in-current-function scope. > I'm not sure if Scope.Top is about in a function or if it is module scope, or even perhaps > some outside-all-modules scope. But Scope.Insert doesn't let you specify a scope, > so I kinda hoped it'd just use the correct scope. > > > Anyway, I'll look again at introducing the Variable.New and Scope.Insert during Parse. > Even if it doesn't get used, that might be ok, since there is tracking of use, and > declaring it might not cause any waste if it isn't used. > > > Thanks, > - Jay > > > From: hosking at cs.purdue.edu > Date: Mon, 31 Jan 2011 12:14:09 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] fixing try/setjmp in a loop? > > Hi Jay, > > I've not had a chance to digest this, but I do understand the problem. We need the Variable to be entered into the outermost scope of the procedure in which the TRY appears so that it will have initialization code (assigning NIL) generated for it on entry to the procedure. Then your usage of the variable should simply check for NIL and alloca if it is, as you already appear to do here. It would be possible to have the initialization code perform the alloca but then we would have an alloca for every TRY block in a procedure even if they never execute. Probably not the best plan. > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 | Mobile +1 765 427 5484 > > > > > On Jan 30, 2011, at 5:45 AM, Jay K wrote: > > I'm trying to fix the inadvertant change I made where > FOR i := 1 TO 10 DO TRY FINALLY END > > will call alloca 10 times. > > I'm not familiar with the frontend, and it is hard for me to understand. > It seems like it is probably very well factored, written by someone who really knew what they were doing, > but it is dense, and not verbosely commented. > > Something like this?? But this doesn't work. What am I missing? > And, we should go the next step and merge the jmpbuf pointer variable with the jmpbuf field in the EF1, right? > > > ? 1.txt > Index: src/misc/Marker.i3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.i3,v > retrieving revision 1.1.1.1 > diff -u -r1.1.1.1 Marker.i3 > --- src/misc/Marker.i3 14 Jan 2001 13:40:31 -0000 1.1.1.1 > +++ src/misc/Marker.i3 30 Jan 2011 10:41:18 -0000 > @@ -64,9 +64,12 @@ > PROCEDURE SetLock (acquire: BOOLEAN; var: CG.Var; offset: INTEGER); > (* generate the call to acquire or release a mutex *) > > -PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label); > +PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label; > + jumpbuf: Variable.T); > (* call 'setjmp' on 'frame's jmpbuf and branch to 'handler' on re-returns. *) > > PROCEDURE Reset (); > > +PROCEDURE NewJumpbuf (): Variable.T; > + > END Marker. > Index: src/misc/Marker.m3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.m3,v > retrieving revision 1.9 > diff -u -r1.9 Marker.m3 > --- src/misc/Marker.m3 13 Jan 2011 14:58:28 -0000 1.9 > +++ src/misc/Marker.m3 30 Jan 2011 10:41:18 -0000 > @@ -10,7 +10,7 @@ > MODULE Marker; > > IMPORT CG, Error, Type, Variable, ProcType, ESet, Expr, AssignStmt; > -IMPORT M3ID, M3RT, Target, Module, RunTyme, Procedure, Host; > +IMPORT M3ID, M3RT, Target, Module, RunTyme, Procedure, Host, Addr; > > TYPE > Kind = { zFINALLY, zFINALLYPROC, zLOCK, zEXIT, zTRY, zTRYELSE, > @@ -231,8 +231,10 @@ > END; > END CallFinallyHandler; > > -PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label) = > +PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label; > + jumpbuf: Variable.T) = > VAR new: BOOLEAN; > + label := CG.Next_label (); > BEGIN > (* int setjmp(void* ); *) > IF (setjmp = NIL) THEN > @@ -262,13 +264,33 @@ > Target.Word.size, Target.Word.align, > Target.Word.cg_type, 0); > END; > - > - (* frame.jmpbuf = alloca(Csetjmp__Jumpbuf_size); *) > + > + (* IF jumpuf # NIL THEN > + * frame.jmpbuf = alloca(Csetjmp__Jumpbuf_size); > + * END > + *) > + > + CG.Load_nil (); > + Variable.Load (jumpbuf); > + CG.If_compare (CG.Type.Addr, CG.Cmp.NE, label, CG.Maybe); > + > CG.Start_call_direct (alloca, 0, Target.Address.cg_type); > CG.Load_int (Target.Word.cg_type, Jumpbuf_size); > CG.Pop_param (Target.Word.cg_type); > CG.Call_direct (alloca, Target.Address.cg_type); > + > + (* FUTURE: We should actually have a Variable > + * for the entire EF1, including initializing the jumpbuf > + * in it. That would save us this extra load/store, > + * and save a local variable. > + *) > + Variable.LoadLValue (jumpbuf); > + CG.Swap (); > + CG.Store_indirect (CG.Type.Addr, 0, Target.Address.size); > + Variable.Load (jumpbuf); > + > CG.Store_addr (frame, M3RT.EF1_jmpbuf); > + CG.Set_label (label); > > (* setmp(frame.jmpbuf) *) > CG.Start_call_direct (setjmp, 0, Target.Integer.cg_type); > @@ -806,5 +828,15 @@ > tos := 0; > END Reset; > > +PROCEDURE NewJumpbuf (): Variable.T = > + VAR jumpbuf: Variable.T; > + BEGIN > + jumpbuf := Variable.New (M3ID.NoID, TRUE); > + Variable.BindType (jumpbuf, Addr.T, indirect := FALSE, > + readonly := FALSE, open_array_ok := FALSE, > + needs_init := TRUE); > + RETURN jumpbuf; > + END NewJumpbuf; > + > BEGIN > END Marker. > Index: src/stmts/TryFinStmt.m3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-sys/m3front/src/stmts/TryFinStmt.m3,v > retrieving revision 1.6 > diff -u -r1.6 TryFinStmt.m3 > --- src/stmts/TryFinStmt.m3 5 Jan 2011 14:34:54 -0000 1.6 > +++ src/stmts/TryFinStmt.m3 30 Jan 2011 10:41:18 -0000 > @@ -10,6 +10,7 @@ > > IMPORT M3ID, CG, Token, Scanner, Stmt, StmtRep, Marker, Target, Type, Addr; > IMPORT RunTyme, Procedure, ProcBody, M3RT, Scope, Fmt, Host, TryStmt, Module; > +IMPORT Variable; > FROM Stmt IMPORT Outcome; > > TYPE > @@ -20,6 +21,7 @@ > viaProc : BOOLEAN; > scope : Scope.T; > handler : HandlerProc; > + jumpbuf : Variable.T := NIL; > OVERRIDES > check := Check; > compile := Compile; > @@ -63,6 +65,11 @@ > RETURN p; > END Parse; > > +PROCEDURE UsesSetjmp (p: P): BOOLEAN = > + BEGIN > + RETURN NOT (Target.Has_stack_walker OR p.viaProc); > + END UsesSetjmp; > + > PROCEDURE Check (p: P; VAR cs: Stmt.CheckState) = > VAR zz: Scope.T; oc: Stmt.Outcomes; name: INTEGER; > BEGIN > @@ -95,6 +102,9 @@ > END; > END; > TryStmt.PopHandler (); > + IF UsesSetjmp (p) THEN > + p.jumpbuf := Marker.NewJumpbuf (); > + END; > END Check; > > PROCEDURE HandlerName (uid: INTEGER): TEXT = > @@ -106,11 +116,16 @@ > END HandlerName; > > PROCEDURE Compile (p: P): Stmt.Outcomes = > + VAR usesSetjmp := FALSE; > + result: Stmt.Outcomes; > BEGIN > - IF Target.Has_stack_walker THEN RETURN Compile1 (p); > - ELSIF p.viaProc THEN RETURN Compile2 (p); > - ELSE RETURN Compile3 (p); > + IF Target.Has_stack_walker THEN result := Compile1 (p); > + ELSIF p.viaProc THEN result := Compile2 (p); > + ELSE usesSetjmp := TRUE; > + result := Compile3 (p); > END; > + <* ASSERT usesSetjmp = UsesSetjmp (p) *> > + RETURN result; > END Compile; > > PROCEDURE Compile1 (p: P): Stmt.Outcomes = > @@ -302,7 +317,9 @@ > l := CG.Next_label (3); > CG.Set_label (l, barrier := TRUE); > Marker.PushFrame (frame, M3RT.HandlerClass.Finally); > - Marker.CaptureState (frame, l+1); > + <* ASSERT UsesSetjmp (p) *> > + <* ASSERT p.jumpbuf # NIL *> > + Marker.CaptureState (frame, l+1, p.jumpbuf); > > (* compile the body *) > Marker.PushFinally (l, l+1, frame); > Index: src/stmts/TryStmt.m3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-sys/m3front/src/stmts/TryStmt.m3,v > retrieving revision 1.3 > diff -u -r1.3 TryStmt.m3 > --- src/stmts/TryStmt.m3 5 Jan 2011 14:34:54 -0000 1.3 > +++ src/stmts/TryStmt.m3 30 Jan 2011 10:41:18 -0000 > @@ -22,6 +22,7 @@ > hasElse : BOOLEAN; > elseBody : Stmt.T; > handled : ESet.T; > + jumpbuf : Variable.T := NIL; > OVERRIDES > check := Check; > compile := Compile; > @@ -153,6 +154,14 @@ > p.handles := h3; > END ReverseHandlers; > > +PROCEDURE UsesSetjmp (p: P): BOOLEAN = > + BEGIN > + IF (p.handles = NIL) AND (NOT p.hasElse) THEN > + RETURN FALSE; > + END; > + RETURN NOT Target.Has_stack_walker; > + END UsesSetjmp; > + > PROCEDURE Check (p: P; VAR cs: Stmt.CheckState) = > VAR h: Handler; handled: ESet.T; > BEGIN > @@ -182,6 +191,10 @@ > WHILE (h # NIL) DO CheckHandler (h, cs); h := h.next; END; > Stmt.TypeCheck (p.elseBody, cs); > PopHandler (); > + > + IF UsesSetjmp (p) THEN > + p.jumpbuf := Marker.NewJumpbuf (); > + END; > END Check; > > PROCEDURE CheckLabels (h: Handler; scope: Scope.T; VAR cs: Stmt.CheckState) = > @@ -245,14 +258,19 @@ > END CheckHandler; > > PROCEDURE Compile (p: P): Stmt.Outcomes = > + VAR usesSetjmp := FALSE; > + result: Stmt.Outcomes; > BEGIN > IF (p.handles = NIL) AND (NOT p.hasElse) THEN > - RETURN Stmt.Compile (p.body); > - END; > - IF Target.Has_stack_walker > - THEN RETURN Compile1 (p); > - ELSE RETURN Compile2 (p); > + result := Stmt.Compile (p.body); > + ELSIF Target.Has_stack_walker THEN > + result := Compile1 (p); > + ELSE > + usesSetjmp := TRUE; > + result := Compile2 (p); > END; > + <* ASSERT usesSetjmp = UsesSetjmp (p) *> > + RETURN result; > END Compile; > > PROCEDURE Compile1 (p: P): Stmt.Outcomes = > @@ -423,7 +441,9 @@ > END; > > (* capture the machine state *) > - Marker.CaptureState (frame, l+1); > + <* ASSERT UsesSetjmp (p) *> > + <* ASSERT p.jumpbuf # NIL *> > + Marker.CaptureState (frame, l+1, p.jumpbuf); > > (* compile the body *) > oc := Stmt.Compile (p.body); > > Thanks, > - Jay > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Jan 1 04:06:34 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 1 Jan 2011 03:06:34 +0000 Subject: [M3devel] emac In-Reply-To: <20101231222650.GB2428@topoi.pooq.com> References: <20101231222650.GB2428@topoi.pooq.com> Message-ID: Olaf already has provided a PowerPC Mac running I think MacOSX 10.3. Which provides most of any value for any PowerPC Mac. What is "missing" -- hypothetically in some more grandiose but possibly wasteful world -- might include: running older versions of MacOS X (10.0, 10.1, 10.2) running newer versions of MacOS X (10.4, 10.5) personally I haven't noticed much change since 10.2, except for dropping the 68K support circa 10.5, adding x86 circa 10.4, dropping PowerPC circa 10.6. running MacOS 7/8/9/Classic -- ie: pre-MacOS X, either in the "Classic emulator", or "directly", as well as the 68K emulator therein. (For anyone interested in a 68K port though, NetBSD, OpenBSD, Linux are probably drastically easier (OpenBSD dropped support recently, Debian dropped support long ago, NetBSD still supports). I'd be willing to give the Posix systems a shot, given ssh access.) My ongoing hardware clearance has not gotten to any laptops but at some point I'll probably offer up some free/cheap PowerPC Mac laptops, if anyone here wants to spend the time/space/energy on them. Ultimately..broken record..if we output fairly portable C++, the cross product work and testing can dramatically go away. YOu know -- let's say I have "hello, world", I don't bother porting it or testing it on any systems but the one I have. Most software is much closer to that than we are currently. I'd like to get close to that. - Jay ---------------------------------------- > Date: Fri, 31 Dec 2010 17:26:50 -0500 > From: hendrik at topoi.pooq.com > To: m3devel at elegosoft.com > Subject: [M3devel] emac > > I may be acquiring an emac, which is a small (but heavy -- 50 pounds) > power-PC-based Apple Mac, if I've been informed correctly, running a > somewhat obsolete OS. If I end up with it, would there be anything I > can usefully test on it that's not being adequately tested already? > > -- hendrik > From jay.krell at cornell.edu Sat Jan 1 04:17:12 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 1 Jan 2011 03:17:12 +0000 Subject: [M3devel] emac In-Reply-To: References: <20101231222650.GB2428@topoi.pooq.com>, Message-ID: oh: ps, run Linux on it? Please? Replacing my PowerPC/Linux Hudson node? That would be good. It is easy enough. I've been using Debian across various architectures: x86, amd64, hppa, alpha, ia64, powerpc. (though Alpha support is going away; might be good to try Gentoo again...) Support for NetBSD/powerpc and OpenBSD/powerpc should be easy enough. I had at least one of those working. But there is no Java for these, so no Hudson. Anyone that wants, one person, I can ship out a PowerPC Mac laptop to take over Linux/powerpc for Hudson. (Ditto for MacOSX if Olaf doesn't want to keep his going.) - Jay ---------------------------------------- > From: jay.krell at cornell.edu > To: hendrik at topoi.pooq.com; m3devel at elegosoft.com > Date: Sat, 1 Jan 2011 03:06:34 +0000 > Subject: Re: [M3devel] emac > > > Olaf already has provided a PowerPC Mac running I think MacOSX 10.3. > Which provides most of any value for any PowerPC Mac. > > > > > What is "missing" -- hypothetically in some more grandiose but possibly wasteful world -- might include: > running older versions of MacOS X (10.0, 10.1, 10.2) > running newer versions of MacOS X (10.4, 10.5) > personally I haven't noticed much change since 10.2, except for dropping the 68K support circa 10.5, adding x86 circa 10.4, dropping PowerPC circa 10.6. > running MacOS 7/8/9/Classic -- ie: pre-MacOS X, either in the "Classic emulator", or "directly", as well as the 68K emulator therein. > (For anyone interested in a 68K port though, NetBSD, OpenBSD, Linux are probably drastically easier (OpenBSD dropped support recently, Debian dropped support long ago, NetBSD still supports). I'd be willing to give the Posix systems a shot, given ssh access.) > > > > My ongoing hardware clearance has not gotten to any laptops but at some point I'll probably offer up some free/cheap PowerPC Mac laptops, if anyone here wants to spend the time/space/energy on them. > > > > Ultimately..broken record..if we output fairly portable C++, the cross product work and testing can dramatically go away. YOu know -- let's say I have "hello, world", I don't bother porting it or testing it on any systems but the one I have. Most software is much closer to that than we are currently. I'd like to get close to that. > > > - Jay > > > ---------------------------------------- > > Date: Fri, 31 Dec 2010 17:26:50 -0500 > > From: hendrik at topoi.pooq.com > > To: m3devel at elegosoft.com > > Subject: [M3devel] emac > > > > I may be acquiring an emac, which is a small (but heavy -- 50 pounds) > > power-PC-based Apple Mac, if I've been informed correctly, running a > > somewhat obsolete OS. If I end up with it, would there be anything I > > can usefully test on it that's not being adequately tested already? > > > > -- hendrik > > From jay.krell at cornell.edu Sun Jan 2 09:29:05 2011 From: jay.krell at cornell.edu (Jay K) Date: Sun, 2 Jan 2011 08:29:05 +0000 Subject: [M3devel] how to use gcc exception/unwind support? Message-ID: Tony et. al. do you have much idea already in mind of what using gcc exception and/or unwind support would look like? In particular, do you think we could/should/would use TRY_CATCH_EXPR, TRY_FINALLY_EXPR? I'm not sure (see below). Do you understand the difference between WITH_CLEANUP_EXPR and TRY_FINALLY_EXPR? I don't. Maybe WITH_CLEANUP_EXPR captures a common case is very similar? Regarding TRY_CATCH_EXPR, TRY_FINALLY_EXPR, they sound very promising. But does CATCH_EXPR provide the right construct for deciding to catch or not, and passing the exception properly to the handler? Or should we use RTExStack nearly or completely unchanged, but: 1) have it call libgcc/libunwind, via interface RTStack. 2) in the backend mimic TRY_CATCH_EXPR, TRY_FINALLY_EXPR's affects/pessimisations on the control flow graph and such? Related question is how to model throwing an exception in the backend. This I had looked at even less (e.g. trying to understand how g++ uses this stuff) but is clearly important. g++ clearly sometimes calls __cxa_throw, not clear if it always does. Not clear it does anything else in terms of informing the backend. It looks like not. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Jan 3 00:19:36 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 2 Jan 2011 18:19:36 -0500 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: References: Message-ID: My take was that we would use the unwind support with RTExStack along with recording the flow constraints for the IR. They were never that tricky. On Jan 2, 2011, at 3:29 AM, Jay K wrote: > Tony et. al. do you have much idea already in mind of what using gcc exception and/or unwind support would look like? > > > In particular, do you think we could/should/would use > TRY_CATCH_EXPR, TRY_FINALLY_EXPR? I'm not sure (see below). > > > Do you understand the difference between WITH_CLEANUP_EXPR and TRY_FINALLY_EXPR? > I don't. Maybe WITH_CLEANUP_EXPR captures a common case is very similar? > > > Regarding TRY_CATCH_EXPR, TRY_FINALLY_EXPR, they sound very promising. > But does CATCH_EXPR provide the right construct for deciding to catch or not, > and passing the exception properly to the handler? > > > Or should we use RTExStack nearly or completely unchanged, but: > 1) have it call libgcc/libunwind, via interface RTStack. > 2) in the backend mimic TRY_CATCH_EXPR, TRY_FINALLY_EXPR's affects/pessimisations > on the control flow graph and such? > > > Related question is how to model throwing an exception in the backend. > This I had looked at even less (e.g. trying to understand how g++ uses this stuff) but is clearly important. > g++ clearly sometimes calls __cxa_throw, not clear if it always does. > Not clear it does anything else in terms of informing the backend. It looks like not. > > > - Jay > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Jan 3 02:57:42 2011 From: jay.krell at cornell.edu (Jay K) Date: Mon, 3 Jan 2011 01:57:42 +0000 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: References: , Message-ID: I understand partly and agree as far as I understand. For example..I think it is important, interesting, and subtle that C++ throw resolves to a function call generated by the C++ front end, with the implication that the backend has a certain ignorance as to how it works, with the additional implication that we can (continue to) call our own function to throw/raise an exception. Where I get confused however is esp. resolving "TRY_CATCH", that the backend is given a list of handlers. What is a "handler"? And then..there is also a list of types..but ah, I think I start to see. I think the list of types are meaningless in tree/gimple, only a C++ thing, and the handlers are probably merely pieces of code to connect control flow edges too? I have another idea though...I was thinking...if this is true, if it is just about flow graph... I think there might be two useful intermediate steps toward implementing this. The first implementation would not change the compiler at all, just write the new RTException.m3, and only work with no optimizations. Get this to work. The second implementation would sprinkle volatile on all locals in functions that have "try". Or heck, just as an *experiment* put volatile everywhere like it was before, enable -O3, see that that seems to work. Neither of those two versions would likely be commited, except maybe requiring non-default compiler switches. And then tell the backend about the control flow via the eh stuff in tree.def, and enable optimizations. Make some sense? The first step is at least a good necessary/easy experiment I think. Not so easy, but necessary anyway. Furthermore..give me a bit more time to consider all this, instead of going back to 4.3? Granted, SPARC32_SOLARIS might not ever get this. You know -- what is the availability of the gcc unwinder on Solaris? Surely it is there if you use gcc. But if you use cc? Then to wonder, how does Sun CC work? But I think if we had this working on Darwin, and then Linux, and then FreeBSD, and then OpenBSD and NetBSD, maybe Cygwin, it wouldn't be so awful for Solaris, et. al. to still use setjmp. NT386 could easily remain with setjmp a while too. - Jay From: hosking at cs.purdue.edu Date: Sun, 2 Jan 2011 18:19:36 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com Subject: Re: [M3devel] how to use gcc exception/unwind support? My take was that we would use the unwind support with RTExStack along with recording the flow constraints for the IR. They were never that tricky. On Jan 2, 2011, at 3:29 AM, Jay K wrote:Tony et. al. do you have much idea already in mind of what using gcc exception and/or unwind support would look like? In particular, do you think we could/should/would use TRY_CATCH_EXPR, TRY_FINALLY_EXPR? I'm not sure (see below). Do you understand the difference between WITH_CLEANUP_EXPR and TRY_FINALLY_EXPR? I don't. Maybe WITH_CLEANUP_EXPR captures a common case is very similar? Regarding TRY_CATCH_EXPR, TRY_FINALLY_EXPR, they sound very promising. But does CATCH_EXPR provide the right construct for deciding to catch or not, and passing the exception properly to the handler? Or should we use RTExStack nearly or completely unchanged, but: 1) have it call libgcc/libunwind, via interface RTStack. 2) in the backend mimic TRY_CATCH_EXPR, TRY_FINALLY_EXPR's affects/pessimisations on the control flow graph and such? Related question is how to model throwing an exception in the backend. This I had looked at even less (e.g. trying to understand how g++ uses this stuff) but is clearly important. g++ clearly sometimes calls __cxa_throw, not clear if it always does. Not clear it does anything else in terms of informing the backend. It looks like not. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Jan 3 22:33:53 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 3 Jan 2011 16:33:53 -0500 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: References: , Message-ID: I don't understand why we can't continue to use the same approach we had with gcc 4.3, except utilizing the gcc unwind mechanisms. On Jan 2, 2011, at 8:57 PM, Jay K wrote: > I understand partly and agree as far as I understand. > > > For example..I think it is important, interesting, and subtle that C++ throw resolves to a function call generated > by the C++ front end, with the implication that the backend has a certain ignorance as to how it works, > with the additional implication that we can (continue to) call our own function to throw/raise an exception. > > > Where I get confused however is esp. resolving "TRY_CATCH", that the backend is given > a list of handlers. What is a "handler"? > > > And then..there is also a list of types..but ah, I think I start to see. > I think the list of types are meaningless in tree/gimple, only a C++ thing, > and the handlers are probably merely pieces of code to connect control flow edges too? > > > I have another idea though...I was thinking...if this is true, if it is just about flow graph... > I think there might be two useful intermediate steps toward implementing this. > > > The first implementation would not change the compiler at all, just write the new RTException.m3, and > only work with no optimizations. Get this to work. > > > The second implementation would sprinkle volatile on all locals in functions > that have "try". Or heck, just as an *experiment* put volatile everywhere like > it was before, enable -O3, see that that seems to work. > > > Neither of those two versions would likely be commited, except maybe requiring non-default compiler switches. > > > And then tell the backend about the control flow via the eh stuff in tree.def, and enable optimizations. > > > Make some sense? > > > The first step is at least a good necessary/easy experiment I think. > Not so easy, but necessary anyway. > > > Furthermore..give me a bit more time to consider all this, instead of going > back to 4.3? > > > Granted, SPARC32_SOLARIS might not ever get this. > You know -- what is the availability of the gcc unwinder on Solaris? But we do use gcc as the M3 backend on Sparc, so not a problem. > Surely it is there if you use gcc. But if you use cc? > > > Then to wonder, how does Sun CC work? > > > But I think if we had this working on Darwin, and then Linux, and then FreeBSD, > and then OpenBSD and NetBSD, maybe Cygwin, it wouldn't be so awful for Solaris, et. al. to still use setjmp. > NT386 could easily remain with setjmp a while too. > > > - Jay > > > > From: hosking at cs.purdue.edu > Date: Sun, 2 Jan 2011 18:19:36 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] how to use gcc exception/unwind support? > > My take was that we would use the unwind support with RTExStack along with recording the flow constraints for the IR. They were never that tricky. > > On Jan 2, 2011, at 3:29 AM, Jay K wrote: > > Tony et. al. do you have much idea already in mind of what using gcc exception and/or unwind support would look like? > > > In particular, do you think we could/should/would use > TRY_CATCH_EXPR, TRY_FINALLY_EXPR? I'm not sure (see below). > > > Do you understand the difference between WITH_CLEANUP_EXPR and TRY_FINALLY_EXPR? > I don't. Maybe WITH_CLEANUP_EXPR captures a common case is very similar? > > > Regarding TRY_CATCH_EXPR, TRY_FINALLY_EXPR, they sound very promising. > But does CATCH_EXPR provide the right construct for deciding to catch or not, > and passing the exception properly to the handler? > > > Or should we use RTExStack nearly or completely unchanged, but: > 1) have it call libgcc/libunwind, via interface RTStack. > 2) in the backend mimic TRY_CATCH_EXPR, TRY_FINALLY_EXPR's affects/pessimisations > on the control flow graph and such? > > > Related question is how to model throwing an exception in the backend. > This I had looked at even less (e.g. trying to understand how g++ uses this stuff) but is clearly important. > g++ clearly sometimes calls __cxa_throw, not clear if it always does. > Not clear it does anything else in terms of informing the backend. It looks like not. > > > - Jay > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Tue Jan 4 00:57:05 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Mon, 3 Jan 2011 23:57:05 +0000 (GMT) Subject: [M3devel] elegosoft.com working? Message-ID: <9724.73584.qm@web29715.mail.ird.yahoo.com> Hi all: I'm may be wrong but it seems elegosoft.com web service takes longer than usual to retrieve data, though the server respponds ICMP requests quickly: test at fbd-desktop:~/Documentos/books/MedicineCompunetics$ ping elegosoft.com PING elegosoft.com (88.198.39.217) 56(84) bytes of data. 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=1 ttl=60 time=207 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=2 ttl=60 time=207 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=3 ttl=60 time=209 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=4 ttl=60 time=209 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=5 ttl=60 time=206 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=6 ttl=60 time=209 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=7 ttl=60 time=206 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=8 ttl=60 time=206 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=9 ttl=60 time=209 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=10 ttl=60 time=208 ms 64 bytes from birch.elego.de (88.198.39.217): icmp_seq=11 ttl=60 time=210 ms --- elegosoft.com ping statistics --- 11 packets transmitted, 11 received, 0% packet loss, time 10003ms rtt min/avg/max/mdev = 206.190/208.306/210.390/1.533 ms like if it was full load or is not running at all from here. Can you check for us please? the ports seem to be open, maybe that services are just too much loaded? Interesting ports on birch.elego.de (88.198.39.217): Not shown: 1703 filtered ports PORT STATE SERVICE 20/tcp closed ftp-data 21/tcp open ftp 22/tcp open ssh 25/tcp open smtp 53/tcp open domain 80/tcp open http 443/tcp open https 2401/tcp open cvspserver 5999/tcp open ncd-conf 8080/tcp open http-proxy 9103/tcp closed jetdirect Read data files from: /usr/share/nmap Nmap done: 1 IP address (1 host up) scanned in 34.914 seconds Raw packets sent: 3423 (150.592KB) | Rcvd: 17 (810B) Thanks in advance From jay.krell at cornell.edu Tue Jan 4 12:09:16 2011 From: jay.krell at cornell.edu (Jay K) Date: Tue, 4 Jan 2011 11:09:16 +0000 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: References: , , , , Message-ID: Tony, Are you suggesting we don't use __Unwind_RaiseException and don't provide a "personality routine" but just use, like, unw_step? e.g. http://www.nongnu.org/libunwind/man/libunwind%283%29.html vs. http://www.codesourcery.com/public/cxx-abi/abi-eh.html#base-context Problem is...unw_step appears not in the base API in libgcc. It appears we really should use __Unwind_RaiseException and a personality routine. As well, experience with gcc 4.5 + Solaris/sparc, suggests there are problems, but we'll see. Problems I think solved by using the gcc tree codes to inform of it where try/finally (lock) and try/catch are. Again, our sparc32 stack walker doesn't even work with unoptimized gcc 4.5 code, which I do find surprising. > You know -- what is the availability of the gcc unwinder on Solaris? > But we do use gcc as the M3 backend on Sparc, so not a problem. The gcc unwinder is usually in libgcc/libgcc_s, which the gcc driver arranges to link in. It might be elsewhere on Darwin, but still, it is there at a low level and the gcc driver gives it to you. We don't use the gcc driver. Solaris does ship with gcc these days, so maybe just to look at what it does.. - Jay From: hosking at cs.purdue.edu Date: Mon, 3 Jan 2011 16:33:53 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com Subject: Re: [M3devel] how to use gcc exception/unwind support? I don't understand why we can't continue to use the same approach we had with gcc 4.3, except utilizing the gcc unwind mechanisms. On Jan 2, 2011, at 8:57 PM, Jay K wrote:I understand partly and agree as far as I understand. For example..I think it is important, interesting, and subtle that C++ throw resolves to a function call generated by the C++ front end, with the implication that the backend has a certain ignorance as to how it works, with the additional implication that we can (continue to) call our own function to throw/raise an exception. Where I get confused however is esp. resolving "TRY_CATCH", that the backend is given a list of handlers. What is a "handler"? And then..there is also a list of types..but ah, I think I start to see. I think the list of types are meaningless in tree/gimple, only a C++ thing, and the handlers are probably merely pieces of code to connect control flow edges too? I have another idea though...I was thinking...if this is true, if it is just about flow graph... I think there might be two useful intermediate steps toward implementing this. The first implementation would not change the compiler at all, just write the new RTException.m3, and only work with no optimizations. Get this to work. The second implementation would sprinkle volatile on all locals in functions that have "try". Or heck, just as an *experiment* put volatile everywhere like it was before, enable -O3, see that that seems to work. Neither of those two versions would likely be commited, except maybe requiring non-default compiler switches. And then tell the backend about the control flow via the eh stuff in tree.def, and enable optimizations. Make some sense? The first step is at least a good necessary/easy experiment I think. Not so easy, but necessary anyway. Furthermore..give me a bit more time to consider all this, instead of going back to 4.3? Granted, SPARC32_SOLARIS might not ever get this. You know -- what is the availability of the gcc unwinder on Solaris? But we do use gcc as the M3 backend on Sparc, so not a problem. Surely it is there if you use gcc. But if you use cc? Then to wonder, how does Sun CC work? But I think if we had this working on Darwin, and then Linux, and then FreeBSD, and then OpenBSD and NetBSD, maybe Cygwin, it wouldn't be so awful for Solaris, et. al. to still use setjmp. NT386 could easily remain with setjmp a while too. - Jay From: hosking at cs.purdue.edu Date: Sun, 2 Jan 2011 18:19:36 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com Subject: Re: [M3devel] how to use gcc exception/unwind support? My take was that we would use the unwind support with RTExStack along with recording the flow constraints for the IR. They were never that tricky. On Jan 2, 2011, at 3:29 AM, Jay K wrote:Tony et. al. do you have much idea already in mind of what using gcc exception and/or unwind support would look like? In particular, do you think we could/should/would use TRY_CATCH_EXPR, TRY_FINALLY_EXPR? I'm not sure (see below). Do you understand the difference between WITH_CLEANUP_EXPR and TRY_FINALLY_EXPR? I don't. Maybe WITH_CLEANUP_EXPR captures a common case is very similar? Regarding TRY_CATCH_EXPR, TRY_FINALLY_EXPR, they sound very promising. But does CATCH_EXPR provide the right construct for deciding to catch or not, and passing the exception properly to the handler? Or should we use RTExStack nearly or completely unchanged, but: 1) have it call libgcc/libunwind, via interface RTStack. 2) in the backend mimic TRY_CATCH_EXPR, TRY_FINALLY_EXPR's affects/pessimisations on the control flow graph and such? Related question is how to model throwing an exception in the backend. This I had looked at even less (e.g. trying to understand how g++ uses this stuff) but is clearly important. g++ clearly sometimes calls __cxa_throw, not clear if it always does. Not clear it does anything else in terms of informing the backend. It looks like not. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Tue Jan 4 15:05:52 2011 From: wagner at elegosoft.com (Olaf Wagner) Date: Tue, 04 Jan 2011 15:05:52 +0100 Subject: [M3devel] elegosoft.com working? In-Reply-To: <9724.73584.qm@web29715.mail.ird.yahoo.com> References: <9724.73584.qm@web29715.mail.ird.yahoo.com> Message-ID: <20110104150552.0v50fkju0wowggw0@mail.elegosoft.com> Quoting "Daniel Alejandro Benavides D." : > Hi all: > I'm may be wrong but it seems elegosoft.com web service takes longer > than usual to retrieve data, though the server respponds ICMP > requests quickly: [...] > 11 packets transmitted, 11 received, 0% packet loss, time 10003ms > rtt min/avg/max/mdev = 206.190/208.306/210.390/1.533 ms > > like if it was full load or is not running at all from here. Can you > check for us please? the ports seem to be open, maybe that services > are just too much loaded? There are still load issues due to concurrent CVS checkouts and backup processes on birch now and then with which the I/O system cannot cope, though they have been much reduced. In these cases all you can do is wait some time, as repeating the requests will only make matters worse. A final solution (the complete migration of web services to a new machine) is still pending. Olaf -- Olaf Wagner -- elego Software Solutions GmbH Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 From dabenavidesd at yahoo.es Tue Jan 4 19:55:01 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Tue, 4 Jan 2011 18:55:01 +0000 (GMT) Subject: [M3devel] elegosoft.com working? In-Reply-To: <20110104150552.0v50fkju0wowggw0@mail.elegosoft.com> Message-ID: <776710.92190.qm@web29712.mail.ird.yahoo.com> Hi all: thanks for the info, some time after it went on again working, but still if there is some escalation issue because of the compiler checks specially with the computation time, like ESC and so, perhaps like in night builds, what would be the machine needs for that process and the results to allow? Based on some experience like in compilers we would have access to the checks in more or less time if so I guess we would need optimization anyway at source level and execution level. Meanwhile more checks will likely to be introduced, so it would a balance of both needs. Thanks in advance --- El mar, 4/1/11, Olaf Wagner escribi?: > De: Olaf Wagner > Asunto: Re: [M3devel] elegosoft.com working? > Para: "Daniel Alejandro Benavides D." > CC: m3devel at elegosoft.com > Fecha: martes, 4 de enero, 2011 09:05 > Quoting "Daniel Alejandro Benavides > D." : > > > Hi all: > > I'm may be wrong but it seems elegosoft.com web > service takes longer than usual to retrieve data, > though the server respponds ICMP requests quickly: > [...] > > 11 packets transmitted, 11 received, 0% packet loss, > time 10003ms > > rtt min/avg/max/mdev = 206.190/208.306/210.390/1.533 > ms > > > > like if it was full load or is not running at all from > here. Can you check for us please? the ports seem to > be open, maybe that services are just too much > loaded? > > There are still load issues due to concurrent CVS checkouts > and > backup processes on birch now and then with which the I/O > system cannot > cope, though they have been much reduced. > > In these cases all you can do is wait some time, as > repeating the > requests will only make matters worse. A final solution > (the complete > migration of web services to a new machine) is still > pending. > > Olaf > --Olaf Wagner -- elego Software Solutions GmbH > > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 > Berlin, Germany > phone: +49 30 23 45 86 96 mobile: +49 177 2345 > 869 fax: +49 30 23 45 86 95 > http://www.elegosoft.com | > Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | > USt-IdNr: DE163214194 > > From hosking at cs.purdue.edu Wed Jan 5 03:50:59 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 4 Jan 2011 21:50:59 -0500 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: References: , , , , Message-ID: <7574D14D-BA09-44DE-98CE-6127CAEE7E8B@cs.purdue.edu> Yes, indeed. We don't need all the overhead of the C++ exception handling mechanism. On Jan 4, 2011, at 6:09 AM, Jay K wrote: > Tony, > > Are you suggesting we don't use __Unwind_RaiseException > and don't provide a "personality routine" > but just use, like, unw_step? > > > e.g. http://www.nongnu.org/libunwind/man/libunwind%283%29.html > vs. http://www.codesourcery.com/public/cxx-abi/abi-eh.html#base-context > > > Problem is...unw_step appears not in the base API in libgcc. > It appears we really should use __Unwind_RaiseException > and a personality routine. > > > As well, experience with gcc 4.5 + Solaris/sparc, suggests > there are problems, but we'll see. Problems I think solved > by using the gcc tree codes to inform of it where try/finally (lock) > and try/catch are. Again, our sparc32 stack walker doesn't > even work with unoptimized gcc 4.5 code, which I do find surprising. We need to make sure that "Set_label" IR instructions that are barriers influence the gcc labels accordingly. > > You know -- what is the availability of the gcc unwinder on Solaris? > > But we do use gcc as the M3 backend on Sparc, so not a problem. > > The gcc unwinder is usually in libgcc/libgcc_s, which the gcc driver > arranges to link in. > It might be elsewhere on Darwin, but still, it is there > at a low level and the gcc driver gives it to you. > We don't use the gcc driver. > Solaris does ship with gcc these days, so maybe just to look at what it does.. We could simply link using gcc. > > > - Jay > > > > > > > > From: hosking at cs.purdue.edu > Date: Mon, 3 Jan 2011 16:33:53 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] how to use gcc exception/unwind support? > > I don't understand why we can't continue to use the same approach we had with gcc 4.3, except utilizing the gcc unwind mechanisms. > > On Jan 2, 2011, at 8:57 PM, Jay K wrote: > > I understand partly and agree as far as I understand. > > > For example..I think it is important, interesting, and subtle that C++ throw resolves to a function call generated > by the C++ front end, with the implication that the backend has a certain ignorance as to how it works, > with the additional implication that we can (continue to) call our own function to throw/raise an exception. > > > Where I get confused however is esp. resolving "TRY_CATCH", that the backend is given > a list of handlers. What is a "handler"? > > > And then..there is also a list of types..but ah, I think I start to see. > I think the list of types are meaningless in tree/gimple, only a C++ thing, > and the handlers are probably merely pieces of code to connect control flow edges too? > > > I have another idea though...I was thinking...if this is true, if it is just about flow graph... > I think there might be two useful intermediate steps toward implementing this. > > > The first implementation would not change the compiler at all, just write the new RTException.m3, and > only work with no optimizations. Get this to work. > > > The second implementation would sprinkle volatile on all locals in functions > that have "try". Or heck, just as an *experiment* put volatile everywhere like > it was before, enable -O3, see that that seems to work. > > > Neither of those two versions would likely be commited, except maybe requiring non-default compiler switches. > > > And then tell the backend about the control flow via the eh stuff in tree.def, and enable optimizations. > > > Make some sense? > > > The first step is at least a good necessary/easy experiment I think. > Not so easy, but necessary anyway. > > > Furthermore..give me a bit more time to consider all this, instead of going > back to 4.3? > > > Granted, SPARC32_SOLARIS might not ever get this. > You know -- what is the availability of the gcc unwinder on Solaris? > > But we do use gcc as the M3 backend on Sparc, so not a problem. > > Surely it is there if you use gcc. But if you use cc? > > > Then to wonder, how does Sun CC work? > > > But I think if we had this working on Darwin, and then Linux, and then FreeBSD, > and then OpenBSD and NetBSD, maybe Cygwin, it wouldn't be so awful for Solaris, et. al. to still use setjmp. > NT386 could easily remain with setjmp a while too. > > > - Jay > > > > From: hosking at cs.purdue.edu > Date: Sun, 2 Jan 2011 18:19:36 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] how to use gcc exception/unwind support? > > My take was that we would use the unwind support with RTExStack along with recording the flow constraints for the IR. They were never that tricky. > > On Jan 2, 2011, at 3:29 AM, Jay K wrote: > > Tony et. al. do you have much idea already in mind of what using gcc exception and/or unwind support would look like? > > > In particular, do you think we could/should/would use > TRY_CATCH_EXPR, TRY_FINALLY_EXPR? I'm not sure (see below). > > > Do you understand the difference between WITH_CLEANUP_EXPR and TRY_FINALLY_EXPR? > I don't. Maybe WITH_CLEANUP_EXPR captures a common case is very similar? > > > Regarding TRY_CATCH_EXPR, TRY_FINALLY_EXPR, they sound very promising. > But does CATCH_EXPR provide the right construct for deciding to catch or not, > and passing the exception properly to the handler? > > > Or should we use RTExStack nearly or completely unchanged, but: > 1) have it call libgcc/libunwind, via interface RTStack. > 2) in the backend mimic TRY_CATCH_EXPR, TRY_FINALLY_EXPR's affects/pessimisations > on the control flow graph and such? > > > Related question is how to model throwing an exception in the backend. > This I had looked at even less (e.g. trying to understand how g++ uses this stuff) but is clearly important. > g++ clearly sometimes calls __cxa_throw, not clear if it always does. > Not clear it does anything else in terms of informing the backend. It looks like not. > > > - Jay > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Jan 5 04:45:34 2011 From: jay.krell at cornell.edu (Jay K) Date: Wed, 5 Jan 2011 03:45:34 +0000 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: <7574D14D-BA09-44DE-98CE-6127CAEE7E8B@cs.purdue.edu> References: , , , , , , , , , <7574D14D-BA09-44DE-98CE-6127CAEE7E8B@cs.purdue.edu> Message-ID: > Yes, indeed. We don't need all the overhead of the C++ exception handling mechanism. It is so much? Well, it maybe is more to understand. But the unw_step code isn't clearly exposed, only higher level stuff is. > sparc stack walker > We need to make sure that "Set_label" IR instructions that are barriers influence the gcc labels accordingly. Even w/o optimization? I did never figure out som of the gcc 4.5 analogs to the gcc 4.3 code, regarding barrier labels. > You know -- what is the availability of the gcc unwinder on Solaris? > But we do use gcc as the M3 backend on Sparc, so not a problem. > We don't use the gcc driver. > Solaris does ship with gcc these days, so maybe just to look at what it does.. > We could simply link using gcc. Maybe. I think some of the opencsw machines actually move or remove gcc, but maybe a bit of testing and autoconf-like probing and we can always find it.. or maybe it comes with static libgcc.a, and maybe therefore we can/should build static libgcc.a with cm3cg. Anyway, I'll be quite pleased if if I can get Darwin/Linux/*BSD working, Solaris can wait quite a while.. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Wed Jan 5 10:04:38 2011 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 05 Jan 2011 10:04:38 +0100 Subject: [M3devel] elegosoft.com working? In-Reply-To: <776710.92190.qm@web29712.mail.ird.yahoo.com> References: <776710.92190.qm@web29712.mail.ird.yahoo.com> Message-ID: <20110105100438.6lsghju1c8k000k0@mail.elegosoft.com> Quoting "Daniel Alejandro Benavides D." : > Hi all: > thanks for the info, some time after it went on again working, but > still if there is some escalation issue because of the compiler > checks specially with the computation time, like ESC and so, perhaps > like in night builds, what would be the machine needs for that > process and the results to allow? > Based on some experience like in compilers we would have access to > the checks in more or less time if so I guess we would need > optimization anyway at source level and execution level. Meanwhile > more checks will likely to be introduced, so it would a balance of > both needs. > Thanks in advance I'm not sure if I understand correctly what you're aiming at, but I guess you worry that we need to introduce more checks/tests like ESC. Apart from my estimation that we won't get access to the ESC M3 sources, CPU time would not be a bottleneck, as (a) the bottleneck on birch is the I/O system and (b) we could easily delegate such a task to another server via Hudson. Anyway, once the web service has been moved to another machine there shouldn't be any more problems with our use of birch. Olaf -- Olaf Wagner -- elego Software Solutions GmbH Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 From dabenavidesd at yahoo.es Wed Jan 5 17:28:11 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 5 Jan 2011 16:28:11 +0000 (GMT) Subject: [M3devel] elegosoft.com working? In-Reply-To: <20110105100438.6lsghju1c8k000k0@mail.elegosoft.com> Message-ID: <348665.25192.qm@web29710.mail.ird.yahoo.com> Hi all: yes, I think we should get access to building with cm3 at least, not sure if the sources according to the latest news on that. In the other hand whether we get this I hope sooner or later, I think it would be a m3quake directive like "esc()" to activate it from inside the building task process, so it can be integrated on the same building machine or another will need to have access to the same CM3 build and source repository and check it on the way, the only thing here, is that ESC need to build M3 sources with m3tk and if so, it will that aprox. by the same time cm3 compiler building software ends that ESC will feed itself with cm3 M3Build .M3IMPTAB import table not generated file now times for external compilers. I'm not sure anyway if that's the order of ESC input anyway, or will need first the .M3IMPPTAB back again perhaps will need to upgrade down or make a better independent procedure to expose this for it, see Revision 1.24: http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/cm3/src/M3Build.m3?annotate=1.24 if that's the case we would need to wait anyway for cm3 builds or call it from the IMPORTS to get it. Please if one can check that if it's need it and I will likely to see that too. I also think this would be a nice way of making a dependence analyzer (if so perhaps I think is better doing it with m3tk, what do you think? Besides its worth for Obliq and others too like cm3ide, etc) program for our and other clients too information IMHO. Thanks in advance P.D: according to Dr Greg Nelson the compiler is usually 10x times faster than the ESC process (not sure for the ESC/Java or the ESC/Moddula3), but this is mostly because of the Simplify theorem prover checking see: http://www.uwtv.org/programs/displayevent.aspx?rID=2761 Also for simplify see: http://portal.acm.org/citation.cfm?id=1066100.1066102&preflayout=flat whican can be downlaoded report from here: http://www.hpl.hp.com/techreports/2003/HPL-2003-148.html and benchmarks from here: http://goedel.cs.uiowa.edu/smtlib/benchmarks/pending/simplify_benchmarks.tar.gz --- El mi?, 5/1/11, Olaf Wagner escribi?: > De: Olaf Wagner > Asunto: Re: [M3devel] elegosoft.com working? > Para: "Daniel Alejandro Benavides D." > CC: m3devel at elegosoft.com > Fecha: mi?rcoles, 5 de enero, 2011 04:04 > Quoting "Daniel Alejandro Benavides > D." : > > > Hi all: > > thanks for the info, some time after it went on again > working, but still if there is some escalation issue > because of the compiler checks specially with the > computation time, like ESC and so, perhaps like in > night builds, what would be the machine needs for that > process and the results to allow? > > Based on some experience like in compilers we would > have access to the checks in more or less time if so I > guess we would need optimization anyway at source > level and execution level. Meanwhile more checks will > likely to be introduced, so it would a balance of both > needs. > > Thanks in advance > > I'm not sure if I understand correctly what you're aiming > at, but > I guess you worry that we need to introduce more > checks/tests like > ESC. Apart from my estimation that we won't get access to > the ESC M3 > sources, CPU time would not be a bottleneck, as (a) the > bottleneck on > birch is the I/O system and (b) we could easily delegate > such a task > to another server via Hudson. Anyway, once the web service > has been > moved to another machine there shouldn't be any more > problems with > our use of birch. > > Olaf > --Olaf Wagner -- elego Software Solutions GmbH > > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 > Berlin, Germany > phone: +49 30 23 45 86 96 mobile: +49 177 2345 > 869 fax: +49 30 23 45 86 95 > http://www.elegosoft.com | > Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | > USt-IdNr: DE163214194 > > From jay.krell at cornell.edu Wed Jan 5 18:35:35 2011 From: jay.krell at cornell.edu (Jay K) Date: Wed, 5 Jan 2011 17:35:35 +0000 Subject: [M3devel] missing error check or maybe just stdout/err out of order? Message-ID: http://hudson.modula3.com:8080/job/cm3-current-build-SOLsun-opencsw-current9s/166/console Has a small bunch of output after the error. But I think it might just be out of order, not actually continuing on? Throw in "2>&1"? Anyway, I fixed the error itself. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Wed Jan 5 19:01:49 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 5 Jan 2011 18:01:49 +0000 (GMT) Subject: [M3devel] elegosoft.com working? In-Reply-To: <348665.25192.qm@web29710.mail.ird.yahoo.com> Message-ID: <28801.31834.qm@web29717.mail.ird.yahoo.com> Hi all: I recall now that the current rend is run this theorem provers distributedly, rather than standalone, so we might given that we have already this in our hands the Simplify theorem prover, for a network instance, not sure if the I/O will be affected in that case, perhaps the most important thing is to verify full integrity of transfers. See about that issue: http://nexus.realtimepublishers.com/ttgmft.php (is a work in progress so if interested keep and eye on it, you can register if you want) Given that simplify is not written object oriented, perhaps that must be thought to be like that. The thing is given it takes more than double times the time of the compile build process we might (the Greg nelson comment at 53:00 on the linked video) is it is a kind of slow process or of high length but ok to be run on nights. Perhaps given that the compiler building could take 2x a compiler build and the theorem proving 5x times that, which is we can run it each 5 runs in terms of the of two builds, i.e m3tk included. The thing is, if the source has not changed that is would be the case in some runs it could be in terms of less runs, so we can check in at least each 5 building tasks runs (of all platforms, i.e 5 parallel building tasks), I guess this tasks are programmed in some way, I don't recall where are the policies of this written, if someone can tell that for me or point me that, thanks in advance --- El mi?, 5/1/11, Daniel Alejandro Benavides D. escribi?: > De: Daniel Alejandro Benavides D. > Asunto: Re: [M3devel] elegosoft.com working? > Para: "Olaf Wagner" > CC: m3devel at elegosoft.com > Fecha: mi?rcoles, 5 de enero, 2011 11:28 > Hi all: > yes, I think we should get access to building with cm3 at > least, not sure if the sources according to the latest news > on that. > In the other hand whether we get this I hope sooner or > later, I think it would be a m3quake directive like "esc()" > to activate it from inside the building task process, so it > can be integrated on the same building machine or another > will need to have access to the same CM3 build and source > repository and check it on the way, the only thing here, is > that ESC need to build M3 sources with m3tk and if so, it > will that aprox. by the same time cm3 compiler building > software ends that ESC will feed itself with cm3 M3Build > .M3IMPTAB import table not generated file now times for > external compilers. I'm not sure anyway if that's the order > of ESC input anyway, or will need first the .M3IMPPTAB back > again perhaps will need to upgrade down or make a better > independent procedure to expose this for it, see Revision > 1.24: > http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/cm3/src/M3Build.m3?annotate=1.24 > if that's the case we would need to wait anyway for cm3 > builds or call it from the IMPORTS to get it. Please if one > can check that if it's need it and I will likely to see that > too. I also think this would be a nice way of making a > dependence analyzer (if so perhaps I think is better doing > it with m3tk, what do you think? Besides its worth for Obliq > and others too like cm3ide, etc) program for our and > other clients too information IMHO. > Thanks in advance > > P.D: according to Dr Greg Nelson the compiler is usually > 10x times faster than the ESC process (not sure for the > ESC/Java or the ESC/Moddula3), but this is mostly because of > the Simplify theorem prover checking see: > http://www.uwtv.org/programs/displayevent.aspx?rID=2761 > Also for simplify see: > http://portal.acm.org/citation.cfm?id=1066100.1066102&preflayout=flat > whican can be downlaoded report from here: > http://www.hpl.hp.com/techreports/2003/HPL-2003-148.html > and benchmarks from here: > http://goedel.cs.uiowa.edu/smtlib/benchmarks/pending/simplify_benchmarks.tar.gz > > > --- El mi?, 5/1/11, Olaf Wagner > escribi?: > > > De: Olaf Wagner > > Asunto: Re: [M3devel] elegosoft.com working? > > Para: "Daniel Alejandro Benavides D." > > CC: m3devel at elegosoft.com > > Fecha: mi?rcoles, 5 de enero, 2011 04:04 > > Quoting "Daniel Alejandro Benavides > > D." : > > > > > Hi all: > > > thanks for the info, some time after it went on > again > > working, but still if there is some escalation > issue > > because of the compiler checks specially with > the > > computation time, like ESC and so, perhaps like > in > > night builds, what would be the machine needs for that > > > process and the results to allow? > > > Based on some experience like in compilers we > would > > have access to the checks in more or less time > if so I > > guess we would need optimization anyway at > source > > level and execution level. Meanwhile more checks > will > > likely to be introduced, so it would a balance > of both > > needs. > > > Thanks in advance > > > > I'm not sure if I understand correctly what you're > aiming > > at, but > > I guess you worry that we need to introduce more > > checks/tests like > > ESC. Apart from my estimation that we won't get access > to > > the ESC M3 > > sources, CPU time would not be a bottleneck, as (a) > the > > bottleneck on > > birch is the I/O system and (b) we could easily > delegate > > such a task > > to another server via Hudson. Anyway, once the web > service > > has been > > moved to another machine there shouldn't be any more > > problems with > > our use of birch. > > > > Olaf > > --Olaf Wagner -- elego Software Solutions GmbH > > > > Gustav-Meyer-Allee 25 / Geb?ude 12, > 13355 > > Berlin, Germany > > phone: +49 30 23 45 86 96 mobile: +49 177 2345 > > 869 fax: +49 30 23 45 86 95 > > http://www.elegosoft.com | > > Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > > Handelregister: Amtsgericht Charlottenburg HRB 77719 > | > > USt-IdNr: DE163214194 > > > > > > > > From dabenavidesd at yahoo.es Wed Jan 5 19:16:48 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 5 Jan 2011 18:16:48 +0000 (GMT) Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <20110105173201.5A1742474003@birch.elegosoft.com> Message-ID: <345382.27809.qm@web29704.mail.ird.yahoo.com> Hi all: Are this failures linked to a trac ticket with an appropriate tag, would be a quality of service improvement to link to it automatically? I think if the failures of compiler, system compiler, compiler back end, linker, system linker or checker and/or theorem prover, we should produce automatically a ticket assigned for the "guilty" or some else if so, so one can be warned more directly and solve it accordingly, what do you think? I assume some simple changes are or can be back up if so there is a clear compile time error cause and solution. But for everything else is good? I mean might be the ideal with wiki service open we can improve documentation and process on it. Thanks in advance --- El mi?, 5/1/11, Jay Krell escribi?: > De: Jay Krell > Asunto: [M3commit] CVS Update: cm3 > Para: m3commit at elegosoft.com > Fecha: mi?rcoles, 5 de enero, 2011 13:32 > CVSROOT: /usr/cvs > Changes by: > jkrell at birch. 11/01/05 18:32:01 > > Modified files: > cm3/m3-libs/m3core/src/thread/PTHREAD/: > ThreadPThreadC.c > > Log message: > Don't use __thread on Solaris. > It failed to link. > See: > http://hudson.modula3.com:8080/job/cm3-current-build-SOLsun-opencsw-current9s/166/console > > From dabenavidesd at yahoo.es Wed Jan 5 20:02:41 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 5 Jan 2011 19:02:41 +0000 (GMT) Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <345382.27809.qm@web29704.mail.ird.yahoo.com> Message-ID: <666417.80484.qm@web29705.mail.ird.yahoo.com> HI all: all of this Amen that all of developers are carefully following the ESC error correction actions we wouldn't worry about the runtime errors. I don't think it would take so much time that to cover the current repository (we would need also some repository and building and checking time and check in statistics to see the development growing, I now this see: http://libresoft.dat.escet.urjc.es/cvsanal/pm3-cvs/index.php?menu=Index and: https://projects.libresoft.es/wiki/cvsanaly or others you may want to use). Thanks in advance --- El mi?, 5/1/11, Daniel Alejandro Benavides D. escribi?: > De: Daniel Alejandro Benavides D. > Asunto: Re: [M3devel] [M3commit] CVS Update: cm3 > Para: m3devel at elegosoft.com > Fecha: mi?rcoles, 5 de enero, 2011 13:16 > Hi all: > Are this failures linked to a trac ticket with an > appropriate tag, would be a quality of service improvement > to link to it automatically? I think if the failures of > compiler, system compiler, compiler back end, linker, system > linker or checker and/or theorem prover, we should produce > automatically a ticket assigned for the "guilty" or some > else if so, so one can be warned more directly and solve it > accordingly, what do you think? > I assume some simple changes are or can be back up if so > there is a clear compile time error cause and solution. But > for everything else is good? I mean might be the ideal with > wiki service open we can improve documentation and process > on it. > Thanks in advance > > --- El mi?, 5/1/11, Jay Krell > escribi?: > > > De: Jay Krell > > Asunto: [M3commit] CVS Update: cm3 > > Para: m3commit at elegosoft.com > > Fecha: mi?rcoles, 5 de enero, 2011 13:32 > > CVSROOT: /usr/cvs > > Changes by: > > jkrell at birch. 11/01/05 18:32:01 > > > > Modified files: > > > cm3/m3-libs/m3core/src/thread/PTHREAD/: > > ThreadPThreadC.c > > > > Log message: > > Don't use __thread on > Solaris. > > It failed to link. > > See: > > http://hudson.modula3.com:8080/job/cm3-current-build-SOLsun-opencsw-current9s/166/console > > > > > > > > From jay.krell at cornell.edu Thu Jan 6 02:21:00 2011 From: jay.krell at cornell.edu (Jay K) Date: Thu, 6 Jan 2011 01:21:00 +0000 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: <20110106002615.77E782474003@birch.elegosoft.com> References: <20110106002615.77E782474003@birch.elegosoft.com> Message-ID: fyi: jbook2:p250 jay$ rm -rf I386_DARWIN/ jbook2:p250 jay$ cm3 -keep --- building in I386_DARWIN --- new source -> compiling Main.m3 "../Main.m3", line 1: 1 code generation error 1 error encountered compilation failed => not building program "pgm" Fatal Error: package build failed jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment (4) comment comment:module global constants (6) comment comment:module global data (27) comment comment:F1 (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] (43) comment comment:F2 (73) comment comment:Main_M3 (74) comment comment:module main body Main_M3 (83) comment comment:global constant type descriptor (85) comment comment:global data type descriptor (87) comment comment:module global constants (90) comment comment:procedure names (94) comment comment:procedure table (101) comment comment:file name (103) comment comment:type map for _t0174bdf4 (106) comment comment:type description for _t0174bdf4 (110) comment comment:module global data (120) comment comment:typecell for _t0174bdf4 (141) comment comment:load map (4) comment comment:module global constants (6) comment comment:module global data (27) comment comment:F1 (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] (43) comment comment:F2 (73) comment comment:Main_M3 (74) comment comment:module main body Main_M3 (83) comment comment:global constant type descriptor (85) comment comment:global data type descriptor (87) comment comment:module global constants (90) comment comment:procedure names (94) comment comment:procedure table (101) comment comment:file name (103) comment comment:type map for _t0174bdf4 (106) comment comment:type description for _t0174bdf4 (110) comment comment:module global data (120) comment comment:typecell for _t0174bdf4 (141) comment comment:load map - Jay > Date: Thu, 6 Jan 2011 01:26:15 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 11/01/06 01:26:15 > > Modified files: > cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > > Log message: > slightly simpler, same error > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 6 08:21:10 2011 From: jay.krell at cornell.edu (Jay K) Date: Thu, 6 Jan 2011 07:21:10 +0000 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: References: ,,, , , ,,, , , , , , , <7574D14D-BA09-44DE-98CE-6127CAEE7E8B@cs.purdue.edu>, Message-ID: >> Yes, indeed. We don't need all the overhead of the C++ exception handling mechanism. > It is so much? Well, it maybe is more to understand. There is also a very good chance that raising a Modula-3 exception will run C++ destructors for intervening threads, which is desirable, if we do this "right". Likewise, C++ exceptions running Modula-3 unlock/finally blocks. Interop can be good. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Thu Jan 6 12:56:16 2011 From: wagner at elegosoft.com (Olaf Wagner) Date: Thu, 06 Jan 2011 12:56:16 +0100 Subject: [M3devel] elegosoft.com working? In-Reply-To: <28801.31834.qm@web29717.mail.ird.yahoo.com> References: <28801.31834.qm@web29717.mail.ird.yahoo.com> Message-ID: <20110106125616.yufiz9edm8ssccks@mail.elegosoft.com> Let's worry about ESC integration when we get access to it. Anyway, I wouldn't run such checks in every build, but perform it on a certain machine e.g. once a day. Olaf Quoting "Daniel Alejandro Benavides D." : > Hi all: > I recall now that the current rend is run this theorem provers > distributedly, rather than standalone, so we might given that we > have already this in our hands the Simplify theorem prover, for a > network instance, not sure if the I/O will be affected in that case, > perhaps the most important thing is to verify full integrity of > transfers. See about that issue: > http://nexus.realtimepublishers.com/ttgmft.php > (is a work in progress so if interested keep and eye on it, you can > register if you want) > Given that simplify is not written object oriented, perhaps that > must be thought to be like that. The thing is given it takes more > than double times the time of the compile build process we might > (the Greg nelson comment at 53:00 on the linked video) is it is a > kind of slow process or of high length but ok to be run on nights. > Perhaps given that the compiler building could take 2x a compiler > build and the theorem proving 5x times that, which is we can run it > each 5 runs in terms of the of two builds, i.e m3tk included. The > thing is, if the source has not changed that is would be the case in > some runs it could be in terms of less runs, so we can check in at > least each 5 building tasks runs (of all platforms, i.e 5 parallel > building tasks), I guess this tasks are programmed in some way, I > don't recall where are the policies of this written, if someone can > tell that for me or point me that, thanks in advance > > > --- El mi?, 5/1/11, Daniel Alejandro Benavides D. > escribi?: > >> De: Daniel Alejandro Benavides D. >> Asunto: Re: [M3devel] elegosoft.com working? >> Para: "Olaf Wagner" >> CC: m3devel at elegosoft.com >> Fecha: mi?rcoles, 5 de enero, 2011 11:28 >> Hi all: >> yes, I think we should get access to building with cm3 at >> least, not sure if the sources according to the latest news >> on that. >> In the other hand whether we get this I hope sooner or >> later, I think it would be a m3quake directive like "esc()" >> to activate it from inside the building task process, so it >> can be integrated on the same building machine or another >> will need to have access to the same CM3 build and source >> repository and check it on the way, the only thing here, is >> that ESC need to build M3 sources with m3tk and if so, it >> will that aprox. by the same time cm3 compiler building >> software ends that ESC will feed itself with cm3 M3Build >> .M3IMPTAB import table not generated file now times for >> external compilers. I'm not sure anyway if that's the order >> of ESC input anyway, or will need first the .M3IMPPTAB back >> again perhaps will need to upgrade down or make a better >> independent procedure to expose this for it, see Revision >> 1.24: >> http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/cm3/src/M3Build.m3?annotate=1.24 >> if that's the case we would need to wait anyway for cm3 >> builds or call it from the IMPORTS to get it. Please if one >> can check that if it's need it and I will likely to see that >> too. I also think this would be a nice way of making a >> dependence analyzer (if so perhaps I think is better doing >> it with m3tk, what do you think? Besides its worth for Obliq >> and others too like cm3ide, etc) program for our and >> other clients too information IMHO. >> Thanks in advance >> >> P.D: according to Dr Greg Nelson the compiler is usually >> 10x times faster than the ESC process (not sure for the >> ESC/Java or the ESC/Moddula3), but this is mostly because of >> the Simplify theorem prover checking see: >> http://www.uwtv.org/programs/displayevent.aspx?rID=2761 >> Also for simplify see: >> http://portal.acm.org/citation.cfm?id=1066100.1066102&preflayout=flat >> whican can be downlaoded report from here: >> http://www.hpl.hp.com/techreports/2003/HPL-2003-148.html >> and benchmarks from here: >> http://goedel.cs.uiowa.edu/smtlib/benchmarks/pending/simplify_benchmarks.tar.gz >> >> >> --- El mi?, 5/1/11, Olaf Wagner >> escribi?: >> >> > De: Olaf Wagner >> > Asunto: Re: [M3devel] elegosoft.com working? >> > Para: "Daniel Alejandro Benavides D." >> > CC: m3devel at elegosoft.com >> > Fecha: mi?rcoles, 5 de enero, 2011 04:04 >> > Quoting "Daniel Alejandro Benavides >> > D." : >> > >> > > Hi all: >> > > thanks for the info, some time after it went on >> again >> > working, but still if there is some escalation >> issue >> > because of the compiler checks specially with >> the >> > computation time, like ESC and so, perhaps like >> in >> > night builds, what would be the machine needs for that >> >> > process and the results to allow? >> > > Based on some experience like in compilers we >> would >> > have access to the checks in more or less time >> if so I >> > guess we would need optimization anyway at >> source >> > level and execution level. Meanwhile more checks >> will >> > likely to be introduced, so it would a balance >> of both >> > needs. >> > > Thanks in advance >> > >> > I'm not sure if I understand correctly what you're >> aiming >> > at, but >> > I guess you worry that we need to introduce more >> > checks/tests like >> > ESC. Apart from my estimation that we won't get access >> to >> > the ESC M3 >> > sources, CPU time would not be a bottleneck, as (a) >> the >> > bottleneck on >> > birch is the I/O system and (b) we could easily >> delegate >> > such a task >> > to another server via Hudson. Anyway, once the web >> service >> > has been >> > moved to another machine there shouldn't be any more >> > problems with >> > our use of birch. >> > >> > Olaf >> > --Olaf Wagner -- elego Software Solutions GmbH >> > >> > Gustav-Meyer-Allee 25 / Geb?ude 12, >> 13355 >> > Berlin, Germany >> > phone: +49 30 23 45 86 96 mobile: +49 177 2345 >> > 869 fax: +49 30 23 45 86 95 >> > http://www.elegosoft.com | >> > Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin >> > Handelregister: Amtsgericht Charlottenburg HRB 77719 >> | >> > USt-IdNr: DE163214194 >> > >> > >> >> >> >> > > > > -- Olaf Wagner -- elego Software Solutions GmbH Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germany phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95 http://www.elegosoft.com | Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194 From dabenavidesd at yahoo.es Thu Jan 6 14:28:18 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Thu, 6 Jan 2011 13:28:18 +0000 (GMT) Subject: [M3devel] elegosoft.com working? In-Reply-To: <20110106125616.yufiz9edm8ssccks@mail.elegosoft.com> Message-ID: <588751.8201.qm@web29712.mail.ird.yahoo.com> Hi all: yes, but maybe when if we got around an optimizing compiler we would need the verification condition generator to use the theorem prover, so the same deal again, and if so we would need also build machines dedicated also to that, I mean what is the point of having them to keeping idle while something in contrast would highly optimized it instead. I bet even the compiler is also to have optimization by it self, I guess everything would need to and so the optimization framework would need to run the theorem prover to work in each build. Even the Simplify, so we must keep and eye on it too meanwhile. Thanks in advance --- El jue, 6/1/11, Olaf Wagner escribi?: > De: Olaf Wagner > Asunto: Re: [M3devel] elegosoft.com working? > Para: "Daniel Alejandro Benavides D." > CC: m3devel at elegosoft.com > Fecha: jueves, 6 de enero, 2011 06:56 > Let's worry about ESC integration > when we get access to it. > Anyway, I wouldn't run such checks in every build, but > perform it > on a certain machine e.g. once a day. > > Olaf > > Quoting "Daniel Alejandro Benavides D." : > > > Hi all: > > I recall now that the current rend is run this theorem > provers distributedly, rather than standalone, so we > might given that we have already this in our hands the > Simplify theorem prover, for a network instance, not > sure if the I/O will be affected in that case, perhaps > the most important thing is to verify full integrity > of transfers. See about that issue: > > http://nexus.realtimepublishers.com/ttgmft.php > > (is a work in progress so if interested keep and eye > on it, you can register if you want) > > Given that simplify is not written object oriented, > perhaps that must be thought to be like that. The > thing is given it takes more than double times the > time of the compile build process we might (the Greg > nelson comment at 53:00 on the linked video) is it is > a kind of slow process or of high length but ok to be > run on nights. Perhaps given that the compiler > building could take 2x a compiler build and the > theorem proving 5x times that, which is we can run it > each 5 runs in terms of the of two builds, i.e m3tk > included. The thing is, if the source has not changed > that is would be the case in some runs it could be in > terms of less runs, so we can check in at least each 5 > building tasks runs (of all platforms, i.e 5 parallel > building tasks), I guess this tasks are programmed in some > way, I don't recall where are the policies of this > written, if someone can tell that for me or point me > that, thanks in advance > > > > > > --- El mi?, 5/1/11, Daniel Alejandro Benavides > D. > escribi?: > > > >> De: Daniel Alejandro Benavides D. > >> Asunto: Re: [M3devel] elegosoft.com working? > >> Para: "Olaf Wagner" > >> CC: m3devel at elegosoft.com > >> Fecha: mi?rcoles, 5 de enero, 2011 11:28 > >> Hi all: > >> yes, I think we should get access to building with > cm3 at > >> least, not sure if the sources according to the > latest news > >> on that. > >> In the other hand whether we get this I hope > sooner or > >> later, I think it would be a m3quake directive > like "esc()" > >> to activate it from inside the building task > process, so it > >> can be integrated on the same building machine or > another > >> will need to have access to the same CM3 build and > source > >> repository and check it on the way, the only thing > here, is > >> that ESC need to build M3 sources with m3tk and if > so, it > >> will that aprox. by the same time cm3 compiler > building > >> software ends that ESC will feed itself with cm3 > M3Build > >> .M3IMPTAB import table not generated file now > times for > >> external compilers. I'm not sure anyway if that's > the order > >> of ESC input anyway, or will need first the > .M3IMPPTAB back > >> again perhaps will need to upgrade down or make a > better > >> independent procedure to expose this for it, see > Revision > >> 1.24: > >> http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/cm3/src/M3Build.m3?annotate=1.24 > >> if that's the case we would need to wait anyway > for cm3 > >> builds or call it from the IMPORTS to get it. > Please if one > >> can check that if it's need it and I will likely > to see that > >> too. I also think this would be a nice way of > making a > >> dependence analyzer (if so perhaps I think is > better doing > >> it with m3tk, what do you think? Besides its worth > for Obliq > >> and others too like cm3ide, etc) program for > our and > >> other clients too information IMHO. > >> Thanks in advance > >> > >> P.D: according to Dr Greg Nelson the compiler is > usually > >> 10x times faster than the ESC process (not sure > for the > >> ESC/Java or the ESC/Moddula3), but this is mostly > because of > >> the Simplify theorem prover checking see: > >> http://www.uwtv.org/programs/displayevent.aspx?rID=2761 > >> Also for simplify see: > >> http://portal.acm.org/citation.cfm?id=1066100.1066102&preflayout=flat > >> whican can be downlaoded report from here: > >> http://www.hpl.hp.com/techreports/2003/HPL-2003-148.html > >> and benchmarks from here: > >> http://goedel.cs.uiowa.edu/smtlib/benchmarks/pending/simplify_benchmarks.tar.gz > >> > >> > >> --- El mi?, 5/1/11, Olaf Wagner > >> escribi?: > >> > >> > De: Olaf Wagner > >> > Asunto: Re: [M3devel] elegosoft.com working? > >> > Para: "Daniel Alejandro Benavides D." > >> > CC: m3devel at elegosoft.com > >> > Fecha: mi?rcoles, 5 de enero, 2011 04:04 > >> > Quoting "Daniel Alejandro Benavides > >> > D." : > >> > > >> > > Hi all: > >> > > thanks for the info, some time after it > went on > >> again > >> > working, but still if there is some > escalation > >> issue > >> > because of the compiler checks > specially with > >> the > >> > computation time, like ESC and so, > perhaps like > >> in > >> > night builds, what would be the machine needs > for that > >> > >> > process and the results to allow? > >> > > Based on some experience like in > compilers we > >> would > >> > have access to the checks in more or > less time > >> if so I > >> > guess we would need optimization anyway > at > >> source > >> > level and execution level. Meanwhile > more checks > >> will > >> > likely to be introduced, so it would a > balance > >> of both > >> > needs. > >> > > Thanks in advance > >> > > >> > I'm not sure if I understand correctly what > you're > >> aiming > >> > at, but > >> > I guess you worry that we need to introduce > more > >> > checks/tests like > >> > ESC. Apart from my estimation that we won't > get access > >> to > >> > the ESC M3 > >> > sources, CPU time would not be a bottleneck, > as (a) > >> the > >> > bottleneck on > >> > birch is the I/O system and (b) we could > easily > >> delegate > >> > such a task > >> > to another server via Hudson. Anyway, once > the web > >> service > >> > has been > >> > moved to another machine there shouldn't be > any more > >> > problems with > >> > our use of birch. > >> > > >> > Olaf > >> > --Olaf Wagner -- elego Software Solutions > GmbH > >> > > >> > Gustav-Meyer-Allee 25 / Geb?ude > 12, > >> 13355 > >> > Berlin, Germany > >> > phone: +49 30 23 45 86 96 mobile: +49 > 177 2345 > >> > 869 fax: +49 30 23 45 86 95 > >> > http://www.elegosoft.com | > >> > Gesch?ftsf?hrer: Olaf Wagner | Sitz: > Berlin > >> > Handelregister: Amtsgericht Charlottenburg > HRB 77719 > >> | > >> > USt-IdNr: DE163214194 > >> > > >> > > >> > >> > >> > >> > > > > > > > > > > > > --Olaf Wagner -- elego Software Solutions GmbH > > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 > Berlin, Germany > phone: +49 30 23 45 86 96 mobile: +49 177 2345 > 869 fax: +49 30 23 45 86 95 > http://www.elegosoft.com | > Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | > USt-IdNr: DE163214194 > > From hosking at cs.purdue.edu Thu Jan 6 15:27:03 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 6 Jan 2011 09:27:03 -0500 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: References: , , , , , , , , , , , , , , <7574D14D-BA09-44DE-98CE-6127CAEE7E8B@cs.purdue.edu>, Message-ID: <5F258385-C84D-4103-9EBF-8B2C475D1BE0@cs.purdue.edu> I am just leery of getting too much more entangled with the gcc runtime. It makes our compiler even more non-portable. On Jan 6, 2011, at 2:21 AM, Jay K wrote: > >> Yes, indeed. We don't need all the overhead of the C++ exception handling mechanism. > > > > It is so much? Well, it maybe is more to understand. > > > There is also a very good chance that raising a Modula-3 exception > will run C++ destructors for intervening threads, which is desirable, > if we do this "right". > Likewise, C++ exceptions running Modula-3 unlock/finally blocks. > Interop can be good. > > > - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 6 16:56:49 2011 From: jay.krell at cornell.edu (Jay K) Date: Thu, 6 Jan 2011 15:56:49 +0000 Subject: [M3devel] elegosoft.com working? In-Reply-To: <588751.8201.qm@web29712.mail.ird.yahoo.com> References: <20110106125616.yufiz9edm8ssccks@mail.elegosoft.com>, <588751.8201.qm@web29712.mail.ird.yahoo.com> Message-ID: The gcc compiler is already optimizing. The integrated backend always optimizes a bit and produces half decent code. Fairly local optimizations though, very very very simple analysis. I'd like the machines to be powered off when idle, not find more ways to keep them busy. As well, most of the analysis is "portable" -- only needs to be one for one target, not all, so unless it is really large and easily distributed, just one machine. If we really are interested static analysis, a C or C++ or heck C# or Java generating backend plus throwing their static analyzers around is the way to go. There is far more energy thrown at other languages, and actually significant results, despite the starting point. Some tools might analyze binaries. valgrind? Modula-3 and ESC were ahead of their time at some point, but the world has largely caught up and in many ways surpassed. For example, Modula-3 was perhaps perhaps better than DCOM and CORBA, but these days, connected remoting has been deemed non-scalable and disconnected remoting is largely used, esp. via http. - Jay > Date: Thu, 6 Jan 2011 13:28:18 +0000 > From: dabenavidesd at yahoo.es > To: wagner at elegosoft.com > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] elegosoft.com working? > > Hi all: > yes, but maybe when if we got around an optimizing compiler we would need the verification condition generator to use the theorem prover, so the same deal again, and if so we would need also build machines dedicated also to that, I mean what is the point of having them to keeping idle while something in contrast would highly optimized it instead. I bet even the compiler is also to have optimization by it self, I guess everything would need to and so the optimization framework would need to run the theorem prover to work in each build. Even the Simplify, so we must keep and eye on it too meanwhile. > > Thanks in advance > > --- El jue, 6/1/11, Olaf Wagner escribi?: > > > De: Olaf Wagner > > Asunto: Re: [M3devel] elegosoft.com working? > > Para: "Daniel Alejandro Benavides D." > > CC: m3devel at elegosoft.com > > Fecha: jueves, 6 de enero, 2011 06:56 > > Let's worry about ESC integration > > when we get access to it. > > Anyway, I wouldn't run such checks in every build, but > > perform it > > on a certain machine e.g. once a day. > > > > Olaf > > > > Quoting "Daniel Alejandro Benavides D." : > > > > > Hi all: > > > I recall now that the current rend is run this theorem > > provers distributedly, rather than standalone, so we > > might given that we have already this in our hands the > > Simplify theorem prover, for a network instance, not > > sure if the I/O will be affected in that case, perhaps > > the most important thing is to verify full integrity > > of transfers. See about that issue: > > > http://nexus.realtimepublishers.com/ttgmft.php > > > (is a work in progress so if interested keep and eye > > on it, you can register if you want) > > > Given that simplify is not written object oriented, > > perhaps that must be thought to be like that. The > > thing is given it takes more than double times the > > time of the compile build process we might (the Greg > > nelson comment at 53:00 on the linked video) is it is > > a kind of slow process or of high length but ok to be > > run on nights. Perhaps given that the compiler > > building could take 2x a compiler build and the > > theorem proving 5x times that, which is we can run it > > each 5 runs in terms of the of two builds, i.e m3tk > > included. The thing is, if the source has not changed > > that is would be the case in some runs it could be in > > terms of less runs, so we can check in at least each 5 > > building tasks runs (of all platforms, i.e 5 parallel > > building tasks), I guess this tasks are programmed in some > > way, I don't recall where are the policies of this > > written, if someone can tell that for me or point me > > that, thanks in advance > > > > > > > > > --- El mi?, 5/1/11, Daniel Alejandro Benavides > > D. > > escribi?: > > > > > >> De: Daniel Alejandro Benavides D. > > >> Asunto: Re: [M3devel] elegosoft.com working? > > >> Para: "Olaf Wagner" > > >> CC: m3devel at elegosoft.com > > >> Fecha: mi?rcoles, 5 de enero, 2011 11:28 > > >> Hi all: > > >> yes, I think we should get access to building with > > cm3 at > > >> least, not sure if the sources according to the > > latest news > > >> on that. > > >> In the other hand whether we get this I hope > > sooner or > > >> later, I think it would be a m3quake directive > > like "esc()" > > >> to activate it from inside the building task > > process, so it > > >> can be integrated on the same building machine or > > another > > >> will need to have access to the same CM3 build and > > source > > >> repository and check it on the way, the only thing > > here, is > > >> that ESC need to build M3 sources with m3tk and if > > so, it > > >> will that aprox. by the same time cm3 compiler > > building > > >> software ends that ESC will feed itself with cm3 > > M3Build > > >> .M3IMPTAB import table not generated file now > > times for > > >> external compilers. I'm not sure anyway if that's > > the order > > >> of ESC input anyway, or will need first the > > .M3IMPPTAB back > > >> again perhaps will need to upgrade down or make a > > better > > >> independent procedure to expose this for it, see > > Revision > > >> 1.24: > > >> http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/cm3/src/M3Build.m3?annotate=1.24 > > >> if that's the case we would need to wait anyway > > for cm3 > > >> builds or call it from the IMPORTS to get it. > > Please if one > > >> can check that if it's need it and I will likely > > to see that > > >> too. I also think this would be a nice way of > > making a > > >> dependence analyzer (if so perhaps I think is > > better doing > > >> it with m3tk, what do you think? Besides its worth > > for Obliq > > >> and others too like cm3ide, etc) program for > > our and > > >> other clients too information IMHO. > > >> Thanks in advance > > >> > > >> P.D: according to Dr Greg Nelson the compiler is > > usually > > >> 10x times faster than the ESC process (not sure > > for the > > >> ESC/Java or the ESC/Moddula3), but this is mostly > > because of > > >> the Simplify theorem prover checking see: > > >> http://www.uwtv.org/programs/displayevent.aspx?rID=2761 > > >> Also for simplify see: > > >> http://portal.acm.org/citation.cfm?id=1066100.1066102&preflayout=flat > > >> whican can be downlaoded report from here: > > >> http://www.hpl.hp.com/techreports/2003/HPL-2003-148.html > > >> and benchmarks from here: > > >> http://goedel.cs.uiowa.edu/smtlib/benchmarks/pending/simplify_benchmarks.tar.gz > > >> > > >> > > >> --- El mi?, 5/1/11, Olaf Wagner > > >> escribi?: > > >> > > >> > De: Olaf Wagner > > >> > Asunto: Re: [M3devel] elegosoft.com working? > > >> > Para: "Daniel Alejandro Benavides D." > > >> > CC: m3devel at elegosoft.com > > >> > Fecha: mi?rcoles, 5 de enero, 2011 04:04 > > >> > Quoting "Daniel Alejandro Benavides > > >> > D." : > > >> > > > >> > > Hi all: > > >> > > thanks for the info, some time after it > > went on > > >> again > > >> > working, but still if there is some > > escalation > > >> issue > > >> > because of the compiler checks > > specially with > > >> the > > >> > computation time, like ESC and so, > > perhaps like > > >> in > > >> > night builds, what would be the machine needs > > for that > > >> > > >> > process and the results to allow? > > >> > > Based on some experience like in > > compilers we > > >> would > > >> > have access to the checks in more or > > less time > > >> if so I > > >> > guess we would need optimization anyway > > at > > >> source > > >> > level and execution level. Meanwhile > > more checks > > >> will > > >> > likely to be introduced, so it would a > > balance > > >> of both > > >> > needs. > > >> > > Thanks in advance > > >> > > > >> > I'm not sure if I understand correctly what > > you're > > >> aiming > > >> > at, but > > >> > I guess you worry that we need to introduce > > more > > >> > checks/tests like > > >> > ESC. Apart from my estimation that we won't > > get access > > >> to > > >> > the ESC M3 > > >> > sources, CPU time would not be a bottleneck, > > as (a) > > >> the > > >> > bottleneck on > > >> > birch is the I/O system and (b) we could > > easily > > >> delegate > > >> > such a task > > >> > to another server via Hudson. Anyway, once > > the web > > >> service > > >> > has been > > >> > moved to another machine there shouldn't be > > any more > > >> > problems with > > >> > our use of birch. > > >> > > > >> > Olaf > > >> > --Olaf Wagner -- elego Software Solutions > > GmbH > > >> > > > >> > Gustav-Meyer-Allee 25 / Geb?ude > > 12, > > >> 13355 > > >> > Berlin, Germany > > >> > phone: +49 30 23 45 86 96 mobile: +49 > > 177 2345 > > >> > 869 fax: +49 30 23 45 86 95 > > >> > http://www.elegosoft.com | > > >> > Gesch?ftsf?hrer: Olaf Wagner | Sitz: > > Berlin > > >> > Handelregister: Amtsgericht Charlottenburg > > HRB 77719 > > >> | > > >> > USt-IdNr: DE163214194 > > >> > > > >> > > > >> > > >> > > >> > > >> > > > > > > > > > > > > > > > > > > > > --Olaf Wagner -- elego Software Solutions GmbH > > > > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 > > Berlin, Germany > > phone: +49 30 23 45 86 96 mobile: +49 177 2345 > > 869 fax: +49 30 23 45 86 95 > > http://www.elegosoft.com | > > Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > > Handelregister: Amtsgericht Charlottenburg HRB 77719 | > > USt-IdNr: DE163214194 > > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Jan 6 16:57:55 2011 From: jay.krell at cornell.edu (Jay K) Date: Thu, 6 Jan 2011 15:57:55 +0000 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: <5F258385-C84D-4103-9EBF-8B2C475D1BE0@cs.purdue.edu> References: , , , ,,, , ,,, , ,,, ,,, , , <7574D14D-BA09-44DE-98CE-6127CAEE7E8B@cs.purdue.edu>, , , , <5F258385-C84D-4103-9EBF-8B2C475D1BE0@cs.purdue.edu> Message-ID: I think _Unwind_RaiseException is the way to go. It is the Linux runtime, the Darwin runtime, the *BSD runtime. There still remains the setjmp option for portability. libunwind is sort of an option, carrying it around, but I think probably not preferred. - Jay From: hosking at cs.purdue.edu Date: Thu, 6 Jan 2011 09:27:03 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com Subject: Re: [M3devel] how to use gcc exception/unwind support? I am just leery of getting too much more entangled with the gcc runtime.It makes our compiler even more non-portable. On Jan 6, 2011, at 2:21 AM, Jay K wrote: >> Yes, indeed. We don't need all the overhead of the C++ exception handling mechanism. > It is so much? Well, it maybe is more to understand. There is also a very good chance that raising a Modula-3 exception will run C++ destructors for intervening threads, which is desirable, if we do this "right". Likewise, C++ exceptions running Modula-3 unlock/finally blocks. Interop can be good. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Jan 6 19:51:18 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 6 Jan 2011 13:51:18 -0500 Subject: [M3devel] how to use gcc exception/unwind support? In-Reply-To: References: , , , , , , , , , , , , , , , , , , , <7574D14D-BA09-44DE-98CE-6127CAEE7E8B@cs.purdue.edu>, , , , <5F258385-C84D-4103-9EBF-8B2C475D1BE0@cs.purdue.edu> Message-ID: I'd like something that allows us to use the existing RTExStack exception tables and does not depend on the compiler back-end to emit exception tables, except for assurances that code will not move around labels that define exception scopes. The advantage of this is that we can retain portability to different back-ends, so long as the runtime supports the necessary RTStack routines. On Jan 6, 2011, at 10:57 AM, Jay K wrote: > I think _Unwind_RaiseException is the way to go. > It is the Linux runtime, the Darwin runtime, the *BSD runtime. > There still remains the setjmp option for portability. > libunwind is sort of an option, carrying it around, but I think probably not preferred. > > - Jay > > From: hosking at cs.purdue.edu > Date: Thu, 6 Jan 2011 09:27:03 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] how to use gcc exception/unwind support? > > I am just leery of getting too much more entangled with the gcc runtime. > It makes our compiler even more non-portable. > > On Jan 6, 2011, at 2:21 AM, Jay K wrote: > > >> Yes, indeed. We don't need all the overhead of the C++ exception handling mechanism. > > > > It is so much? Well, it maybe is more to understand. > > > There is also a very good chance that raising a Modula-3 exception > will run C++ destructors for intervening threads, which is desirable, > if we do this "right". > Likewise, C++ exceptions running Modula-3 unlock/finally blocks. > Interop can be good. > > > - Jay > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Thu Jan 6 23:04:43 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Thu, 6 Jan 2011 22:04:43 +0000 (GMT) Subject: [M3devel] elegosoft.com working? In-Reply-To: Message-ID: <801408.24402.qm@web29713.mail.ird.yahoo.com> Hi all: yes, I think the current is to run the testing distributed, rather than standalone, this is because of memory and essentially because it aims to be like that distributed rather than standalone runs in those cases we have that scenario, perhaps the one most feasible if so, because inside the prover there is a logic programming language, so the idea of writing solvers in Java, etc, is not bad, anyway there is a interpreter in it, but we have a good tool already, a good language and seeing it more now it seems to be object oriented at some of it (I have now a compiler error <*NOWARN*> used to avoid somehow before when compiling the prover library), I read they were a compact team of developers but same comments I have read about Modula-3 not being so much object oriented restrictive language, and they have a reason language is not just object oriented I think, if we needed it to run distributed, we would likely to do it with and automatic parallelization, with a Compiler Static Analyzer to produce a concurrent server, see: http://www.usenix.org/publications/library/proceedings/sedms4/sims.html then I guess we could think how to distribute that, which guarantees the semantics of the system won't be touched, then if we just write in terms of another checker, like an ESC/Obliq, the semantics will be not touched and be happy about type checks because it has type inference or reconstruction so that guarantees that the type checking would be not needed and it will just have in terms of checks the simplify process as normal but also of a more object oriented fashion which is what the others are aiming to optimization, specially in C# and Java solvers. Perhaps that's the way to go, I guess the basics we could mimic and the internal structure put in Core Libraries of Modula-3 we would have safe distributed checking inside the Language itself and the better approach with this would be to solve first a test of the system performance: there was an experiment of the constraint solver procedure inside the Juno-2, done by Greg Nelson, during development of the project, they needed to make sure they would have scalable constraint resolution in large programs to be able to be doable in those, so did an experiment with it in the project Juno development, it however didn't prove too much but because of its continuous development but did make realize the system http://modula3.elegosoft.com/cm3/doc/help/gen_html/juno-machine/src/JunoByteCode.i3.html was performing some how, due changes because they need to proof the real performance for the sessions interactivity they need to render in the screen while doing the Juno modifications, they would needed the binaries size so made information useless. It is suggested that a log with a symbol table would allow the logs to be useful even if modifications happened, by storing the binaries if necessary. In ESC/Obliq and Simplify, Obliq hypothetic development case just an amount of effort to check the prover scalability will be needed given the uneeded binary information, although further improvement would allow a JIT for core parts I guess. see: see: ftp://gatekeeper.pa.dec.com/pub/DEC/SRC/research-reports/SRC-153.pdf (I realize late the relation between juno-machine and the Obliq interpreter) Other approaches than those I guess would like to see the within the tool in compile time manner, that's why I think in a more fashionable yet correct form of doing ESC looking for that opportunity would in that safe manners help us. Thanks in advance --- El jue, 6/1/11, Jay K escribi?: De: Jay K Asunto: RE: [M3devel] elegosoft.com working? Para: dabenavidesd at yahoo.es, "Olaf" CC: "m3devel" Fecha: jueves, 6 de enero, 2011 10:56 The gcc compiler is already optimizing. The integrated backend always optimizes a bit and produces half decent code. Fairly local optimizations though, very very very simple analysis. I'd like the machines to be powered off when idle, not find more ways to keep them busy. As well, most of the analysis is "portable" -- only needs to be one for one target, not all, so unless it is really large and easily distributed, just one machine. If we really are interested static analysis, a C or C++ or heck C# or Java generating backend plus throwing their static analyzers around is the way to go. ? There is far more energy thrown at other languages, and actually significant results, despite the starting point. ? Some tools might analyze binaries. valgrind? Modula-3 and ESC were ahead of their time at some point, but the world has largely caught up and in many ways surpassed. For example, Modula-3 was perhaps perhaps better than DCOM and CORBA, but these days, connected remoting has been deemed non-scalable and disconnected remoting is largely used, esp. via http. ?- Jay > Date: Thu, 6 Jan 2011 13:28:18 +0000 > From: dabenavidesd at yahoo.es > To: wagner at elegosoft.com > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] elegosoft.com working? > > Hi all: > yes, but maybe when if we got around an optimizing compiler we would need the verification condition generator to use the theorem prover, so the same deal again, and if so we would need also build machines dedicated also to that, I mean what is the point of having them to keeping idle while something in contrast would highly optimized it instead. I bet even the compiler is also to have optimization by it self, I guess everything would need to and so the optimization framework would need to run the theorem prover to work in each build. Even the Simplify, so we must keep and eye on it too meanwhile. > > Thanks in advance > > --- El jue, 6/1/11, Olaf Wagner escribi?: > > > De: Olaf Wagner > > Asunto: Re: [M3devel] elegosoft.com working? > > Para: "Daniel Alejandro Benavides D." > > CC: m3devel at elegosoft.com > > Fecha: jueves, 6 de enero, 2011 06:56 > > Let's worry about ESC integration > > when we get access to it. > > Anyway, I wouldn't run such checks in every build, but > > perform it > > on a certain machine e.g. once a day. > > > > Olaf > > > > Quoting "Daniel Alejandro Benavides D." : > > > > > Hi all: > > > I recall now that the current rend is run this theorem > > provers distributedly, rather than standalone, so we > > might given that we have already this in our hands the > > Simplify theorem prover, for a network instance, not > > sure if the I/O will be affected in that case, perhaps > > the most important thing is to verify full integrity > > of transfers. See about that issue: > > > http://nexus.realtimepublishers.com/ttgmft.php > > > (is a work in progress so if interested keep and eye > > on it, you can register if you want) > > > Given that simplify is not written object oriented, > > perhaps that must be thought to be like that. The > > thing is given it takes more than double times the > > time of the compile build process we might (the Greg > > nelson comment at 53:00 on the linked video) is it is > > a kind of slow process or of high length but ok to be > > run on nights. Perhaps given that the compiler > > building could take 2x a compiler build and the > > theorem proving 5x times that, which is we can run it > > each 5 runs in terms of the of two builds, i.e m3tk > > included. The thing is, if the source has not changed > > that is would be the case in some runs it could be in > > terms of less runs, so we can check in at least each 5 > > building tasks runs (of all platforms, i.e 5 parallel > > building tasks), I guess this tasks are programmed in some > > way, I don't recall where are the policies of this > > written, if someone can tell that for me or point me > > that, thanks in advance > > > > > > > > > --- El mi?, 5/1/11, Daniel Alejandro Benavides > > D. > > escribi?: > > > > > >> De: Daniel Alejandro Benavides D. > > >> Asunto: Re: [M3devel] elegosoft.com working? > > >> Para: "Olaf Wagner" > > >> CC: m3devel at elegosoft.com > > >> Fecha: mi?rcoles, 5 de enero, 2011 11:28 > > >> Hi all: > > >> yes, I think we should get access to building with > > cm3 at > > >> least, not sure if the sources according to the > > latest news > > >> on that. > > >> In the other hand whether we get this I hope > > sooner or > > >> later, I think it would be a m3quake directive > > like "esc()" > > >> to activate it from inside the building task > > process, so it > > >> can be integrated on the same building machine or > > another > > >> will need to have access to the same CM3 build and > > source > > >> repository and check it on the way, the only thing > > here, is > > >> that ESC need to build M3 sources with m3tk and if > > so, it > > >> will that aprox. by the same time cm3 compiler > > building > > >> software ends that ESC will feed itself with cm3 > > M3Build > > >> .M3IMPTAB import table not generated file now > > times for > > >> external compilers. I'm not sure anyway if that's > > the order > > >> of ESC input anyway, or will need first the > > .M3IMPPTAB back > > >> again perhaps will need to upgrade down or make a > > better > > >> independent procedure to expose this for it, see > > Revision > > >> 1.24: > > >> http://dcvs.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/cm3/src/M3Build.m3?annotate=1.24 > > >> if that's the case we would need to wait anyway > > for cm3 > > >> builds or call it from the IMPORTS to get it. > > Please if one > > >> can check that if it's need it and I will likely > > to see that > > >> too. I also think this would be a nice way of > > making a > > >> dependence analyzer (if so perhaps I think is > > better doing > > >> it with m3tk, what do you think? Besides its worth > > for Obliq > > >> and others too like cm3ide, etc) program for > > our and > > >> other clients too information IMHO. > > >> Thanks in advance > > >> > > >> P.D: according to Dr Greg Nelson the compiler is > > usually > > >> 10x times faster than the ESC process (not sure > > for the > > >> ESC/Java or the ESC/Moddula3), but this is mostly > > because of > > >> the Simplify theorem prover checking see: > > >> http://www.uwtv.org/programs/displayevent.aspx?rID=2761 > > >> Also for simplify see: > > >> http://portal.acm.org/citation.cfm?id=1066100.1066102&preflayout=flat > > >> whican can be downlaoded report from here: > > >> http://www.hpl.hp.com/techreports/2003/HPL-2003-148.html > > >> and benchmarks from here: > > >> http://goedel.cs.uiowa.edu/smtlib/benchmarks/pending/simplify_benchmarks.tar.gz > > >> > > >> > > >> --- El mi?, 5/1/11, Olaf Wagner > > >> escribi?: > > >> > > >> > De: Olaf Wagner > > >> > Asunto: Re: [M3devel] elegosoft.com working? > > >> > Para: "Daniel Alejandro Benavides D." > > >> > CC: m3devel at elegosoft.com > > >> > Fecha: mi?rcoles, 5 de enero, 2011 04:04 > > >> > Quoting "Daniel Alejandro Benavides > > >> > D." : > > >> > > > >> > > Hi all: > > >> > > thanks for the info, some time after it > > went on > > >> again > > >> > working, but still if there is some > > escalation > > >> issue > > >> > because of the compiler checks > > specially with > > >> the > > >> > computation time, like ESC and so, > > perhaps like > > >> in > > >> > night builds, what would be the machine needs > > for that > > >> > > >> > process and the results to allow? > > >> > > Based on some experience like in > > compilers we > > >> would > > >> > have access to the checks in more or > > less time > > >> if so I > > >> > guess we would need optimization anyway > > at > > >> source > > >> > level and execution level. Meanwhile > > more checks > > >> will > > >> > likely to be introduced, so it would a > > balance > > >> of both > > >> > needs. > > >> > > Thanks in advance > > >> > > > >> > I'm not sure if I understand correctly what > > you're > > >> aiming > > >> > at, but > > >> > I guess you worry that we need to introduce > > more > > >> > checks/tests like > > >> > ESC. Apart from my estimation that we won't > > get access > > >> to > > >> > the ESC M3 > > >> > sources, CPU time would not be a bottleneck, > > as (a) > > >> the > > >> > bottleneck on > > >> > birch is the I/O system and (b) we could > > easily > > >> delegate > > >> > such a task > > >> > to another server via Hudson. Anyway, once > > the web > > >> service > > >> > has been > > >> > moved to another machine there shouldn't be > > any more > > >> > problems with > > >> > our use of birch. > > >> > > > >> > Olaf > > >> > --Olaf Wagner -- elego Software Solutions > > GmbH > > >> > > > >> > Gustav-Meyer-Allee 25 / Geb?ude > > 12, > > >> 13355 > > >> > Berlin, Germany > > >> > phone: +49 30 23 45 86 96 mobile: +49 > > 177 2345 > > >> > 869 fax: +49 30 23 45 86 95 > > >> > http://www.elegosoft.com | > > >> > Gesch?ftsf?hrer: Olaf Wagner | Sitz: > > Berlin > > >> > Handelregister: Amtsgericht Charlottenburg > > HRB 77719 > > >> | > > >> > USt-IdNr: DE163214194 > > >> > > > >> > > > >> > > >> > > >> > > >> > > > > > > > > > > > > > > > > > > > > --Olaf Wagner -- elego Software Solutions GmbH > > > > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 > > Berlin, Germany > > phone: +49 30 23 45 86 96 mobile: +49 177 2345 > > 869 fax: +49 30 23 45 86 95 > > http://www.elegosoft.com | > > Gesch?ftsf?hrer: Olaf Wagner | Sitz: Berlin > > Handelregister: Amtsgericht Charlottenburg HRB 77719 | > > USt-IdNr: DE163214194 > > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.anderson at elego.de Fri Jan 7 11:43:32 2011 From: michael.anderson at elego.de (Michael Anderson) Date: Fri, 07 Jan 2011 11:43:32 +0100 Subject: [M3devel] [elego Server Maintenance] Friday 07.01.2011 20:30 CEST Message-ID: <4D26EE54.7030402@elego.de> Hello, On Friday, Januar 7 at 8:30 PM CEST, we will perform scheduled maintenance on our servers. Brief interruptions of service may occur. Expected duration: 120 Min. We apologize for any inconvenience. - the elego Admins am Freitag, den 07.01, werden ab 20.30 Uhr CEST planm??ige Wartungsma?nahmen an unseren Servern durchgef?hrt. Es kann zur kurzzeitigen Unterbrechung mancher Dienste kommen. Voraussichtliche Dauer der Wartung: 120 Min. Wir bitten um Verst?ndnis. - die elego Admins -- Michael Anderson IT Services & Support elego Software Solutions GmbH Gustav-Meyer-Allee 25 Building 12.3 (BIG) room 227 13355 Berlin, Germany phone +49 30 23 45 86 96 michael.anderson at elegosoft.com fax +49 30 23 45 86 95 http://www.elegosoft.com Geschaeftsfuehrer: Olaf Wagner, Sitz Berlin Amtsgericht Berlin-Charlottenburg, HRB 77719, USt-IdNr: DE163214194 From mika at async.caltech.edu Fri Jan 7 16:14:11 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Fri, 07 Jan 2011 07:14:11 -0800 Subject: [M3devel] deadlock... in ThreadPThread.m3? Message-ID: <20110107151412.026651A205B@async.async.caltech.edu> Hi m3devel (especially Tony), I'm having a problem with a Modula-3 program that seems to deadlock with one of my 60+ threads stuck in Process.Create. Is it possible there is a bug in ThreadPThread.m3? (Would be really nice to have a deadlock detector here, you know... rather than have the program go catatonic when there's a deadlock. Deadlock is stable so the detector could run very infrequently---i.e., be very inefficient---and still be extremely useful....) I don't think there is anything I ought to be able to do from "user code" that would cause Process.Create to be part of a deadlock cycle. Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) possibly exhibit itself as a failure of Process.Create to complete?? Below are backtraces of the threads stuck in some sort of locking activity, platform is I386_DARWIN at head as of a couple of weeks ago. (I deleted the threads that are up to other things than locking.) Mika Thread 68 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 #5 0x97137217 in _cthread_fork_prepare () #6 0x97137155 in fork () #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC ommon.m3:75 #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #13 0x9713885d in _pthread_start () #14 0x971386e2 in thread_start () Thread 65 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #33 0x9713885d in _pthread_start () #34 0x971386e2 in thread_start () Thread 64 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #28 0x9713885d in _pthread_start () #29 0x971386e2 in thread_start () Thread 60 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 59 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #19 0x9713885d in _pthread_start () #20 0x971386e2 in thread_start () Thread 52 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #14 0x9713885d in _pthread_start () #15 0x971386e2 in thread_start () Thread 51 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #14 0x9713885d in _pthread_start () #15 0x971386e2 in thread_start () Thread 27 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 2 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #13 0x9713885d in _pthread_start () #14 0x971386e2 in thread_start () From hosking at cs.purdue.edu Fri Jan 7 16:23:58 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 7 Jan 2011 10:23:58 -0500 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: <20110107151412.026651A205B@async.async.caltech.edu> References: <20110107151412.026651A205B@async.async.caltech.edu> Message-ID: <81AE882C-6A4F-4460-90D3-CA570D294E5E@cs.purdue.edu> Is this release or CVS head? On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: > Hi m3devel (especially Tony), > > I'm having a problem with a Modula-3 program that seems to deadlock > with one of my 60+ threads stuck in Process.Create. Is it possible > there is a bug in ThreadPThread.m3? (Would be really nice to have a > deadlock detector here, you know... rather than have the program go > catatonic when there's a deadlock. Deadlock is stable so the detector > could run very infrequently---i.e., be very inefficient---and still be > extremely useful....) > > I don't think there is anything I ought to be able to do from "user > code" that would cause Process.Create to be part of a deadlock cycle. > Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) > possibly exhibit itself as a failure of Process.Create to complete?? > > Below are backtraces of the threads stuck in some sort of locking > activity, platform is I386_DARWIN at head as of a couple of weeks ago. > (I deleted the threads that are up to other things than locking.) > > Mika > > Thread 68 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 > #5 0x97137217 in _cthread_fork_prepare () > #6 0x97137155 in fork () > #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC > ommon.m3:75 > #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > Thread 65 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 > #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 > #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 > #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 > #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 > #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 > #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 > #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 > #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 > #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 > #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 > #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 > #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 > #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 > #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 > #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #33 0x9713885d in _pthread_start () > #34 0x971386e2 in thread_start () > > Thread 64 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 > #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 > #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 > #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 > #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 > #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 > #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 > #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 > #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 > #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 > #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 > #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #28 0x9713885d in _pthread_start () > #29 0x971386e2 in thread_start () > > Thread 60 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 > #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 > #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 > #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 59 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 > #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 > #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 > #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 > #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 > #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 > #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 > #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 > #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #19 0x9713885d in _pthread_start () > #20 0x971386e2 in thread_start () > > Thread 52 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 > #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 > #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 > #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #14 0x9713885d in _pthread_start () > #15 0x971386e2 in thread_start () > > Thread 51 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 > #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 > #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 > #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 > #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #14 0x9713885d in _pthread_start () > #15 0x971386e2 in thread_start () > > Thread 27 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 2 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 > #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 > #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 > #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 > #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > From hosking at cs.purdue.edu Fri Jan 7 16:42:38 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 7 Jan 2011 10:42:38 -0500 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: <20110107151412.026651A205B@async.async.caltech.edu> References: <20110107151412.026651A205B@async.async.caltech.edu> Message-ID: <10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu> This has something to do with the fork handlers Jay introduced, which run when a process is forked. They invoke LockHeap in the parent before the fork, and UnlockHeap in the parent after the fork. It appears that your threads are stuck waiting on LockHeap. Also, we have two threads in your trace trying to acquire initMu. Jay, I think we have a deadlock caused by AtForkPrepare. Ideas? On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: > Hi m3devel (especially Tony), > > I'm having a problem with a Modula-3 program that seems to deadlock > with one of my 60+ threads stuck in Process.Create. Is it possible > there is a bug in ThreadPThread.m3? (Would be really nice to have a > deadlock detector here, you know... rather than have the program go > catatonic when there's a deadlock. Deadlock is stable so the detector > could run very infrequently---i.e., be very inefficient---and still be > extremely useful....) > > I don't think there is anything I ought to be able to do from "user > code" that would cause Process.Create to be part of a deadlock cycle. > Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) > possibly exhibit itself as a failure of Process.Create to complete?? > > Below are backtraces of the threads stuck in some sort of locking > activity, platform is I386_DARWIN at head as of a couple of weeks ago. > (I deleted the threads that are up to other things than locking.) > > Mika > > Thread 68 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 > #5 0x97137217 in _cthread_fork_prepare () > #6 0x97137155 in fork () > #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC > ommon.m3:75 > #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > Thread 65 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 > #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 > #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 > #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 > #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 > #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 > #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 > #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 > #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 > #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 > #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 > #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 > #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 > #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 > #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 > #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #33 0x9713885d in _pthread_start () > #34 0x971386e2 in thread_start () > > Thread 64 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 > #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 > #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 > #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 > #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 > #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 > #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 > #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 > #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 > #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 > #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 > #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #28 0x9713885d in _pthread_start () > #29 0x971386e2 in thread_start () > > Thread 60 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 > #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 > #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 > #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 59 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 > #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 > #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 > #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 > #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 > #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 > #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 > #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 > #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #19 0x9713885d in _pthread_start () > #20 0x971386e2 in thread_start () > > Thread 52 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 > #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 > #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 > #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #14 0x9713885d in _pthread_start () > #15 0x971386e2 in thread_start () > > Thread 51 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 > #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 > #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 > #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 > #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #14 0x9713885d in _pthread_start () > #15 0x971386e2 in thread_start () > > Thread 27 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 2 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 > #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 > #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 > #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 > #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > From jay.krell at cornell.edu Fri Jan 7 21:31:00 2011 From: jay.krell at cornell.edu (Jay K) Date: Fri, 7 Jan 2011 20:31:00 +0000 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: <10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu> References: <20110107151412.026651A205B@async.async.caltech.edu>, <10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu> Message-ID: We need a lock order. I guessed. Maybe poorly. I/we should study the code and these stacks more and determine its validity. Here is the code, *slightly* altered just now for debuggability. VAR ? locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; PROCEDURE AtForkPrepare() = ? VAR me := GetActivation(); ????? act: Activation; ????? cond: Condition; ? BEGIN ??? Acquire(joinMu); ??? LockHeap(); ??? FOR i := FIRST(locks) TO LAST(locks) DO ????? PThreadLockMutex(locks[i], ThisLine(), i); ??? END; ??? (* Walk activations and lock all threads, conditions. ???? * NOTE: We have initMu, activeMu, so slots ???? * won't change, conditions and mutexes ???? * won't be initialized on-demand. ???? *) ??? act := me; ??? REPEAT ????? PThreadLockMutex(act.mutex, ThisLine(), -1); ????? (*PThreadLockMutex(act.waitingOn, ThisLine());*) ????? cond := slots[act.slot].join; ????? IF cond # NIL THEN PThreadLockMutex(cond.mutex, ThisLine(), -2) END; ????? act := act.next; ??? UNTIL act = me; ? END AtForkPrepare; Mika, if this easy to reproduce, please try again from head. The problem is not fixed, but there's a little more information that will appear. ?- Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Fri, 7 Jan 2011 10:42:38 -0500 > To: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > This has something to do with the fork handlers Jay introduced, which run when a process is forked. They invoke LockHeap in the parent before the fork, and UnlockHeap in the parent after the fork. It appears that your threads are stuck waiting on LockHeap. Also, we have two threads in your trace trying to acquire initMu. Jay, I think we have a deadlock caused by AtForkPrepare. Ideas? > > On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: > > > Hi m3devel (especially Tony), > > > > I'm having a problem with a Modula-3 program that seems to deadlock > > with one of my 60+ threads stuck in Process.Create. Is it possible > > there is a bug in ThreadPThread.m3? (Would be really nice to have a > > deadlock detector here, you know... rather than have the program go > > catatonic when there's a deadlock. Deadlock is stable so the detector > > could run very infrequently---i.e., be very inefficient---and still be > > extremely useful....) > > > > I don't think there is anything I ought to be able to do from "user > > code" that would cause Process.Create to be part of a deadlock cycle. > > Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) > > possibly exhibit itself as a failure of Process.Create to complete?? > > > > Below are backtraces of the threads stuck in some sort of locking > > activity, platform is I386_DARWIN at head as of a couple of weeks ago. > > (I deleted the threads that are up to other things than locking.) > > > > Mika > > > > Thread 68 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > > #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 > > #5 0x97137217 in _cthread_fork_prepare () > > #6 0x97137155 in fork () > > #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC > > ommon.m3:75 > > #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > > #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > > #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 > > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #13 0x9713885d in _pthread_start () > > #14 0x971386e2 in thread_start () > > > > Thread 65 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 > > #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 > > #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 > > #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > > #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 > > #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 > > #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 > > #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 > > #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 > > #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 > > #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 > > #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 > > #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 > > #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 > > #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 > > #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > > #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > > #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > > #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 > > #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #33 0x9713885d in _pthread_start () > > #34 0x971386e2 in thread_start () > > > > Thread 64 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 > > #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 > > #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 > > #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > > #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 > > #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 > > #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 > > #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 > > #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 > > #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 > > #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 > > #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > > #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > > #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > > #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 > > #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #28 0x9713885d in _pthread_start () > > #29 0x971386e2 in thread_start () > > > > Thread 60 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > > #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > > #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 > > #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 > > #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 > > #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > > #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 > > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #12 0x9713885d in _pthread_start () > > #13 0x971386e2 in thread_start () > > > > Thread 59 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > > #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 > > #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 > > #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 > > #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 > > #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 > > #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 > > #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 > > #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > > #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > > #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > > #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 > > #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #19 0x9713885d in _pthread_start () > > #20 0x971386e2 in thread_start () > > > > Thread 52 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > > #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 > > #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 > > #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 > > #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > > #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > > #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > > #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 > > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #14 0x9713885d in _pthread_start () > > #15 0x971386e2 in thread_start () > > > > Thread 51 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > > #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 > > #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 > > #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > > #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > > #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 > > #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 > > #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 > > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #14 0x9713885d in _pthread_start () > > #15 0x971386e2 in thread_start () > > > > Thread 27 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > > #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > > #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > > #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 > > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #9 0x9713885d in _pthread_start () > > #10 0x971386e2 in thread_start () > > > > Thread 2 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 > > #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 > > #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 > > #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 > > #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 > > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #13 0x9713885d in _pthread_start () > > #14 0x971386e2 in thread_start () > > > > > From jay.krell at cornell.edu Sat Jan 8 00:51:16 2011 From: jay.krell at cornell.edu (Jay K) Date: Fri, 7 Jan 2011 23:51:16 +0000 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: References: <20110107151412.026651A205B@async.async.caltech.edu>, <10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu>, Message-ID: Btw, I didn't entirely guess, but it looks like my analysis was incomplete. Mostly the locks aren't taken together. But not entirely.. I think I see the problem or almost. > > Thread 64 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 has initMu and is trying to LockHeap We can release initMu before calling RegisterFinalCleanup here, right? And then AtForkPrepare locks the heap before initMu. ? locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; PROCEDURE AtForkPrepare() = ? VAR me := GetActivation(); ????? act: Activation; ????? cond: Condition; ? BEGIN ??? Acquire(joinMu); ??? LockHeap(); ??? FOR i := FIRST(locks) TO LAST(locks) DO ????? PThreadLockMutex(locks[i], ThisLine(), i); ??? END; ?- Jay ---------------------------------------- > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu; mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: RE: [M3devel] deadlock... in ThreadPThread.m3? > Date: Fri, 7 Jan 2011 20:31:00 +0000 > > > We need a lock order. I guessed. Maybe poorly. I/we should study the code and these stacks more and determine its validity. > > > Here is the code, *slightly* altered just now for debuggability. > > > VAR > locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; > > > > PROCEDURE AtForkPrepare() = > VAR me := GetActivation(); > act: Activation; > cond: Condition; > BEGIN > Acquire(joinMu); > LockHeap(); > FOR i := FIRST(locks) TO LAST(locks) DO > PThreadLockMutex(locks[i], ThisLine(), i); > END; > (* Walk activations and lock all threads, conditions. > * NOTE: We have initMu, activeMu, so slots > * won't change, conditions and mutexes > * won't be initialized on-demand. > *) > act := me; > REPEAT > PThreadLockMutex(act.mutex, ThisLine(), -1); > (*PThreadLockMutex(act.waitingOn, ThisLine());*) > cond := slots[act.slot].join; > IF cond # NIL THEN PThreadLockMutex(cond.mutex, ThisLine(), -2) END; > act := act.next; > UNTIL act = me; > END AtForkPrepare; > > > > Mika, if this easy to reproduce, please try again from head. > The problem is not fixed, but there's a little more information that will appear. > > > - Jay > > > > ---------------------------------------- > > From: hosking at cs.purdue.edu > > Date: Fri, 7 Jan 2011 10:42:38 -0500 > > To: mika at async.caltech.edu > > CC: m3devel at elegosoft.com > > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > > > This has something to do with the fork handlers Jay introduced, which run when a process is forked. They invoke LockHeap in the parent before the fork, and UnlockHeap in the parent after the fork. It appears that your threads are stuck waiting on LockHeap. Also, we have two threads in your trace trying to acquire initMu. Jay, I think we have a deadlock caused by AtForkPrepare. Ideas? > > > > On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: > > > > > Hi m3devel (especially Tony), > > > > > > I'm having a problem with a Modula-3 program that seems to deadlock > > > with one of my 60+ threads stuck in Process.Create. Is it possible > > > there is a bug in ThreadPThread.m3? (Would be really nice to have a > > > deadlock detector here, you know... rather than have the program go > > > catatonic when there's a deadlock. Deadlock is stable so the detector > > > could run very infrequently---i.e., be very inefficient---and still be > > > extremely useful....) > > > > > > I don't think there is anything I ought to be able to do from "user > > > code" that would cause Process.Create to be part of a deadlock cycle. > > > Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) > > > possibly exhibit itself as a failure of Process.Create to complete?? > > > > > > Below are backtraces of the threads stuck in some sort of locking > > > activity, platform is I386_DARWIN at head as of a couple of weeks ago. > > > (I deleted the threads that are up to other things than locking.) > > > > > > Mika > > > > > > Thread 68 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > > > #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 > > > #5 0x97137217 in _cthread_fork_prepare () > > > #6 0x97137155 in fork () > > > #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC > > > ommon.m3:75 > > > #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > > > #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > > > #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 > > > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #13 0x9713885d in _pthread_start () > > > #14 0x971386e2 in thread_start () > > > > > > Thread 65 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > > #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 > > > #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > > #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 > > > #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 > > > #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > > > #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 > > > #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 > > > #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 > > > #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 > > > #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 > > > #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 > > > #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 > > > #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 > > > #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 > > > #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 > > > #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 > > > #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > > > #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > > > #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > > > #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 > > > #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #33 0x9713885d in _pthread_start () > > > #34 0x971386e2 in thread_start () > > > > > > Thread 64 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > > > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > > > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 > > > #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > > #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 > > > #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 > > > #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > > > #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 > > > #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 > > > #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > > #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 > > > #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > > #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 > > > #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > > #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 > > > #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 > > > #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 > > > #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > > > #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > > > #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > > > #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 > > > #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #28 0x9713885d in _pthread_start () > > > #29 0x971386e2 in thread_start () > > > > > > Thread 60 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > > > #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > > > #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 > > > #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 > > > #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 > > > #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > > > #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 > > > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #12 0x9713885d in _pthread_start () > > > #13 0x971386e2 in thread_start () > > > > > > Thread 59 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > > #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > > > #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 > > > #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 > > > #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 > > > #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 > > > #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 > > > #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 > > > #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 > > > #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > > > #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > > > #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > > > #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 > > > #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #19 0x9713885d in _pthread_start () > > > #20 0x971386e2 in thread_start () > > > > > > Thread 52 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > > > #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 > > > #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 > > > #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 > > > #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > > > #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > > > #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > > > #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 > > > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #14 0x9713885d in _pthread_start () > > > #15 0x971386e2 in thread_start () > > > > > > Thread 51 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > > > #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 > > > #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 > > > #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > > > #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > > > #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 > > > #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 > > > #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 > > > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #14 0x9713885d in _pthread_start () > > > #15 0x971386e2 in thread_start () > > > > > > Thread 27 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > > > #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > > > #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > > > #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 > > > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #9 0x9713885d in _pthread_start () > > > #10 0x971386e2 in thread_start () > > > > > > Thread 2 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > > #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 > > > #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > > #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 > > > #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 > > > #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 > > > #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 > > > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > #13 0x9713885d in _pthread_start () > > > #14 0x971386e2 in thread_start () > > > > > > > > > From jay.krell at cornell.edu Sat Jan 8 01:24:53 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 00:24:53 +0000 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: References: <20110107151412.026651A205B@async.async.caltech.edu>, , <10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu>, , , Message-ID: ? Index: PTHREAD/ThreadPThread.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3,v retrieving revision 1.244 diff -u -w -r1.244 ThreadPThread.m3 --- PTHREAD/ThreadPThread.m3??? 7 Jan 2011 20:28:59 -0000??? 1.244 +++ PTHREAD/ThreadPThread.m3??? 8 Jan 2011 00:24:26 -0000 @@ -97,8 +97,10 @@ ????????????????????? Clean: PROCEDURE(root: REFANY)) = ?? VAR mutex := pthread_mutex_new(); ?? BEGIN +??? LockHeap(); ???? TRY ?????? WITH r = pthread_mutex_lock(initMu) DO <*ASSERT r=0*> END; +????? TRY ?????? (* Did someone else win? *) ?????? IF m # NIL THEN RETURN END; ?????? (* We won, but we might have failed to allocate! *) @@ -109,6 +111,9 @@ ???? FINALLY ?????? WITH r = pthread_mutex_unlock(initMu) DO <*ASSERT r=0*> END; ?????? pthread_mutex_delete(mutex); +????? END +??? FINALLY +????? UnlockHeap(); ???? END; ?? END InitMutex; ? I'll try this. ?- Jay ---------------------------------------- > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu; mika at async.caltech.edu > Date: Fri, 7 Jan 2011 23:51:16 +0000 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > > Btw, I didn't entirely guess, but it looks like my analysis was incomplete. > Mostly the locks aren't taken together. But not entirely.. > > > I think I see the problem or almost. > > > > > Thread 64 (process 32362): > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > #1 0x97110c46 in pthread_mutex_lock () > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > > > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > > > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > has initMu and is trying to LockHeap > > > We can release initMu before calling RegisterFinalCleanup here, right? > > > And then AtForkPrepare locks the heap before initMu. > > > locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; > > > PROCEDURE AtForkPrepare() = > VAR me := GetActivation(); > act: Activation; > cond: Condition; > BEGIN > Acquire(joinMu); > LockHeap(); > FOR i := FIRST(locks) TO LAST(locks) DO > PThreadLockMutex(locks[i], ThisLine(), i); > END; > > > - Jay > > > > > > > > > > > ---------------------------------------- > > From: jay.krell at cornell.edu > > To: hosking at cs.purdue.edu; mika at async.caltech.edu > > CC: m3devel at elegosoft.com > > Subject: RE: [M3devel] deadlock... in ThreadPThread.m3? > > Date: Fri, 7 Jan 2011 20:31:00 +0000 > > > > > > We need a lock order. I guessed. Maybe poorly. I/we should study the code and these stacks more and determine its validity. > > > > > > Here is the code, *slightly* altered just now for debuggability. > > > > > > VAR > > locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; > > > > > > > > PROCEDURE AtForkPrepare() = > > VAR me := GetActivation(); > > act: Activation; > > cond: Condition; > > BEGIN > > Acquire(joinMu); > > LockHeap(); > > FOR i := FIRST(locks) TO LAST(locks) DO > > PThreadLockMutex(locks[i], ThisLine(), i); > > END; > > (* Walk activations and lock all threads, conditions. > > * NOTE: We have initMu, activeMu, so slots > > * won't change, conditions and mutexes > > * won't be initialized on-demand. > > *) > > act := me; > > REPEAT > > PThreadLockMutex(act.mutex, ThisLine(), -1); > > (*PThreadLockMutex(act.waitingOn, ThisLine());*) > > cond := slots[act.slot].join; > > IF cond # NIL THEN PThreadLockMutex(cond.mutex, ThisLine(), -2) END; > > act := act.next; > > UNTIL act = me; > > END AtForkPrepare; > > > > > > > > Mika, if this easy to reproduce, please try again from head. > > The problem is not fixed, but there's a little more information that will appear. > > > > > > - Jay > > > > > > > > ---------------------------------------- > > > From: hosking at cs.purdue.edu > > > Date: Fri, 7 Jan 2011 10:42:38 -0500 > > > To: mika at async.caltech.edu > > > CC: m3devel at elegosoft.com > > > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > > > > > This has something to do with the fork handlers Jay introduced, which run when a process is forked. They invoke LockHeap in the parent before the fork, and UnlockHeap in the parent after the fork. It appears that your threads are stuck waiting on LockHeap. Also, we have two threads in your trace trying to acquire initMu. Jay, I think we have a deadlock caused by AtForkPrepare. Ideas? > > > > > > On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: > > > > > > > Hi m3devel (especially Tony), > > > > > > > > I'm having a problem with a Modula-3 program that seems to deadlock > > > > with one of my 60+ threads stuck in Process.Create. Is it possible > > > > there is a bug in ThreadPThread.m3? (Would be really nice to have a > > > > deadlock detector here, you know... rather than have the program go > > > > catatonic when there's a deadlock. Deadlock is stable so the detector > > > > could run very infrequently---i.e., be very inefficient---and still be > > > > extremely useful....) > > > > > > > > I don't think there is anything I ought to be able to do from "user > > > > code" that would cause Process.Create to be part of a deadlock cycle. > > > > Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) > > > > possibly exhibit itself as a failure of Process.Create to complete?? > > > > > > > > Below are backtraces of the threads stuck in some sort of locking > > > > activity, platform is I386_DARWIN at head as of a couple of weeks ago. > > > > (I deleted the threads that are up to other things than locking.) > > > > > > > > Mika > > > > > > > > Thread 68 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > > > > #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 > > > > #5 0x97137217 in _cthread_fork_prepare () > > > > #6 0x97137155 in fork () > > > > #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC > > > > ommon.m3:75 > > > > #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > > > > #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > > > > #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 > > > > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #13 0x9713885d in _pthread_start () > > > > #14 0x971386e2 in thread_start () > > > > > > > > Thread 65 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > > > #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > > #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 > > > > #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > > > #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 > > > > #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 > > > > #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > > > > #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 > > > > #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 > > > > #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > > #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 > > > > #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 > > > > #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > > #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 > > > > #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > > #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 > > > > #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > > #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 > > > > #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > > #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 > > > > #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > > > #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 > > > > #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 > > > > #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 > > > > #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > > > > #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > > > > #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > > > > #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 > > > > #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #33 0x9713885d in _pthread_start () > > > > #34 0x971386e2 in thread_start () > > > > > > > > Thread 64 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > > > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > > > > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > > > > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > > #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 > > > > #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > > > #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 > > > > #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 > > > > #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > > > > #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 > > > > #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 > > > > #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > > > #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 > > > > #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > > > #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 > > > > #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > > > #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 > > > > #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 > > > > #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 > > > > #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > > > > #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > > > > #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > > > > #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 > > > > #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #28 0x9713885d in _pthread_start () > > > > #29 0x971386e2 in thread_start () > > > > > > > > Thread 60 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > > > > #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > > > > #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 > > > > #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 > > > > #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 > > > > #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > > > > #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 > > > > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #12 0x9713885d in _pthread_start () > > > > #13 0x971386e2 in thread_start () > > > > > > > > Thread 59 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > > > #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > > #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > > > > #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 > > > > #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 > > > > #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 > > > > #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 > > > > #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 > > > > #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 > > > > #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 > > > > #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > > > > #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > > > > #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > > > > #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 > > > > #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #19 0x9713885d in _pthread_start () > > > > #20 0x971386e2 in thread_start () > > > > > > > > Thread 52 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > > > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > > > > #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 > > > > #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 > > > > #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 > > > > #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > > > > #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > > > > #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > > > > #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 > > > > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #14 0x9713885d in _pthread_start () > > > > #15 0x971386e2 in thread_start () > > > > > > > > Thread 51 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > > > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > > > > #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 > > > > #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 > > > > #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > > > > #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > > > > #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 > > > > #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 > > > > #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 > > > > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #14 0x9713885d in _pthread_start () > > > > #15 0x971386e2 in thread_start () > > > > > > > > Thread 27 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > > > > #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > > > > #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > > > > #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 > > > > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #9 0x9713885d in _pthread_start () > > > > #10 0x971386e2 in thread_start () > > > > > > > > Thread 2 (process 32362): > > > > #0 0x9710b142 in semaphore_wait_signal_trap () > > > > #1 0x97110c46 in pthread_mutex_lock () > > > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > > > #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > > > #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 > > > > #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > > > #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 > > > > #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 > > > > #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 > > > > #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 > > > > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > > > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > > > #13 0x9713885d in _pthread_start () > > > > #14 0x971386e2 in thread_start () > > > > > > > > > > > > > > From hosking at cs.purdue.edu Sat Jan 8 02:31:36 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 7 Jan 2011 20:31:36 -0500 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: References: <20110107151412.026651A205B@async.async.caltech.edu>, , <10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu>, , , Message-ID: <0A37C595-C896-4B66-9EDF-61BB30645321@cs.purdue.edu> No, we don't want that since it can cause other problems. Better is not to be holding LockHeap when you acquire initMu in AtForkPrepare. Also, do we really need to hold LockHeap across the fork? I don't see the need for it. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 7, 2011, at 7:24 PM, Jay K wrote: > > ? > > Index: PTHREAD/ThreadPThread.m3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3,v > retrieving revision 1.244 > diff -u -w -r1.244 ThreadPThread.m3 > --- PTHREAD/ThreadPThread.m3 7 Jan 2011 20:28:59 -0000 1.244 > +++ PTHREAD/ThreadPThread.m3 8 Jan 2011 00:24:26 -0000 > @@ -97,8 +97,10 @@ > Clean: PROCEDURE(root: REFANY)) = > VAR mutex := pthread_mutex_new(); > BEGIN > + LockHeap(); > TRY > WITH r = pthread_mutex_lock(initMu) DO <*ASSERT r=0*> END; > + TRY > (* Did someone else win? *) > IF m # NIL THEN RETURN END; > (* We won, but we might have failed to allocate! *) > @@ -109,6 +111,9 @@ > FINALLY > WITH r = pthread_mutex_unlock(initMu) DO <*ASSERT r=0*> END; > pthread_mutex_delete(mutex); > + END > + FINALLY > + UnlockHeap(); > END; > END InitMutex; > > > > I'll try this. > > > - Jay > > > ---------------------------------------- >> From: jay.krell at cornell.edu >> To: hosking at cs.purdue.edu; mika at async.caltech.edu >> Date: Fri, 7 Jan 2011 23:51:16 +0000 >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? >> >> >> Btw, I didn't entirely guess, but it looks like my analysis was incomplete. >> Mostly the locks aren't taken together. But not entirely.. >> >> >> I think I see the problem or almost. >> >> >>>> Thread 64 (process 32362): >>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>> #1 0x97110c46 in pthread_mutex_lock () >>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 >>>> #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 >>>> #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 >>>> #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >> >> >> has initMu and is trying to LockHeap >> >> >> We can release initMu before calling RegisterFinalCleanup here, right? >> >> >> And then AtForkPrepare locks the heap before initMu. >> >> >> locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; >> >> >> PROCEDURE AtForkPrepare() = >> VAR me := GetActivation(); >> act: Activation; >> cond: Condition; >> BEGIN >> Acquire(joinMu); >> LockHeap(); >> FOR i := FIRST(locks) TO LAST(locks) DO >> PThreadLockMutex(locks[i], ThisLine(), i); >> END; >> >> >> - Jay >> >> >> >> >> >> >> >> >> >> >> ---------------------------------------- >>> From: jay.krell at cornell.edu >>> To: hosking at cs.purdue.edu; mika at async.caltech.edu >>> CC: m3devel at elegosoft.com >>> Subject: RE: [M3devel] deadlock... in ThreadPThread.m3? >>> Date: Fri, 7 Jan 2011 20:31:00 +0000 >>> >>> >>> We need a lock order. I guessed. Maybe poorly. I/we should study the code and these stacks more and determine its validity. >>> >>> >>> Here is the code, *slightly* altered just now for debuggability. >>> >>> >>> VAR >>> locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; >>> >>> >>> >>> PROCEDURE AtForkPrepare() = >>> VAR me := GetActivation(); >>> act: Activation; >>> cond: Condition; >>> BEGIN >>> Acquire(joinMu); >>> LockHeap(); >>> FOR i := FIRST(locks) TO LAST(locks) DO >>> PThreadLockMutex(locks[i], ThisLine(), i); >>> END; >>> (* Walk activations and lock all threads, conditions. >>> * NOTE: We have initMu, activeMu, so slots >>> * won't change, conditions and mutexes >>> * won't be initialized on-demand. >>> *) >>> act := me; >>> REPEAT >>> PThreadLockMutex(act.mutex, ThisLine(), -1); >>> (*PThreadLockMutex(act.waitingOn, ThisLine());*) >>> cond := slots[act.slot].join; >>> IF cond # NIL THEN PThreadLockMutex(cond.mutex, ThisLine(), -2) END; >>> act := act.next; >>> UNTIL act = me; >>> END AtForkPrepare; >>> >>> >>> >>> Mika, if this easy to reproduce, please try again from head. >>> The problem is not fixed, but there's a little more information that will appear. >>> >>> >>> - Jay >>> >>> >>> >>> ---------------------------------------- >>>> From: hosking at cs.purdue.edu >>>> Date: Fri, 7 Jan 2011 10:42:38 -0500 >>>> To: mika at async.caltech.edu >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? >>>> >>>> This has something to do with the fork handlers Jay introduced, which run when a process is forked. They invoke LockHeap in the parent before the fork, and UnlockHeap in the parent after the fork. It appears that your threads are stuck waiting on LockHeap. Also, we have two threads in your trace trying to acquire initMu. Jay, I think we have a deadlock caused by AtForkPrepare. Ideas? >>>> >>>> On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: >>>> >>>>> Hi m3devel (especially Tony), >>>>> >>>>> I'm having a problem with a Modula-3 program that seems to deadlock >>>>> with one of my 60+ threads stuck in Process.Create. Is it possible >>>>> there is a bug in ThreadPThread.m3? (Would be really nice to have a >>>>> deadlock detector here, you know... rather than have the program go >>>>> catatonic when there's a deadlock. Deadlock is stable so the detector >>>>> could run very infrequently---i.e., be very inefficient---and still be >>>>> extremely useful....) >>>>> >>>>> I don't think there is anything I ought to be able to do from "user >>>>> code" that would cause Process.Create to be part of a deadlock cycle. >>>>> Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) >>>>> possibly exhibit itself as a failure of Process.Create to complete?? >>>>> >>>>> Below are backtraces of the threads stuck in some sort of locking >>>>> activity, platform is I386_DARWIN at head as of a couple of weeks ago. >>>>> (I deleted the threads that are up to other things than locking.) >>>>> >>>>> Mika >>>>> >>>>> Thread 68 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 >>>>> #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 >>>>> #5 0x97137217 in _cthread_fork_prepare () >>>>> #6 0x97137155 in fork () >>>>> #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC >>>>> ommon.m3:75 >>>>> #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 >>>>> #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 >>>>> #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 >>>>> #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #13 0x9713885d in _pthread_start () >>>>> #14 0x971386e2 in thread_start () >>>>> >>>>> Thread 65 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >>>>> #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >>>>> #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 >>>>> #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 >>>>> #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 >>>>> #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 >>>>> #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 >>>>> #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 >>>>> #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 >>>>> #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>>>> #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 >>>>> #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 >>>>> #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>>>> #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 >>>>> #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>>>> #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 >>>>> #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>>>> #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 >>>>> #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>>>> #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 >>>>> #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>>>> #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 >>>>> #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 >>>>> #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 >>>>> #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 >>>>> #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 >>>>> #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 >>>>> #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 >>>>> #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #33 0x9713885d in _pthread_start () >>>>> #34 0x971386e2 in thread_start () >>>>> >>>>> Thread 64 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 >>>>> #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 >>>>> #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 >>>>> #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >>>>> #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 >>>>> #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 >>>>> #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 >>>>> #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 >>>>> #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 >>>>> #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 >>>>> #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 >>>>> #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 >>>>> #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 >>>>> #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 >>>>> #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 >>>>> #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 >>>>> #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 >>>>> #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 >>>>> #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 >>>>> #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 >>>>> #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 >>>>> #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 >>>>> #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 >>>>> #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #28 0x9713885d in _pthread_start () >>>>> #29 0x971386e2 in thread_start () >>>>> >>>>> Thread 60 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 >>>>> #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 >>>>> #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 >>>>> #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 >>>>> #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 >>>>> #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 >>>>> #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 >>>>> #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #12 0x9713885d in _pthread_start () >>>>> #13 0x971386e2 in thread_start () >>>>> >>>>> Thread 59 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >>>>> #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >>>>> #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 >>>>> #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 >>>>> #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 >>>>> #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 >>>>> #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 >>>>> #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 >>>>> #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 >>>>> #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 >>>>> #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 >>>>> #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 >>>>> #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 >>>>> #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 >>>>> #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #19 0x9713885d in _pthread_start () >>>>> #20 0x971386e2 in thread_start () >>>>> >>>>> Thread 52 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 >>>>> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 >>>>> #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 >>>>> #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 >>>>> #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 >>>>> #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 >>>>> #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 >>>>> #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 >>>>> #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 >>>>> #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #14 0x9713885d in _pthread_start () >>>>> #15 0x971386e2 in thread_start () >>>>> >>>>> Thread 51 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 >>>>> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 >>>>> #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 >>>>> #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 >>>>> #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 >>>>> #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 >>>>> #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 >>>>> #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 >>>>> #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 >>>>> #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #14 0x9713885d in _pthread_start () >>>>> #15 0x971386e2 in thread_start () >>>>> >>>>> Thread 27 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 >>>>> #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 >>>>> #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 >>>>> #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 >>>>> #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #9 0x9713885d in _pthread_start () >>>>> #10 0x971386e2 in thread_start () >>>>> >>>>> Thread 2 (process 32362): >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () >>>>> #1 0x97110c46 in pthread_mutex_lock () >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>>>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >>>>> #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >>>>> #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 >>>>> #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 >>>>> #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 >>>>> #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 >>>>> #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 >>>>> #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 >>>>> #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>>>> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>>>> #13 0x9713885d in _pthread_start () >>>>> #14 0x971386e2 in thread_start () >>>>> >>>>> >>>> >>> >> > From jay.krell at cornell.edu Sat Jan 8 03:08:26 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 02:08:26 +0000 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: <0A37C595-C896-4B66-9EDF-61BB30645321@cs.purdue.edu> References: <20110107151412.026651A205B@async.async.caltech.edu>, ,,<10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu>, , , , , , , <0A37C595-C896-4B66-9EDF-61BB30645321@cs.purdue.edu> Message-ID: The basic requirement, I know it sounds wierd at first, but is to hold *all* mutexes across the fork. Consider a multi-threaded program, that calls fork, possibly on multiple threads. If some threads are doing "random" work and some are calling fork, then the state of the mutexes will be arbitrary in the child process and the child process will inevitably hand/deadlock upon attempted to use them. The model in mind is that there is not any central "control". Arbitrary code, in aribtrary threads, can be calling fork at arbitrary times. And it makes a fair amount of sense, I think. Any "component" (library, module, etc.) that uses any mutexes should register a fork prepare and takes all of its mutexes. What problems would it cause to take the heap lock around the mutex init? upgrade and build-all works, which does excerise this path some. ? Granted, the compiler isn't aggressively multithreaded, but does have the GC thread. I guess we can release initMu before registering the cleanup?? ?- Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Fri, 7 Jan 2011 20:31:36 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > No, we don't want that since it can cause other problems. Better is not to be holding LockHeap when you acquire initMu in AtForkPrepare. > Also, do we really need to hold LockHeap across the fork? I don't see the need for it. > > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 | Mobile +1 765 427 5484 > > > > > On Jan 7, 2011, at 7:24 PM, Jay K wrote: > > > > > ? > > > > Index: PTHREAD/ThreadPThread.m3 > > =================================================================== > > RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3,v > > retrieving revision 1.244 > > diff -u -w -r1.244 ThreadPThread.m3 > > --- PTHREAD/ThreadPThread.m3 7 Jan 2011 20:28:59 -0000 1.244 > > +++ PTHREAD/ThreadPThread.m3 8 Jan 2011 00:24:26 -0000 > > @@ -97,8 +97,10 @@ > > Clean: PROCEDURE(root: REFANY)) = > > VAR mutex := pthread_mutex_new(); > > BEGIN > > + LockHeap(); > > TRY > > WITH r = pthread_mutex_lock(initMu) DO <*ASSERT r=0*> END; > > + TRY > > (* Did someone else win? *) > > IF m # NIL THEN RETURN END; > > (* We won, but we might have failed to allocate! *) > > @@ -109,6 +111,9 @@ > > FINALLY > > WITH r = pthread_mutex_unlock(initMu) DO <*ASSERT r=0*> END; > > pthread_mutex_delete(mutex); > > + END > > + FINALLY > > + UnlockHeap(); > > END; > > END InitMutex; > > > > > > > > I'll try this. > > > > > > - Jay > > > > > > ---------------------------------------- > >> From: jay.krell at cornell.edu > >> To: hosking at cs.purdue.edu; mika at async.caltech.edu > >> Date: Fri, 7 Jan 2011 23:51:16 +0000 > >> CC: m3devel at elegosoft.com > >> Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > >> > >> > >> Btw, I didn't entirely guess, but it looks like my analysis was incomplete. > >> Mostly the locks aren't taken together. But not entirely.. > >> > >> > >> I think I see the problem or almost. > >> > >> > >>>> Thread 64 (process 32362): > >>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>> #1 0x97110c46 in pthread_mutex_lock () > >>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > >>>> #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > >>>> #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > >>>> #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > >> > >> > >> has initMu and is trying to LockHeap > >> > >> > >> We can release initMu before calling RegisterFinalCleanup here, right? > >> > >> > >> And then AtForkPrepare locks the heap before initMu. > >> > >> > >> locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; > >> > >> > >> PROCEDURE AtForkPrepare() = > >> VAR me := GetActivation(); > >> act: Activation; > >> cond: Condition; > >> BEGIN > >> Acquire(joinMu); > >> LockHeap(); > >> FOR i := FIRST(locks) TO LAST(locks) DO > >> PThreadLockMutex(locks[i], ThisLine(), i); > >> END; > >> > >> > >> - Jay > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> ---------------------------------------- > >>> From: jay.krell at cornell.edu > >>> To: hosking at cs.purdue.edu; mika at async.caltech.edu > >>> CC: m3devel at elegosoft.com > >>> Subject: RE: [M3devel] deadlock... in ThreadPThread.m3? > >>> Date: Fri, 7 Jan 2011 20:31:00 +0000 > >>> > >>> > >>> We need a lock order. I guessed. Maybe poorly. I/we should study the code and these stacks more and determine its validity. > >>> > >>> > >>> Here is the code, *slightly* altered just now for debuggability. > >>> > >>> > >>> VAR > >>> locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; > >>> > >>> > >>> > >>> PROCEDURE AtForkPrepare() = > >>> VAR me := GetActivation(); > >>> act: Activation; > >>> cond: Condition; > >>> BEGIN > >>> Acquire(joinMu); > >>> LockHeap(); > >>> FOR i := FIRST(locks) TO LAST(locks) DO > >>> PThreadLockMutex(locks[i], ThisLine(), i); > >>> END; > >>> (* Walk activations and lock all threads, conditions. > >>> * NOTE: We have initMu, activeMu, so slots > >>> * won't change, conditions and mutexes > >>> * won't be initialized on-demand. > >>> *) > >>> act := me; > >>> REPEAT > >>> PThreadLockMutex(act.mutex, ThisLine(), -1); > >>> (*PThreadLockMutex(act.waitingOn, ThisLine());*) > >>> cond := slots[act.slot].join; > >>> IF cond # NIL THEN PThreadLockMutex(cond.mutex, ThisLine(), -2) END; > >>> act := act.next; > >>> UNTIL act = me; > >>> END AtForkPrepare; > >>> > >>> > >>> > >>> Mika, if this easy to reproduce, please try again from head. > >>> The problem is not fixed, but there's a little more information that will appear. > >>> > >>> > >>> - Jay > >>> > >>> > >>> > >>> ---------------------------------------- > >>>> From: hosking at cs.purdue.edu > >>>> Date: Fri, 7 Jan 2011 10:42:38 -0500 > >>>> To: mika at async.caltech.edu > >>>> CC: m3devel at elegosoft.com > >>>> Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > >>>> > >>>> This has something to do with the fork handlers Jay introduced, which run when a process is forked. They invoke LockHeap in the parent before the fork, and UnlockHeap in the parent after the fork. It appears that your threads are stuck waiting on LockHeap. Also, we have two threads in your trace trying to acquire initMu. Jay, I think we have a deadlock caused by AtForkPrepare. Ideas? > >>>> > >>>> On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: > >>>> > >>>>> Hi m3devel (especially Tony), > >>>>> > >>>>> I'm having a problem with a Modula-3 program that seems to deadlock > >>>>> with one of my 60+ threads stuck in Process.Create. Is it possible > >>>>> there is a bug in ThreadPThread.m3? (Would be really nice to have a > >>>>> deadlock detector here, you know... rather than have the program go > >>>>> catatonic when there's a deadlock. Deadlock is stable so the detector > >>>>> could run very infrequently---i.e., be very inefficient---and still be > >>>>> extremely useful....) > >>>>> > >>>>> I don't think there is anything I ought to be able to do from "user > >>>>> code" that would cause Process.Create to be part of a deadlock cycle. > >>>>> Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) > >>>>> possibly exhibit itself as a failure of Process.Create to complete?? > >>>>> > >>>>> Below are backtraces of the threads stuck in some sort of locking > >>>>> activity, platform is I386_DARWIN at head as of a couple of weeks ago. > >>>>> (I deleted the threads that are up to other things than locking.) > >>>>> > >>>>> Mika > >>>>> > >>>>> Thread 68 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > >>>>> #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 > >>>>> #5 0x97137217 in _cthread_fork_prepare () > >>>>> #6 0x97137155 in fork () > >>>>> #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC > >>>>> ommon.m3:75 > >>>>> #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > >>>>> #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > >>>>> #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 > >>>>> #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #13 0x9713885d in _pthread_start () > >>>>> #14 0x971386e2 in thread_start () > >>>>> > >>>>> Thread 65 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >>>>> #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > >>>>> #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 > >>>>> #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > >>>>> #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 > >>>>> #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 > >>>>> #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > >>>>> #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 > >>>>> #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 > >>>>> #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > >>>>> #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 > >>>>> #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 > >>>>> #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > >>>>> #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 > >>>>> #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > >>>>> #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 > >>>>> #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > >>>>> #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 > >>>>> #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > >>>>> #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 > >>>>> #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > >>>>> #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 > >>>>> #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 > >>>>> #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 > >>>>> #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > >>>>> #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > >>>>> #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > >>>>> #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 > >>>>> #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #33 0x9713885d in _pthread_start () > >>>>> #34 0x971386e2 in thread_start () > >>>>> > >>>>> Thread 64 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > >>>>> #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > >>>>> #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > >>>>> #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > >>>>> #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 > >>>>> #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > >>>>> #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 > >>>>> #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 > >>>>> #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > >>>>> #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 > >>>>> #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 > >>>>> #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > >>>>> #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 > >>>>> #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > >>>>> #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 > >>>>> #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > >>>>> #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 > >>>>> #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 > >>>>> #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 > >>>>> #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > >>>>> #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > >>>>> #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > >>>>> #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 > >>>>> #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #28 0x9713885d in _pthread_start () > >>>>> #29 0x971386e2 in thread_start () > >>>>> > >>>>> Thread 60 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > >>>>> #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > >>>>> #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 > >>>>> #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 > >>>>> #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 > >>>>> #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > >>>>> #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 > >>>>> #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #12 0x9713885d in _pthread_start () > >>>>> #13 0x971386e2 in thread_start () > >>>>> > >>>>> Thread 59 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >>>>> #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > >>>>> #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > >>>>> #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 > >>>>> #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 > >>>>> #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 > >>>>> #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 > >>>>> #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 > >>>>> #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 > >>>>> #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 > >>>>> #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > >>>>> #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > >>>>> #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > >>>>> #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 > >>>>> #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #19 0x9713885d in _pthread_start () > >>>>> #20 0x971386e2 in thread_start () > >>>>> > >>>>> Thread 52 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > >>>>> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > >>>>> #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 > >>>>> #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 > >>>>> #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 > >>>>> #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > >>>>> #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > >>>>> #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > >>>>> #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 > >>>>> #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #14 0x9713885d in _pthread_start () > >>>>> #15 0x971386e2 in thread_start () > >>>>> > >>>>> Thread 51 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > >>>>> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > >>>>> #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 > >>>>> #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 > >>>>> #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > >>>>> #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > >>>>> #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 > >>>>> #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 > >>>>> #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 > >>>>> #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #14 0x9713885d in _pthread_start () > >>>>> #15 0x971386e2 in thread_start () > >>>>> > >>>>> Thread 27 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > >>>>> #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > >>>>> #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > >>>>> #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 > >>>>> #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #9 0x9713885d in _pthread_start () > >>>>> #10 0x971386e2 in thread_start () > >>>>> > >>>>> Thread 2 (process 32362): > >>>>> #0 0x9710b142 in semaphore_wait_signal_trap () > >>>>> #1 0x97110c46 in pthread_mutex_lock () > >>>>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > >>>>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >>>>> #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > >>>>> #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 > >>>>> #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > >>>>> #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 > >>>>> #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 > >>>>> #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 > >>>>> #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 > >>>>> #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > >>>>> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > >>>>> #13 0x9713885d in _pthread_start () > >>>>> #14 0x971386e2 in thread_start () > >>>>> > >>>>> > >>>> > >>> > >> > > > From jay.krell at cornell.edu Sat Jan 8 06:17:23 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 05:17:23 +0000 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: References: <20110106002615.77E782474003@birch.elegosoft.com>, Message-ID: fyi, small repro: MODULE Main; VAR x: [0L..0L]; PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; BEGIN ? F2(x); END Main. (32)???????????? start_call_direct procedure:0x4 level:0 (33)?????????????? load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 (34)?????????????? comment comment:********* M3CG_Check ERROR *********** bad stack:? expected [ Int64??? ] got [ Int32??? ] (35)?????????????? pop_param type:int_64 ?- Jay ________________________________ > From: jay.krell at cornell.edu > To: m3devel at elegosoft.com; mika at async.caltech.edu > Subject: RE: codegen error (from Mika, new test p250) > Date: Thu, 6 Jan 2011 01:21:00 +0000 > > fyi: > > jbook2:p250 jay$ rm -rf I386_DARWIN/ > jbook2:p250 jay$ cm3 -keep > --- building in I386_DARWIN --- > > new source -> compiling Main.m3 > "../Main.m3", line 1: 1 code generation error > 1 error encountered > compilation failed => not building program "pgm" > Fatal Error: package build failed > jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment > (4) comment comment:module global constants > (6) comment comment:module global data > (27) comment comment:F1 > (34) comment comment:********* M3CG_Check ERROR > *********** bad stack: expected [ Int64 ] got [ Int32 ] > (43) comment comment:F2 > (73) comment comment:Main_M3 > (74) comment comment:module main body Main_M3 > (83) comment comment:global constant type descriptor > (85) comment comment:global data type descriptor > (87) comment comment:module global constants > (90) comment comment:procedure names > (94) comment comment:procedure table > (101) comment comment:file name > (103) comment comment:type map for _t0174bdf4 > (106) comment comment:type description for _t0174bdf4 > (110) comment comment:module global data > (120) comment comment:typecell for _t0174bdf4 > (141) comment comment:load map > (4) comment comment:module global constants > (6) comment comment:module global data > (27) comment comment:F1 > (34) comment comment:********* M3CG_Check ERROR > *********** bad stack: expected [ Int64 ] got [ Int32 ] > (43) comment comment:F2 > (73) comment comment:Main_M3 > (74) comment comment:module main body Main_M3 > (83) comment comment:global constant type descriptor > (85) comment comment:global data type descriptor > (87) comment comment:module global constants > (90) comment comment:procedure names > (94) comment comment:procedure table > (101) comment comment:file name > (103) comment comment:type map for _t0174bdf4 > (106) comment comment:type description for _t0174bdf4 > (110) comment comment:module global data > (120) comment comment:typecell for _t0174bdf4 > (141) comment comment:load map > > > - Jay > > > > Date: Thu, 6 Jan 2011 01:26:15 +0000 > > To: m3commit at elegosoft.com > > From: jkrell at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 11/01/06 01:26:15 > > > > Modified files: > > cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > > > > Log message: > > slightly simpler, same error > > From jay.krell at cornell.edu Sat Jan 8 06:28:43 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 05:28:43 +0000 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: References: <20101227101653.307241A205B@async.async.caltech.edu>, , <20101227185453.97CE51A205B@async.async.caltech.edu>, Message-ID: Please try this Mika. It fixes the problem for me. retrieving revision 1.5 diff -u -r1.5 I386.common --- I386.common??? 6 Oct 2010 12:03:27 -0000??? 1.5 +++ I386.common??? 8 Jan 2011 05:21:48 -0000 @@ -1,4 +1,4 @@ ?readonly TARGET_ARCH = "I386" ?readonly TARGET_ENDIAN = "LITTLE"?? % { "BIG" OR "LITTLE" } ?readonly WORD_SIZE??? = "32BITS"??? % { "32BITS" or "64BITS" } -m3back_flags = "-march=i586" +m3back_flags = "-march=i686" Probably it should be investigated further. Though the workaround isn't so bad. ?- Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Mon, 27 Dec 2010 14:36:14 -0500 > To: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] another Snow Leopard compiler crash > > OK. Jay? > > On Dec 27, 2010, at 1:54 PM, Mika Nystrom wrote: > > > No I had to upgrade the backend to get it to work at all, it's at head > > too (as of 4-5 days ago). > > > > Tony Hosking writes: > >> Which version of the backend are you using? Release? There has been so = > >> much churn in the trunk lately that I have lost track of things. > >> > >> > >> > >> Antony Hosking | Associate Professor | Computer Science | Purdue = > From jay.krell at cornell.edu Sat Jan 8 09:19:06 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 08:19:06 +0000 Subject: [M3devel] FW: LONGINT subrange problems In-Reply-To: <20110108081522.7A4C12474003@birch.elegosoft.com> References: <20110108081522.7A4C12474003@birch.elegosoft.com> Message-ID: This is all based on Mika's work. MODULE Main; PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; PROCEDURE F2() = <*UNUSED*>VAR x: [0L..0L]; BEGIN END F2; PROCEDURE F3() = VAR x: [0L..0L]; BEGIN ? F1(x); END F3; BEGIN ? F1(0L); ? F2(); ? F3(); END Main. (20)?????????? declare_procedure name:Main__F1 n_params:1 lev:0 exported:false procedure:0x0 procedure:0x4 (22)???????????? declare_procedure name:Main__F2 n_params:0 lev:0 exported:false procedure:0x0 procedure:0x5 (24)?????????????? declare_procedure name:Main__F3 n_params:0 lev:0 exported:false procedure:0x0 procedure:0x6 (33)???????????????? begin_procedure procedure:0x5 (34)?????????????????? set_source_line 6 (35)?????????????????? load_integer type:int_64 0 (36)?????????????????? comment comment:********* M3CG_Check ERROR *********** bad stack:? expected [ Int32??? ] got [ Int64??? ] (37)?????????????????? store var:0x5 offset:0 src_t:int_32 dst_t:word_8 (38)?????????????????? set_source_line 8 (39)?????????????????? exit_proc type:void (40)???????????????? end_procedure procedure:0x5 (41)???????????????? comment comment:F3 (42)???????????????? set_source_line 0xA(10) (43)???????????????? begin_procedure procedure:0x6 (44)?????????????????? set_source_line 0xB(11) (45)?????????????????? load_integer type:int_64 0 (46)?????????????????? comment comment:********* M3CG_Check ERROR *********** bad stack:? expected [ Int32??? ] got [ Int64??? ] (47)?????????????????? store var:0x6 offset:0 src_t:int_32 dst_t:word_8 (48)?????????????????? set_source_line 0xD(13) (49)?????????????????? start_call_direct procedure:0x4 level:0 (50)???????????????????? load var:0x6 offset:0 src_t:word_8 dst_t:int_32 (51)???????????????????? comment comment:********* M3CG_Check ERROR *********** bad stack:? expected [ Int64??? ] got [ Int32??? ] (52)???????????????????? pop_param type:int_64 (53)?????????????????? call_direct procedure:0x4 (54)?????????????????? set_source_line 0xE(14) (55)?????????????????? exit_proc type:void (56)???????????????? end_procedure procedure:0x6 (57)???????????????? comment comment:Main_M3 (58)???????????????? comment comment:module main body Main_M3 (59)???????????????? set_source_line 0x10(16) ---------------------------------------- > Date: Sat, 8 Jan 2011 09:15:22 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 11/01/08 09:15:21 > > Modified files: > cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > > Log message: > more LONGINT subrange problems, this now has 3 internal codegen errors, > due to stack type and expected type mismatches > From mika at async.caltech.edu Sat Jan 8 13:14:41 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Sat, 08 Jan 2011 04:14:41 -0800 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: References: <20101227101653.307241A205B@async.async.caltech.edu>, , <20101227185453.97CE51A205B@async.async.caltech.edu>, Message-ID: <20110108121441.A58031A205B@async.async.caltech.edu> Jay K writes: > >Please try this Mika. It fixes the problem for me. Hi Jay, So I upgraded to the CVS head and now I get a segfaulting compiler: [hal:cm3/m3-libs/m3core] mika% gdb $CM3 GNU gdb 6.3.50-20050815 (Apple version gdb-1510) (Wed Sep 22 02:45:02 UTC 2010) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries ...... done (gdb) run Starting program: /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3 Reading symbols for shared libraries .+++++.......... done Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_PROTECTION_FAILURE at address: 0x0000038b 0x9713354b in _longjmp () (gdb) where #0 0x9713354b in _longjmp () #1 0x00285d2b in RTExFrame__InvokeHandler (f=0xbffff34c, a=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:175 #2 0x00285be4 in RTException__ResumeRaise (a=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:145 #3 0x00285a1b in RTException__Raise (act=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:91 #4 0x00269d44 in RTHooks__Raise (ex=0x35a720, arg=0x181cddc, module=0x398080, line=50) at ../src/runtime/common/RTHooks.m3:79 #5 0x0023adbc in OSErrorPosix__Raise0 (errno=2) at ../src/os/POSIX/OSErrorPosix.m3:50 #6 0x0023cffc in FSPosix__Fail (p=0x181cdc0, f=0xf049f0) at ../src/os/POSIX/FSPosix.m3:359 #7 0x0023cdd4 in FS__Status (pn=0x181cdc0, _result=0xbffff3c8) at ../src/os/POSIX/FSPosix.m3:328 #8 0x00217d24 in M3File__IsReadable (path=0x181cdc0) at ../src/M3File.m3:123 #9 0x000a057f in MxConfig__TryConfig (a=0x3255e0, b=0x3255f0, c=0x0) at ../src/MxConfig.m3:122 #10 0x0009ff67 in MxConfig__FindConfig () at ../src/MxConfig.m3:51 #11 0x0009fcd8 in MxConfig__FindFile () at ../src/MxConfig.m3:19 #12 0x0002c446 in Main__DoIt () at ../src/Main.m3:32 #13 0x0002d1e9 in Main_M3 (mode=1) at ../src/Main.m3:214 #14 0x0027a781 in RTLinker__RunMainBody (m=0x3705a0) at ../src/runtime/common/RTLinker.m3:406 #15 0x00279bb6 in RTLinker__AddUnitI (m=0x3705a0) at ../src/runtime/common/RTLinker.m3:113 #16 0x00279c3a in RTLinker__AddUnit (b=0x2d1d0) at ../src/runtime/common/RTLinker.m3:122 #17 0x00002cfc in main (argc=1, argv=0xbffff674, envp=0xbffff67c) at _m3main.c:16 (gdb) I followed upgrade instructions from Tony (including upgrading the back-end)---I have edited the instructions a bit to track changes in CM3. I'm starting from head three weeks old.. Mika Return-Path: hosking at cs.purdue.edu Delivery-Date: Sun Jun 24 07:38:38 2007 In-Reply-To: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> References: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> Sounds like we really need some work done in this area. I very rarely use the build scripts, since I bootstrap manually from old compilers to new compilers rather than use the scripts. I suggest the following approach, which I hope you will try, and then report back on. Install the bootstrap compiler as you did originally: > rm -rf /usr/local/cm3/* > > cd ~/cm3-cvs > mkdir boot > cd boot > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz > ./cminstall Now you will have some kind of cm3 installed, presumably in /usr/ local/cm3/bin/cm3. Make sure you have a fresh CVS checkout in directory cm3 (let's assume this is in your home directory ~/cm3). Also, make sure you have an up-to-date version of the CM3 backend compiler cm3cg installed by executing the following: STEP 0: export CM3=/usr/local/cm3/bin/cm3 cd ~/cm3/m3-sys/m3cc $CM3 $CM3 -ship You can skip this last step if you know your backend compiler is up to date. Now, let's build the new compiler from scratch (this is the sequence I use regularly to test changes to the run-time system whenever I make them): can replace compilation step with rm -rf && $CM3 && $CM3 -ship STEP 1: (do these LATER if bootstrapping from old compiler!) cd ~/cm3/m3-libs/m3core $CM3 $CM3 -ship cd ~/cm3/m3-libs/libm3 $CM3 $CM3 -ship Now build the compiler: cd ~/cm3/m3-libs/sysutils ; $CM3 etc. cd ~/cm3/m3-sys/m3middle; $CM3 etc. repeat for: m3-sys/m3objfile m3-sys/m3back m3-sys/m3linker m3-sys/m3front m3-sys/m3quake m3-sys/cm3 [ here we may need -DROOT= ] At this point you should have a bootstrapped version of cm3 installed in the directory /usr/local/cm3/pkg/cm3/TARGET/cm3 (where TARGET is the CM3 target platform you are building on -- e.g., LINUXLIBC6, PPC_DARWIN, ...). Note that this did not overwrite your original installed compiler in /usr/local/cm3/bin/cm3. We are now going to test the new compiler, which was built using the old compiler, by bootstrapping it one more time. ******* THIS IS WHERE I HAVE A SEGFAULTING COMPILER ******* (If m3core and libm3 were skipped earlier, do them now, and RE-DO all of the above packages before proceeding.) >From here on out, please replace TARGET with your target platform as appropriate. STEP 2: export CM3=/usr/local/cm3/pkg/cm3/TARGET/cm3 cd ~/cm3/scripts ./do-cm3-std.sh realclean REPEAT STEP 1 to rebuild the libraries and the compiler using the STEP 1 bootstrap compiler. Now you have a STEP 2 bootstrap compiler installed in /usr/local/cm3/ pkg/cm3/TARGET/cm3. Let's assume the new compiler now works properly since it successfully bootstrapped itself, but to be sure we can now use it to rebuild the world: cd ~/cm3/scripts ./do-cm3-std.sh realclean ./do-cm3-std.sh buildship Assuming this succeeded then we can be pretty sure /usr/local/cm3/pkg/ cm3/TARGET/cm3 is good, so we can make it our default compiler by replacing the original /usr/local/cm3/bin/cm3: cp $CM3 /usr/local/cm3/bin/cm3 On Jun 23, 2007, at 2:38 PM, Mika Nystrom wrote: > Ok, I'm sorry if I seem a bit dimwitted in the morning like this, > but how exactly does one get started? I wish there were a file called > "GETTING_STARTED" or something like that in scripts... > > My Mac is very slow so I switched to my FreeBSD/i386 system (which has > PM3 happily installed on it) and tried to install CM3 from scratch. > Here are the exact commands I typed. > > > rm -rf /usr/local/cm3/* > > cd ~/cm3-cvs > mkdir boot > cd boot > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz > ./cminstall > > # now I seem to have some kind of cm3 installed, /usr/local/cm3/bin/ > cm3 > > cd cm3 # location of my CM3 checkout > cvs update -d . > > cd scripts > ./boot-cm3-with-m3.sh realclean > ./do-cm3-std.sh realclean > > ./upgrade.sh # fails here, libm3 not compiled > ./boot-cm3-with-m3.sh build # builds cm3, but fails on > cminstall, patternmatching not built > > ./do-cm3-std.sh build # OK > ./do-cm3-std.sh buildship # OK > > ./boot-cm3-with-m3.sh realclean # start over > ./boot-cm3-with-m3.sh build # OK > ./boot-cm3-with-m3.sh buildship # OK > > ./do-cm3-std.sh realclean # OK > ./do-cm3-std.sh build # dies miserably... maybe the > compiler can't handle the new libraries? > > ./install-cm3-compiler.sh upgrade # OK, new cm3 binary installed > > After all that, "game over." I have a cm3 that segfaults. > > Text.i3: In function 'Text_I3': > Text.i3:81: internal compiler error: Segmentation fault > Please submit a full bug report, > with preprocessed source if appropriate. > See for instructions. > compilation failed => not building library "libm3core.a" > Fatal Error: package build failed > *** execution of failed *** > > I can't seem to get either m3gdb or gdb to say anything reasonable > either. ktrace shows nothing out of the ordinary. > > ----- > > Meanwhile, my Mac got through "do-cm3-std.sh realclean" and > "do-cm3-std.sh buildship" but my compiles are still dying on the > same assertion tickled by ktok. On that machine I have INSTALLROOT > set to ~/cm3, but hopefully that has nothing to do with it... > > ----- > > Does do-cm3-std.sh realclean clean EVERYTHING? If so my Mac should > really have a fresh setup. The FreeBSD, I am not sure, maybe the > old binary version just doesn't work right? Of course I could try > bootstrapping with PM3 as well... but really, there's an "approved" > process to get from a blank system, no? > > Mika > > > > > Tony Hosking writes: >> That sounds like you forgot to execute "do-cm3-std.sh realclean" >> before initiating the build. These sorts of errors sometimes arise >> if there are old build directories lying around. >> >> On Jun 23, 2007, at 3:34 AM, Mika Nystrom wrote: >> >>> Hello everyone, >>> >>> I am in the process of trying to consolidate build systems for a >>> few software packages I am maintaining. Currently, I am using an >>> old PM3 on FreeBSD4, an ancient PM3 (from Klagenfurt?) for Windows >>> (NT386GNU), and trying to get the latest CM3 from cvs up and >>> compiling >>> things on PPC_DARWIN. Ideally, I'd like to standardize everything >>> on the new PM3---mainly so that I can use pickles (and Network >>> Objects) across all three systems. I'd also like to add Linux to >>> the mix. >>> >>> It's natural for me to start with CM3 on Darwin, as there's no >>> alternative. But I am getting some assertions failing. Everything >>> in the CM3 distribution compiles fine, and I believe I have compiled >>> the libraries a few times (that is, including with themselves), and >>> updated the compiler, too (using boot-cm3-with-m3.sh). I just cvs >>> updated tonight. >>> >>> Here's what I'm running into: >>> >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/CHP.t -o >>> CHPTok.i3 >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/runtime/common/RTCollector.m3", line 2314 >>> *** >>> >>> Abort >>> >>> Also: >>> >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/PRS.t -o >>> PRSTok.i3 >>> Illegal instruction >>> >>> As you can see, these things are coming from the caltech_parser. I >> am using >>> our local version, but I don't think it is very different from what >>> is in the >>> CM3 tree. >>> >>> Examining the first error (the failed assertion) more closely, I see >>> the following: >>> >>> (gdb) list >>> 108 wr := FileWr.Open(Pathname.ReplaceExt(tp.out, "m3")); >>> 109 EXCEPT OSError.E => >>> 110 Debug.Error("Cannot open tok implementation output >>> file: " & >>> 111 Pathname.ReplaceExt(tp.out, "m3")); >>> 112 END; >>> 113 Wr.PutText(wr, subs.apply(Bundle.Get(Form, >>> "tokform.m3"))); >>> 114 Wr.Close(wr); >>> 115 END Main. >>> (gdb) where >>> #0 0x9004308c in kill () >>> #1 0x9009fb3c in abort () >>> #2 0x00096f50 in RTOS__Crash () at RTOS.m3:20 >>> #3 0x0005bd40 in RTProcess__Crash (M3_Bd56fi_msg=0x0) at >>> RTProcess.m3:65 >>> #4 0x0008e4e0 in RTError__EndError (M3_AicXUJ_crash=1 '\001') at >>> RTError.m3:115 >>> #5 0x0008e08c in RTError__MsgS (M3_AJWxb1_file=0xc63d8, >>> M3_AcxOUs_line=2314, M3_Bd56fi_msgA=0xca3d0, >>> M3_Bd56fi_msgB=0xcbe90, M3_Bd56fi_msgC=0xca3d0) at RTError.m3:40 >>> #6 0x0008eb88 in RTException__Crash (M3_Cblw37_a=0xbfffee00, >>> M3_AicXUJ_raises=0 '\0', M3_AJWxb1_rte=0xcb538) at RTException.m3:79 >>> #7 0x0008e74c in RTException__DefaultBackstop >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at >>> RTException.m3:39 >>> #8 0x0008e614 in RTException__InvokeBackstop >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at >>> RTException.m3:25 >>> #9 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at >>> RTExFrame.m3:29 >>> #10 0x0008e840 in RTException__DefaultBackstop >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at >>> RTException.m3:47 >>> #11 0x0008e614 in RTException__InvokeBackstop >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at >>> RTException.m3:25 >>> #12 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at >>> RTExFrame.m3:29 >>> #13 0x00079740 in RTHooks__ReportFault (M3_AJWxb1_module=0xb3eb8, >>> M3_AcxOUs_info=74048) at RTHooks.m3:110 >>> #14 0x0006ff4c in _m3_fault (M3_AcxOUs_arg=74048) >>> #15 0x0006bcf4 in RTHooks__CheckStoreTraced >>> (M3_Af40ku_ref=0xb2415c) at RTCollector.m3:2314 >>> #16 0x000700e4 in ThreadPThread__InnerLockMutex >>> (M3_AYIbX3_m=0xb2415c, M3_BXP32l_self=0xb24014) at >>> ThreadPThread.m3:126 >>> #17 0x000704d8 in ThreadPThread__LockMutex (M3_AYIbX3_m=0xb2415c) >>> at ThreadPThread.m3:153 >>> #18 0x00019b24 in Wr__PutText (M3_BxxOH1_wr=0xb2415c, >>> M3_Bd56fi_t=0xb44d5c) at Wr.m3:93 >>> #19 0x00003f74 in Main_M3 (M3_AcxOUs_mode=1) at Main.m3:113 >>> #20 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at >>> RTLinker.m3:399 >>> #21 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at >>> RTLinker.m3:113 >>> #22 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at >>> RTLinker.m3:122 >>> #23 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38) >>> at _m3main.mc:4 >>> (gdb) >>> >>> The second error: >>> >>> Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/ >>> operand. >>> 0x00b111ac in ?? () >>> (gdb) where >>> #0 0x00b111ac in ?? () >>> #1 0x0001214c in TextSubs__Apply (M3_CN69dV_self=0xb26450, >>> M3_Bd56fi_src=0xb21cec) at TextSubs.m3:63 >>> #2 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at >>> RTLinker.m3:399 >>> #3 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at >>> RTLinker.m3:113 >>> #4 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at >>> RTLinker.m3:122 >>> #5 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38) >>> at _m3main.mc:4 >>> (gdb) list >>> 58 BEGIN >>> 59 WHILE pos < textLen DO >>> 60 c := Text.GetChar(src, pos); >>> 61 IF c IN self.starts THEN >>> 62 (* S("analysing: " & Text.Sub(src, pos), >>> DebugLevel); *) >>> 63 iter := self.tbl.iterateOrdered(); >>> 64 ind := pos; >>> 65 original := ""; >>> 66 REPEAT >>> 67 INC(ind); >>> (gdb) >>> >>> Any ideas what to look at? >>> >>> I don't know if this is relevant: >>> >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% uname -a >>> Darwin lapdog.local 7.9.0 Darwin Kernel Version 7.9.0: Wed Mar 30 >>> 20:11:17 PST 2005; root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC Power >>> Macintosh powerpc >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% gcc -v >>> Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs >>> Thread model: posix >>> gcc version 3.3 20030304 (Apple Computer, Inc. build 1666) >>> >>> Mika >>> >>> P.S. Am I correct in assuming that I can get CM3 to build on >>> Windows? >>> I could switch to CM3 on Unix any time, of course, but I've never >>> had luck with it on Windows, which is why I am using the ancient >>> Klagenfurt PM3, which comes on 40-odd "floppies" and a .EXE that >>> unpacks them into C: (and installation instructions only in German). >>> If CM3 doesn't work on Windows, I am essentially wasting my time, >>> as the current project I am working on absolutely requires that the >>> software run on Windows 2003 Server (yes, it sucks, but what can >>> you do?) The very old PM3 at least kind of hobbles along on this >>> platform---actually, better than that; it does Trestle natively >>> under Windows (no X required), at least on SOME Windows machines. >>> >>> P.P.S. Sorry for all the postscripts, but is it true that the >>> build system has been changed so that building with overrides >>> (cm3 -x) >>> requires having the compiler sources available? It didn't use to >>> be that way, but I can't get Network Objects to work with overrides >>> now unless I have the sources available... It's a bit of a pain >>> because it means that every user has to have the compiler sources, >>> or else ship everything, or was that not the intention? From jay.krell at cornell.edu Sat Jan 8 14:37:39 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 13:37:39 +0000 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: <20110108121441.A58031A205B@async.async.caltech.edu> References: <20101227101653.307241A205B@async.async.caltech.edu>, , , , <20101227185453.97CE51A205B@async.async.caltech.edu>, , , , <20110108121441.A58031A205B@async.async.caltech.edu> Message-ID: I upgrade across incompatibilities frequently & Hudson does now too. The existing scripts work very well and you would be foolish to not use them. Just use upgrade.py. It is very easy. Or upgrade.py nocleangcc. And then do-cm3-all.py skipgcc realclean && do-cm3-all.py buildship.py. - Jay/phone > To: jay.krell at cornell.edu > Date: Sat, 8 Jan 2011 04:14:41 -0800 > From: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] another Snow Leopard compiler crash > > Jay K writes: > > > >Please try this Mika. It fixes the problem for me. > > Hi Jay, > > So I upgraded to the CVS head and now I get a segfaulting compiler: > > [hal:cm3/m3-libs/m3core] mika% gdb $CM3 > GNU gdb 6.3.50-20050815 (Apple version gdb-1510) (Wed Sep 22 02:45:02 UTC 2010) > Copyright 2004 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and you are > welcome to change it and/or distribute copies of it under certain conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for details. > This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries ...... done > > (gdb) run > Starting program: /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3 > Reading symbols for shared libraries .+++++.......... done > > Program received signal EXC_BAD_ACCESS, Could not access memory. > Reason: KERN_PROTECTION_FAILURE at address: 0x0000038b > 0x9713354b in _longjmp () > (gdb) where > #0 0x9713354b in _longjmp () > #1 0x00285d2b in RTExFrame__InvokeHandler (f=0xbffff34c, a=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:175 > #2 0x00285be4 in RTException__ResumeRaise (a=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:145 > #3 0x00285a1b in RTException__Raise (act=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:91 > #4 0x00269d44 in RTHooks__Raise (ex=0x35a720, arg=0x181cddc, module=0x398080, line=50) at ../src/runtime/common/RTHooks.m3:79 > #5 0x0023adbc in OSErrorPosix__Raise0 (errno=2) at ../src/os/POSIX/OSErrorPosix.m3:50 > #6 0x0023cffc in FSPosix__Fail (p=0x181cdc0, f=0xf049f0) at ../src/os/POSIX/FSPosix.m3:359 > #7 0x0023cdd4 in FS__Status (pn=0x181cdc0, _result=0xbffff3c8) at ../src/os/POSIX/FSPosix.m3:328 > #8 0x00217d24 in M3File__IsReadable (path=0x181cdc0) at ../src/M3File.m3:123 > #9 0x000a057f in MxConfig__TryConfig (a=0x3255e0, b=0x3255f0, c=0x0) at ../src/MxConfig.m3:122 > #10 0x0009ff67 in MxConfig__FindConfig () at ../src/MxConfig.m3:51 > #11 0x0009fcd8 in MxConfig__FindFile () at ../src/MxConfig.m3:19 > #12 0x0002c446 in Main__DoIt () at ../src/Main.m3:32 > #13 0x0002d1e9 in Main_M3 (mode=1) at ../src/Main.m3:214 > #14 0x0027a781 in RTLinker__RunMainBody (m=0x3705a0) at ../src/runtime/common/RTLinker.m3:406 > #15 0x00279bb6 in RTLinker__AddUnitI (m=0x3705a0) at ../src/runtime/common/RTLinker.m3:113 > #16 0x00279c3a in RTLinker__AddUnit (b=0x2d1d0) at ../src/runtime/common/RTLinker.m3:122 > #17 0x00002cfc in main (argc=1, argv=0xbffff674, envp=0xbffff67c) at _m3main.c:16 > (gdb) > > I followed upgrade instructions from Tony (including upgrading the > back-end)---I have edited the instructions a bit to track changes in > CM3. I'm starting from head three weeks old.. > > Mika > > > Return-Path: hosking at cs.purdue.edu > Delivery-Date: Sun Jun 24 07:38:38 2007 > In-Reply-To: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> > References: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> > > Sounds like we really need some work done in this area. I very > rarely use the build scripts, since I bootstrap manually from old > compilers to new compilers rather than use the scripts. I suggest > the following approach, which I hope you will try, and then report > back on. > > Install the bootstrap compiler as you did originally: > > > rm -rf /usr/local/cm3/* > > > > cd ~/cm3-cvs > > mkdir boot > > cd boot > > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz > > ./cminstall > > > Now you will have some kind of cm3 installed, presumably in /usr/ > local/cm3/bin/cm3. > > Make sure you have a fresh CVS checkout in directory cm3 (let's > assume this is in your home directory ~/cm3). Also, make sure you > have an up-to-date version of the CM3 backend compiler cm3cg > installed by executing the following: > > STEP 0: > > export CM3=/usr/local/cm3/bin/cm3 > cd ~/cm3/m3-sys/m3cc > $CM3 > $CM3 -ship > > You can skip this last step if you know your backend compiler is up > to date. > > Now, let's build the new compiler from scratch (this is the sequence > I use regularly to test changes to the run-time system whenever I > make them): > > can replace compilation step with > > rm -rf && $CM3 && $CM3 -ship > > > STEP 1: > > (do these LATER if bootstrapping from old compiler!) > cd ~/cm3/m3-libs/m3core > $CM3 > $CM3 -ship > cd ~/cm3/m3-libs/libm3 > $CM3 > $CM3 -ship > > Now build the compiler: > > cd ~/cm3/m3-libs/sysutils ; $CM3 etc. > > cd ~/cm3/m3-sys/m3middle; $CM3 etc. > > repeat for: > > m3-sys/m3objfile > > m3-sys/m3back > > m3-sys/m3linker > > m3-sys/m3front > > m3-sys/m3quake > > m3-sys/cm3 > > [ here we may need -DROOT= ] > > > At this point you should have a bootstrapped version of cm3 installed > in the directory /usr/local/cm3/pkg/cm3/TARGET/cm3 (where TARGET is > the CM3 target platform you are building on -- e.g., LINUXLIBC6, > PPC_DARWIN, ...). Note that this did not overwrite your original > installed compiler in /usr/local/cm3/bin/cm3. We > are now going to test the new compiler, which was built using the old > compiler, by bootstrapping it one more time. > > > ******* THIS IS WHERE I HAVE A SEGFAULTING COMPILER ******* > > (If m3core and libm3 were skipped earlier, do them now, and RE-DO all > of the above packages before proceeding.) > > From here on out, please replace TARGET with your target platform as > appropriate. > > STEP 2: > > export CM3=/usr/local/cm3/pkg/cm3/TARGET/cm3 > cd ~/cm3/scripts > > ./do-cm3-std.sh realclean > REPEAT STEP 1 to rebuild the libraries and the compiler using the > STEP 1 bootstrap compiler. > > Now you have a STEP 2 bootstrap compiler installed in /usr/local/cm3/ > pkg/cm3/TARGET/cm3. Let's assume the new compiler now works properly > since it successfully bootstrapped itself, but to be sure we can now > use it to rebuild the world: > > cd ~/cm3/scripts > ./do-cm3-std.sh realclean > ./do-cm3-std.sh buildship > > Assuming this succeeded then we can be pretty sure /usr/local/cm3/pkg/ > cm3/TARGET/cm3 is good, so we can make it our default compiler by > replacing the original /usr/local/cm3/bin/cm3: > > cp $CM3 /usr/local/cm3/bin/cm3 > > On Jun 23, 2007, at 2:38 PM, Mika Nystrom wrote: > > > Ok, I'm sorry if I seem a bit dimwitted in the morning like this, > > but how exactly does one get started? I wish there were a file called > > "GETTING_STARTED" or something like that in scripts... > > > > My Mac is very slow so I switched to my FreeBSD/i386 system (which has > > PM3 happily installed on it) and tried to install CM3 from scratch. > > Here are the exact commands I typed. > > > > > > rm -rf /usr/local/cm3/* > > > > cd ~/cm3-cvs > > mkdir boot > > cd boot > > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz > > ./cminstall > > > > # now I seem to have some kind of cm3 installed, /usr/local/cm3/bin/ > > cm3 > > > > cd cm3 # location of my CM3 checkout > > cvs update -d . > > > > cd scripts > > ./boot-cm3-with-m3.sh realclean > > ./do-cm3-std.sh realclean > > > > ./upgrade.sh # fails here, libm3 not compiled > > ./boot-cm3-with-m3.sh build # builds cm3, but fails on > > cminstall, patternmatching not built > > > > ./do-cm3-std.sh build # OK > > ./do-cm3-std.sh buildship # OK > > > > ./boot-cm3-with-m3.sh realclean # start over > > ./boot-cm3-with-m3.sh build # OK > > ./boot-cm3-with-m3.sh buildship # OK > > > > ./do-cm3-std.sh realclean # OK > > ./do-cm3-std.sh build # dies miserably... maybe the > > compiler can't handle the new libraries? > > > > ./install-cm3-compiler.sh upgrade # OK, new cm3 binary installed > > > > After all that, "game over." I have a cm3 that segfaults. > > > > Text.i3: In function 'Text_I3': > > Text.i3:81: internal compiler error: Segmentation fault > > Please submit a full bug report, > > with preprocessed source if appropriate. > > See for instructions. > > compilation failed => not building library "libm3core.a" > > Fatal Error: package build failed > > *** execution of failed *** > > > > I can't seem to get either m3gdb or gdb to say anything reasonable > > either. ktrace shows nothing out of the ordinary. > > > > ----- > > > > Meanwhile, my Mac got through "do-cm3-std.sh realclean" and > > "do-cm3-std.sh buildship" but my compiles are still dying on the > > same assertion tickled by ktok. On that machine I have INSTALLROOT > > set to ~/cm3, but hopefully that has nothing to do with it... > > > > ----- > > > > Does do-cm3-std.sh realclean clean EVERYTHING? If so my Mac should > > really have a fresh setup. The FreeBSD, I am not sure, maybe the > > old binary version just doesn't work right? Of course I could try > > bootstrapping with PM3 as well... but really, there's an "approved" > > process to get from a blank system, no? > > > > Mika > > > > > > > > > > Tony Hosking writes: > >> That sounds like you forgot to execute "do-cm3-std.sh realclean" > >> before initiating the build. These sorts of errors sometimes arise > >> if there are old build directories lying around. > >> > >> On Jun 23, 2007, at 3:34 AM, Mika Nystrom wrote: > >> > >>> Hello everyone, > >>> > >>> I am in the process of trying to consolidate build systems for a > >>> few software packages I am maintaining. Currently, I am using an > >>> old PM3 on FreeBSD4, an ancient PM3 (from Klagenfurt?) for Windows > >>> (NT386GNU), and trying to get the latest CM3 from cvs up and > >>> compiling > >>> things on PPC_DARWIN. Ideally, I'd like to standardize everything > >>> on the new PM3---mainly so that I can use pickles (and Network > >>> Objects) across all three systems. I'd also like to add Linux to > >>> the mix. > >>> > >>> It's natural for me to start with CM3 on Darwin, as there's no > >>> alternative. But I am getting some assertions failing. Everything > >>> in the CM3 distribution compiles fine, and I believe I have compiled > >>> the libraries a few times (that is, including with themselves), and > >>> updated the compiler, too (using boot-cm3-with-m3.sh). I just cvs > >>> updated tonight. > >>> > >>> Here's what I'm running into: > >>> > >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/CHP.t -o > >>> CHPTok.i3 > >>> > >>> *** > >>> *** runtime error: > >>> *** <*ASSERT*> failed. > >>> *** file "../src/runtime/common/RTCollector.m3", line 2314 > >>> *** > >>> > >>> Abort > >>> > >>> Also: > >>> > >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/PRS.t -o > >>> PRSTok.i3 > >>> Illegal instruction > >>> > >>> As you can see, these things are coming from the caltech_parser. I > >> am using > >>> our local version, but I don't think it is very different from what > >>> is in the > >>> CM3 tree. > >>> > >>> Examining the first error (the failed assertion) more closely, I see > >>> the following: > >>> > >>> (gdb) list > >>> 108 wr := FileWr.Open(Pathname.ReplaceExt(tp.out, "m3")); > >>> 109 EXCEPT OSError.E => > >>> 110 Debug.Error("Cannot open tok implementation output > >>> file: " & > >>> 111 Pathname.ReplaceExt(tp.out, "m3")); > >>> 112 END; > >>> 113 Wr.PutText(wr, subs.apply(Bundle.Get(Form, > >>> "tokform.m3"))); > >>> 114 Wr.Close(wr); > >>> 115 END Main. > >>> (gdb) where > >>> #0 0x9004308c in kill () > >>> #1 0x9009fb3c in abort () > >>> #2 0x00096f50 in RTOS__Crash () at RTOS.m3:20 > >>> #3 0x0005bd40 in RTProcess__Crash (M3_Bd56fi_msg=0x0) at > >>> RTProcess.m3:65 > >>> #4 0x0008e4e0 in RTError__EndError (M3_AicXUJ_crash=1 '\001') at > >>> RTError.m3:115 > >>> #5 0x0008e08c in RTError__MsgS (M3_AJWxb1_file=0xc63d8, > >>> M3_AcxOUs_line=2314, M3_Bd56fi_msgA=0xca3d0, > >>> M3_Bd56fi_msgB=0xcbe90, M3_Bd56fi_msgC=0xca3d0) at RTError.m3:40 > >>> #6 0x0008eb88 in RTException__Crash (M3_Cblw37_a=0xbfffee00, > >>> M3_AicXUJ_raises=0 '\0', M3_AJWxb1_rte=0xcb538) at RTException.m3:79 > >>> #7 0x0008e74c in RTException__DefaultBackstop > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at > >>> RTException.m3:39 > >>> #8 0x0008e614 in RTException__InvokeBackstop > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at > >>> RTException.m3:25 > >>> #9 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at > >>> RTExFrame.m3:29 > >>> #10 0x0008e840 in RTException__DefaultBackstop > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at > >>> RTException.m3:47 > >>> #11 0x0008e614 in RTException__InvokeBackstop > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at > >>> RTException.m3:25 > >>> #12 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at > >>> RTExFrame.m3:29 > >>> #13 0x00079740 in RTHooks__ReportFault (M3_AJWxb1_module=0xb3eb8, > >>> M3_AcxOUs_info=74048) at RTHooks.m3:110 > >>> #14 0x0006ff4c in _m3_fault (M3_AcxOUs_arg=74048) > >>> #15 0x0006bcf4 in RTHooks__CheckStoreTraced > >>> (M3_Af40ku_ref=0xb2415c) at RTCollector.m3:2314 > >>> #16 0x000700e4 in ThreadPThread__InnerLockMutex > >>> (M3_AYIbX3_m=0xb2415c, M3_BXP32l_self=0xb24014) at > >>> ThreadPThread.m3:126 > >>> #17 0x000704d8 in ThreadPThread__LockMutex (M3_AYIbX3_m=0xb2415c) > >>> at ThreadPThread.m3:153 > >>> #18 0x00019b24 in Wr__PutText (M3_BxxOH1_wr=0xb2415c, > >>> M3_Bd56fi_t=0xb44d5c) at Wr.m3:93 > >>> #19 0x00003f74 in Main_M3 (M3_AcxOUs_mode=1) at Main.m3:113 > >>> #20 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at > >>> RTLinker.m3:399 > >>> #21 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at > >>> RTLinker.m3:113 > >>> #22 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at > >>> RTLinker.m3:122 > >>> #23 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38) > >>> at _m3main.mc:4 > >>> (gdb) > >>> > >>> The second error: > >>> > >>> Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/ > >>> operand. > >>> 0x00b111ac in ?? () > >>> (gdb) where > >>> #0 0x00b111ac in ?? () > >>> #1 0x0001214c in TextSubs__Apply (M3_CN69dV_self=0xb26450, > >>> M3_Bd56fi_src=0xb21cec) at TextSubs.m3:63 > >>> #2 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at > >>> RTLinker.m3:399 > >>> #3 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at > >>> RTLinker.m3:113 > >>> #4 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at > >>> RTLinker.m3:122 > >>> #5 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38) > >>> at _m3main.mc:4 > >>> (gdb) list > >>> 58 BEGIN > >>> 59 WHILE pos < textLen DO > >>> 60 c := Text.GetChar(src, pos); > >>> 61 IF c IN self.starts THEN > >>> 62 (* S("analysing: " & Text.Sub(src, pos), > >>> DebugLevel); *) > >>> 63 iter := self.tbl.iterateOrdered(); > >>> 64 ind := pos; > >>> 65 original := ""; > >>> 66 REPEAT > >>> 67 INC(ind); > >>> (gdb) > >>> > >>> Any ideas what to look at? > >>> > >>> I don't know if this is relevant: > >>> > >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% uname -a > >>> Darwin lapdog.local 7.9.0 Darwin Kernel Version 7.9.0: Wed Mar 30 > >>> 20:11:17 PST 2005; root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC Power > >>> Macintosh powerpc > >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% gcc -v > >>> Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs > >>> Thread model: posix > >>> gcc version 3.3 20030304 (Apple Computer, Inc. build 1666) > >>> > >>> Mika > >>> > >>> P.S. Am I correct in assuming that I can get CM3 to build on > >>> Windows? > >>> I could switch to CM3 on Unix any time, of course, but I've never > >>> had luck with it on Windows, which is why I am using the ancient > >>> Klagenfurt PM3, which comes on 40-odd "floppies" and a .EXE that > >>> unpacks them into C: (and installation instructions only in German). > >>> If CM3 doesn't work on Windows, I am essentially wasting my time, > >>> as the current project I am working on absolutely requires that the > >>> software run on Windows 2003 Server (yes, it sucks, but what can > >>> you do?) The very old PM3 at least kind of hobbles along on this > >>> platform---actually, better than that; it does Trestle natively > >>> under Windows (no X required), at least on SOME Windows machines. > >>> > >>> P.P.S. Sorry for all the postscripts, but is it true that the > >>> build system has been changed so that building with overrides > >>> (cm3 -x) > >>> requires having the compiler sources available? It didn't use to > >>> be that way, but I can't get Network Objects to work with overrides > >>> now unless I have the sources available... It's a bit of a pain > >>> because it means that every user has to have the compiler sources, > >>> or else ship everything, or was that not the intention? -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.caltech.edu Sat Jan 8 14:47:35 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Sat, 08 Jan 2011 05:47:35 -0800 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: References: <20101227101653.307241A205B@async.async.caltech.edu>, , , , <20101227185453.97CE51A205B@async.async.caltech.edu>, , , , <20110108121441.A58031A205B@async.async.caltech.edu> Message-ID: <20110108134735.B7D4C1A205B@async.async.caltech.edu> I ran "python upgrade.py" from a clean start (back to head a few weeks ago) and got: == package /Users/mika/cm3/cm3/m3-tools/m3bundle == +++ /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3 -build -DROOT=/Users/mika/cm3/cm3 +++ --- building in I386_DARWIN --- ignoring ../src/m3overrides new source -> compiling m3bundle.m3 -> linking m3bundle Undefined symbols: "__alloca", referenced from: _m3bundle__GetElementSizes in m3bundle.mo "_Csetjmp__Jumpbuf_size", referenced from: _Csetjmp__Jumpbuf_size$non_lazy_ptr in m3bundle.mo (maybe you meant: _Csetjmp__Jumpbuf_size$non_lazy_ptr) ld: symbol(s) not found collect2: ld returned 1 exit status m3_link => 1 linker failed linking: m3bundle Fatal Error: package build failed *** execution of [, ] failed *** [hal:cm3/scripts/python] mika% maybe a conf file change I need to make? Why only in m3bundle? Mika Jay K writes: >--_6374b72e-0dad-4a03-8d22-4a59e0218226_ >Content-Type: text/plain; charset="iso-8859-1" >Content-Transfer-Encoding: quoted-printable > >I upgrade across incompatibilities frequently & Hudson does now too. The ex= >isting scripts work very well and you would be foolish to not use them. Jus= >t use upgrade.py. It is very easy. Or upgrade.py nocleangcc. And then do-cm= >3-all.py skipgcc realclean && do-cm3-all.py buildship.py. > > - Jay/phone > >> To: jay.krell at cornell.edu >> Date: Sat=2C 8 Jan 2011 04:14:41 -0800 >> From: mika at async.caltech.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] another Snow Leopard compiler crash >>=20 >> Jay K writes: >> > >> >Please try this Mika. It fixes the problem for me. >>=20 >> Hi Jay=2C >>=20 >> So I upgraded to the CVS head and now I get a segfaulting compiler: >>=20 >> [hal:cm3/m3-libs/m3core] mika% gdb $CM3 >> GNU gdb 6.3.50-20050815 (Apple version gdb-1510) (Wed Sep 22 02:45:02 UTC= > 2010) >> Copyright 2004 Free Software Foundation=2C Inc. >> GDB is free software=2C covered by the GNU General Public License=2C and = >you are >> welcome to change it and/or distribute copies of it under certain conditi= >ons. >> Type "show copying" to see the conditions. >> There is absolutely no warranty for GDB. Type "show warranty" for detail= >s. >> This GDB was configured as "x86_64-apple-darwin"...Reading symbols for sh= >ared libraries ...... done >>=20 >> (gdb) run >> Starting program: /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3=20 >> Reading symbols for shared libraries .+++++.......... done >>=20 >> Program received signal EXC_BAD_ACCESS=2C Could not access memory. >> Reason: KERN_PROTECTION_FAILURE at address: 0x0000038b >> 0x9713354b in _longjmp () >> (gdb) where >> #0 0x9713354b in _longjmp () >> #1 0x00285d2b in RTExFrame__InvokeHandler (f=3D0xbffff34c=2C a=3D0xbffff= >23c) at ../src/runtime/ex_frame/RTExFrame.m3:175 >> #2 0x00285be4 in RTException__ResumeRaise (a=3D0xbffff23c) at ../src/run= >time/ex_frame/RTExFrame.m3:145 >> #3 0x00285a1b in RTException__Raise (act=3D0xbffff23c) at ../src/runtime= >/ex_frame/RTExFrame.m3:91 >> #4 0x00269d44 in RTHooks__Raise (ex=3D0x35a720=2C arg=3D0x181cddc=2C mod= >ule=3D0x398080=2C line=3D50) at ../src/runtime/common/RTHooks.m3:79 >> #5 0x0023adbc in OSErrorPosix__Raise0 (errno=3D2) at ../src/os/POSIX/OSE= >rrorPosix.m3:50 >> #6 0x0023cffc in FSPosix__Fail (p=3D0x181cdc0=2C f=3D0xf049f0) at ../src= >/os/POSIX/FSPosix.m3:359 >> #7 0x0023cdd4 in FS__Status (pn=3D0x181cdc0=2C _result=3D0xbffff3c8) at = >../src/os/POSIX/FSPosix.m3:328 >> #8 0x00217d24 in M3File__IsReadable (path=3D0x181cdc0) at ../src/M3File.= >m3:123 >> #9 0x000a057f in MxConfig__TryConfig (a=3D0x3255e0=2C b=3D0x3255f0=2C c= >=3D0x0) at ../src/MxConfig.m3:122 >> #10 0x0009ff67 in MxConfig__FindConfig () at ../src/MxConfig.m3:51 >> #11 0x0009fcd8 in MxConfig__FindFile () at ../src/MxConfig.m3:19 >> #12 0x0002c446 in Main__DoIt () at ../src/Main.m3:32 >> #13 0x0002d1e9 in Main_M3 (mode=3D1) at ../src/Main.m3:214 >> #14 0x0027a781 in RTLinker__RunMainBody (m=3D0x3705a0) at ../src/runtime/= >common/RTLinker.m3:406 >> #15 0x00279bb6 in RTLinker__AddUnitI (m=3D0x3705a0) at ../src/runtime/com= >mon/RTLinker.m3:113 >> #16 0x00279c3a in RTLinker__AddUnit (b=3D0x2d1d0) at ../src/runtime/commo= >n/RTLinker.m3:122 >> #17 0x00002cfc in main (argc=3D1=2C argv=3D0xbffff674=2C envp=3D0xbffff67= >c) at _m3main.c:16 >> (gdb)=20 >>=20 >> I followed upgrade instructions from Tony (including upgrading the >> back-end)---I have edited the instructions a bit to track changes in=20 >> CM3. I'm starting from head three weeks old.. >>=20 >> Mika >>=20 >>=20 >> Return-Path: hosking at cs.purdue.edu >> Delivery-Date: Sun Jun 24 07:38:38 2007 >> In-Reply-To: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> >> References: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> >>=20 >> Sounds like we really need some work done in this area. I very =20 >> rarely use the build scripts=2C since I bootstrap manually from old =20 >> compilers to new compilers rather than use the scripts. I suggest =20 >> the following approach=2C which I hope you will try=2C and then report =20 >> back on. >>=20 >> Install the bootstrap compiler as you did originally: >>=20 >> > rm -rf /usr/local/cm3/* >> > >> > cd ~/cm3-cvs >> > mkdir boot >> > cd boot >> > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz >> > ./cminstall >>=20 >>=20 >> Now you will have some kind of cm3 installed=2C presumably in /usr/=20 >> local/cm3/bin/cm3. >>=20 >> Make sure you have a fresh CVS checkout in directory cm3 (let's =20 >> assume this is in your home directory ~/cm3). Also=2C make sure you =20 >> have an up-to-date version of the CM3 backend compiler cm3cg =20 >> installed by executing the following: >>=20 >> STEP 0: >>=20 >> export CM3=3D/usr/local/cm3/bin/cm3 >> cd ~/cm3/m3-sys/m3cc >> $CM3 >> $CM3 -ship >>=20 >> You can skip this last step if you know your backend compiler is up =20 >> to date. >>=20 >> Now=2C let's build the new compiler from scratch (this is the sequence =20 >> I use regularly to test changes to the run-time system whenever I =20 >> make them): >>=20 >> can replace compilation step with >>=20 >> rm -rf && $CM3 && $CM3 -ship=20 >>=20 >>=20 >> STEP 1: >>=20 >> (do these LATER if bootstrapping from old compiler!) >> cd ~/cm3/m3-libs/m3core >> $CM3 >> $CM3 -ship >> cd ~/cm3/m3-libs/libm3 >> $CM3 >> $CM3 -ship >>=20 >> Now build the compiler: >>=20 >> cd ~/cm3/m3-libs/sysutils =3B $CM3 etc. >>=20 >> cd ~/cm3/m3-sys/m3middle=3B $CM3 etc. >>=20 >> repeat for: >>=20 >> m3-sys/m3objfile=20 >>=20 >> m3-sys/m3back=20 >>=20 >> m3-sys/m3linker >>=20 >> m3-sys/m3front >>=20 >> m3-sys/m3quake >>=20 >> m3-sys/cm3 >>=20 >> [ here we may need -DROOT=3D ] >>=20 >>=20 >> At this point you should have a bootstrapped version of cm3 installed =20 >> in the directory /usr/local/cm3/pkg/cm3/TARGET/cm3 (where TARGET is =20 >> the CM3 target platform you are building on -- e.g.=2C LINUXLIBC6=2C =20 >> PPC_DARWIN=2C ...). Note that this did not overwrite your original =20 >> installed compiler in /usr/local/cm3/bin/cm3. We >> are now going to test the new compiler=2C which was built using the old = >=20 >> compiler=2C by bootstrapping it one more time. >>=20 >>=20 >> ******* THIS IS WHERE I HAVE A SEGFAULTING COMPILER ******* >>=20 >> (If m3core and libm3 were skipped earlier=2C do them now=2C and RE-DO all >> of the above packages before proceeding.) >>=20 >> From here on out=2C please replace TARGET with your target platform as =20 >> appropriate. >>=20 >> STEP 2: >>=20 >> export CM3=3D/usr/local/cm3/pkg/cm3/TARGET/cm3 >> cd ~/cm3/scripts >>=20 >> ./do-cm3-std.sh realclean >> REPEAT STEP 1 to rebuild the libraries and the compiler using the =20 >> STEP 1 bootstrap compiler. >>=20 >> Now you have a STEP 2 bootstrap compiler installed in /usr/local/cm3/=20 >> pkg/cm3/TARGET/cm3. Let's assume the new compiler now works properly =20 >> since it successfully bootstrapped itself=2C but to be sure we can now =20 >> use it to rebuild the world: >>=20 >> cd ~/cm3/scripts >> ./do-cm3-std.sh realclean >> ./do-cm3-std.sh buildship >>=20 >> Assuming this succeeded then we can be pretty sure /usr/local/cm3/pkg/=20 >> cm3/TARGET/cm3 is good=2C so we can make it our default compiler by =20 >> replacing the original /usr/local/cm3/bin/cm3: >>=20 >> cp $CM3 /usr/local/cm3/bin/cm3 >>=20 >> On Jun 23=2C 2007=2C at 2:38 PM=2C Mika Nystrom wrote: >>=20 >> > Ok=2C I'm sorry if I seem a bit dimwitted in the morning like this=2C >> > but how exactly does one get started? I wish there were a file called >> > "GETTING_STARTED" or something like that in scripts... >> > >> > My Mac is very slow so I switched to my FreeBSD/i386 system (which has >> > PM3 happily installed on it) and tried to install CM3 from scratch. >> > Here are the exact commands I typed. >> > >> > >> > rm -rf /usr/local/cm3/* >> > >> > cd ~/cm3-cvs >> > mkdir boot >> > cd boot >> > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz >> > ./cminstall >> > >> > # now I seem to have some kind of cm3 installed=2C /usr/local/cm3/bin/= >=20 >> > cm3 >> > >> > cd cm3 # location of my CM3 checkout >> > cvs update -d . >> > >> > cd scripts >> > ./boot-cm3-with-m3.sh realclean >> > ./do-cm3-std.sh realclean >> > >> > ./upgrade.sh # fails here=2C libm3 not compiled >> > ./boot-cm3-with-m3.sh build # builds cm3=2C but fails on =20 >> > cminstall=2C patternmatching not built >> > >> > ./do-cm3-std.sh build # OK >> > ./do-cm3-std.sh buildship # OK >> > >> > ./boot-cm3-with-m3.sh realclean # start over >> > ./boot-cm3-with-m3.sh build # OK >> > ./boot-cm3-with-m3.sh buildship # OK >> > >> > ./do-cm3-std.sh realclean # OK >> > ./do-cm3-std.sh build # dies miserably... maybe the =20 >> > compiler can't handle the new libraries? >> > >> > ./install-cm3-compiler.sh upgrade # OK=2C new cm3 binary installed >> > >> > After all that=2C "game over." I have a cm3 that segfaults. >> > >> > Text.i3: In function 'Text_I3': >> > Text.i3:81: internal compiler error: Segmentation fault >> > Please submit a full bug report=2C >> > with preprocessed source if appropriate. >> > See for instructions. >> > compilation failed =3D> not building library "libm3core.a" >> > Fatal Error: package build failed >> > *** execution of failed *** >> > >> > I can't seem to get either m3gdb or gdb to say anything reasonable >> > either. ktrace shows nothing out of the ordinary. >> > >> > ----- >> > >> > Meanwhile=2C my Mac got through "do-cm3-std.sh realclean" and >> > "do-cm3-std.sh buildship" but my compiles are still dying on the >> > same assertion tickled by ktok. On that machine I have INSTALLROOT >> > set to ~/cm3=2C but hopefully that has nothing to do with it... >> > >> > ----- >> > >> > Does do-cm3-std.sh realclean clean EVERYTHING? If so my Mac should >> > really have a fresh setup. The FreeBSD=2C I am not sure=2C maybe the >> > old binary version just doesn't work right? Of course I could try >> > bootstrapping with PM3 as well... but really=2C there's an "approved" >> > process to get from a blank system=2C no? >> > >> > Mika >> > >> > >> > >> > >> > Tony Hosking writes: >> >> That sounds like you forgot to execute "do-cm3-std.sh realclean" >> >> before initiating the build. These sorts of errors sometimes arise >> >> if there are old build directories lying around. >> >> >> >> On Jun 23=2C 2007=2C at 3:34 AM=2C Mika Nystrom wrote: >> >> >> >>> Hello everyone=2C >> >>> >> >>> I am in the process of trying to consolidate build systems for a >> >>> few software packages I am maintaining. Currently=2C I am using an >> >>> old PM3 on FreeBSD4=2C an ancient PM3 (from Klagenfurt?) for Windows >> >>> (NT386GNU)=2C and trying to get the latest CM3 from cvs up and =20 >> >>> compiling >> >>> things on PPC_DARWIN. Ideally=2C I'd like to standardize everything >> >>> on the new PM3---mainly so that I can use pickles (and Network >> >>> Objects) across all three systems. I'd also like to add Linux to >> >>> the mix. >> >>> >> >>> It's natural for me to start with CM3 on Darwin=2C as there's no >> >>> alternative. But I am getting some assertions failing. Everything >> >>> in the CM3 distribution compiles fine=2C and I believe I have compile= >d >> >>> the libraries a few times (that is=2C including with themselves)=2C a= >nd >> >>> updated the compiler=2C too (using boot-cm3-with-m3.sh). I just cvs >> >>> updated tonight. >> >>> >> >>> Here's what I'm running into: >> >>> >> >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/CHP.t -o =20 >> >>> CHPTok.i3 >> >>> >> >>> *** >> >>> *** runtime error: >> >>> *** <*ASSERT*> failed. >> >>> *** file "../src/runtime/common/RTCollector.m3"=2C line 2314 >> >>> *** >> >>> >> >>> Abort >> >>> >> >>> Also: >> >>> >> >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/PRS.t -o =20 >> >>> PRSTok.i3 >> >>> Illegal instruction >> >>> >> >>> As you can see=2C these things are coming from the caltech_parser. I >> >> am using >> >>> our local version=2C but I don't think it is very different from what >> >>> is in the >> >>> CM3 tree. >> >>> >> >>> Examining the first error (the failed assertion) more closely=2C I se= >e >> >>> the following: >> >>> >> >>> (gdb) list >> >>> 108 wr :=3D FileWr.Open(Pathname.ReplaceExt(tp.out=2C "m3"))= >=3B >> >>> 109 EXCEPT OSError.E =3D> >> >>> 110 Debug.Error("Cannot open tok implementation output >> >>> file: " & >> >>> 111 Pathname.ReplaceExt(tp.out=2C "m3"))=3B >> >>> 112 END=3B >> >>> 113 Wr.PutText(wr=2C subs.apply(Bundle.Get(Form=2C =20 >> >>> "tokform.m3")))=3B >> >>> 114 Wr.Close(wr)=3B >> >>> 115 END Main. >> >>> (gdb) where >> >>> #0 0x9004308c in kill () >> >>> #1 0x9009fb3c in abort () >> >>> #2 0x00096f50 in RTOS__Crash () at RTOS.m3:20 >> >>> #3 0x0005bd40 in RTProcess__Crash (M3_Bd56fi_msg=3D0x0) at >> >>> RTProcess.m3:65 >> >>> #4 0x0008e4e0 in RTError__EndError (M3_AicXUJ_crash=3D1 '\001') at >> >>> RTError.m3:115 >> >>> #5 0x0008e08c in RTError__MsgS (M3_AJWxb1_file=3D0xc63d8=2C >> >>> M3_AcxOUs_line=3D2314=2C M3_Bd56fi_msgA=3D0xca3d0=2C >> >>> M3_Bd56fi_msgB=3D0xcbe90=2C M3_Bd56fi_msgC=3D0xca3d0) at RTError.m3:4= >0 >> >>> #6 0x0008eb88 in RTException__Crash (M3_Cblw37_a=3D0xbfffee00=2C >> >>> M3_AicXUJ_raises=3D0 '\0'=2C M3_AJWxb1_rte=3D0xcb538) at RTException.= >m3:79 >> >>> #7 0x0008e74c in RTException__DefaultBackstop >> >>> (M3_Cblw37_a=3D0xbfffee00=2C M3_AicXUJ_raises=3D0 '\0') at =20 >> >>> RTException.m3:39 >> >>> #8 0x0008e614 in RTException__InvokeBackstop >> >>> (M3_Cblw37_a=3D0xbfffee00=2C M3_AicXUJ_raises=3D0 '\0') at =20 >> >>> RTException.m3:25 >> >>> #9 0x00095d04 in RTException__Raise (M3_Cblw37_act=3D0xbfffee00) at >> >>> RTExFrame.m3:29 >> >>> #10 0x0008e840 in RTException__DefaultBackstop >> >>> (M3_Cblw37_a=3D0xbfffee00=2C M3_AicXUJ_raises=3D0 '\0') at =20 >> >>> RTException.m3:47 >> >>> #11 0x0008e614 in RTException__InvokeBackstop >> >>> (M3_Cblw37_a=3D0xbfffee00=2C M3_AicXUJ_raises=3D0 '\0') at =20 >> >>> RTException.m3:25 >> >>> #12 0x00095d04 in RTException__Raise (M3_Cblw37_act=3D0xbfffee00) at >> >>> RTExFrame.m3:29 >> >>> #13 0x00079740 in RTHooks__ReportFault (M3_AJWxb1_module=3D0xb3eb8=2C >> >>> M3_AcxOUs_info=3D74048) at RTHooks.m3:110 >> >>> #14 0x0006ff4c in _m3_fault (M3_AcxOUs_arg=3D74048) >> >>> #15 0x0006bcf4 in RTHooks__CheckStoreTraced >> >>> (M3_Af40ku_ref=3D0xb2415c) at RTCollector.m3:2314 >> >>> #16 0x000700e4 in ThreadPThread__InnerLockMutex >> >>> (M3_AYIbX3_m=3D0xb2415c=2C M3_BXP32l_self=3D0xb24014) at >> >>> ThreadPThread.m3:126 >> >>> #17 0x000704d8 in ThreadPThread__LockMutex (M3_AYIbX3_m=3D0xb2415c) >> >>> at ThreadPThread.m3:153 >> >>> #18 0x00019b24 in Wr__PutText (M3_BxxOH1_wr=3D0xb2415c=2C >> >>> M3_Bd56fi_t=3D0xb44d5c) at Wr.m3:93 >> >>> #19 0x00003f74 in Main_M3 (M3_AcxOUs_mode=3D1) at Main.m3:113 >> >>> #20 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=3D0xad190) at >> >>> RTLinker.m3:399 >> >>> #21 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=3D0xad190) at >> >>> RTLinker.m3:113 >> >>> #22 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=3D0x3600) at >> >>> RTLinker.m3:122 >> >>> #23 0x00001fac in main (argc=3D4=2C argv=3D0xbffffb24=2C envp=3D0xbff= >ffb38) >> >>> at _m3main.mc:4 >> >>> (gdb) >> >>> >> >>> The second error: >> >>> >> >>> Program received signal EXC_BAD_INSTRUCTION=2C Illegal instruction/ >> >>> operand. >> >>> 0x00b111ac in ?? () >> >>> (gdb) where >> >>> #0 0x00b111ac in ?? () >> >>> #1 0x0001214c in TextSubs__Apply (M3_CN69dV_self=3D0xb26450=2C >> >>> M3_Bd56fi_src=3D0xb21cec) at TextSubs.m3:63 >> >>> #2 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=3D0xad190) at >> >>> RTLinker.m3:399 >> >>> #3 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=3D0xad190) at >> >>> RTLinker.m3:113 >> >>> #4 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=3D0x3600) at >> >>> RTLinker.m3:122 >> >>> #5 0x00001fac in main (argc=3D4=2C argv=3D0xbffffb24=2C envp=3D0xbff= >ffb38) >> >>> at _m3main.mc:4 >> >>> (gdb) list >> >>> 58 BEGIN >> >>> 59 WHILE pos < textLen DO >> >>> 60 c :=3D Text.GetChar(src=2C pos)=3B >> >>> 61 IF c IN self.starts THEN >> >>> 62 (* S("analysing: " & Text.Sub(src=2C pos)=2C >> >>> DebugLevel)=3B *) >> >>> 63 iter :=3D self.tbl.iterateOrdered()=3B >> >>> 64 ind :=3D pos=3B >> >>> 65 original :=3D ""=3B >> >>> 66 REPEAT >> >>> 67 INC(ind)=3B >> >>> (gdb) >> >>> >> >>> Any ideas what to look at? >> >>> >> >>> I don't know if this is relevant: >> >>> >> >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% uname -a >> >>> Darwin lapdog.local 7.9.0 Darwin Kernel Version 7.9.0: Wed Mar 30 >> >>> 20:11:17 PST 2005=3B root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC Power >> >>> Macintosh powerpc >> >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% gcc -v >> >>> Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs >> >>> Thread model: posix >> >>> gcc version 3.3 20030304 (Apple Computer=2C Inc. build 1666) >> >>> >> >>> Mika >> >>> >> >>> P.S. Am I correct in assuming that I can get CM3 to build on =20 >> >>> Windows? >> >>> I could switch to CM3 on Unix any time=2C of course=2C but I've never >> >>> had luck with it on Windows=2C which is why I am using the ancient >> >>> Klagenfurt PM3=2C which comes on 40-odd "floppies" and a .EXE that >> >>> unpacks them into C: (and installation instructions only in German). >> >>> If CM3 doesn't work on Windows=2C I am essentially wasting my time=2C >> >>> as the current project I am working on absolutely requires that the >> >>> software run on Windows 2003 Server (yes=2C it sucks=2C but what can >> >>> you do?) The very old PM3 at least kind of hobbles along on this >> >>> platform---actually=2C better than that=3B it does Trestle natively >> >>> under Windows (no X required)=2C at least on SOME Windows machines. >> >>> >> >>> P.P.S. Sorry for all the postscripts=2C but is it true that the >> >>> build system has been changed so that building with overrides =20 >> >>> (cm3 -x) >> >>> requires having the compiler sources available? It didn't use to >> >>> be that way=2C but I can't get Network Objects to work with overrides >> >>> now unless I have the sources available... It's a bit of a pain >> >>> because it means that every user has to have the compiler sources=2C >> >>> or else ship everything=2C or was that not the intention? > = > >--_6374b72e-0dad-4a03-8d22-4a59e0218226_ >Content-Type: text/html; charset="iso-8859-1" >Content-Transfer-Encoding: quoted-printable > > > > > >I upgrade across incompatibilities frequently & H= >udson does now too. The existing scripts work very well and you would be fo= >olish to not use them. Just use upgrade.py. It is very easy. Or upgrade.py = >nocleangcc. And then do-cm3-all.py skipgcc realclean && do-cm3-all.py build= >ship.py.

- Jay/phone

> To:=3B jay.krell@=3Bcornell.edu= >
> Date:=3B Sat=2C 8 Jan 2011 04:=3B14:=3B41 -0800
> From= >8=3B mika@=3Basync.caltech.edu
> CC:=3B m3devel@=3Belegosoft.co= >m
> Subject:=3B Re:=3B [=3BM3devel]=3B another Snow Leopard = >compiler crash
>
> Jay K writes:=3B
> >=3B
> >=3BPlea= >se try this Mika. It fixes the problem for me.
>
> Hi Jay=2C
> r>> So I upgraded to the CVS head and now I get a segfaulting compiler:= >=3B
>
> [=3Bhal:=3Bcm3/m3-libs/m3core]=3B mika%=3B gdb &= >#36=3BCM3
> GNU gdb 6.3.50-20050815 (=3BApple version gdb-1510)=3B= > (=3BWed Sep 22 02:=3B45:=3B02 UTC 2010)=3B
> Copyright 2004= > Free Software Foundation=2C Inc.
> GDB is free software=2C covered by t= >he GNU General Public License=2C and you are
> welcome to change it and/= >or distribute copies of it under certain conditions.
> Type "=3Bshow = >copying"=3B to see the conditions.
> There is absolutely no warranty = >for GDB. Type "=3Bshow warranty"=3B for details.
> This GDB was c= >onfigured as "=3Bx86_64-apple-darwin"=3B...Reading symbols for shared= > libraries ...... done
>
> (=3Bgdb)=3B run
> Starting progr= >am:=3B /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3
> Reading symbols for = >shared libraries .+=3B+=3B+=3B+=3B+=3B.......... done
> <= >br>> Program received signal EXC_BAD_ACCESS=2C Could not access memory.
= >> Reason:=3B KERN_PROTECTION_FAILURE at address:=3B 0x0000038b
> 0= >x9713354b in _longjmp (=3B)=3B
> (=3Bgdb)=3B where
> #= >=3B0 0x9713354b in _longjmp (=3B)=3B
> #=3B1 0x00285d2b in RT= >ExFrame__InvokeHandler (=3Bf==3B0xbffff34c=2C a==3B0xbffff23c)= >=3B at ../src/runtime/ex_frame/RTExFrame.m3:=3B175
> #=3B2 0x0028= >5be4 in RTException__ResumeRaise (=3Ba==3B0xbffff23c)=3B at ../src= >/runtime/ex_frame/RTExFrame.m3:=3B145
> #=3B3 0x00285a1b in RTExc= >eption__Raise (=3Bact==3B0xbffff23c)=3B at ../src/runtime/ex_frame= >/RTExFrame.m3:=3B91
> #=3B4 0x00269d44 in RTHooks__Raise (=3Be= >x==3B0x35a720=2C arg==3B0x181cddc=2C module==3B0x398080=2C line= >1=3B50)=3B at ../src/runtime/common/RTHooks.m3:=3B79
> #=3B5 0= >x0023adbc in OSErrorPosix__Raise0 (=3Berrno==3B2)=3B at ../src/os/= >POSIX/OSErrorPosix.m3:=3B50
> #=3B6 0x0023cffc in FSPosix__Fail &= >#40=3Bp==3B0x181cdc0=2C f==3B0xf049f0)=3B at ../src/os/POSIX/FSPos= >ix.m3:=3B359
> #=3B7 0x0023cdd4 in FS__Status (=3Bpn==3B0x1= >81cdc0=2C _result==3B0xbffff3c8)=3B at ../src/os/POSIX/FSPosix.m3:= >=3B328
> #=3B8 0x00217d24 in M3File__IsReadable (=3Bpath==3B0x= >181cdc0)=3B at ../src/M3File.m3:=3B123
> #=3B9 0x000a057f in M= >xConfig__TryConfig (=3Ba==3B0x3255e0=2C b==3B0x3255f0=2C c==3B0= >x0)=3B at ../src/MxConfig.m3:=3B122
> #=3B10 0x0009ff67 in MxCo= >nfig__FindConfig (=3B)=3B at ../src/MxConfig.m3:=3B51
> #=3B= >11 0x0009fcd8 in MxConfig__FindFile (=3B)=3B at ../src/MxConfig.m3= >8=3B19
> #=3B12 0x0002c446 in Main__DoIt (=3B)=3B at ../src/Mai= >n.m3:=3B32
> #=3B13 0x0002d1e9 in Main_M3 (=3Bmode==3B1)= >=3B at ../src/Main.m3:=3B214
> #=3B14 0x0027a781 in RTLinker__RunM= >ainBody (=3Bm==3B0x3705a0)=3B at ../src/runtime/common/RTLinker.m3= >:=3B406
> #=3B15 0x00279bb6 in RTLinker__AddUnitI (=3Bm==3B0= >x3705a0)=3B at ../src/runtime/common/RTLinker.m3:=3B113
> #=3B1= >6 0x00279c3a in RTLinker__AddUnit (=3Bb==3B0x2d1d0)=3B at ../src/r= >untime/common/RTLinker.m3:=3B122
> #=3B17 0x00002cfc in main (= >=3Bargc==3B1=2C argv==3B0xbffff674=2C envp==3B0xbffff67c)=3B at= > _m3main.c:=3B16
> (=3Bgdb)=3B
>
> I followed upgrade i= >nstructions from Tony (=3Bincluding upgrading the
> back-end)=3B--= >-I have edited the instructions a bit to track changes in
> CM3. I'= >=3Bm starting from head three weeks old..
>
> Mika
>
> = >
> Return-Path:=3B hosking@=3Bcs.purdue.edu
> Delivery-Date:= >=3B Sun Jun 24 07:=3B38:=3B38 2007
> In-Reply-To:=3B <=3B200= >706231838.l5NIcRef079333@=3Bcamembert.async.caltech.edu>=3B
> Refe= >rences:=3B <=3B200706231838.l5NIcRef079333@=3Bcamembert.async.calt= >ech.edu>=3B
>
> Sounds like we really need some work done in this= > area. I very
> rarely use the build scripts=2C since I bootstrap man= >ually from old
> compilers to new compilers rather than use the script= >s. I suggest
> the following approach=2C which I hope you will try=2C= > and then report
> back on.
>
> Install the bootstrap compiler = >as you did originally:=3B
>
> >=3B rm -rf /usr/local/cm3/*= >=3B
> >=3B
> >=3B cd ~=3B/cm3-cvs
> >=3B mkdir bootr>> >=3B cd boot
> >=3B tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-= >2005-10-05.tgz
> >=3B ./cminstall
>
>
> Now you will have = >some kind of cm3 installed=2C presumably in /usr/
> local/cm3/bin/cm3.<= >br>>
> Make sure you have a fresh CVS checkout in directory cm3 (=3B= >let'=3Bs
> assume this is in your home directory ~=3B/cm3)= >=3B. Also=2C make sure you
> have an up-to-date version of the CM3 ba= >ckend compiler cm3cg
> installed by executing the following:=3B
= >>
> STEP 0:=3B
>
> export CM3==3B/usr/local/cm3/bin/cm3>> cd ~=3B/cm3/m3-sys/m3cc
> $=3BCM3
> $=3BCM3 -ship
> <= >br>> You can skip this last step if you know your backend compiler is up <= >br>> to date.
>
> Now=2C let'=3Bs build the new compiler from scr= >atch (=3Bthis is the sequence
> I use regularly to test changes to = >the run-time system whenever I
> make them)=3B:=3B
>
> ca= >n replace compilation step with
>
> rm -rf <=3Bder. dir>=3B &#= >38=3B&=3B $=3BCM3 &=3B&=3B $=3BCM3 -ship
>
>
> S= >TEP 1:=3B
>
> (=3Bdo these LATER if bootstrapping from old com= >piler!=3B)=3B
> cd ~=3B/cm3/m3-libs/m3core
> $=3BCM3
= >> $=3BCM3 -ship
> cd ~=3B/cm3/m3-libs/libm3
> $=3BCM3
> = >$=3BCM3 -ship
>
> Now build the compiler:=3B
>
> cd &#= >126=3B/cm3/m3-libs/sysutils ;=3B $=3BCM3 etc.
>
> cd ~=3B/= >cm3/m3-sys/m3middle;=3B $=3BCM3 etc.
>
> repeat for:=3B
= >>
> m3-sys/m3objfile
>
> m3-sys/m3back
>
> m3-sys/m3lin= >ker
>
> m3-sys/m3front
>
> m3-sys/m3quake
>
> m3-sys/c= >m3
>
> [=3B here we may need -DROOT==3B<=3Broot dir=2C e.g.= >=2C /home/mika/cm3>=3B ]=3B
>
>
> At this point you should= > have a bootstrapped version of cm3 installed
> in the directory /usr/= >local/cm3/pkg/cm3/TARGET/cm3 (=3Bwhere TARGET is
> the CM3 target p= >latform you are building on -- e.g.=2C LINUXLIBC6=2C
> PPC_DARWIN=2C .= >..)=3B. Note that this did not overwrite your original
> installed= > compiler in /usr/local/cm3/bin/cm3. We
> are now going to test the new= > compiler=2C which was built using the old
> compiler=2C by bootstrapp= >ing it one more time.
>
>
> *=3B*=3B*=3B*=3B*=3B&= >#42=3B*=3B THIS IS WHERE I HAVE A SEGFAULTING COMPILER *=3B*=3B= >2=3B*=3B*=3B*=3B*=3B
>
> (=3BIf m3core and libm3 were= > skipped earlier=2C do them now=2C and RE-DO all
> of the above packages= > before proceeding.)=3B
>
> From here on out=2C please replace TA= >RGET with your target platform as
> appropriate.
>
> STEP 2:= >=3B
>
> export CM3==3B/usr/local/cm3/pkg/cm3/TARGET/cm3
> cd &= >#126=3B/cm3/scripts
>
> ./do-cm3-std.sh realclean
> REPEAT STEP 1= > to rebuild the libraries and the compiler using the
> STEP 1 bootstra= >p compiler.
>
> Now you have a STEP 2 bootstrap compiler installed i= >n /usr/local/cm3/
> pkg/cm3/TARGET/cm3. Let'=3Bs assume the new com= >piler now works properly
> since it successfully bootstrapped itself= >=2C but to be sure we can now
> use it to rebuild the world:=3B
= >>
> cd ~=3B/cm3/scripts
> ./do-cm3-std.sh realclean
> ./do-cm= >3-std.sh buildship
>
> Assuming this succeeded then we can be pretty= > sure /usr/local/cm3/pkg/
> cm3/TARGET/cm3 is good=2C so we can make it= > our default compiler by
> replacing the original /usr/local/cm3/bin/c= >m3:=3B
>
> cp $=3BCM3 /usr/local/cm3/bin/cm3
>
> On Jun= > 23=2C 2007=2C at 2:=3B38 PM=2C Mika Nystrom wrote:=3B
>
> = >2=3B Ok=2C I'=3Bm sorry if I seem a bit dimwitted in the morning like th= >is=2C
> >=3B but how exactly does one get started?=3B I wish ther= >e were a file called
> >=3B "=3BGETTING_STARTED"=3B or somethin= >g like that in scripts...
> >=3B
> >=3B My Mac is very slow so = >I switched to my FreeBSD/i386 system (=3Bwhich has
> >=3B PM3 happ= >ily installed on it)=3B and tried to install CM3 from scratch.
> >= >=3B Here are the exact commands I typed.
> >=3B
> >=3B
> = >2=3B rm -rf /usr/local/cm3/*=3B
> >=3B
> >=3B cd ~=3B/cm= >3-cvs
> >=3B mkdir boot
> >=3B cd boot
> >=3B tar xzvf ..= >/cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz
> >=3B ./cminstall
>= > >=3B
> >=3B #=3B now I seem to have some kind of cm3 installed= >=2C /usr/local/cm3/bin/
> >=3B cm3
> >=3B
> >=3B cd cm3 = > #=3B location of my CM3 checkout
> >=3B cvs update -d .
> = >2=3B
> >=3B cd scripts
> >=3B ./boot-cm3-with-m3.sh realcleanr>> >=3B ./do-cm3-std.sh realclean
> >=3B
> >=3B ./upgrade.s= >h #=3B fails here=2C libm3 not compiled
> >= >=3B ./boot-cm3-with-m3.sh build #=3B builds cm3=2C but fails on <= >br>> >=3B cminstall=2C patternmatching not built
> >=3B
> >= >=3B ./do-cm3-std.sh build #=3B OK
> >=3B ./do-cm3-std.= >sh buildship #=3B OK
> >=3B
> >=3B ./boot-cm3-with-m= >3.sh realclean #=3B start over
> >=3B ./boot-cm3-with-m3.sh buil= >d #=3B OK
> >=3B ./boot-cm3-with-m3.sh buildship #=3B O= >K
> >=3B
> >=3B ./do-cm3-std.sh realclean #=3B OK>> >=3B ./do-cm3-std.sh build #=3B dies miserably... mayb= >e the
> >=3B compiler can'=3Bt handle the new libraries?=3Br>> >=3B
> >=3B ./install-cm3-compiler.sh upgrade #=3B OK=2C ne= >w cm3 binary installed
> >=3B
> >=3B After all that=2C "=3Bg= >ame over."=3B I have a cm3 that segfaults.
> >=3B
> >=3B Te= >xt.i3:=3B In function '=3BText_I3'=3B:=3B
> >=3B Text.i3&= >#58=3B81:=3B internal compiler error:=3B Segmentation fault
> >= >=3B Please submit a full bug report=2C
> >=3B with preprocessed sourc= >e if appropriate.
> >=3B See <=3BURL:=3Bhttp:=3B//gcc.gnu.or= >g/bugs.html>=3B for instructions.
> >=3B compilation failed == >=3B>=3B not building library "=3Blibm3core.a"=3B
> >=3B Fata= >l Error:=3B package build failed
> >=3B *=3B*=3B*=3B exe= >cution of failed *=3B*=3B*=3B
> >=3B
> >=3B I can'= >=3Bt seem to get either m3gdb or gdb to say anything reasonable
> >= >=3B either. ktrace shows nothing out of the ordinary.
> >=3B
> &#= >62=3B -----
> >=3B
> >=3B Meanwhile=2C my Mac got through "= >=3Bdo-cm3-std.sh realclean"=3B and
> >=3B "=3Bdo-cm3-std.sh bui= >ldship"=3B but my compiles are still dying on the
> >=3B same asse= >rtion tickled by ktok. On that machine I have INSTALLROOT
> >=3B set= > to ~=3B/cm3=2C but hopefully that has nothing to do with it...
> &#= >62=3B
> >=3B -----
> >=3B
> >=3B Does do-cm3-std.sh realc= >lean clean EVERYTHING?=3B If so my Mac should
> >=3B really have = >a fresh setup. The FreeBSD=2C I am not sure=2C maybe the
> >=3B old = >binary version just doesn'=3Bt work right?=3B Of course I could try<= >br>> >=3B bootstrapping with PM3 as well... but really=2C there'=3Bs = >an "=3Bapproved"=3B
> >=3B process to get from a blank system= >=2C no?=3B
> >=3B
> >=3B Mika
> >=3B
> >= >=3B
> >=3B
> >=3B
> >=3B Tony Hosking writes:=3B
> = >>=3B>=3B That sounds like you forgot to execute "=3Bdo-cm3-std.sh = >realclean"=3B
> >=3B>=3B before initiating the build. These so= >rts of errors sometimes arise
> >=3B>=3B if there are old build di= >rectories lying around.
> >=3B>=3B
> >=3B>=3B On Jun 23= >=2C 2007=2C at 3:=3B34 AM=2C Mika Nystrom wrote:=3B
> >=3B>= >=3B
> >=3B>=3B>=3B Hello everyone=2C
> >=3B>=3B>=3B= >
> >=3B>=3B>=3B I am in the process of trying to consolidate bu= >ild systems for a
> >=3B>=3B>=3B few software packages I am mai= >ntaining. Currently=2C I am using an
> >=3B>=3B>=3B old PM3 on= > FreeBSD4=2C an ancient PM3 (=3Bfrom Klagenfurt?=3B)=3B for Window= >s
> >=3B>=3B>=3B (=3BNT386GNU)=3B=2C and trying to get th= >e latest CM3 from cvs up and
> >=3B>=3B>=3B compiling
> &#= >62=3B>=3B>=3B things on PPC_DARWIN. Ideally=2C I'=3Bd like to sta= >ndardize everything
> >=3B>=3B>=3B on the new PM3---mainly so t= >hat I can use pickles (=3Band Network
> >=3B>=3B>=3B Objects= >)=3B across all three systems. I'=3Bd also like to add Linux to
>= > >=3B>=3B>=3B the mix.
> >=3B>=3B>=3B
> >=3B>= >=3B>=3B It'=3Bs natural for me to start with CM3 on Darwin=2C as ther= >e'=3Bs no
> >=3B>=3B>=3B alternative. But I am getting some= > assertions failing. Everything
> >=3B>=3B>=3B in the CM3 dist= >ribution compiles fine=2C and I believe I have compiled
> >=3B>=3B= >>=3B the libraries a few times (=3Bthat is=2C including with themselv= >es)=3B=2C and
> >=3B>=3B>=3B updated the compiler=2C too = >0=3Busing boot-cm3-with-m3.sh)=3B. I just cvs
> >=3B>=3B>= >=3B updated tonight.
> >=3B>=3B>=3B
> >=3B>=3B>=3B = >Here'=3Bs what I'=3Bm running into:=3B
> >=3B>=3B>=3B<= >br>> >=3B>=3B>=3B /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../s= >rc/CHP.t -o
> >=3B>=3B>=3B CHPTok.i3
> >=3B>=3B>= >=3B
> >=3B>=3B>=3B *=3B*=3B*=3B
> >=3B>=3B= >2=3B *=3B*=3B*=3B runtime error:=3B
> >=3B>=3B>=3B = >*=3B*=3B*=3B <=3B*=3BASSERT*=3B>=3B failed.
> &#= >62=3B>=3B>=3B *=3B*=3B*=3B file "=3B../src/runtime/com= >mon/RTCollector.m3"=3B=2C line 2314
> >=3B>=3B>=3B *=3B&#= >42=3B*=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B Abort>> >=3B>=3B>=3B
> >=3B>=3B>=3B Also:=3B
> >= >=3B>=3B>=3B
> >=3B>=3B>=3B /Users/mika/t/parserlib/ktok/P= >PC_DARWIN/tok ../src/PRS.t -o
> >=3B>=3B>=3B PRSTok.i3
> &= >#62=3B>=3B>=3B Illegal instruction
> >=3B>=3B>=3B
> &#= >62=3B>=3B>=3B As you can see=2C these things are coming from the calt= >ech_parser. I
> >=3B>=3B am using
> >=3B>=3B>=3B our = >local version=2C but I don'=3Bt think it is very different from what
= >> >=3B>=3B>=3B is in the
> >=3B>=3B>=3B CM3 tree.
>= > >=3B>=3B>=3B
> >=3B>=3B>=3B Examining the first error= > (=3Bthe failed assertion)=3B more closely=2C I see
> >=3B>= >=3B>=3B the following:=3B
> >=3B>=3B>=3B
> >=3B>= >=3B>=3B (=3Bgdb)=3B list
> >=3B>=3B>=3B 108 wr= > :=3B==3B FileWr.Open(=3BPathname.ReplaceExt(=3Btp.out=2C "= >=3Bm3"=3B)=3B)=3B;=3B
> >=3B>=3B>=3B 109 EXCE= >PT OSError.E ==3B>=3B
> >=3B>=3B>=3B 110 Debug.Er= >ror(=3B"=3BCannot open tok implementation output
> >=3B>=3B&= >#62=3B file:=3B "=3B &=3B
> >=3B>=3B>=3B 111 = > Pathname.ReplaceExt(=3Btp.out=2C "=3Bm3"=3B)=3B)=3B;=3B<= >br>> >=3B>=3B>=3B 112 END;=3B
> >=3B>=3B>=3B = >113 Wr.PutText(=3Bwr=2C subs.apply(=3BBundle.Get(=3BForm=2C = >
> >=3B>=3B>=3B "=3Btokform.m3"=3B)=3B)=3B)=3B&= >#59=3B
> >=3B>=3B>=3B 114 Wr.Close(=3Bwr)=3B;=3B= >
> >=3B>=3B>=3B 115 END Main.
> >=3B>=3B>=3B &#= >40=3Bgdb)=3B where
> >=3B>=3B>=3B #=3B0 0x9004308c in ki= >ll (=3B)=3B
> >=3B>=3B>=3B #=3B1 0x9009fb3c in abort = >(=3B)=3B
> >=3B>=3B>=3B #=3B2 0x00096f50 in RTOS__Cra= >sh (=3B)=3B at RTOS.m3:=3B20
> >=3B>=3B>=3B #=3B3 = >0x0005bd40 in RTProcess__Crash (=3BM3_Bd56fi_msg==3B0x0)=3B at
= >> >=3B>=3B>=3B RTProcess.m3:=3B65
> >=3B>=3B>=3B &#= >35=3B4 0x0008e4e0 in RTError__EndError (=3BM3_AicXUJ_crash==3B1 '= >=3B\=3B001'=3B)=3B at
> >=3B>=3B>=3B RTError.m3:=3B= >115
> >=3B>=3B>=3B #=3B5 0x0008e08c in RTError__MsgS (= >=3BM3_AJWxb1_file==3B0xc63d8=2C
> >=3B>=3B>=3B M3_AcxOUs_lin= >e==3B2314=2C M3_Bd56fi_msgA==3B0xca3d0=2C
> >=3B>=3B>=3B = >M3_Bd56fi_msgB==3B0xcbe90=2C M3_Bd56fi_msgC==3B0xca3d0)=3B at RTEr= >ror.m3:=3B40
> >=3B>=3B>=3B #=3B6 0x0008eb88 in RTExcept= >ion__Crash (=3BM3_Cblw37_a==3B0xbfffee00=2C
> >=3B>=3B>= >=3B M3_AicXUJ_raises==3B0 '=3B\=3B0'=3B=2C M3_AJWxb1_rte==3B= >0xcb538)=3B at RTException.m3:=3B79
> >=3B>=3B>=3B #= >=3B7 0x0008e74c in RTException__DefaultBackstop
> >=3B>=3B>=3B= > (=3BM3_Cblw37_a==3B0xbfffee00=2C M3_AicXUJ_raises==3B0 '=3B = >2=3B0'=3B)=3B at
> >=3B>=3B>=3B RTException.m3:=3B39= >
> >=3B>=3B>=3B #=3B8 0x0008e614 in RTException__InvokeBack= >stop
> >=3B>=3B>=3B (=3BM3_Cblw37_a==3B0xbfffee00=2C M3_A= >icXUJ_raises==3B0 '=3B\=3B0'=3B)=3B at
> >=3B>=3B= >>=3B RTException.m3:=3B25
> >=3B>=3B>=3B #=3B9 0x0009= >5d04 in RTException__Raise (=3BM3_Cblw37_act==3B0xbfffee00)=3B at<= >br>> >=3B>=3B>=3B RTExFrame.m3:=3B29
> >=3B>=3B>=3B= > #=3B10 0x0008e840 in RTException__DefaultBackstop
> >=3B>=3B&#= >62=3B (=3BM3_Cblw37_a==3B0xbfffee00=2C M3_AicXUJ_raises==3B0 '= >=3B\=3B0'=3B)=3B at
> >=3B>=3B>=3B RTException.m3= >8=3B47
> >=3B>=3B>=3B #=3B11 0x0008e614 in RTException__Invo= >keBackstop
> >=3B>=3B>=3B (=3BM3_Cblw37_a==3B0xbfffee00= >=2C M3_AicXUJ_raises==3B0 '=3B\=3B0'=3B)=3B at
> >= >=3B>=3B>=3B RTException.m3:=3B25
> >=3B>=3B>=3B #= >=3B12 0x00095d04 in RTException__Raise (=3BM3_Cblw37_act==3B0xbfffee0= >0)=3B at
> >=3B>=3B>=3B RTExFrame.m3:=3B29
> >=3B&#= >62=3B>=3B #=3B13 0x00079740 in RTHooks__ReportFault (=3BM3_AJWxb1_= >module==3B0xb3eb8=2C
> >=3B>=3B>=3B M3_AcxOUs_info==3B740= >48)=3B at RTHooks.m3:=3B110
> >=3B>=3B>=3B #=3B14 0x00= >06ff4c in _m3_fault (=3BM3_AcxOUs_arg==3B74048)=3B
> >=3B= >2=3B>=3B #=3B15 0x0006bcf4 in RTHooks__CheckStoreTraced
> >=3B&= >#62=3B>=3B (=3BM3_Af40ku_ref==3B0xb2415c)=3B at RTCollector.m3&= >#58=3B2314
> >=3B>=3B>=3B #=3B16 0x000700e4 in ThreadPThread= >__InnerLockMutex
> >=3B>=3B>=3B (=3BM3_AYIbX3_m==3B0xb241= >5c=2C M3_BXP32l_self==3B0xb24014)=3B at
> >=3B>=3B>=3B Th= >readPThread.m3:=3B126
> >=3B>=3B>=3B #=3B17 0x000704d8 in= > ThreadPThread__LockMutex (=3BM3_AYIbX3_m==3B0xb2415c)=3B
> = >2=3B>=3B>=3B at ThreadPThread.m3:=3B153
> >=3B>=3B>=3B= > #=3B18 0x00019b24 in Wr__PutText (=3BM3_BxxOH1_wr==3B0xb2415c=2C<= >br>> >=3B>=3B>=3B M3_Bd56fi_t==3B0xb44d5c)=3B at Wr.m3:= >=3B93
> >=3B>=3B>=3B #=3B19 0x00003f74 in Main_M3 (=3BM3_= >AcxOUs_mode==3B1)=3B at Main.m3:=3B113
> >=3B>=3B>=3B = >#=3B20 0x0005b1c4 in RTLinker__RunMainBody (=3BM3_DjPxE3_m==3B0xad= >190)=3B at
> >=3B>=3B>=3B RTLinker.m3:=3B399
> >=3B= >>=3B>=3B #=3B21 0x00059f88 in RTLinker__AddUnitI (=3BM3_DjPxE3_= >m==3B0xad190)=3B at
> >=3B>=3B>=3B RTLinker.m3:=3B113<= >br>> >=3B>=3B>=3B #=3B22 0x0005a084 in RTLinker__AddUnit (= >=3BM3_DjPxE5_b==3B0x3600)=3B at
> >=3B>=3B>=3B RTLinker.m= >3:=3B122
> >=3B>=3B>=3B #=3B23 0x00001fac in main (=3B= >argc==3B4=2C argv==3B0xbffffb24=2C envp==3B0xbffffb38)=3B
> = >>=3B>=3B>=3B at _m3main.mc:=3B4
> >=3B>=3B>=3B (= >=3Bgdb)=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B The sec= >ond error:=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B Prog= >ram received signal EXC_BAD_INSTRUCTION=2C Illegal instruction/
> >= >=3B>=3B>=3B operand.
> >=3B>=3B>=3B 0x00b111ac in ?=3B= >?=3B (=3B)=3B
> >=3B>=3B>=3B (=3Bgdb)=3B wherer>> >=3B>=3B>=3B #=3B0 0x00b111ac in ?=3B?=3B (=3B= >1=3B
> >=3B>=3B>=3B #=3B1 0x0001214c in TextSubs__Apply = >0=3BM3_CN69dV_self==3B0xb26450=2C
> >=3B>=3B>=3B M3_Bd56fi_s= >rc==3B0xb21cec)=3B at TextSubs.m3:=3B63
> >=3B>=3B>=3B= > #=3B2 0x0005b1c4 in RTLinker__RunMainBody (=3BM3_DjPxE3_m==3B0xa= >d190)=3B at
> >=3B>=3B>=3B RTLinker.m3:=3B399
> >= >=3B>=3B>=3B #=3B3 0x00059f88 in RTLinker__AddUnitI (=3BM3_DjPx= >E3_m==3B0xad190)=3B at
> >=3B>=3B>=3B RTLinker.m3:=3B1= >13
> >=3B>=3B>=3B #=3B4 0x0005a084 in RTLinker__AddUnit = >0=3BM3_DjPxE5_b==3B0x3600)=3B at
> >=3B>=3B>=3B RTLinker.= >m3:=3B122
> >=3B>=3B>=3B #=3B5 0x00001fac in main (= >=3Bargc==3B4=2C argv==3B0xbffffb24=2C envp==3B0xbffffb38)=3B>> >=3B>=3B>=3B at _m3main.mc:=3B4
> >=3B>=3B>=3B &= >#40=3Bgdb)=3B list
> >=3B>=3B>=3B 58 BEGIN
> >= >=3B>=3B>=3B 59 WHILE pos <=3B textLen DO
> >=3B>= >=3B>=3B 60 c :=3B==3B Text.GetChar(=3Bsrc=2C pos)= >=3B;=3B
> >=3B>=3B>=3B 61 IF c IN self.starts THE= >N
> >=3B>=3B>=3B 62 (=3B*=3B S(=3B"=3B= >analysing:=3B "=3B &=3B Text.Sub(=3Bsrc=2C pos)=3B=2C
> &= >#62=3B>=3B>=3B DebugLevel)=3B;=3B *=3B)=3B
> >=3B&#= >62=3B>=3B 63 iter :=3B==3B self.tbl.iterateOrdered= >0=3B)=3B;=3B
> >=3B>=3B>=3B 64 ind :=3B&#= >61=3B pos;=3B
> >=3B>=3B>=3B 65 original := >=3B==3B "=3B"=3B;=3B
> >=3B>=3B>=3B 66 = > REPEAT
> >=3B>=3B>=3B 67 INC(=3Bind)=3B&#= >59=3B
> >=3B>=3B>=3B (=3Bgdb)=3B
> >=3B>=3B>= >=3B
> >=3B>=3B>=3B Any ideas what to look at?=3B
> >= >=3B>=3B>=3B
> >=3B>=3B>=3B I don'=3Bt know if this is = >relevant:=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B [= >=3Blapdog:=3B~=3B/t/cit_parse/PPC_DARWIN]=3B mika%=3B uname -a= >
> >=3B>=3B>=3B Darwin lapdog.local 7.9.0 Darwin Kernel Version= > 7.9.0:=3B Wed Mar 30
> >=3B>=3B>=3B 20:=3B11:=3B17 PS= >T 2005;=3B root:=3Bxnu/xnu-517.12.7.obj~=3B1/RELEASE_PPC Powerr>> >=3B>=3B>=3B Macintosh powerpc
> >=3B>=3B>=3B [= >=3Blapdog:=3B~=3B/t/cit_parse/PPC_DARWIN]=3B mika%=3B gcc -vr>> >=3B>=3B>=3B Reading specs from /usr/libexec/gcc/darwin/ppc/3.= >3/specs
> >=3B>=3B>=3B Thread model:=3B posix
> >=3B&#= >62=3B>=3B gcc version 3.3 20030304 (=3BApple Computer=2C Inc. build 1= >666)=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B Mika<= >br>> >=3B>=3B>=3B
> >=3B>=3B>=3B P.S. Am I correct in = >assuming that I can get CM3 to build on
> >=3B>=3B>=3B Window= >s?=3B
> >=3B>=3B>=3B I could switch to CM3 on Unix any time= >=2C of course=2C but I'=3Bve never
> >=3B>=3B>=3B had luck w= >ith it on Windows=2C which is why I am using the ancient
> >=3B>= >=3B>=3B Klagenfurt PM3=2C which comes on 40-odd "=3Bfloppies"=3B a= >nd a .EXE that
> >=3B>=3B>=3B unpacks them into C:=3B (= >=3Band installation instructions only in German)=3B.
> >=3B>=3B= >>=3B If CM3 doesn'=3Bt work on Windows=2C I am essentially wasting my= > time=2C
> >=3B>=3B>=3B as the current project I am working on = >absolutely requires that the
> >=3B>=3B>=3B software run on Win= >dows 2003 Server (=3Byes=2C it sucks=2C but what can
> >=3B>=3B= >>=3B you do?=3B)=3B The very old PM3 at least kind of hobbles alo= >ng on this
> >=3B>=3B>=3B platform---actually=2C better than th= >at;=3B it does Trestle natively
> >=3B>=3B>=3B under Windows= > (=3Bno X required)=3B=2C at least on SOME Windows machines.
> = >2=3B>=3B>=3B
> >=3B>=3B>=3B P.P.S. Sorry for all the post= >scripts=2C but is it true that the
> >=3B>=3B>=3B build system = >has been changed so that building with overrides
> >=3B>=3B>= >=3B (=3Bcm3 -x)=3B
> >=3B>=3B>=3B requires having the com= >piler sources available?=3B It didn'=3Bt use to
> >=3B>=3B&= >#62=3B be that way=2C but I can'=3Bt get Network Objects to work with ov= >errides
> >=3B>=3B>=3B now unless I have the sources available.= >.. It'=3Bs a bit of a pain
> >=3B>=3B>=3B because it means = >that every user has to have the compiler sources=2C
> >=3B>=3B>= >=3B or else ship everything=2C or was that not the intention?=3B
> = > >= > >--_6374b72e-0dad-4a03-8d22-4a59e0218226_-- From jay.krell at cornell.edu Sat Jan 8 15:22:05 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 14:22:05 +0000 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: <20110108134735.B7D4C1A205B@async.async.caltech.edu> References: <20101227101653.307241A205B@async.async.caltech.edu>, ,,, ,,<20101227185453.97CE51A205B@async.async.caltech.edu>, , , , , , , <20110108121441.A58031A205B@async.async.caltech.edu>, , <20110108134735.B7D4C1A205B@async.async.caltech.edu> Message-ID: It no longer builds m3bundle I think. There was a problem regarding m3bundle for a while, because I had followed upgrade.sh too closely, which had this problem. And this is a sign of using old cm3cg. Are you sure you didn't do something weird? Uograde.py does upgrade cm3cg appropriately. Try head? > To: jay.krell at cornell.edu > Date: Sat, 8 Jan 2011 05:47:35 -0800 > From: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] another Snow Leopard compiler crash > > I ran "python upgrade.py" from a clean start (back to head a few weeks ago) > and got: > > == package /Users/mika/cm3/cm3/m3-tools/m3bundle == > > +++ /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3 -build -DROOT=/Users/mika/cm3/cm3 +++ > --- building in I386_DARWIN --- > > ignoring ../src/m3overrides > > new source -> compiling m3bundle.m3 > -> linking m3bundle > Undefined symbols: > "__alloca", referenced from: > _m3bundle__GetElementSizes in m3bundle.mo > "_Csetjmp__Jumpbuf_size", referenced from: > _Csetjmp__Jumpbuf_size$non_lazy_ptr in m3bundle.mo > (maybe you meant: _Csetjmp__Jumpbuf_size$non_lazy_ptr) > ld: symbol(s) not found > collect2: ld returned 1 exit status > m3_link => 1 > linker failed linking: m3bundle > Fatal Error: package build failed > *** execution of [, ] failed *** > [hal:cm3/scripts/python] mika% > > maybe a conf file change I need to make? > > Why only in m3bundle? > > Mika > > Jay K writes: > >--_6374b72e-0dad-4a03-8d22-4a59e0218226_ > >Content-Type: text/plain; charset="iso-8859-1" > >Content-Transfer-Encoding: quoted-printable > > > >I upgrade across incompatibilities frequently & Hudson does now too. The ex= > >isting scripts work very well and you would be foolish to not use them. Jus= > >t use upgrade.py. It is very easy. Or upgrade.py nocleangcc. And then do-cm= > >3-all.py skipgcc realclean && do-cm3-all.py buildship.py. > > > > - Jay/phone > > > >> To: jay.krell at cornell.edu > >> Date: Sat=2C 8 Jan 2011 04:14:41 -0800 > >> From: mika at async.caltech.edu > >> CC: m3devel at elegosoft.com > >> Subject: Re: [M3devel] another Snow Leopard compiler crash > >>=20 > >> Jay K writes: > >> > > >> >Please try this Mika. It fixes the problem for me. > >>=20 > >> Hi Jay=2C > >>=20 > >> So I upgraded to the CVS head and now I get a segfaulting compiler: > >>=20 > >> [hal:cm3/m3-libs/m3core] mika% gdb $CM3 > >> GNU gdb 6.3.50-20050815 (Apple version gdb-1510) (Wed Sep 22 02:45:02 UTC= > > 2010) > >> Copyright 2004 Free Software Foundation=2C Inc. > >> GDB is free software=2C covered by the GNU General Public License=2C and = > >you are > >> welcome to change it and/or distribute copies of it under certain conditi= > >ons. > >> Type "show copying" to see the conditions. > >> There is absolutely no warranty for GDB. Type "show warranty" for detail= > >s. > >> This GDB was configured as "x86_64-apple-darwin"...Reading symbols for sh= > >ared libraries ...... done > >>=20 > >> (gdb) run > >> Starting program: /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3=20 > >> Reading symbols for shared libraries .+++++.......... done > >>=20 > >> Program received signal EXC_BAD_ACCESS=2C Could not access memory. > >> Reason: KERN_PROTECTION_FAILURE at address: 0x0000038b > >> 0x9713354b in _longjmp () > >> (gdb) where > >> #0 0x9713354b in _longjmp () > >> #1 0x00285d2b in RTExFrame__InvokeHandler (f=3D0xbffff34c=2C a=3D0xbffff= > >23c) at ../src/runtime/ex_frame/RTExFrame.m3:175 > >> #2 0x00285be4 in RTException__ResumeRaise (a=3D0xbffff23c) at ../src/run= > >time/ex_frame/RTExFrame.m3:145 > >> #3 0x00285a1b in RTException__Raise (act=3D0xbffff23c) at ../src/runtime= > >/ex_frame/RTExFrame.m3:91 > >> #4 0x00269d44 in RTHooks__Raise (ex=3D0x35a720=2C arg=3D0x181cddc=2C mod= > >ule=3D0x398080=2C line=3D50) at ../src/runtime/common/RTHooks.m3:79 > >> #5 0x0023adbc in OSErrorPosix__Raise0 (errno=3D2) at ../src/os/POSIX/OSE= > >rrorPosix.m3:50 > >> #6 0x0023cffc in FSPosix__Fail (p=3D0x181cdc0=2C f=3D0xf049f0) at ../src= > >/os/POSIX/FSPosix.m3:359 > >> #7 0x0023cdd4 in FS__Status (pn=3D0x181cdc0=2C _result=3D0xbffff3c8) at = > >../src/os/POSIX/FSPosix.m3:328 > >> #8 0x00217d24 in M3File__IsReadable (path=3D0x181cdc0) at ../src/M3File.= > >m3:123 > >> #9 0x000a057f in MxConfig__TryConfig (a=3D0x3255e0=2C b=3D0x3255f0=2C c= > >=3D0x0) at ../src/MxConfig.m3:122 > >> #10 0x0009ff67 in MxConfig__FindConfig () at ../src/MxConfig.m3:51 > >> #11 0x0009fcd8 in MxConfig__FindFile () at ../src/MxConfig.m3:19 > >> #12 0x0002c446 in Main__DoIt () at ../src/Main.m3:32 > >> #13 0x0002d1e9 in Main_M3 (mode=3D1) at ../src/Main.m3:214 > >> #14 0x0027a781 in RTLinker__RunMainBody (m=3D0x3705a0) at ../src/runtime/= > >common/RTLinker.m3:406 > >> #15 0x00279bb6 in RTLinker__AddUnitI (m=3D0x3705a0) at ../src/runtime/com= > >mon/RTLinker.m3:113 > >> #16 0x00279c3a in RTLinker__AddUnit (b=3D0x2d1d0) at ../src/runtime/commo= > >n/RTLinker.m3:122 > >> #17 0x00002cfc in main (argc=3D1=2C argv=3D0xbffff674=2C envp=3D0xbffff67= > >c) at _m3main.c:16 > >> (gdb)=20 > >>=20 > >> I followed upgrade instructions from Tony (including upgrading the > >> back-end)---I have edited the instructions a bit to track changes in=20 > >> CM3. I'm starting from head three weeks old.. > >>=20 > >> Mika > >>=20 > >>=20 > >> Return-Path: hosking at cs.purdue.edu > >> Delivery-Date: Sun Jun 24 07:38:38 2007 > >> In-Reply-To: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> > >> References: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> > >>=20 > >> Sounds like we really need some work done in this area. I very =20 > >> rarely use the build scripts=2C since I bootstrap manually from old =20 > >> compilers to new compilers rather than use the scripts. I suggest =20 > >> the following approach=2C which I hope you will try=2C and then report =20 > >> back on. > >>=20 > >> Install the bootstrap compiler as you did originally: > >>=20 > >> > rm -rf /usr/local/cm3/* > >> > > >> > cd ~/cm3-cvs > >> > mkdir boot > >> > cd boot > >> > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz > >> > ./cminstall > >>=20 > >>=20 > >> Now you will have some kind of cm3 installed=2C presumably in /usr/=20 > >> local/cm3/bin/cm3. > >>=20 > >> Make sure you have a fresh CVS checkout in directory cm3 (let's =20 > >> assume this is in your home directory ~/cm3). Also=2C make sure you =20 > >> have an up-to-date version of the CM3 backend compiler cm3cg =20 > >> installed by executing the following: > >>=20 > >> STEP 0: > >>=20 > >> export CM3=3D/usr/local/cm3/bin/cm3 > >> cd ~/cm3/m3-sys/m3cc > >> $CM3 > >> $CM3 -ship > >>=20 > >> You can skip this last step if you know your backend compiler is up =20 > >> to date. > >>=20 > >> Now=2C let's build the new compiler from scratch (this is the sequence =20 > >> I use regularly to test changes to the run-time system whenever I =20 > >> make them): > >>=20 > >> can replace compilation step with > >>=20 > >> rm -rf && $CM3 && $CM3 -ship=20 > >>=20 > >>=20 > >> STEP 1: > >>=20 > >> (do these LATER if bootstrapping from old compiler!) > >> cd ~/cm3/m3-libs/m3core > >> $CM3 > >> $CM3 -ship > >> cd ~/cm3/m3-libs/libm3 > >> $CM3 > >> $CM3 -ship > >>=20 > >> Now build the compiler: > >>=20 > >> cd ~/cm3/m3-libs/sysutils =3B $CM3 etc. > >>=20 > >> cd ~/cm3/m3-sys/m3middle=3B $CM3 etc. > >>=20 > >> repeat for: > >>=20 > >> m3-sys/m3objfile=20 > >>=20 > >> m3-sys/m3back=20 > >>=20 > >> m3-sys/m3linker > >>=20 > >> m3-sys/m3front > >>=20 > >> m3-sys/m3quake > >>=20 > >> m3-sys/cm3 > >>=20 > >> [ here we may need -DROOT=3D ] > >>=20 > >>=20 > >> At this point you should have a bootstrapped version of cm3 installed =20 > >> in the directory /usr/local/cm3/pkg/cm3/TARGET/cm3 (where TARGET is =20 > >> the CM3 target platform you are building on -- e.g.=2C LINUXLIBC6=2C =20 > >> PPC_DARWIN=2C ...). Note that this did not overwrite your original =20 > >> installed compiler in /usr/local/cm3/bin/cm3. We > >> are now going to test the new compiler=2C which was built using the old = > >=20 > >> compiler=2C by bootstrapping it one more time. > >>=20 > >>=20 > >> ******* THIS IS WHERE I HAVE A SEGFAULTING COMPILER ******* > >>=20 > >> (If m3core and libm3 were skipped earlier=2C do them now=2C and RE-DO all > >> of the above packages before proceeding.) > >>=20 > >> From here on out=2C please replace TARGET with your target platform as =20 > >> appropriate. > >>=20 > >> STEP 2: > >>=20 > >> export CM3=3D/usr/local/cm3/pkg/cm3/TARGET/cm3 > >> cd ~/cm3/scripts > >>=20 > >> ./do-cm3-std.sh realclean > >> REPEAT STEP 1 to rebuild the libraries and the compiler using the =20 > >> STEP 1 bootstrap compiler. > >>=20 > >> Now you have a STEP 2 bootstrap compiler installed in /usr/local/cm3/=20 > >> pkg/cm3/TARGET/cm3. Let's assume the new compiler now works properly =20 > >> since it successfully bootstrapped itself=2C but to be sure we can now =20 > >> use it to rebuild the world: > >>=20 > >> cd ~/cm3/scripts > >> ./do-cm3-std.sh realclean > >> ./do-cm3-std.sh buildship > >>=20 > >> Assuming this succeeded then we can be pretty sure /usr/local/cm3/pkg/=20 > >> cm3/TARGET/cm3 is good=2C so we can make it our default compiler by =20 > >> replacing the original /usr/local/cm3/bin/cm3: > >>=20 > >> cp $CM3 /usr/local/cm3/bin/cm3 > >>=20 > >> On Jun 23=2C 2007=2C at 2:38 PM=2C Mika Nystrom wrote: > >>=20 > >> > Ok=2C I'm sorry if I seem a bit dimwitted in the morning like this=2C > >> > but how exactly does one get started? I wish there were a file called > >> > "GETTING_STARTED" or something like that in scripts... > >> > > >> > My Mac is very slow so I switched to my FreeBSD/i386 system (which has > >> > PM3 happily installed on it) and tried to install CM3 from scratch. > >> > Here are the exact commands I typed. > >> > > >> > > >> > rm -rf /usr/local/cm3/* > >> > > >> > cd ~/cm3-cvs > >> > mkdir boot > >> > cd boot > >> > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz > >> > ./cminstall > >> > > >> > # now I seem to have some kind of cm3 installed=2C /usr/local/cm3/bin/= > >=20 > >> > cm3 > >> > > >> > cd cm3 # location of my CM3 checkout > >> > cvs update -d . > >> > > >> > cd scripts > >> > ./boot-cm3-with-m3.sh realclean > >> > ./do-cm3-std.sh realclean > >> > > >> > ./upgrade.sh # fails here=2C libm3 not compiled > >> > ./boot-cm3-with-m3.sh build # builds cm3=2C but fails on =20 > >> > cminstall=2C patternmatching not built > >> > > >> > ./do-cm3-std.sh build # OK > >> > ./do-cm3-std.sh buildship # OK > >> > > >> > ./boot-cm3-with-m3.sh realclean # start over > >> > ./boot-cm3-with-m3.sh build # OK > >> > ./boot-cm3-with-m3.sh buildship # OK > >> > > >> > ./do-cm3-std.sh realclean # OK > >> > ./do-cm3-std.sh build # dies miserably... maybe the =20 > >> > compiler can't handle the new libraries? > >> > > >> > ./install-cm3-compiler.sh upgrade # OK=2C new cm3 binary installed > >> > > >> > After all that=2C "game over." I have a cm3 that segfaults. > >> > > >> > Text.i3: In function 'Text_I3': > >> > Text.i3:81: internal compiler error: Segmentation fault > >> > Please submit a full bug report=2C > >> > with preprocessed source if appropriate. > >> > See for instructions. > >> > compilation failed =3D> not building library "libm3core.a" > >> > Fatal Error: package build failed > >> > *** execution of failed *** > >> > > >> > I can't seem to get either m3gdb or gdb to say anything reasonable > >> > either. ktrace shows nothing out of the ordinary. > >> > > >> > ----- > >> > > >> > Meanwhile=2C my Mac got through "do-cm3-std.sh realclean" and > >> > "do-cm3-std.sh buildship" but my compiles are still dying on the > >> > same assertion tickled by ktok. On that machine I have INSTALLROOT > >> > set to ~/cm3=2C but hopefully that has nothing to do with it... > >> > > >> > ----- > >> > > >> > Does do-cm3-std.sh realclean clean EVERYTHING? If so my Mac should > >> > really have a fresh setup. The FreeBSD=2C I am not sure=2C maybe the > >> > old binary version just doesn't work right? Of course I could try > >> > bootstrapping with PM3 as well... but really=2C there's an "approved" > >> > process to get from a blank system=2C no? > >> > > >> > Mika > >> > > >> > > >> > > >> > > >> > Tony Hosking writes: > >> >> That sounds like you forgot to execute "do-cm3-std.sh realclean" > >> >> before initiating the build. These sorts of errors sometimes arise > >> >> if there are old build directories lying around. > >> >> > >> >> On Jun 23=2C 2007=2C at 3:34 AM=2C Mika Nystrom wrote: > >> >> > >> >>> Hello everyone=2C > >> >>> > >> >>> I am in the process of trying to consolidate build systems for a > >> >>> few software packages I am maintaining. Currently=2C I am using an > >> >>> old PM3 on FreeBSD4=2C an ancient PM3 (from Klagenfurt?) for Windows > >> >>> (NT386GNU)=2C and trying to get the latest CM3 from cvs up and =20 > >> >>> compiling > >> >>> things on PPC_DARWIN. Ideally=2C I'd like to standardize everything > >> >>> on the new PM3---mainly so that I can use pickles (and Network > >> >>> Objects) across all three systems. I'd also like to add Linux to > >> >>> the mix. > >> >>> > >> >>> It's natural for me to start with CM3 on Darwin=2C as there's no > >> >>> alternative. But I am getting some assertions failing. Everything > >> >>> in the CM3 distribution compiles fine=2C and I believe I have compile= > >d > >> >>> the libraries a few times (that is=2C including with themselves)=2C a= > >nd > >> >>> updated the compiler=2C too (using boot-cm3-with-m3.sh). I just cvs > >> >>> updated tonight. > >> >>> > >> >>> Here's what I'm running into: > >> >>> > >> >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/CHP.t -o =20 > >> >>> CHPTok.i3 > >> >>> > >> >>> *** > >> >>> *** runtime error: > >> >>> *** <*ASSERT*> failed. > >> >>> *** file "../src/runtime/common/RTCollector.m3"=2C line 2314 > >> >>> *** > >> >>> > >> >>> Abort > >> >>> > >> >>> Also: > >> >>> > >> >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/PRS.t -o =20 > >> >>> PRSTok.i3 > >> >>> Illegal instruction > >> >>> > >> >>> As you can see=2C these things are coming from the caltech_parser. I > >> >> am using > >> >>> our local version=2C but I don't think it is very different from what > >> >>> is in the > >> >>> CM3 tree. > >> >>> > >> >>> Examining the first error (the failed assertion) more closely=2C I se= > >e > >> >>> the following: > >> >>> > >> >>> (gdb) list > >> >>> 108 wr :=3D FileWr.Open(Pathname.ReplaceExt(tp.out=2C "m3"))= > >=3B > >> >>> 109 EXCEPT OSError.E =3D> > >> >>> 110 Debug.Error("Cannot open tok implementation output > >> >>> file: " & > >> >>> 111 Pathname.ReplaceExt(tp.out=2C "m3"))=3B > >> >>> 112 END=3B > >> >>> 113 Wr.PutText(wr=2C subs.apply(Bundle.Get(Form=2C =20 > >> >>> "tokform.m3")))=3B > >> >>> 114 Wr.Close(wr)=3B > >> >>> 115 END Main. > >> >>> (gdb) where > >> >>> #0 0x9004308c in kill () > >> >>> #1 0x9009fb3c in abort () > >> >>> #2 0x00096f50 in RTOS__Crash () at RTOS.m3:20 > >> >>> #3 0x0005bd40 in RTProcess__Crash (M3_Bd56fi_msg=3D0x0) at > >> >>> RTProcess.m3:65 > >> >>> #4 0x0008e4e0 in RTError__EndError (M3_AicXUJ_crash=3D1 '\001') at > >> >>> RTError.m3:115 > >> >>> #5 0x0008e08c in RTError__MsgS (M3_AJWxb1_file=3D0xc63d8=2C > >> >>> M3_AcxOUs_line=3D2314=2C M3_Bd56fi_msgA=3D0xca3d0=2C > >> >>> M3_Bd56fi_msgB=3D0xcbe90=2C M3_Bd56fi_msgC=3D0xca3d0) at RTError.m3:4= > >0 > >> >>> #6 0x0008eb88 in RTException__Crash (M3_Cblw37_a=3D0xbfffee00=2C > >> >>> M3_AicXUJ_raises=3D0 '\0'=2C M3_AJWxb1_rte=3D0xcb538) at RTException.= > >m3:79 > >> >>> #7 0x0008e74c in RTException__DefaultBackstop > >> >>> (M3_Cblw37_a=3D0xbfffee00=2C M3_AicXUJ_raises=3D0 '\0') at =20 > >> >>> RTException.m3:39 > >> >>> #8 0x0008e614 in RTException__InvokeBackstop > >> >>> (M3_Cblw37_a=3D0xbfffee00=2C M3_AicXUJ_raises=3D0 '\0') at =20 > >> >>> RTException.m3:25 > >> >>> #9 0x00095d04 in RTException__Raise (M3_Cblw37_act=3D0xbfffee00) at > >> >>> RTExFrame.m3:29 > >> >>> #10 0x0008e840 in RTException__DefaultBackstop > >> >>> (M3_Cblw37_a=3D0xbfffee00=2C M3_AicXUJ_raises=3D0 '\0') at =20 > >> >>> RTException.m3:47 > >> >>> #11 0x0008e614 in RTException__InvokeBackstop > >> >>> (M3_Cblw37_a=3D0xbfffee00=2C M3_AicXUJ_raises=3D0 '\0') at =20 > >> >>> RTException.m3:25 > >> >>> #12 0x00095d04 in RTException__Raise (M3_Cblw37_act=3D0xbfffee00) at > >> >>> RTExFrame.m3:29 > >> >>> #13 0x00079740 in RTHooks__ReportFault (M3_AJWxb1_module=3D0xb3eb8=2C > >> >>> M3_AcxOUs_info=3D74048) at RTHooks.m3:110 > >> >>> #14 0x0006ff4c in _m3_fault (M3_AcxOUs_arg=3D74048) > >> >>> #15 0x0006bcf4 in RTHooks__CheckStoreTraced > >> >>> (M3_Af40ku_ref=3D0xb2415c) at RTCollector.m3:2314 > >> >>> #16 0x000700e4 in ThreadPThread__InnerLockMutex > >> >>> (M3_AYIbX3_m=3D0xb2415c=2C M3_BXP32l_self=3D0xb24014) at > >> >>> ThreadPThread.m3:126 > >> >>> #17 0x000704d8 in ThreadPThread__LockMutex (M3_AYIbX3_m=3D0xb2415c) > >> >>> at ThreadPThread.m3:153 > >> >>> #18 0x00019b24 in Wr__PutText (M3_BxxOH1_wr=3D0xb2415c=2C > >> >>> M3_Bd56fi_t=3D0xb44d5c) at Wr.m3:93 > >> >>> #19 0x00003f74 in Main_M3 (M3_AcxOUs_mode=3D1) at Main.m3:113 > >> >>> #20 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=3D0xad190) at > >> >>> RTLinker.m3:399 > >> >>> #21 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=3D0xad190) at > >> >>> RTLinker.m3:113 > >> >>> #22 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=3D0x3600) at > >> >>> RTLinker.m3:122 > >> >>> #23 0x00001fac in main (argc=3D4=2C argv=3D0xbffffb24=2C envp=3D0xbff= > >ffb38) > >> >>> at _m3main.mc:4 > >> >>> (gdb) > >> >>> > >> >>> The second error: > >> >>> > >> >>> Program received signal EXC_BAD_INSTRUCTION=2C Illegal instruction/ > >> >>> operand. > >> >>> 0x00b111ac in ?? () > >> >>> (gdb) where > >> >>> #0 0x00b111ac in ?? () > >> >>> #1 0x0001214c in TextSubs__Apply (M3_CN69dV_self=3D0xb26450=2C > >> >>> M3_Bd56fi_src=3D0xb21cec) at TextSubs.m3:63 > >> >>> #2 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=3D0xad190) at > >> >>> RTLinker.m3:399 > >> >>> #3 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=3D0xad190) at > >> >>> RTLinker.m3:113 > >> >>> #4 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=3D0x3600) at > >> >>> RTLinker.m3:122 > >> >>> #5 0x00001fac in main (argc=3D4=2C argv=3D0xbffffb24=2C envp=3D0xbff= > >ffb38) > >> >>> at _m3main.mc:4 > >> >>> (gdb) list > >> >>> 58 BEGIN > >> >>> 59 WHILE pos < textLen DO > >> >>> 60 c :=3D Text.GetChar(src=2C pos)=3B > >> >>> 61 IF c IN self.starts THEN > >> >>> 62 (* S("analysing: " & Text.Sub(src=2C pos)=2C > >> >>> DebugLevel)=3B *) > >> >>> 63 iter :=3D self.tbl.iterateOrdered()=3B > >> >>> 64 ind :=3D pos=3B > >> >>> 65 original :=3D ""=3B > >> >>> 66 REPEAT > >> >>> 67 INC(ind)=3B > >> >>> (gdb) > >> >>> > >> >>> Any ideas what to look at? > >> >>> > >> >>> I don't know if this is relevant: > >> >>> > >> >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% uname -a > >> >>> Darwin lapdog.local 7.9.0 Darwin Kernel Version 7.9.0: Wed Mar 30 > >> >>> 20:11:17 PST 2005=3B root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC Power > >> >>> Macintosh powerpc > >> >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% gcc -v > >> >>> Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs > >> >>> Thread model: posix > >> >>> gcc version 3.3 20030304 (Apple Computer=2C Inc. build 1666) > >> >>> > >> >>> Mika > >> >>> > >> >>> P.S. Am I correct in assuming that I can get CM3 to build on =20 > >> >>> Windows? > >> >>> I could switch to CM3 on Unix any time=2C of course=2C but I've never > >> >>> had luck with it on Windows=2C which is why I am using the ancient > >> >>> Klagenfurt PM3=2C which comes on 40-odd "floppies" and a .EXE that > >> >>> unpacks them into C: (and installation instructions only in German). > >> >>> If CM3 doesn't work on Windows=2C I am essentially wasting my time=2C > >> >>> as the current project I am working on absolutely requires that the > >> >>> software run on Windows 2003 Server (yes=2C it sucks=2C but what can > >> >>> you do?) The very old PM3 at least kind of hobbles along on this > >> >>> platform---actually=2C better than that=3B it does Trestle natively > >> >>> under Windows (no X required)=2C at least on SOME Windows machines. > >> >>> > >> >>> P.P.S. Sorry for all the postscripts=2C but is it true that the > >> >>> build system has been changed so that building with overrides =20 > >> >>> (cm3 -x) > >> >>> requires having the compiler sources available? It didn't use to > >> >>> be that way=2C but I can't get Network Objects to work with overrides > >> >>> now unless I have the sources available... It's a bit of a pain > >> >>> because it means that every user has to have the compiler sources=2C > >> >>> or else ship everything=2C or was that not the intention? > > = > > > >--_6374b72e-0dad-4a03-8d22-4a59e0218226_ > >Content-Type: text/html; charset="iso-8859-1" > >Content-Transfer-Encoding: quoted-printable > > > > > > > > > > > >I upgrade across incompatibilities frequently & H= > >udson does now too. The existing scripts work very well and you would be fo= > >olish to not use them. Just use upgrade.py. It is very easy. Or upgrade.py = > >nocleangcc. And then do-cm3-all.py skipgcc realclean && do-cm3-all.py build= > >ship.py.

- Jay/phone

> To:=3B jay.krell@=3Bcornell.edu= > >
> Date:=3B Sat=2C 8 Jan 2011 04:=3B14:=3B41 -0800
> From= > >8=3B mika@=3Basync.caltech.edu
> CC:=3B m3devel@=3Belegosoft.co= > >m
> Subject:=3B Re:=3B [=3BM3devel]=3B another Snow Leopard = > >compiler crash
>
> Jay K writes:=3B
> >=3B
> >=3BPlea= > >se try this Mika. It fixes the problem for me.
>
> Hi Jay=2C
> >r>> So I upgraded to the CVS head and now I get a segfaulting compiler:= > >=3B
>
> [=3Bhal:=3Bcm3/m3-libs/m3core]=3B mika%=3B gdb &= > >#36=3BCM3
> GNU gdb 6.3.50-20050815 (=3BApple version gdb-1510)=3B= > > (=3BWed Sep 22 02:=3B45:=3B02 UTC 2010)=3B
> Copyright 2004= > > Free Software Foundation=2C Inc.
> GDB is free software=2C covered by t= > >he GNU General Public License=2C and you are
> welcome to change it and/= > >or distribute copies of it under certain conditions.
> Type "=3Bshow = > >copying"=3B to see the conditions.
> There is absolutely no warranty = > >for GDB. Type "=3Bshow warranty"=3B for details.
> This GDB was c= > >onfigured as "=3Bx86_64-apple-darwin"=3B...Reading symbols for shared= > > libraries ...... done
>
> (=3Bgdb)=3B run
> Starting progr= > >am:=3B /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3
> Reading symbols for = > >shared libraries .+=3B+=3B+=3B+=3B+=3B.......... done
> <= > >br>> Program received signal EXC_BAD_ACCESS=2C Could not access memory.
= > >> Reason:=3B KERN_PROTECTION_FAILURE at address:=3B 0x0000038b
> 0= > >x9713354b in _longjmp (=3B)=3B
> (=3Bgdb)=3B where
> #= > >=3B0 0x9713354b in _longjmp (=3B)=3B
> #=3B1 0x00285d2b in RT= > >ExFrame__InvokeHandler (=3Bf==3B0xbffff34c=2C a==3B0xbffff23c)= > >=3B at ../src/runtime/ex_frame/RTExFrame.m3:=3B175
> #=3B2 0x0028= > >5be4 in RTException__ResumeRaise (=3Ba==3B0xbffff23c)=3B at ../src= > >/runtime/ex_frame/RTExFrame.m3:=3B145
> #=3B3 0x00285a1b in RTExc= > >eption__Raise (=3Bact==3B0xbffff23c)=3B at ../src/runtime/ex_frame= > >/RTExFrame.m3:=3B91
> #=3B4 0x00269d44 in RTHooks__Raise (=3Be= > >x==3B0x35a720=2C arg==3B0x181cddc=2C module==3B0x398080=2C line= > >1=3B50)=3B at ../src/runtime/common/RTHooks.m3:=3B79
> #=3B5 0= > >x0023adbc in OSErrorPosix__Raise0 (=3Berrno==3B2)=3B at ../src/os/= > >POSIX/OSErrorPosix.m3:=3B50
> #=3B6 0x0023cffc in FSPosix__Fail &= > >#40=3Bp==3B0x181cdc0=2C f==3B0xf049f0)=3B at ../src/os/POSIX/FSPos= > >ix.m3:=3B359
> #=3B7 0x0023cdd4 in FS__Status (=3Bpn==3B0x1= > >81cdc0=2C _result==3B0xbffff3c8)=3B at ../src/os/POSIX/FSPosix.m3:= > >=3B328
> #=3B8 0x00217d24 in M3File__IsReadable (=3Bpath==3B0x= > >181cdc0)=3B at ../src/M3File.m3:=3B123
> #=3B9 0x000a057f in M= > >xConfig__TryConfig (=3Ba==3B0x3255e0=2C b==3B0x3255f0=2C c==3B0= > >x0)=3B at ../src/MxConfig.m3:=3B122
> #=3B10 0x0009ff67 in MxCo= > >nfig__FindConfig (=3B)=3B at ../src/MxConfig.m3:=3B51
> #=3B= > >11 0x0009fcd8 in MxConfig__FindFile (=3B)=3B at ../src/MxConfig.m3= > >8=3B19
> #=3B12 0x0002c446 in Main__DoIt (=3B)=3B at ../src/Mai= > >n.m3:=3B32
> #=3B13 0x0002d1e9 in Main_M3 (=3Bmode==3B1)= > >=3B at ../src/Main.m3:=3B214
> #=3B14 0x0027a781 in RTLinker__RunM= > >ainBody (=3Bm==3B0x3705a0)=3B at ../src/runtime/common/RTLinker.m3= > >:=3B406
> #=3B15 0x00279bb6 in RTLinker__AddUnitI (=3Bm==3B0= > >x3705a0)=3B at ../src/runtime/common/RTLinker.m3:=3B113
> #=3B1= > >6 0x00279c3a in RTLinker__AddUnit (=3Bb==3B0x2d1d0)=3B at ../src/r= > >untime/common/RTLinker.m3:=3B122
> #=3B17 0x00002cfc in main (= > >=3Bargc==3B1=2C argv==3B0xbffff674=2C envp==3B0xbffff67c)=3B at= > > _m3main.c:=3B16
> (=3Bgdb)=3B
>
> I followed upgrade i= > >nstructions from Tony (=3Bincluding upgrading the
> back-end)=3B--= > >-I have edited the instructions a bit to track changes in
> CM3. I'= > >=3Bm starting from head three weeks old..
>
> Mika
>
> = > >
> Return-Path:=3B hosking@=3Bcs.purdue.edu
> Delivery-Date:= > >=3B Sun Jun 24 07:=3B38:=3B38 2007
> In-Reply-To:=3B <=3B200= > >706231838.l5NIcRef079333@=3Bcamembert.async.caltech.edu>=3B
> Refe= > >rences:=3B <=3B200706231838.l5NIcRef079333@=3Bcamembert.async.calt= > >ech.edu>=3B
>
> Sounds like we really need some work done in this= > > area. I very
> rarely use the build scripts=2C since I bootstrap man= > >ually from old
> compilers to new compilers rather than use the script= > >s. I suggest
> the following approach=2C which I hope you will try=2C= > > and then report
> back on.
>
> Install the bootstrap compiler = > >as you did originally:=3B
>
> >=3B rm -rf /usr/local/cm3/*= > >=3B
> >=3B
> >=3B cd ~=3B/cm3-cvs
> >=3B mkdir boot >r>> >=3B cd boot
> >=3B tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-= > >2005-10-05.tgz
> >=3B ./cminstall
>
>
> Now you will have = > >some kind of cm3 installed=2C presumably in /usr/
> local/cm3/bin/cm3.<= > >br>>
> Make sure you have a fresh CVS checkout in directory cm3 (=3B= > >let'=3Bs
> assume this is in your home directory ~=3B/cm3)= > >=3B. Also=2C make sure you
> have an up-to-date version of the CM3 ba= > >ckend compiler cm3cg
> installed by executing the following:=3B
= > >>
> STEP 0:=3B
>
> export CM3==3B/usr/local/cm3/bin/cm3 >>> cd ~=3B/cm3/m3-sys/m3cc
> $=3BCM3
> $=3BCM3 -ship
> <= > >br>> You can skip this last step if you know your backend compiler is up <= > >br>> to date.
>
> Now=2C let'=3Bs build the new compiler from scr= > >atch (=3Bthis is the sequence
> I use regularly to test changes to = > >the run-time system whenever I
> make them)=3B:=3B
>
> ca= > >n replace compilation step with
>
> rm -rf <=3Bder. dir>=3B &#= > >38=3B&=3B $=3BCM3 &=3B&=3B $=3BCM3 -ship
>
>
> S= > >TEP 1:=3B
>
> (=3Bdo these LATER if bootstrapping from old com= > >piler!=3B)=3B
> cd ~=3B/cm3/m3-libs/m3core
> $=3BCM3
= > >> $=3BCM3 -ship
> cd ~=3B/cm3/m3-libs/libm3
> $=3BCM3
> = > >$=3BCM3 -ship
>
> Now build the compiler:=3B
>
> cd &#= > >126=3B/cm3/m3-libs/sysutils ;=3B $=3BCM3 etc.
>
> cd ~=3B/= > >cm3/m3-sys/m3middle;=3B $=3BCM3 etc.
>
> repeat for:=3B
= > >>
> m3-sys/m3objfile
>
> m3-sys/m3back
>
> m3-sys/m3lin= > >ker
>
> m3-sys/m3front
>
> m3-sys/m3quake
>
> m3-sys/c= > >m3
>
> [=3B here we may need -DROOT==3B<=3Broot dir=2C e.g.= > >=2C /home/mika/cm3>=3B ]=3B
>
>
> At this point you should= > > have a bootstrapped version of cm3 installed
> in the directory /usr/= > >local/cm3/pkg/cm3/TARGET/cm3 (=3Bwhere TARGET is
> the CM3 target p= > >latform you are building on -- e.g.=2C LINUXLIBC6=2C
> PPC_DARWIN=2C .= > >..)=3B. Note that this did not overwrite your original
> installed= > > compiler in /usr/local/cm3/bin/cm3. We
> are now going to test the new= > > compiler=2C which was built using the old
> compiler=2C by bootstrapp= > >ing it one more time.
>
>
> *=3B*=3B*=3B*=3B*=3B&= > >#42=3B*=3B THIS IS WHERE I HAVE A SEGFAULTING COMPILER *=3B*=3B= > >2=3B*=3B*=3B*=3B*=3B
>
> (=3BIf m3core and libm3 were= > > skipped earlier=2C do them now=2C and RE-DO all
> of the above packages= > > before proceeding.)=3B
>
> From here on out=2C please replace TA= > >RGET with your target platform as
> appropriate.
>
> STEP 2:= > >=3B
>
> export CM3==3B/usr/local/cm3/pkg/cm3/TARGET/cm3
> cd &= > >#126=3B/cm3/scripts
>
> ./do-cm3-std.sh realclean
> REPEAT STEP 1= > > to rebuild the libraries and the compiler using the
> STEP 1 bootstra= > >p compiler.
>
> Now you have a STEP 2 bootstrap compiler installed i= > >n /usr/local/cm3/
> pkg/cm3/TARGET/cm3. Let'=3Bs assume the new com= > >piler now works properly
> since it successfully bootstrapped itself= > >=2C but to be sure we can now
> use it to rebuild the world:=3B
= > >>
> cd ~=3B/cm3/scripts
> ./do-cm3-std.sh realclean
> ./do-cm= > >3-std.sh buildship
>
> Assuming this succeeded then we can be pretty= > > sure /usr/local/cm3/pkg/
> cm3/TARGET/cm3 is good=2C so we can make it= > > our default compiler by
> replacing the original /usr/local/cm3/bin/c= > >m3:=3B
>
> cp $=3BCM3 /usr/local/cm3/bin/cm3
>
> On Jun= > > 23=2C 2007=2C at 2:=3B38 PM=2C Mika Nystrom wrote:=3B
>
> = > >2=3B Ok=2C I'=3Bm sorry if I seem a bit dimwitted in the morning like th= > >is=2C
> >=3B but how exactly does one get started?=3B I wish ther= > >e were a file called
> >=3B "=3BGETTING_STARTED"=3B or somethin= > >g like that in scripts...
> >=3B
> >=3B My Mac is very slow so = > >I switched to my FreeBSD/i386 system (=3Bwhich has
> >=3B PM3 happ= > >ily installed on it)=3B and tried to install CM3 from scratch.
> >= > >=3B Here are the exact commands I typed.
> >=3B
> >=3B
> = > >2=3B rm -rf /usr/local/cm3/*=3B
> >=3B
> >=3B cd ~=3B/cm= > >3-cvs
> >=3B mkdir boot
> >=3B cd boot
> >=3B tar xzvf ..= > >/cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz
> >=3B ./cminstall
>= > > >=3B
> >=3B #=3B now I seem to have some kind of cm3 installed= > >=2C /usr/local/cm3/bin/
> >=3B cm3
> >=3B
> >=3B cd cm3 = > > #=3B location of my CM3 checkout
> >=3B cvs update -d .
> = > >2=3B
> >=3B cd scripts
> >=3B ./boot-cm3-with-m3.sh realclean >r>> >=3B ./do-cm3-std.sh realclean
> >=3B
> >=3B ./upgrade.s= > >h #=3B fails here=2C libm3 not compiled
> >= > >=3B ./boot-cm3-with-m3.sh build #=3B builds cm3=2C but fails on <= > >br>> >=3B cminstall=2C patternmatching not built
> >=3B
> >= > >=3B ./do-cm3-std.sh build #=3B OK
> >=3B ./do-cm3-std.= > >sh buildship #=3B OK
> >=3B
> >=3B ./boot-cm3-with-m= > >3.sh realclean #=3B start over
> >=3B ./boot-cm3-with-m3.sh buil= > >d #=3B OK
> >=3B ./boot-cm3-with-m3.sh buildship #=3B O= > >K
> >=3B
> >=3B ./do-cm3-std.sh realclean #=3B OK >>> >=3B ./do-cm3-std.sh build #=3B dies miserably... mayb= > >e the
> >=3B compiler can'=3Bt handle the new libraries?=3B >r>> >=3B
> >=3B ./install-cm3-compiler.sh upgrade #=3B OK=2C ne= > >w cm3 binary installed
> >=3B
> >=3B After all that=2C "=3Bg= > >ame over."=3B I have a cm3 that segfaults.
> >=3B
> >=3B Te= > >xt.i3:=3B In function '=3BText_I3'=3B:=3B
> >=3B Text.i3&= > >#58=3B81:=3B internal compiler error:=3B Segmentation fault
> >= > >=3B Please submit a full bug report=2C
> >=3B with preprocessed sourc= > >e if appropriate.
> >=3B See <=3BURL:=3Bhttp:=3B//gcc.gnu.or= > >g/bugs.html>=3B for instructions.
> >=3B compilation failed == > >=3B>=3B not building library "=3Blibm3core.a"=3B
> >=3B Fata= > >l Error:=3B package build failed
> >=3B *=3B*=3B*=3B exe= > >cution of failed *=3B*=3B*=3B
> >=3B
> >=3B I can'= > >=3Bt seem to get either m3gdb or gdb to say anything reasonable
> >= > >=3B either. ktrace shows nothing out of the ordinary.
> >=3B
> &#= > >62=3B -----
> >=3B
> >=3B Meanwhile=2C my Mac got through "= > >=3Bdo-cm3-std.sh realclean"=3B and
> >=3B "=3Bdo-cm3-std.sh bui= > >ldship"=3B but my compiles are still dying on the
> >=3B same asse= > >rtion tickled by ktok. On that machine I have INSTALLROOT
> >=3B set= > > to ~=3B/cm3=2C but hopefully that has nothing to do with it...
> &#= > >62=3B
> >=3B -----
> >=3B
> >=3B Does do-cm3-std.sh realc= > >lean clean EVERYTHING?=3B If so my Mac should
> >=3B really have = > >a fresh setup. The FreeBSD=2C I am not sure=2C maybe the
> >=3B old = > >binary version just doesn'=3Bt work right?=3B Of course I could try<= > >br>> >=3B bootstrapping with PM3 as well... but really=2C there'=3Bs = > >an "=3Bapproved"=3B
> >=3B process to get from a blank system= > >=2C no?=3B
> >=3B
> >=3B Mika
> >=3B
> >= > >=3B
> >=3B
> >=3B
> >=3B Tony Hosking writes:=3B
> = > >>=3B>=3B That sounds like you forgot to execute "=3Bdo-cm3-std.sh = > >realclean"=3B
> >=3B>=3B before initiating the build. These so= > >rts of errors sometimes arise
> >=3B>=3B if there are old build di= > >rectories lying around.
> >=3B>=3B
> >=3B>=3B On Jun 23= > >=2C 2007=2C at 3:=3B34 AM=2C Mika Nystrom wrote:=3B
> >=3B>= > >=3B
> >=3B>=3B>=3B Hello everyone=2C
> >=3B>=3B>=3B= > >
> >=3B>=3B>=3B I am in the process of trying to consolidate bu= > >ild systems for a
> >=3B>=3B>=3B few software packages I am mai= > >ntaining. Currently=2C I am using an
> >=3B>=3B>=3B old PM3 on= > > FreeBSD4=2C an ancient PM3 (=3Bfrom Klagenfurt?=3B)=3B for Window= > >s
> >=3B>=3B>=3B (=3BNT386GNU)=3B=2C and trying to get th= > >e latest CM3 from cvs up and
> >=3B>=3B>=3B compiling
> &#= > >62=3B>=3B>=3B things on PPC_DARWIN. Ideally=2C I'=3Bd like to sta= > >ndardize everything
> >=3B>=3B>=3B on the new PM3---mainly so t= > >hat I can use pickles (=3Band Network
> >=3B>=3B>=3B Objects= > >)=3B across all three systems. I'=3Bd also like to add Linux to
>= > > >=3B>=3B>=3B the mix.
> >=3B>=3B>=3B
> >=3B>= > >=3B>=3B It'=3Bs natural for me to start with CM3 on Darwin=2C as ther= > >e'=3Bs no
> >=3B>=3B>=3B alternative. But I am getting some= > > assertions failing. Everything
> >=3B>=3B>=3B in the CM3 dist= > >ribution compiles fine=2C and I believe I have compiled
> >=3B>=3B= > >>=3B the libraries a few times (=3Bthat is=2C including with themselv= > >es)=3B=2C and
> >=3B>=3B>=3B updated the compiler=2C too = > >0=3Busing boot-cm3-with-m3.sh)=3B. I just cvs
> >=3B>=3B>= > >=3B updated tonight.
> >=3B>=3B>=3B
> >=3B>=3B>=3B = > >Here'=3Bs what I'=3Bm running into:=3B
> >=3B>=3B>=3B<= > >br>> >=3B>=3B>=3B /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../s= > >rc/CHP.t -o
> >=3B>=3B>=3B CHPTok.i3
> >=3B>=3B>= > >=3B
> >=3B>=3B>=3B *=3B*=3B*=3B
> >=3B>=3B= > >2=3B *=3B*=3B*=3B runtime error:=3B
> >=3B>=3B>=3B = > >*=3B*=3B*=3B <=3B*=3BASSERT*=3B>=3B failed.
> &#= > >62=3B>=3B>=3B *=3B*=3B*=3B file "=3B../src/runtime/com= > >mon/RTCollector.m3"=3B=2C line 2314
> >=3B>=3B>=3B *=3B&#= > >42=3B*=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B Abort >>> >=3B>=3B>=3B
> >=3B>=3B>=3B Also:=3B
> >= > >=3B>=3B>=3B
> >=3B>=3B>=3B /Users/mika/t/parserlib/ktok/P= > >PC_DARWIN/tok ../src/PRS.t -o
> >=3B>=3B>=3B PRSTok.i3
> &= > >#62=3B>=3B>=3B Illegal instruction
> >=3B>=3B>=3B
> &#= > >62=3B>=3B>=3B As you can see=2C these things are coming from the calt= > >ech_parser. I
> >=3B>=3B am using
> >=3B>=3B>=3B our = > >local version=2C but I don'=3Bt think it is very different from what
= > >> >=3B>=3B>=3B is in the
> >=3B>=3B>=3B CM3 tree.
>= > > >=3B>=3B>=3B
> >=3B>=3B>=3B Examining the first error= > > (=3Bthe failed assertion)=3B more closely=2C I see
> >=3B>= > >=3B>=3B the following:=3B
> >=3B>=3B>=3B
> >=3B>= > >=3B>=3B (=3Bgdb)=3B list
> >=3B>=3B>=3B 108 wr= > > :=3B==3B FileWr.Open(=3BPathname.ReplaceExt(=3Btp.out=2C "= > >=3Bm3"=3B)=3B)=3B;=3B
> >=3B>=3B>=3B 109 EXCE= > >PT OSError.E ==3B>=3B
> >=3B>=3B>=3B 110 Debug.Er= > >ror(=3B"=3BCannot open tok implementation output
> >=3B>=3B&= > >#62=3B file:=3B "=3B &=3B
> >=3B>=3B>=3B 111 = > > Pathname.ReplaceExt(=3Btp.out=2C "=3Bm3"=3B)=3B)=3B;=3B<= > >br>> >=3B>=3B>=3B 112 END;=3B
> >=3B>=3B>=3B = > >113 Wr.PutText(=3Bwr=2C subs.apply(=3BBundle.Get(=3BForm=2C = > >
> >=3B>=3B>=3B "=3Btokform.m3"=3B)=3B)=3B)=3B&= > >#59=3B
> >=3B>=3B>=3B 114 Wr.Close(=3Bwr)=3B;=3B= > >
> >=3B>=3B>=3B 115 END Main.
> >=3B>=3B>=3B &#= > >40=3Bgdb)=3B where
> >=3B>=3B>=3B #=3B0 0x9004308c in ki= > >ll (=3B)=3B
> >=3B>=3B>=3B #=3B1 0x9009fb3c in abort = > >(=3B)=3B
> >=3B>=3B>=3B #=3B2 0x00096f50 in RTOS__Cra= > >sh (=3B)=3B at RTOS.m3:=3B20
> >=3B>=3B>=3B #=3B3 = > >0x0005bd40 in RTProcess__Crash (=3BM3_Bd56fi_msg==3B0x0)=3B at
= > >> >=3B>=3B>=3B RTProcess.m3:=3B65
> >=3B>=3B>=3B &#= > >35=3B4 0x0008e4e0 in RTError__EndError (=3BM3_AicXUJ_crash==3B1 '= > >=3B\=3B001'=3B)=3B at
> >=3B>=3B>=3B RTError.m3:=3B= > >115
> >=3B>=3B>=3B #=3B5 0x0008e08c in RTError__MsgS (= > >=3BM3_AJWxb1_file==3B0xc63d8=2C
> >=3B>=3B>=3B M3_AcxOUs_lin= > >e==3B2314=2C M3_Bd56fi_msgA==3B0xca3d0=2C
> >=3B>=3B>=3B = > >M3_Bd56fi_msgB==3B0xcbe90=2C M3_Bd56fi_msgC==3B0xca3d0)=3B at RTEr= > >ror.m3:=3B40
> >=3B>=3B>=3B #=3B6 0x0008eb88 in RTExcept= > >ion__Crash (=3BM3_Cblw37_a==3B0xbfffee00=2C
> >=3B>=3B>= > >=3B M3_AicXUJ_raises==3B0 '=3B\=3B0'=3B=2C M3_AJWxb1_rte==3B= > >0xcb538)=3B at RTException.m3:=3B79
> >=3B>=3B>=3B #= > >=3B7 0x0008e74c in RTException__DefaultBackstop
> >=3B>=3B>=3B= > > (=3BM3_Cblw37_a==3B0xbfffee00=2C M3_AicXUJ_raises==3B0 '=3B = > >2=3B0'=3B)=3B at
> >=3B>=3B>=3B RTException.m3:=3B39= > >
> >=3B>=3B>=3B #=3B8 0x0008e614 in RTException__InvokeBack= > >stop
> >=3B>=3B>=3B (=3BM3_Cblw37_a==3B0xbfffee00=2C M3_A= > >icXUJ_raises==3B0 '=3B\=3B0'=3B)=3B at
> >=3B>=3B= > >>=3B RTException.m3:=3B25
> >=3B>=3B>=3B #=3B9 0x0009= > >5d04 in RTException__Raise (=3BM3_Cblw37_act==3B0xbfffee00)=3B at<= > >br>> >=3B>=3B>=3B RTExFrame.m3:=3B29
> >=3B>=3B>=3B= > > #=3B10 0x0008e840 in RTException__DefaultBackstop
> >=3B>=3B&#= > >62=3B (=3BM3_Cblw37_a==3B0xbfffee00=2C M3_AicXUJ_raises==3B0 '= > >=3B\=3B0'=3B)=3B at
> >=3B>=3B>=3B RTException.m3= > >8=3B47
> >=3B>=3B>=3B #=3B11 0x0008e614 in RTException__Invo= > >keBackstop
> >=3B>=3B>=3B (=3BM3_Cblw37_a==3B0xbfffee00= > >=2C M3_AicXUJ_raises==3B0 '=3B\=3B0'=3B)=3B at
> >= > >=3B>=3B>=3B RTException.m3:=3B25
> >=3B>=3B>=3B #= > >=3B12 0x00095d04 in RTException__Raise (=3BM3_Cblw37_act==3B0xbfffee0= > >0)=3B at
> >=3B>=3B>=3B RTExFrame.m3:=3B29
> >=3B&#= > >62=3B>=3B #=3B13 0x00079740 in RTHooks__ReportFault (=3BM3_AJWxb1_= > >module==3B0xb3eb8=2C
> >=3B>=3B>=3B M3_AcxOUs_info==3B740= > >48)=3B at RTHooks.m3:=3B110
> >=3B>=3B>=3B #=3B14 0x00= > >06ff4c in _m3_fault (=3BM3_AcxOUs_arg==3B74048)=3B
> >=3B= > >2=3B>=3B #=3B15 0x0006bcf4 in RTHooks__CheckStoreTraced
> >=3B&= > >#62=3B>=3B (=3BM3_Af40ku_ref==3B0xb2415c)=3B at RTCollector.m3&= > >#58=3B2314
> >=3B>=3B>=3B #=3B16 0x000700e4 in ThreadPThread= > >__InnerLockMutex
> >=3B>=3B>=3B (=3BM3_AYIbX3_m==3B0xb241= > >5c=2C M3_BXP32l_self==3B0xb24014)=3B at
> >=3B>=3B>=3B Th= > >readPThread.m3:=3B126
> >=3B>=3B>=3B #=3B17 0x000704d8 in= > > ThreadPThread__LockMutex (=3BM3_AYIbX3_m==3B0xb2415c)=3B
> = > >2=3B>=3B>=3B at ThreadPThread.m3:=3B153
> >=3B>=3B>=3B= > > #=3B18 0x00019b24 in Wr__PutText (=3BM3_BxxOH1_wr==3B0xb2415c=2C<= > >br>> >=3B>=3B>=3B M3_Bd56fi_t==3B0xb44d5c)=3B at Wr.m3:= > >=3B93
> >=3B>=3B>=3B #=3B19 0x00003f74 in Main_M3 (=3BM3_= > >AcxOUs_mode==3B1)=3B at Main.m3:=3B113
> >=3B>=3B>=3B = > >#=3B20 0x0005b1c4 in RTLinker__RunMainBody (=3BM3_DjPxE3_m==3B0xad= > >190)=3B at
> >=3B>=3B>=3B RTLinker.m3:=3B399
> >=3B= > >>=3B>=3B #=3B21 0x00059f88 in RTLinker__AddUnitI (=3BM3_DjPxE3_= > >m==3B0xad190)=3B at
> >=3B>=3B>=3B RTLinker.m3:=3B113<= > >br>> >=3B>=3B>=3B #=3B22 0x0005a084 in RTLinker__AddUnit (= > >=3BM3_DjPxE5_b==3B0x3600)=3B at
> >=3B>=3B>=3B RTLinker.m= > >3:=3B122
> >=3B>=3B>=3B #=3B23 0x00001fac in main (=3B= > >argc==3B4=2C argv==3B0xbffffb24=2C envp==3B0xbffffb38)=3B
> = > >>=3B>=3B>=3B at _m3main.mc:=3B4
> >=3B>=3B>=3B (= > >=3Bgdb)=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B The sec= > >ond error:=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B Prog= > >ram received signal EXC_BAD_INSTRUCTION=2C Illegal instruction/
> >= > >=3B>=3B>=3B operand.
> >=3B>=3B>=3B 0x00b111ac in ?=3B= > >?=3B (=3B)=3B
> >=3B>=3B>=3B (=3Bgdb)=3B where >r>> >=3B>=3B>=3B #=3B0 0x00b111ac in ?=3B?=3B (=3B= > >1=3B
> >=3B>=3B>=3B #=3B1 0x0001214c in TextSubs__Apply = > >0=3BM3_CN69dV_self==3B0xb26450=2C
> >=3B>=3B>=3B M3_Bd56fi_s= > >rc==3B0xb21cec)=3B at TextSubs.m3:=3B63
> >=3B>=3B>=3B= > > #=3B2 0x0005b1c4 in RTLinker__RunMainBody (=3BM3_DjPxE3_m==3B0xa= > >d190)=3B at
> >=3B>=3B>=3B RTLinker.m3:=3B399
> >= > >=3B>=3B>=3B #=3B3 0x00059f88 in RTLinker__AddUnitI (=3BM3_DjPx= > >E3_m==3B0xad190)=3B at
> >=3B>=3B>=3B RTLinker.m3:=3B1= > >13
> >=3B>=3B>=3B #=3B4 0x0005a084 in RTLinker__AddUnit = > >0=3BM3_DjPxE5_b==3B0x3600)=3B at
> >=3B>=3B>=3B RTLinker.= > >m3:=3B122
> >=3B>=3B>=3B #=3B5 0x00001fac in main (= > >=3Bargc==3B4=2C argv==3B0xbffffb24=2C envp==3B0xbffffb38)=3B >>> >=3B>=3B>=3B at _m3main.mc:=3B4
> >=3B>=3B>=3B &= > >#40=3Bgdb)=3B list
> >=3B>=3B>=3B 58 BEGIN
> >= > >=3B>=3B>=3B 59 WHILE pos <=3B textLen DO
> >=3B>= > >=3B>=3B 60 c :=3B==3B Text.GetChar(=3Bsrc=2C pos)= > >=3B;=3B
> >=3B>=3B>=3B 61 IF c IN self.starts THE= > >N
> >=3B>=3B>=3B 62 (=3B*=3B S(=3B"=3B= > >analysing:=3B "=3B &=3B Text.Sub(=3Bsrc=2C pos)=3B=2C
> &= > >#62=3B>=3B>=3B DebugLevel)=3B;=3B *=3B)=3B
> >=3B&#= > >62=3B>=3B 63 iter :=3B==3B self.tbl.iterateOrdered= > >0=3B)=3B;=3B
> >=3B>=3B>=3B 64 ind :=3B&#= > >61=3B pos;=3B
> >=3B>=3B>=3B 65 original := > >=3B==3B "=3B"=3B;=3B
> >=3B>=3B>=3B 66 = > > REPEAT
> >=3B>=3B>=3B 67 INC(=3Bind)=3B&#= > >59=3B
> >=3B>=3B>=3B (=3Bgdb)=3B
> >=3B>=3B>= > >=3B
> >=3B>=3B>=3B Any ideas what to look at?=3B
> >= > >=3B>=3B>=3B
> >=3B>=3B>=3B I don'=3Bt know if this is = > >relevant:=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B [= > >=3Blapdog:=3B~=3B/t/cit_parse/PPC_DARWIN]=3B mika%=3B uname -a= > >
> >=3B>=3B>=3B Darwin lapdog.local 7.9.0 Darwin Kernel Version= > > 7.9.0:=3B Wed Mar 30
> >=3B>=3B>=3B 20:=3B11:=3B17 PS= > >T 2005;=3B root:=3Bxnu/xnu-517.12.7.obj~=3B1/RELEASE_PPC Power >r>> >=3B>=3B>=3B Macintosh powerpc
> >=3B>=3B>=3B [= > >=3Blapdog:=3B~=3B/t/cit_parse/PPC_DARWIN]=3B mika%=3B gcc -v >r>> >=3B>=3B>=3B Reading specs from /usr/libexec/gcc/darwin/ppc/3.= > >3/specs
> >=3B>=3B>=3B Thread model:=3B posix
> >=3B&#= > >62=3B>=3B gcc version 3.3 20030304 (=3BApple Computer=2C Inc. build 1= > >666)=3B
> >=3B>=3B>=3B
> >=3B>=3B>=3B Mika<= > >br>> >=3B>=3B>=3B
> >=3B>=3B>=3B P.S. Am I correct in = > >assuming that I can get CM3 to build on
> >=3B>=3B>=3B Window= > >s?=3B
> >=3B>=3B>=3B I could switch to CM3 on Unix any time= > >=2C of course=2C but I'=3Bve never
> >=3B>=3B>=3B had luck w= > >ith it on Windows=2C which is why I am using the ancient
> >=3B>= > >=3B>=3B Klagenfurt PM3=2C which comes on 40-odd "=3Bfloppies"=3B a= > >nd a .EXE that
> >=3B>=3B>=3B unpacks them into C:=3B (= > >=3Band installation instructions only in German)=3B.
> >=3B>=3B= > >>=3B If CM3 doesn'=3Bt work on Windows=2C I am essentially wasting my= > > time=2C
> >=3B>=3B>=3B as the current project I am working on = > >absolutely requires that the
> >=3B>=3B>=3B software run on Win= > >dows 2003 Server (=3Byes=2C it sucks=2C but what can
> >=3B>=3B= > >>=3B you do?=3B)=3B The very old PM3 at least kind of hobbles alo= > >ng on this
> >=3B>=3B>=3B platform---actually=2C better than th= > >at;=3B it does Trestle natively
> >=3B>=3B>=3B under Windows= > > (=3Bno X required)=3B=2C at least on SOME Windows machines.
> = > >2=3B>=3B>=3B
> >=3B>=3B>=3B P.P.S. Sorry for all the post= > >scripts=2C but is it true that the
> >=3B>=3B>=3B build system = > >has been changed so that building with overrides
> >=3B>=3B>= > >=3B (=3Bcm3 -x)=3B
> >=3B>=3B>=3B requires having the com= > >piler sources available?=3B It didn'=3Bt use to
> >=3B>=3B&= > >#62=3B be that way=2C but I can'=3Bt get Network Objects to work with ov= > >errides
> >=3B>=3B>=3B now unless I have the sources available.= > >.. It'=3Bs a bit of a pain
> >=3B>=3B>=3B because it means = > >that every user has to have the compiler sources=2C
> >=3B>=3B>= > >=3B or else ship everything=2C or was that not the intention?=3B
> > = > > > >= > > > >--_6374b72e-0dad-4a03-8d22-4a59e0218226_-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Jan 8 15:56:01 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 14:56:01 +0000 Subject: [M3devel] FW: LONGINT subrange problems In-Reply-To: References: <20110108081522.7A4C12474003@birch.elegosoft.com>, Message-ID: Tony any chance you can look at this? Or advise me where to fix? Notice the mismatches go both ways. This is on Darwin/i386 for me. Probably occurs on all 32bit targets & no 64bit targets. - Jay/phone > From: jay.krell at cornell.edu > To: m3devel at elegosoft.com > Date: Sat, 8 Jan 2011 08:19:06 +0000 > Subject: [M3devel] FW: LONGINT subrange problems > > > This is all based on Mika's work. > > > MODULE Main; > > PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; > > PROCEDURE F2() = > <*UNUSED*>VAR x: [0L..0L]; > BEGIN > END F2; > > PROCEDURE F3() = > VAR x: [0L..0L]; > BEGIN > F1(x); > END F3; > > BEGIN > F1(0L); > F2(); > F3(); > END Main. > > > (20) declare_procedure name:Main__F1 n_params:1 lev:0 exported:false procedure:0x0 procedure:0x4 > > (22) declare_procedure name:Main__F2 n_params:0 lev:0 exported:false procedure:0x0 procedure:0x5 > > (24) declare_procedure name:Main__F3 n_params:0 lev:0 exported:false procedure:0x0 procedure:0x6 > > > > (33) begin_procedure procedure:0x5 > (34) set_source_line 6 > (35) load_integer type:int_64 0 > (36) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int32 ] got [ Int64 ] > (37) store var:0x5 offset:0 src_t:int_32 dst_t:word_8 > (38) set_source_line 8 > (39) exit_proc type:void > (40) end_procedure procedure:0x5 > (41) comment comment:F3 > (42) set_source_line 0xA(10) > > (43) begin_procedure procedure:0x6 > (44) set_source_line 0xB(11) > (45) load_integer type:int_64 0 > (46) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int32 ] got [ Int64 ] > (47) store var:0x6 offset:0 src_t:int_32 dst_t:word_8 > (48) set_source_line 0xD(13) > > (49) start_call_direct procedure:0x4 level:0 > (50) load var:0x6 offset:0 src_t:word_8 dst_t:int_32 > (51) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] > (52) pop_param type:int_64 > (53) call_direct procedure:0x4 > (54) set_source_line 0xE(14) > (55) exit_proc type:void > (56) end_procedure procedure:0x6 > (57) comment comment:Main_M3 > (58) comment comment:module main body Main_M3 > (59) set_source_line 0x10(16) > > > > > > > > ---------------------------------------- > > Date: Sat, 8 Jan 2011 09:15:22 +0000 > > To: m3commit at elegosoft.com > > From: jkrell at elego.de > > Subject: [M3commit] CVS Update: cm3 > > > > CVSROOT: /usr/cvs > > Changes by: jkrell at birch. 11/01/08 09:15:21 > > > > Modified files: > > cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > > > > Log message: > > more LONGINT subrange problems, this now has 3 internal codegen errors, > > due to stack type and expected type mismatches > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sat Jan 8 22:59:33 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 8 Jan 2011 16:59:33 -0500 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: References: <20110106002615.77E782474003@birch.elegosoft.com>, Message-ID: <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu> I'll look into this one. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 8, 2011, at 12:17 AM, Jay K wrote: > > fyi, small repro: > > > MODULE Main; > > VAR x: [0L..0L]; > > PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; > > BEGIN > F2(x); > END Main. > > (32) start_call_direct procedure:0x4 level:0 > (33) load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 > (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] > (35) pop_param type:int_64 > > > - Jay > > > ________________________________ >> From: jay.krell at cornell.edu >> To: m3devel at elegosoft.com; mika at async.caltech.edu >> Subject: RE: codegen error (from Mika, new test p250) >> Date: Thu, 6 Jan 2011 01:21:00 +0000 >> >> fyi: >> >> jbook2:p250 jay$ rm -rf I386_DARWIN/ >> jbook2:p250 jay$ cm3 -keep >> --- building in I386_DARWIN --- >> >> new source -> compiling Main.m3 >> "../Main.m3", line 1: 1 code generation error >> 1 error encountered >> compilation failed => not building program "pgm" >> Fatal Error: package build failed >> jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment >> (4) comment comment:module global constants >> (6) comment comment:module global data >> (27) comment comment:F1 >> (34) comment comment:********* M3CG_Check ERROR >> *********** bad stack: expected [ Int64 ] got [ Int32 ] >> (43) comment comment:F2 >> (73) comment comment:Main_M3 >> (74) comment comment:module main body Main_M3 >> (83) comment comment:global constant type descriptor >> (85) comment comment:global data type descriptor >> (87) comment comment:module global constants >> (90) comment comment:procedure names >> (94) comment comment:procedure table >> (101) comment comment:file name >> (103) comment comment:type map for _t0174bdf4 >> (106) comment comment:type description for _t0174bdf4 >> (110) comment comment:module global data >> (120) comment comment:typecell for _t0174bdf4 >> (141) comment comment:load map >> (4) comment comment:module global constants >> (6) comment comment:module global data >> (27) comment comment:F1 >> (34) comment comment:********* M3CG_Check ERROR >> *********** bad stack: expected [ Int64 ] got [ Int32 ] >> (43) comment comment:F2 >> (73) comment comment:Main_M3 >> (74) comment comment:module main body Main_M3 >> (83) comment comment:global constant type descriptor >> (85) comment comment:global data type descriptor >> (87) comment comment:module global constants >> (90) comment comment:procedure names >> (94) comment comment:procedure table >> (101) comment comment:file name >> (103) comment comment:type map for _t0174bdf4 >> (106) comment comment:type description for _t0174bdf4 >> (110) comment comment:module global data >> (120) comment comment:typecell for _t0174bdf4 >> (141) comment comment:load map >> >> >> - Jay >> >> >>> Date: Thu, 6 Jan 2011 01:26:15 +0000 >>> To: m3commit at elegosoft.com >>> From: jkrell at elego.de >>> Subject: [M3commit] CVS Update: cm3 >>> >>> CVSROOT: /usr/cvs >>> Changes by: jkrell at birch. 11/01/06 01:26:15 >>> >>> Modified files: >>> cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 >>> >>> Log message: >>> slightly simpler, same error >>> > From hosking at cs.purdue.edu Sat Jan 8 23:06:02 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 8 Jan 2011 17:06:02 -0500 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: References: <20101227101653.307241A205B@async.async.caltech.edu>, , , , <20101227185453.97CE51A205B@async.async.caltech.edu>, , , , <20110108121441.A58031A205B@async.async.caltech.edu> Message-ID: I'm feeling foolish too since I never use them on my development system... ;-) On Jan 8, 2011, at 8:37 AM, Jay K wrote: > I upgrade across incompatibilities frequently & Hudson does now too. The existing scripts work very well and you would be foolish to not use them. Just use upgrade.py. It is very easy. Or upgrade.py nocleangcc. And then do-cm3-all.py skipgcc realclean && do-cm3-all.py buildship.py. > > - Jay/phone > > > To: jay.krell at cornell.edu > > Date: Sat, 8 Jan 2011 04:14:41 -0800 > > From: mika at async.caltech.edu > > CC: m3devel at elegosoft.com > > Subject: Re: [M3devel] another Snow Leopard compiler crash > > > > Jay K writes: > > > > > >Please try this Mika. It fixes the problem for me. > > > > Hi Jay, > > > > So I upgraded to the CVS head and now I get a segfaulting compiler: > > > > [hal:cm3/m3-libs/m3core] mika% gdb $CM3 > > GNU gdb 6.3.50-20050815 (Apple version gdb-1510) (Wed Sep 22 02:45:02 UTC 2010) > > Copyright 2004 Free Software Foundation, Inc. > > GDB is free software, covered by the GNU General Public License, and you are > > welcome to change it and/or distribute copies of it under certain conditions. > > Type "show copying" to see the conditions. > > There is absolutely no warranty for GDB. Type "show warranty" for details. > > This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries ...... done > > > > (gdb) run > > Starting program: /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3 > > Reading symbols for shared libraries .+++++.......... done > > > > Program received signal EXC_BAD_ACCESS, Could not access memory. > > Reason: KERN_PROTECTION_FAILURE at address: 0x0000038b > > 0x9713354b in _longjmp () > > (gdb) where > > #0 0x9713354b in _longjmp () > > #1 0x00285d2b in RTExFrame__InvokeHandler (f=0xbffff34c, a=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:175 > > #2 0x00285be4 in RTException__ResumeRaise (a=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:145 > > #3 0x00285a1b in RTException__Raise (act=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:91 > > #4 0x00269d44 in RTHooks__Raise (ex=0x35a720, arg=0x181cddc, module=0x398080, line=50) at ../src/runtime/common/RTHooks.m3:79 > > #5 0x0023adbc in OSErrorPosix__Raise0 (errno=2) at ../src/os/POSIX/OSErrorPosix.m3:50 > > #6 0x0023cffc in FSPosix__Fail (p=0x181cdc0, f=0xf049f0) at ../src/os/POSIX/FSPosix.m3:359 > > #7 0x0023cdd4 in FS__Status (pn=0x181cdc0, _result=0xbffff3c8) at ../src/os/POSIX/FSPosix.m3:328 > > #8 0x00217d24 in M3File__IsReadable (path=0x181cdc0) at ../src/M3File.m3:123 > > #9 0x000a057f in MxConfig__TryConfig (a=0x3255e0, b=0x3255f0, c=0x0) at ../src/MxConfig.m3:122 > > #10 0x0009ff67 in MxConfig__FindConfig () at ../src/MxConfig.m3:51 > > #11 0x0009fcd8 in MxConfig__FindFile () at ../src/MxConfig.m3:19 > > #12 0x0002c446 in Main__DoIt () at ../src/Main.m3:32 > > #13 0x0002d1e9 in Main_M3 (mode=1) at ../src/Main.m3:214 > > #14 0x0027a781 in RTLinker__RunMainBody (m=0x3705a0) at ../src/runtime/common/RTLinker.m3:406 > > #15 0x00279bb6 in RTLinker__AddUnitI (m=0x3705a0) at ../src/runtime/common/RTLinker.m3:113 > > #16 0x00279c3a in RTLinker__AddUnit (b=0x2d1d0) at ../src/runtime/common/RTLinker.m3:122 > > #17 0x00002cfc in main (argc=1, argv=0xbffff674, envp=0xbffff67c) at _m3main.c:16 > > (gdb) > > > > I followed upgrade instructions from Tony (including upgrading the > > back-end)---I have edited the instructions a bit to track changes in > > CM3. I'm starting from head three weeks old.. > > > > Mika > > > > > > Return-Path: hosking at cs.purdue.edu > > Delivery-Date: Sun Jun 24 07:38:38 2007 > > In-Reply-To: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> > > References: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> > > > > Sounds like we really need some work done in this area. I very > > rarely use the build scripts, since I bootstrap manually from old > > compilers to new compilers rather than use the scripts. I suggest > > the following approach, which I hope you will try, and then report > > back on. > > > > Install the bootstrap compiler as you did originally: > > > > > rm -rf /usr/local/cm3/* > > > > > > cd ~/cm3-cvs > > > mkdir boot > > > cd boot > > > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz > > > ./cminstall > > > > > > Now you will have some kind of cm3 installed, presumably in /usr/ > > local/cm3/bin/cm3. > > > > Make sure you have a fresh CVS checkout in directory cm3 (let's > > assume this is in your home directory ~/cm3). Also, make sure you > > have an up-to-date version of the CM3 backend compiler cm3cg > > installed by executing the following: > > > > STEP 0: > > > > export CM3=/usr/local/cm3/bin/cm3 > > cd ~/cm3/m3-sys/m3cc > > $CM3 > > $CM3 -ship > > > > You can skip this last step if you know your backend compiler is up > > to date. > > > > Now, let's build the new compiler from scratch (this is the sequence > > I use regularly to test changes to the run-time system whenever I > > make them): > > > > can replace compilation step with > > > > rm -rf && $CM3 && $CM3 -ship > > > > > > STEP 1: > > > > (do these LATER if bootstrapping from old compiler!) > > cd ~/cm3/m3-libs/m3core > > $CM3 > > $CM3 -ship > > cd ~/cm3/m3-libs/libm3 > > $CM3 > > $CM3 -ship > > > > Now build the compiler: > > > > cd ~/cm3/m3-libs/sysutils ; $CM3 etc. > > > > cd ~/cm3/m3-sys/m3middle; $CM3 etc. > > > > repeat for: > > > > m3-sys/m3objfile > > > > m3-sys/m3back > > > > m3-sys/m3linker > > > > m3-sys/m3front > > > > m3-sys/m3quake > > > > m3-sys/cm3 > > > > [ here we may need -DROOT= ] > > > > > > At this point you should have a bootstrapped version of cm3 installed > > in the directory /usr/local/cm3/pkg/cm3/TARGET/cm3 (where TARGET is > > the CM3 target platform you are building on -- e.g., LINUXLIBC6, > > PPC_DARWIN, ...). Note that this did not overwrite your original > > installed compiler in /usr/local/cm3/bin/cm3. We > > are now going to test the new compiler, which was built using the old > > compiler, by bootstrapping it one more time. > > > > > > ******* THIS IS WHERE I HAVE A SEGFAULTING COMPILER ******* > > > > (If m3core and libm3 were skipped earlier, do them now, and RE-DO all > > of the above packages before proceeding.) > > > > From here on out, please replace TARGET with your target platform as > > appropriate. > > > > STEP 2: > > > > export CM3=/usr/local/cm3/pkg/cm3/TARGET/cm3 > > cd ~/cm3/scripts > > > > ./do-cm3-std.sh realclean > > REPEAT STEP 1 to rebuild the libraries and the compiler using the > > STEP 1 bootstrap compiler. > > > > Now you have a STEP 2 bootstrap compiler installed in /usr/local/cm3/ > > pkg/cm3/TARGET/cm3. Let's assume the new compiler now works properly > > since it successfully bootstrapped itself, but to be sure we can now > > use it to rebuild the world: > > > > cd ~/cm3/scripts > > ./do-cm3-std.sh realclean > > ./do-cm3-std.sh buildship > > > > Assuming this succeeded then we can be pretty sure /usr/local/cm3/pkg/ > > cm3/TARGET/cm3 is good, so we can make it our default compiler by > > replacing the original /usr/local/cm3/bin/cm3: > > > > cp $CM3 /usr/local/cm3/bin/cm3 > > > > On Jun 23, 2007, at 2:38 PM, Mika Nystrom wrote: > > > > > Ok, I'm sorry if I seem a bit dimwitted in the morning like this, > > > but how exactly does one get started? I wish there were a file called > > > "GETTING_STARTED" or something like that in scripts... > > > > > > My Mac is very slow so I switched to my FreeBSD/i386 system (which has > > > PM3 happily installed on it) and tried to install CM3 from scratch. > > > Here are the exact commands I typed. > > > > > > > > > rm -rf /usr/local/cm3/* > > > > > > cd ~/cm3-cvs > > > mkdir boot > > > cd boot > > > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz > > > ./cminstall > > > > > > # now I seem to have some kind of cm3 installed, /usr/local/cm3/bin/ > > > cm3 > > > > > > cd cm3 # location of my CM3 checkout > > > cvs update -d . > > > > > > cd scripts > > > ./boot-cm3-with-m3.sh realclean > > > ./do-cm3-std.sh realclean > > > > > > ./upgrade.sh # fails here, libm3 not compiled > > > ./boot-cm3-with-m3.sh build # builds cm3, but fails on > > > cminstall, patternmatching not built > > > > > > ./do-cm3-std.sh build # OK > > > ./do-cm3-std.sh buildship # OK > > > > > > ./boot-cm3-with-m3.sh realclean # start over > > > ./boot-cm3-with-m3.sh build # OK > > > ./boot-cm3-with-m3.sh buildship # OK > > > > > > ./do-cm3-std.sh realclean # OK > > > ./do-cm3-std.sh build # dies miserably... maybe the > > > compiler can't handle the new libraries? > > > > > > ./install-cm3-compiler.sh upgrade # OK, new cm3 binary installed > > > > > > After all that, "game over." I have a cm3 that segfaults. > > > > > > Text.i3: In function 'Text_I3': > > > Text.i3:81: internal compiler error: Segmentation fault > > > Please submit a full bug report, > > > with preprocessed source if appropriate. > > > See for instructions. > > > compilation failed => not building library "libm3core.a" > > > Fatal Error: package build failed > > > *** execution of failed *** > > > > > > I can't seem to get either m3gdb or gdb to say anything reasonable > > > either. ktrace shows nothing out of the ordinary. > > > > > > ----- > > > > > > Meanwhile, my Mac got through "do-cm3-std.sh realclean" and > > > "do-cm3-std.sh buildship" but my compiles are still dying on the > > > same assertion tickled by ktok. On that machine I have INSTALLROOT > > > set to ~/cm3, but hopefully that has nothing to do with it... > > > > > > ----- > > > > > > Does do-cm3-std.sh realclean clean EVERYTHING? If so my Mac should > > > really have a fresh setup. The FreeBSD, I am not sure, maybe the > > > old binary version just doesn't work right? Of course I could try > > > bootstrapping with PM3 as well... but really, there's an "approved" > > > process to get from a blank system, no? > > > > > > Mika > > > > > > > > > > > > > > > Tony Hosking writes: > > >> That sounds like you forgot to execute "do-cm3-std.sh realclean" > > >> before initiating the build. These sorts of errors sometimes arise > > >> if there are old build directories lying around. > > >> > > >> On Jun 23, 2007, at 3:34 AM, Mika Nystrom wrote: > > >> > > >>> Hello everyone, > > >>> > > >>> I am in the process of trying to consolidate build systems for a > > >>> few software packages I am maintaining. Currently, I am using an > > >>> old PM3 on FreeBSD4, an ancient PM3 (from Klagenfurt?) for Windows > > >>> (NT386GNU), and trying to get the latest CM3 from cvs up and > > >>> compiling > > >>> things on PPC_DARWIN. Ideally, I'd like to standardize everything > > >>> on the new PM3---mainly so that I can use pickles (and Network > > >>> Objects) across all three systems. I'd also like to add Linux to > > >>> the mix. > > >>> > > >>> It's natural for me to start with CM3 on Darwin, as there's no > > >>> alternative. But I am getting some assertions failing. Everything > > >>> in the CM3 distribution compiles fine, and I believe I have compiled > > >>> the libraries a few times (that is, including with themselves), and > > >>> updated the compiler, too (using boot-cm3-with-m3.sh). I just cvs > > >>> updated tonight. > > >>> > > >>> Here's what I'm running into: > > >>> > > >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/CHP.t -o > > >>> CHPTok.i3 > > >>> > > >>> *** > > >>> *** runtime error: > > >>> *** <*ASSERT*> failed. > > >>> *** file "../src/runtime/common/RTCollector.m3", line 2314 > > >>> *** > > >>> > > >>> Abort > > >>> > > >>> Also: > > >>> > > >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/PRS.t -o > > >>> PRSTok.i3 > > >>> Illegal instruction > > >>> > > >>> As you can see, these things are coming from the caltech_parser. I > > >> am using > > >>> our local version, but I don't think it is very different from what > > >>> is in the > > >>> CM3 tree. > > >>> > > >>> Examining the first error (the failed assertion) more closely, I see > > >>> the following: > > >>> > > >>> (gdb) list > > >>> 108 wr := FileWr.Open(Pathname.ReplaceExt(tp.out, "m3")); > > >>> 109 EXCEPT OSError.E => > > >>> 110 Debug.Error("Cannot open tok implementation output > > >>> file: " & > > >>> 111 Pathname.ReplaceExt(tp.out, "m3")); > > >>> 112 END; > > >>> 113 Wr.PutText(wr, subs.apply(Bundle.Get(Form, > > >>> "tokform.m3"))); > > >>> 114 Wr.Close(wr); > > >>> 115 END Main. > > >>> (gdb) where > > >>> #0 0x9004308c in kill () > > >>> #1 0x9009fb3c in abort () > > >>> #2 0x00096f50 in RTOS__Crash () at RTOS.m3:20 > > >>> #3 0x0005bd40 in RTProcess__Crash (M3_Bd56fi_msg=0x0) at > > >>> RTProcess.m3:65 > > >>> #4 0x0008e4e0 in RTError__EndError (M3_AicXUJ_crash=1 '\001') at > > >>> RTError.m3:115 > > >>> #5 0x0008e08c in RTError__MsgS (M3_AJWxb1_file=0xc63d8, > > >>> M3_AcxOUs_line=2314, M3_Bd56fi_msgA=0xca3d0, > > >>> M3_Bd56fi_msgB=0xcbe90, M3_Bd56fi_msgC=0xca3d0) at RTError.m3:40 > > >>> #6 0x0008eb88 in RTException__Crash (M3_Cblw37_a=0xbfffee00, > > >>> M3_AicXUJ_raises=0 '\0', M3_AJWxb1_rte=0xcb538) at RTException.m3:79 > > >>> #7 0x0008e74c in RTException__DefaultBackstop > > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at > > >>> RTException.m3:39 > > >>> #8 0x0008e614 in RTException__InvokeBackstop > > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at > > >>> RTException.m3:25 > > >>> #9 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at > > >>> RTExFrame.m3:29 > > >>> #10 0x0008e840 in RTException__DefaultBackstop > > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at > > >>> RTException.m3:47 > > >>> #11 0x0008e614 in RTException__InvokeBackstop > > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at > > >>> RTException.m3:25 > > >>> #12 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at > > >>> RTExFrame.m3:29 > > >>> #13 0x00079740 in RTHooks__ReportFault (M3_AJWxb1_module=0xb3eb8, > > >>> M3_AcxOUs_info=74048) at RTHooks.m3:110 > > >>> #14 0x0006ff4c in _m3_fault (M3_AcxOUs_arg=74048) > > >>> #15 0x0006bcf4 in RTHooks__CheckStoreTraced > > >>> (M3_Af40ku_ref=0xb2415c) at RTCollector.m3:2314 > > >>> #16 0x000700e4 in ThreadPThread__InnerLockMutex > > >>> (M3_AYIbX3_m=0xb2415c, M3_BXP32l_self=0xb24014) at > > >>> ThreadPThread.m3:126 > > >>> #17 0x000704d8 in ThreadPThread__LockMutex (M3_AYIbX3_m=0xb2415c) > > >>> at ThreadPThread.m3:153 > > >>> #18 0x00019b24 in Wr__PutText (M3_BxxOH1_wr=0xb2415c, > > >>> M3_Bd56fi_t=0xb44d5c) at Wr.m3:93 > > >>> #19 0x00003f74 in Main_M3 (M3_AcxOUs_mode=1) at Main.m3:113 > > >>> #20 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at > > >>> RTLinker.m3:399 > > >>> #21 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at > > >>> RTLinker.m3:113 > > >>> #22 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at > > >>> RTLinker.m3:122 > > >>> #23 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38) > > >>> at _m3main.mc:4 > > >>> (gdb) > > >>> > > >>> The second error: > > >>> > > >>> Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/ > > >>> operand. > > >>> 0x00b111ac in ?? () > > >>> (gdb) where > > >>> #0 0x00b111ac in ?? () > > >>> #1 0x0001214c in TextSubs__Apply (M3_CN69dV_self=0xb26450, > > >>> M3_Bd56fi_src=0xb21cec) at TextSubs.m3:63 > > >>> #2 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at > > >>> RTLinker.m3:399 > > >>> #3 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at > > >>> RTLinker.m3:113 > > >>> #4 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at > > >>> RTLinker.m3:122 > > >>> #5 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38) > > >>> at _m3main.mc:4 > > >>> (gdb) list > > >>> 58 BEGIN > > >>> 59 WHILE pos < textLen DO > > >>> 60 c := Text.GetChar(src, pos); > > >>> 61 IF c IN self.starts THEN > > >>> 62 (* S("analysing: " & Text.Sub(src, pos), > > >>> DebugLevel); *) > > >>> 63 iter := self.tbl.iterateOrdered(); > > >>> 64 ind := pos; > > >>> 65 original := ""; > > >>> 66 REPEAT > > >>> 67 INC(ind); > > >>> (gdb) > > >>> > > >>> Any ideas what to look at? > > >>> > > >>> I don't know if this is relevant: > > >>> > > >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% uname -a > > >>> Darwin lapdog.local 7.9.0 Darwin Kernel Version 7.9.0: Wed Mar 30 > > >>> 20:11:17 PST 2005; root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC Power > > >>> Macintosh powerpc > > >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% gcc -v > > >>> Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs > > >>> Thread model: posix > > >>> gcc version 3.3 20030304 (Apple Computer, Inc. build 1666) > > >>> > > >>> Mika > > >>> > > >>> P.S. Am I correct in assuming that I can get CM3 to build on > > >>> Windows? > > >>> I could switch to CM3 on Unix any time, of course, but I've never > > >>> had luck with it on Windows, which is why I am using the ancient > > >>> Klagenfurt PM3, which comes on 40-odd "floppies" and a .EXE that > > >>> unpacks them into C: (and installation instructions only in German). > > >>> If CM3 doesn't work on Windows, I am essentially wasting my time, > > >>> as the current project I am working on absolutely requires that the > > >>> software run on Windows 2003 Server (yes, it sucks, but what can > > >>> you do?) The very old PM3 at least kind of hobbles along on this > > >>> platform---actually, better than that; it does Trestle natively > > >>> under Windows (no X required), at least on SOME Windows machines. > > >>> > > >>> P.P.S. Sorry for all the postscripts, but is it true that the > > >>> build system has been changed so that building with overrides > > >>> (cm3 -x) > > >>> requires having the compiler sources available? It didn't use to > > >>> be that way, but I can't get Network Objects to work with overrides > > >>> now unless I have the sources available... It's a bit of a pain > > >>> because it means that every user has to have the compiler sources, > > >>> or else ship everything, or was that not the intention? -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.caltech.edu Sun Jan 9 00:19:02 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Sat, 08 Jan 2011 15:19:02 -0800 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: message dated "Sat, 08 Jan 2011 17:36:22 +0000." Message-ID: <20110108231903.06D811A205B@async.async.caltech.edu> By going back to the release version and running upgrade, I was able to get further, but now I get these---a change somewhere? Mika --- building in I386_DARWIN --- "/Users/mika/cm3/cm3/m3-db/postgres95/src/m3makefile", line 4: quake runtime error: undefined variable: configure_system_libs --procedure-- -line- -file--- include_dir 4 /Users/mika/cm3/cm3/m3-db/postgres95/src/m3makefile 6 /Users/mika/cm3/cm3/m3-db/postgres95/I386_DARWIN/m3make.args Fatal Error: package build failed CM3_TARGET=I386_DARWIN export CM3_TARGET CM3_INSTALL=/usr/local/cm3 export CM3_INSTALL CM3_ROOT=/Users/mika/cm3/cm3 export CM3_ROOT From mika at async.caltech.edu Sun Jan 9 00:51:39 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Sat, 08 Jan 2011 15:51:39 -0800 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: References: <20101227101653.307241A205B@async.async.caltech.edu> <20101227185453.97CE51A205B@async.async.caltech.edu> <20110108121441.A58031A205B@async.async.caltech.edu> <20110108134735.B7D4C1A205B@async.async.caltech.edu> <20110108161001.DC4871A205B@async.async.caltech.edu> <20110108181715.77FF61A205B@async.async.caltech.edu> Message-ID: <20110108235139.D12A31A205B@async.async.caltech.edu> I started from scratch (working cm3 install) several times. No go. upgrade.py was just not able to upgrade my particular setup (current as of a few weeks ago). Starting from the previous release worked, but now there's this configure_system_libs thing---this seems to be a config file issue? (Also something not taken care of by upgrade.py) A lot of futzing around... Mika jay.krell at cornell.edu writes: >Yes. When upgrade.py fails, you may or may not be in a bad state. I can see a= >bout making it safer. There are unavoidable depenedencies among cm3, cm3cg, a= >nd m3core, and maybe libm3. > >Starting point is a working cm3, and its cm3cg, and its config files, and m3= >core, and possible its libm3. =20 > >I think maybe I should write a feature in upgrade.py that can start from scr= >atch -- download old install archive or start from a specified local copy th= >ereof. Interest? I might use it myself. I think upgrade should also have opt= >ion to build all. > > - Jay > >On Jan 8, 2011, at 1:17 PM, Mika Nystrom wrote: > >> Do I need to go back to the release and install that, and then upgrade.py?= > >> As far as I know my compiler was working fine... >>=20 >> Jay K writes: >>> --_1def5bc1-96d7-442f-bd33-2522abadf97d_ >>> Content-Type: text/plain; charset=3D"iso-8859-1" >>> Content-Transfer-Encoding: quoted-printable >>>=20 >>> Tony's instructions imho are too much work=3D2C error-prone. Upgrade.py d= >oes =3D >>> rebuild cm3cg. Don't do it manually=3D2C as you have to be careful when y= >ou s=3D >>> witch from old to new=3D2C and upgrade.py knows. There was a problem rega= >rdin=3D >>> g m3bundle=3D2C fairly recently. So try head. Not a few weeks ago. The sc= >ript=3D >>> s specifically had a problem. >>>=20 >>> Jay/phone >>>=20 >>>> To: jay.krell at cornell.edu >>>> Subject: Re: [M3devel] another Snow Leopard compiler crash=3D20 >>>> Date: Sat=3D2C 8 Jan 2011 08:10:01 -0800 >>>> From: mika at async.caltech.edu >>>> =3D20 >>>> Jay K writes: >>>>> --_8699851d-dc9a-486c-965d-eaed43f71a51_ >>>>> Content-Type: text/plain=3D3B charset=3D3D"iso-8859-1" >>>>> Content-Transfer-Encoding: quoted-printable >>>>>=20 >>>>> It no longer builds m3bundle I think. There was a problem regarding m3b= >=3D >>> und=3D3D >>>>> le for a while=3D3D2C because I had followed upgrade.sh too closely=3D3= >D2C w=3D >>> hich ha=3D3D >>>>> d this problem. And this is a sign of using old cm3cg. Are you sure you= > =3D >>> did=3D3D >>>>> n't do something weird? Uograde.py does upgrade cm3cg appropriately. Tr= >y=3D >>> he=3D3D >>>>> ad? >>>>>=20 >>>> =3D20 >>>> I'm not sure I didn't do anything weird. I have a CM3 distribution that= > >>>> was release=3D2C then I upgraded it to head as of three weeks ago using >>>> the procedure Tony described to me a few years ago. I've been using >>>> that with no special problems since then. I then updated to the CVS hea= >d >>>> and ran "python upgrade.py". It does not rebuild cm3cg=3D2C but I can d= >o i=3D >>> t >>>> manually and try again. >>>> =3D20 >>>> Mika >>> =3D >>>=20 >>> --_1def5bc1-96d7-442f-bd33-2522abadf97d_ >>> Content-Type: text/html; charset=3D"iso-8859-1" >>> Content-Transfer-Encoding: quoted-printable >>>=20 >>> >>> >>> >>> >>> Tony's instructions imho are too much work=3D= >2C err=3D >>> or-prone. Upgrade.py does rebuild cm3cg. Don't do it manually=3D2C as you= > hav=3D >>> e to be careful when you switch from old to new=3D2C and upgrade.py knows= >. Th=3D >>> ere was a problem regarding m3bundle=3D2C fairly recently. So try head. N= >ot a=3D >>> few weeks ago. The scripts specifically had a problem.

Jay/phone<= >b=3D >>> r>
> To:=3D3B jay.krell@=3D3Bcornell.edu
> Subject:=3D3B R= >e:=3D3B=3D >>> [=3D3BM3devel]=3D3B another Snow Leopard compiler crash
> Date&= >#58=3D >>> =3D3B Sat=3D2C 8 Jan 2011 08:=3D3B10:=3D3B01 -0800
> From:=3D= >3B mika@=3D >>> =3D3Basync.caltech.edu
>
> Jay K writes:=3D3B
> >=3D3B--_= >8699851d=3D >>> -dc9a-486c-965d-eaed43f71a51_
> >=3D3BContent-Type:=3D3B text/pl= >ain=3D >>> 9=3D3B charset==3D3B"=3D3Biso-8859-1"=3D3B
> >=3D3BContent= >-Transfer-En=3D >>> coding:=3D3B quoted-printable
> >=3D3B
> >=3D3B It no long= >er build=3D >>> s m3bundle I think. There was a problem regarding m3bund==3D3B
> &#= >62=3D >>> =3D3Ble for a while==3D3B2C because I had followed upgrade.sh too clos= >ely=3D >>> 1=3D3B2C which ha==3D3B
> >=3D3Bd this problem. And this is a si= >gn of us=3D >>> ing old cm3cg. Are you sure you did==3D3B
> >=3D3Bn'=3D3Bt do= > somethi=3D >>> ng weird?=3D3B Uograde.py does upgrade cm3cg appropriately. Try he== >=3D3B<=3D >>> br>> >=3D3Bad?=3D3B
> >=3D3B
>
> I'=3D3Bm not sure I= > didn'=3D >>> =3D3Bt do anything weird. I have a CM3 distribution that
> was releas= >e=3D2C=3D >>> then I upgraded it to head as of three weeks ago using
> the procedure= > =3D >>> Tony described to me a few years ago. I'=3D3Bve been using
> that w= >ith=3D >>> no special problems since then. I then updated to the CVS head
> and r= >=3D >>> an "=3D3Bpython upgrade.py"=3D3B. It does not rebuild cm3cg=3D2C b= >ut I can=3D >>> do it
> manually and try again.
>
> Mika
=20 >>> <=3D >>> /body> >>> =3D >>>=20 >>> --_1def5bc1-96d7-442f-bd33-2522abadf97d_-- From jay.krell at cornell.edu Sun Jan 9 00:55:24 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 8 Jan 2011 23:55:24 +0000 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu> References: <20110106002615.77E782474003@birch.elegosoft.com>, , , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu> Message-ID: Thank you much. Please notice there are 2 or 3 similar problems. This shows only 1. See test p250. MODULE Main; PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; PROCEDURE F2() = <*UNUSED*>VAR x: [0L..0L]; BEGIN END F2; PROCEDURE F3() = VAR x: [0L..0L]; BEGIN ? F1(x); END F3; BEGIN ? F1(0L); ? F2(); ? F3(); END Main. i.e. initializing local 0L..0L. Passing 0L..0L parameter. ?- Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Sat, 8 Jan 2011 16:59:33 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] codegen error (from Mika, new test p250) > > I'll look into this one. > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 | Mobile +1 765 427 5484 > > > > > On Jan 8, 2011, at 12:17 AM, Jay K wrote: > > > > > fyi, small repro: > > > > > > MODULE Main; > > > > VAR x: [0L..0L]; > > > > PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; > > > > BEGIN > > F2(x); > > END Main. > > > > (32) start_call_direct procedure:0x4 level:0 > > (33) load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 > > (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] > > (35) pop_param type:int_64 > > > > > > - Jay > > > > > > ________________________________ > >> From: jay.krell at cornell.edu > >> To: m3devel at elegosoft.com; mika at async.caltech.edu > >> Subject: RE: codegen error (from Mika, new test p250) > >> Date: Thu, 6 Jan 2011 01:21:00 +0000 > >> > >> fyi: > >> > >> jbook2:p250 jay$ rm -rf I386_DARWIN/ > >> jbook2:p250 jay$ cm3 -keep > >> --- building in I386_DARWIN --- > >> > >> new source -> compiling Main.m3 > >> "../Main.m3", line 1: 1 code generation error > >> 1 error encountered > >> compilation failed => not building program "pgm" > >> Fatal Error: package build failed > >> jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment > >> (4) comment comment:module global constants > >> (6) comment comment:module global data > >> (27) comment comment:F1 > >> (34) comment comment:********* M3CG_Check ERROR > >> *********** bad stack: expected [ Int64 ] got [ Int32 ] > >> (43) comment comment:F2 > >> (73) comment comment:Main_M3 > >> (74) comment comment:module main body Main_M3 > >> (83) comment comment:global constant type descriptor > >> (85) comment comment:global data type descriptor > >> (87) comment comment:module global constants > >> (90) comment comment:procedure names > >> (94) comment comment:procedure table > >> (101) comment comment:file name > >> (103) comment comment:type map for _t0174bdf4 > >> (106) comment comment:type description for _t0174bdf4 > >> (110) comment comment:module global data > >> (120) comment comment:typecell for _t0174bdf4 > >> (141) comment comment:load map > >> (4) comment comment:module global constants > >> (6) comment comment:module global data > >> (27) comment comment:F1 > >> (34) comment comment:********* M3CG_Check ERROR > >> *********** bad stack: expected [ Int64 ] got [ Int32 ] > >> (43) comment comment:F2 > >> (73) comment comment:Main_M3 > >> (74) comment comment:module main body Main_M3 > >> (83) comment comment:global constant type descriptor > >> (85) comment comment:global data type descriptor > >> (87) comment comment:module global constants > >> (90) comment comment:procedure names > >> (94) comment comment:procedure table > >> (101) comment comment:file name > >> (103) comment comment:type map for _t0174bdf4 > >> (106) comment comment:type description for _t0174bdf4 > >> (110) comment comment:module global data > >> (120) comment comment:typecell for _t0174bdf4 > >> (141) comment comment:load map > >> > >> > >> - Jay > >> > >> > >>> Date: Thu, 6 Jan 2011 01:26:15 +0000 > >>> To: m3commit at elegosoft.com > >>> From: jkrell at elego.de > >>> Subject: [M3commit] CVS Update: cm3 > >>> > >>> CVSROOT: /usr/cvs > >>> Changes by: jkrell at birch. 11/01/06 01:26:15 > >>> > >>> Modified files: > >>> cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > >>> > >>> Log message: > >>> slightly simpler, same error > >>> > > > From jay.krell at cornell.edu Sun Jan 9 00:52:07 2011 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Sat, 8 Jan 2011 18:52:07 -0500 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: References: <20101227101653.307241A205B@async.async.caltech.edu> <20101227185453.97CE51A205B@async.async.caltech.edu> <20110108121441.A58031A205B@async.async.caltech.edu> Message-ID: <7AC16197-7752-43D0-AE47-21D461A86E94@gmail.com> Except you. :) But I still recommend it. - Jay On Jan 8, 2011, at 5:06 PM, Tony Hosking wrote: > I'm feeling foolish too since I never use them on my development system... ;-) > > On Jan 8, 2011, at 8:37 AM, Jay K wrote: > >> I upgrade across incompatibilities frequently & Hudson does now too. The existing scripts work very well and you would be foolish to not use them. Just use upgrade.py. It is very easy. Or upgrade.py nocleangcc. And then do-cm3-all.py skipgcc realclean && do-cm3-all.py buildship.py. >> >> - Jay/phone >> >> > To: jay.krell at cornell.edu >> > Date: Sat, 8 Jan 2011 04:14:41 -0800 >> > From: mika at async.caltech.edu >> > CC: m3devel at elegosoft.com >> > Subject: Re: [M3devel] another Snow Leopard compiler crash >> > >> > Jay K writes: >> > > >> > >Please try this Mika. It fixes the problem for me. >> > >> > Hi Jay, >> > >> > So I upgraded to the CVS head and now I get a segfaulting compiler: >> > >> > [hal:cm3/m3-libs/m3core] mika% gdb $CM3 >> > GNU gdb 6.3.50-20050815 (Apple version gdb-1510) (Wed Sep 22 02:45:02 UTC 2010) >> > Copyright 2004 Free Software Foundation, Inc. >> > GDB is free software, covered by the GNU General Public License, and you are >> > welcome to change it and/or distribute copies of it under certain conditions. >> > Type "show copying" to see the conditions. >> > There is absolutely no warranty for GDB. Type "show warranty" for details. >> > This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries ...... done >> > >> > (gdb) run >> > Starting program: /usr/local/cm3/pkg/cm3/I386_DARWIN/cm3 >> > Reading symbols for shared libraries .+++++.......... done >> > >> > Program received signal EXC_BAD_ACCESS, Could not access memory. >> > Reason: KERN_PROTECTION_FAILURE at address: 0x0000038b >> > 0x9713354b in _longjmp () >> > (gdb) where >> > #0 0x9713354b in _longjmp () >> > #1 0x00285d2b in RTExFrame__InvokeHandler (f=0xbffff34c, a=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:175 >> > #2 0x00285be4 in RTException__ResumeRaise (a=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:145 >> > #3 0x00285a1b in RTException__Raise (act=0xbffff23c) at ../src/runtime/ex_frame/RTExFrame.m3:91 >> > #4 0x00269d44 in RTHooks__Raise (ex=0x35a720, arg=0x181cddc, module=0x398080, line=50) at ../src/runtime/common/RTHooks.m3:79 >> > #5 0x0023adbc in OSErrorPosix__Raise0 (errno=2) at ../src/os/POSIX/OSErrorPosix.m3:50 >> > #6 0x0023cffc in FSPosix__Fail (p=0x181cdc0, f=0xf049f0) at ../src/os/POSIX/FSPosix.m3:359 >> > #7 0x0023cdd4 in FS__Status (pn=0x181cdc0, _result=0xbffff3c8) at ../src/os/POSIX/FSPosix.m3:328 >> > #8 0x00217d24 in M3File__IsReadable (path=0x181cdc0) at ../src/M3File.m3:123 >> > #9 0x000a057f in MxConfig__TryConfig (a=0x3255e0, b=0x3255f0, c=0x0) at ../src/MxConfig.m3:122 >> > #10 0x0009ff67 in MxConfig__FindConfig () at ../src/MxConfig.m3:51 >> > #11 0x0009fcd8 in MxConfig__FindFile () at ../src/MxConfig.m3:19 >> > #12 0x0002c446 in Main__DoIt () at ../src/Main.m3:32 >> > #13 0x0002d1e9 in Main_M3 (mode=1) at ../src/Main.m3:214 >> > #14 0x0027a781 in RTLinker__RunMainBody (m=0x3705a0) at ../src/runtime/common/RTLinker.m3:406 >> > #15 0x00279bb6 in RTLinker__AddUnitI (m=0x3705a0) at ../src/runtime/common/RTLinker.m3:113 >> > #16 0x00279c3a in RTLinker__AddUnit (b=0x2d1d0) at ../src/runtime/common/RTLinker.m3:122 >> > #17 0x00002cfc in main (argc=1, argv=0xbffff674, envp=0xbffff67c) at _m3main.c:16 >> > (gdb) >> > >> > I followed upgrade instructions from Tony (including upgrading the >> > back-end)---I have edited the instructions a bit to track changes in >> > CM3. I'm starting from head three weeks old.. >> > >> > Mika >> > >> > >> > Return-Path: hosking at cs.purdue.edu >> > Delivery-Date: Sun Jun 24 07:38:38 2007 >> > In-Reply-To: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> >> > References: <200706231838.l5NIcRef079333 at camembert.async.caltech.edu> >> > >> > Sounds like we really need some work done in this area. I very >> > rarely use the build scripts, since I bootstrap manually from old >> > compilers to new compilers rather than use the scripts. I suggest >> > the following approach, which I hope you will try, and then report >> > back on. >> > >> > Install the bootstrap compiler as you did originally: >> > >> > > rm -rf /usr/local/cm3/* >> > > >> > > cd ~/cm3-cvs >> > > mkdir boot >> > > cd boot >> > > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz >> > > ./cminstall >> > >> > >> > Now you will have some kind of cm3 installed, presumably in /usr/ >> > local/cm3/bin/cm3. >> > >> > Make sure you have a fresh CVS checkout in directory cm3 (let's >> > assume this is in your home directory ~/cm3). Also, make sure you >> > have an up-to-date version of the CM3 backend compiler cm3cg >> > installed by executing the following: >> > >> > STEP 0: >> > >> > export CM3=/usr/local/cm3/bin/cm3 >> > cd ~/cm3/m3-sys/m3cc >> > $CM3 >> > $CM3 -ship >> > >> > You can skip this last step if you know your backend compiler is up >> > to date. >> > >> > Now, let's build the new compiler from scratch (this is the sequence >> > I use regularly to test changes to the run-time system whenever I >> > make them): >> > >> > can replace compilation step with >> > >> > rm -rf && $CM3 && $CM3 -ship >> > >> > >> > STEP 1: >> > >> > (do these LATER if bootstrapping from old compiler!) >> > cd ~/cm3/m3-libs/m3core >> > $CM3 >> > $CM3 -ship >> > cd ~/cm3/m3-libs/libm3 >> > $CM3 >> > $CM3 -ship >> > >> > Now build the compiler: >> > >> > cd ~/cm3/m3-libs/sysutils ; $CM3 etc. >> > >> > cd ~/cm3/m3-sys/m3middle; $CM3 etc. >> > >> > repeat for: >> > >> > m3-sys/m3objfile >> > >> > m3-sys/m3back >> > >> > m3-sys/m3linker >> > >> > m3-sys/m3front >> > >> > m3-sys/m3quake >> > >> > m3-sys/cm3 >> > >> > [ here we may need -DROOT= ] >> > >> > >> > At this point you should have a bootstrapped version of cm3 installed >> > in the directory /usr/local/cm3/pkg/cm3/TARGET/cm3 (where TARGET is >> > the CM3 target platform you are building on -- e.g., LINUXLIBC6, >> > PPC_DARWIN, ...). Note that this did not overwrite your original >> > installed compiler in /usr/local/cm3/bin/cm3. We >> > are now going to test the new compiler, which was built using the old >> > compiler, by bootstrapping it one more time. >> > >> > >> > ******* THIS IS WHERE I HAVE A SEGFAULTING COMPILER ******* >> > >> > (If m3core and libm3 were skipped earlier, do them now, and RE-DO all >> > of the above packages before proceeding.) >> > >> > From here on out, please replace TARGET with your target platform as >> > appropriate. >> > >> > STEP 2: >> > >> > export CM3=/usr/local/cm3/pkg/cm3/TARGET/cm3 >> > cd ~/cm3/scripts >> > >> > ./do-cm3-std.sh realclean >> > REPEAT STEP 1 to rebuild the libraries and the compiler using the >> > STEP 1 bootstrap compiler. >> > >> > Now you have a STEP 2 bootstrap compiler installed in /usr/local/cm3/ >> > pkg/cm3/TARGET/cm3. Let's assume the new compiler now works properly >> > since it successfully bootstrapped itself, but to be sure we can now >> > use it to rebuild the world: >> > >> > cd ~/cm3/scripts >> > ./do-cm3-std.sh realclean >> > ./do-cm3-std.sh buildship >> > >> > Assuming this succeeded then we can be pretty sure /usr/local/cm3/pkg/ >> > cm3/TARGET/cm3 is good, so we can make it our default compiler by >> > replacing the original /usr/local/cm3/bin/cm3: >> > >> > cp $CM3 /usr/local/cm3/bin/cm3 >> > >> > On Jun 23, 2007, at 2:38 PM, Mika Nystrom wrote: >> > >> > > Ok, I'm sorry if I seem a bit dimwitted in the morning like this, >> > > but how exactly does one get started? I wish there were a file called >> > > "GETTING_STARTED" or something like that in scripts... >> > > >> > > My Mac is very slow so I switched to my FreeBSD/i386 system (which has >> > > PM3 happily installed on it) and tried to install CM3 from scratch. >> > > Here are the exact commands I typed. >> > > >> > > >> > > rm -rf /usr/local/cm3/* >> > > >> > > cd ~/cm3-cvs >> > > mkdir boot >> > > cd boot >> > > tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz >> > > ./cminstall >> > > >> > > # now I seem to have some kind of cm3 installed, /usr/local/cm3/bin/ >> > > cm3 >> > > >> > > cd cm3 # location of my CM3 checkout >> > > cvs update -d . >> > > >> > > cd scripts >> > > ./boot-cm3-with-m3.sh realclean >> > > ./do-cm3-std.sh realclean >> > > >> > > ./upgrade.sh # fails here, libm3 not compiled >> > > ./boot-cm3-with-m3.sh build # builds cm3, but fails on >> > > cminstall, patternmatching not built >> > > >> > > ./do-cm3-std.sh build # OK >> > > ./do-cm3-std.sh buildship # OK >> > > >> > > ./boot-cm3-with-m3.sh realclean # start over >> > > ./boot-cm3-with-m3.sh build # OK >> > > ./boot-cm3-with-m3.sh buildship # OK >> > > >> > > ./do-cm3-std.sh realclean # OK >> > > ./do-cm3-std.sh build # dies miserably... maybe the >> > > compiler can't handle the new libraries? >> > > >> > > ./install-cm3-compiler.sh upgrade # OK, new cm3 binary installed >> > > >> > > After all that, "game over." I have a cm3 that segfaults. >> > > >> > > Text.i3: In function 'Text_I3': >> > > Text.i3:81: internal compiler error: Segmentation fault >> > > Please submit a full bug report, >> > > with preprocessed source if appropriate. >> > > See for instructions. >> > > compilation failed => not building library "libm3core.a" >> > > Fatal Error: package build failed >> > > *** execution of failed *** >> > > >> > > I can't seem to get either m3gdb or gdb to say anything reasonable >> > > either. ktrace shows nothing out of the ordinary. >> > > >> > > ----- >> > > >> > > Meanwhile, my Mac got through "do-cm3-std.sh realclean" and >> > > "do-cm3-std.sh buildship" but my compiles are still dying on the >> > > same assertion tickled by ktok. On that machine I have INSTALLROOT >> > > set to ~/cm3, but hopefully that has nothing to do with it... >> > > >> > > ----- >> > > >> > > Does do-cm3-std.sh realclean clean EVERYTHING? If so my Mac should >> > > really have a fresh setup. The FreeBSD, I am not sure, maybe the >> > > old binary version just doesn't work right? Of course I could try >> > > bootstrapping with PM3 as well... but really, there's an "approved" >> > > process to get from a blank system, no? >> > > >> > > Mika >> > > >> > > >> > > >> > > >> > > Tony Hosking writes: >> > >> That sounds like you forgot to execute "do-cm3-std.sh realclean" >> > >> before initiating the build. These sorts of errors sometimes arise >> > >> if there are old build directories lying around. >> > >> >> > >> On Jun 23, 2007, at 3:34 AM, Mika Nystrom wrote: >> > >> >> > >>> Hello everyone, >> > >>> >> > >>> I am in the process of trying to consolidate build systems for a >> > >>> few software packages I am maintaining. Currently, I am using an >> > >>> old PM3 on FreeBSD4, an ancient PM3 (from Klagenfurt?) for Windows >> > >>> (NT386GNU), and trying to get the latest CM3 from cvs up and >> > >>> compiling >> > >>> things on PPC_DARWIN. Ideally, I'd like to standardize everything >> > >>> on the new PM3---mainly so that I can use pickles (and Network >> > >>> Objects) across all three systems. I'd also like to add Linux to >> > >>> the mix. >> > >>> >> > >>> It's natural for me to start with CM3 on Darwin, as there's no >> > >>> alternative. But I am getting some assertions failing. Everything >> > >>> in the CM3 distribution compiles fine, and I believe I have compiled >> > >>> the libraries a few times (that is, including with themselves), and >> > >>> updated the compiler, too (using boot-cm3-with-m3.sh). I just cvs >> > >>> updated tonight. >> > >>> >> > >>> Here's what I'm running into: >> > >>> >> > >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/CHP.t -o >> > >>> CHPTok.i3 >> > >>> >> > >>> *** >> > >>> *** runtime error: >> > >>> *** <*ASSERT*> failed. >> > >>> *** file "../src/runtime/common/RTCollector.m3", line 2314 >> > >>> *** >> > >>> >> > >>> Abort >> > >>> >> > >>> Also: >> > >>> >> > >>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/PRS.t -o >> > >>> PRSTok.i3 >> > >>> Illegal instruction >> > >>> >> > >>> As you can see, these things are coming from the caltech_parser. I >> > >> am using >> > >>> our local version, but I don't think it is very different from what >> > >>> is in the >> > >>> CM3 tree. >> > >>> >> > >>> Examining the first error (the failed assertion) more closely, I see >> > >>> the following: >> > >>> >> > >>> (gdb) list >> > >>> 108 wr := FileWr.Open(Pathname.ReplaceExt(tp.out, "m3")); >> > >>> 109 EXCEPT OSError.E => >> > >>> 110 Debug.Error("Cannot open tok implementation output >> > >>> file: " & >> > >>> 111 Pathname.ReplaceExt(tp.out, "m3")); >> > >>> 112 END; >> > >>> 113 Wr.PutText(wr, subs.apply(Bundle.Get(Form, >> > >>> "tokform.m3"))); >> > >>> 114 Wr.Close(wr); >> > >>> 115 END Main. >> > >>> (gdb) where >> > >>> #0 0x9004308c in kill () >> > >>> #1 0x9009fb3c in abort () >> > >>> #2 0x00096f50 in RTOS__Crash () at RTOS.m3:20 >> > >>> #3 0x0005bd40 in RTProcess__Crash (M3_Bd56fi_msg=0x0) at >> > >>> RTProcess.m3:65 >> > >>> #4 0x0008e4e0 in RTError__EndError (M3_AicXUJ_crash=1 '\001') at >> > >>> RTError.m3:115 >> > >>> #5 0x0008e08c in RTError__MsgS (M3_AJWxb1_file=0xc63d8, >> > >>> M3_AcxOUs_line=2314, M3_Bd56fi_msgA=0xca3d0, >> > >>> M3_Bd56fi_msgB=0xcbe90, M3_Bd56fi_msgC=0xca3d0) at RTError.m3:40 >> > >>> #6 0x0008eb88 in RTException__Crash (M3_Cblw37_a=0xbfffee00, >> > >>> M3_AicXUJ_raises=0 '\0', M3_AJWxb1_rte=0xcb538) at RTException.m3:79 >> > >>> #7 0x0008e74c in RTException__DefaultBackstop >> > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at >> > >>> RTException.m3:39 >> > >>> #8 0x0008e614 in RTException__InvokeBackstop >> > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at >> > >>> RTException.m3:25 >> > >>> #9 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at >> > >>> RTExFrame.m3:29 >> > >>> #10 0x0008e840 in RTException__DefaultBackstop >> > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at >> > >>> RTException.m3:47 >> > >>> #11 0x0008e614 in RTException__InvokeBackstop >> > >>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at >> > >>> RTException.m3:25 >> > >>> #12 0x00095d04 in RTException__Raise (M3_Cblw37_act=0xbfffee00) at >> > >>> RTExFrame.m3:29 >> > >>> #13 0x00079740 in RTHooks__ReportFault (M3_AJWxb1_module=0xb3eb8, >> > >>> M3_AcxOUs_info=74048) at RTHooks.m3:110 >> > >>> #14 0x0006ff4c in _m3_fault (M3_AcxOUs_arg=74048) >> > >>> #15 0x0006bcf4 in RTHooks__CheckStoreTraced >> > >>> (M3_Af40ku_ref=0xb2415c) at RTCollector.m3:2314 >> > >>> #16 0x000700e4 in ThreadPThread__InnerLockMutex >> > >>> (M3_AYIbX3_m=0xb2415c, M3_BXP32l_self=0xb24014) at >> > >>> ThreadPThread.m3:126 >> > >>> #17 0x000704d8 in ThreadPThread__LockMutex (M3_AYIbX3_m=0xb2415c) >> > >>> at ThreadPThread.m3:153 >> > >>> #18 0x00019b24 in Wr__PutText (M3_BxxOH1_wr=0xb2415c, >> > >>> M3_Bd56fi_t=0xb44d5c) at Wr.m3:93 >> > >>> #19 0x00003f74 in Main_M3 (M3_AcxOUs_mode=1) at Main.m3:113 >> > >>> #20 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at >> > >>> RTLinker.m3:399 >> > >>> #21 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at >> > >>> RTLinker.m3:113 >> > >>> #22 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at >> > >>> RTLinker.m3:122 >> > >>> #23 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38) >> > >>> at _m3main.mc:4 >> > >>> (gdb) >> > >>> >> > >>> The second error: >> > >>> >> > >>> Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/ >> > >>> operand. >> > >>> 0x00b111ac in ?? () >> > >>> (gdb) where >> > >>> #0 0x00b111ac in ?? () >> > >>> #1 0x0001214c in TextSubs__Apply (M3_CN69dV_self=0xb26450, >> > >>> M3_Bd56fi_src=0xb21cec) at TextSubs.m3:63 >> > >>> #2 0x0005b1c4 in RTLinker__RunMainBody (M3_DjPxE3_m=0xad190) at >> > >>> RTLinker.m3:399 >> > >>> #3 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at >> > >>> RTLinker.m3:113 >> > >>> #4 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at >> > >>> RTLinker.m3:122 >> > >>> #5 0x00001fac in main (argc=4, argv=0xbffffb24, envp=0xbffffb38) >> > >>> at _m3main.mc:4 >> > >>> (gdb) list >> > >>> 58 BEGIN >> > >>> 59 WHILE pos < textLen DO >> > >>> 60 c := Text.GetChar(src, pos); >> > >>> 61 IF c IN self.starts THEN >> > >>> 62 (* S("analysing: " & Text.Sub(src, pos), >> > >>> DebugLevel); *) >> > >>> 63 iter := self.tbl.iterateOrdered(); >> > >>> 64 ind := pos; >> > >>> 65 original := ""; >> > >>> 66 REPEAT >> > >>> 67 INC(ind); >> > >>> (gdb) >> > >>> >> > >>> Any ideas what to look at? >> > >>> >> > >>> I don't know if this is relevant: >> > >>> >> > >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% uname -a >> > >>> Darwin lapdog.local 7.9.0 Darwin Kernel Version 7.9.0: Wed Mar 30 >> > >>> 20:11:17 PST 2005; root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC Power >> > >>> Macintosh powerpc >> > >>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% gcc -v >> > >>> Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs >> > >>> Thread model: posix >> > >>> gcc version 3.3 20030304 (Apple Computer, Inc. build 1666) >> > >>> >> > >>> Mika >> > >>> >> > >>> P.S. Am I correct in assuming that I can get CM3 to build on >> > >>> Windows? >> > >>> I could switch to CM3 on Unix any time, of course, but I've never >> > >>> had luck with it on Windows, which is why I am using the ancient >> > >>> Klagenfurt PM3, which comes on 40-odd "floppies" and a .EXE that >> > >>> unpacks them into C: (and installation instructions only in German). >> > >>> If CM3 doesn't work on Windows, I am essentially wasting my time, >> > >>> as the current project I am working on absolutely requires that the >> > >>> software run on Windows 2003 Server (yes, it sucks, but what can >> > >>> you do?) The very old PM3 at least kind of hobbles along on this >> > >>> platform---actually, better than that; it does Trestle natively >> > >>> under Windows (no X required), at least on SOME Windows machines. >> > >>> >> > >>> P.P.S. Sorry for all the postscripts, but is it true that the >> > >>> build system has been changed so that building with overrides >> > >>> (cm3 -x) >> > >>> requires having the compiler sources available? It didn't use to >> > >>> be that way, but I can't get Network Objects to work with overrides >> > >>> now unless I have the sources available... It's a bit of a pain >> > >>> because it means that every user has to have the compiler sources, >> > >>> or else ship everything, or was that not the intention? > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Jan 9 00:50:38 2011 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Sat, 8 Jan 2011 18:50:38 -0500 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: <20110108181715.77FF61A205B@async.async.caltech.edu> References: <20101227101653.307241A205B@async.async.caltech.edu> <20101227185453.97CE51A205B@async.async.caltech.edu> <20110108121441.A58031A205B@async.async.caltech.edu> <20110108134735.B7D4C1A205B@async.async.caltech.edu> <20110108161001.DC4871A205B@async.async.caltech.edu> <20110108181715.77FF61A205B@async.async.caltech.edu> Message-ID: Yes. When upgrade.py fails, you may or may not be in a bad state. I can see about making it safer. There are unavoidable depenedencies among cm3, cm3cg, and m3core, and maybe libm3. Starting point is a working cm3, and its cm3cg, and its config files, and m3core, and possible its libm3. I think maybe I should write a feature in upgrade.py that can start from scratch -- download old install archive or start from a specified local copy thereof. Interest? I might use it myself. I think upgrade should also have option to build all. - Jay On Jan 8, 2011, at 1:17 PM, Mika Nystrom wrote: > Do I need to go back to the release and install that, and then upgrade.py? > As far as I know my compiler was working fine... > > Jay K writes: >> --_1def5bc1-96d7-442f-bd33-2522abadf97d_ >> Content-Type: text/plain; charset="iso-8859-1" >> Content-Transfer-Encoding: quoted-printable >> >> Tony's instructions imho are too much work=2C error-prone. Upgrade.py does = >> rebuild cm3cg. Don't do it manually=2C as you have to be careful when you s= >> witch from old to new=2C and upgrade.py knows. There was a problem regardin= >> g m3bundle=2C fairly recently. So try head. Not a few weeks ago. The script= >> s specifically had a problem. >> >> Jay/phone >> >>> To: jay.krell at cornell.edu >>> Subject: Re: [M3devel] another Snow Leopard compiler crash=20 >>> Date: Sat=2C 8 Jan 2011 08:10:01 -0800 >>> From: mika at async.caltech.edu >>> =20 >>> Jay K writes: >>>> --_8699851d-dc9a-486c-965d-eaed43f71a51_ >>>> Content-Type: text/plain=3B charset=3D"iso-8859-1" >>>> Content-Transfer-Encoding: quoted-printable >>>> >>>> It no longer builds m3bundle I think. There was a problem regarding m3b= >> und=3D >>>> le for a while=3D2C because I had followed upgrade.sh too closely=3D2C w= >> hich ha=3D >>>> d this problem. And this is a sign of using old cm3cg. Are you sure you = >> did=3D >>>> n't do something weird? Uograde.py does upgrade cm3cg appropriately. Try= >> he=3D >>>> ad? >>>> >>> =20 >>> I'm not sure I didn't do anything weird. I have a CM3 distribution that >>> was release=2C then I upgraded it to head as of three weeks ago using >>> the procedure Tony described to me a few years ago. I've been using >>> that with no special problems since then. I then updated to the CVS head >>> and ran "python upgrade.py". It does not rebuild cm3cg=2C but I can do i= >> t >>> manually and try again. >>> =20 >>> Mika >> = >> >> --_1def5bc1-96d7-442f-bd33-2522abadf97d_ >> Content-Type: text/html; charset="iso-8859-1" >> Content-Transfer-Encoding: quoted-printable >> >> >> >> >> >> Tony's instructions imho are too much work=2C err= >> or-prone. Upgrade.py does rebuild cm3cg. Don't do it manually=2C as you hav= >> e to be careful when you switch from old to new=2C and upgrade.py knows. Th= >> ere was a problem regarding m3bundle=2C fairly recently. So try head. Not a= >> few weeks ago. The scripts specifically had a problem.

Jay/phone> r>
> To:=3B jay.krell@=3Bcornell.edu
> Subject:=3B Re:=3B= >> [=3BM3devel]=3B another Snow Leopard compiler crash
> Date:= >> =3B Sat=2C 8 Jan 2011 08:=3B10:=3B01 -0800
> From:=3B mika@= >> =3Basync.caltech.edu
>
> Jay K writes:=3B
> >=3B--_8699851d= >> -dc9a-486c-965d-eaed43f71a51_
> >=3BContent-Type:=3B text/plain= >> 9=3B charset==3B"=3Biso-8859-1"=3B
> >=3BContent-Transfer-En= >> coding:=3B quoted-printable
> >=3B
> >=3B It no longer build= >> s m3bundle I think. There was a problem regarding m3bund==3B
> >= >> =3Ble for a while==3B2C because I had followed upgrade.sh too closely= >> 1=3B2C which ha==3B
> >=3Bd this problem. And this is a sign of us= >> ing old cm3cg. Are you sure you did==3B
> >=3Bn'=3Bt do somethi= >> ng weird?=3B Uograde.py does upgrade cm3cg appropriately. Try he==3B<= >> br>> >=3Bad?=3B
> >=3B
>
> I'=3Bm not sure I didn'= >> =3Bt do anything weird. I have a CM3 distribution that
> was release=2C= >> then I upgraded it to head as of three weeks ago using
> the procedure = >> Tony described to me a few years ago. I'=3Bve been using
> that with= >> no special problems since then. I then updated to the CVS head
> and r= >> an "=3Bpython upgrade.py"=3B. It does not rebuild cm3cg=2C but I can= >> do it
> manually and try again.
>
> Mika
>> <= >> /body> >> = >> >> --_1def5bc1-96d7-442f-bd33-2522abadf97d_-- From jay.krell at cornell.edu Sun Jan 9 01:14:31 2011 From: jay.krell at cornell.edu (Jay K) Date: Sun, 9 Jan 2011 00:14:31 +0000 Subject: [M3devel] another Snow Leopard compiler crash In-Reply-To: References: <20101227101653.307241A205B@async.async.caltech.edu>, , <20101227185453.97CE51A205B@async.async.caltech.edu>, , , <20110108121441.A58031A205B@async.async.caltech.edu>, , <20110108134735.B7D4C1A205B@async.async.caltech.edu>, , <20110108161001.DC4871A205B@async.async.caltech.edu>, , <20110108181715.77FF61A205B@async.async.caltech.edu>, Message-ID: That is about good enough -- your compiler is upgraded, a few things are out of date and will crash. I'm a bit surprised you hit this. I updated postgres95 to avoid it..but maybe that is masking a problem. I updated upgrade.py to install a more conventional config file instead of what it used to do. What it used to do is delegate back to cvs/m3-sys/cminstall/src/config-no-install. Which is great if you are editing the files and want just one copy, would have saved me a lot of time in the past, but maybe is too nichey. Now it installs what a distribution would include -- no dependency on cvs tree. ?- Jay ---------------------------------------- > From: jay.krell at cornell.edu > Date: Sat, 8 Jan 2011 18:50:38 -0500 > To: mika at async.caltech.edu > CC: m3devel at elegosoft.com; jay.krell at cornell.edu > Subject: Re: [M3devel] another Snow Leopard compiler crash > > Yes. When upgrade.py fails, you may or may not be in a bad state. I can see about making it safer. There are unavoidable depenedencies among cm3, cm3cg, and m3core, and maybe libm3. > > Starting point is a working cm3, and its cm3cg, and its config files, and m3core, and possible its libm3. > > I think maybe I should write a feature in upgrade.py that can start from scratch -- download old install archive or start from a specified local copy thereof. Interest? I might use it myself. I think upgrade should also have option to build all. > > - Jay > > On Jan 8, 2011, at 1:17 PM, Mika Nystrom wrote: > > > Do I need to go back to the release and install that, and then upgrade.py? > > As far as I know my compiler was working fine... > > > > Jay K writes: > >> --_1def5bc1-96d7-442f-bd33-2522abadf97d_ > >> Content-Type: text/plain; charset="iso-8859-1" > >> Content-Transfer-Encoding: quoted-printable > >> > >> Tony's instructions imho are too much work=2C error-prone. Upgrade.py does = > >> rebuild cm3cg. Don't do it manually=2C as you have to be careful when you s= > >> witch from old to new=2C and upgrade.py knows. There was a problem regardin= > >> g m3bundle=2C fairly recently. So try head. Not a few weeks ago. The script= > >> s specifically had a problem. > >> > >> Jay/phone > >> > >>> To: jay.krell at cornell.edu > >>> Subject: Re: [M3devel] another Snow Leopard compiler crash=20 > >>> Date: Sat=2C 8 Jan 2011 08:10:01 -0800 > >>> From: mika at async.caltech.edu > >>> =20 > >>> Jay K writes: > >>>> --_8699851d-dc9a-486c-965d-eaed43f71a51_ > >>>> Content-Type: text/plain=3B charset=3D"iso-8859-1" > >>>> Content-Transfer-Encoding: quoted-printable > >>>> > >>>> It no longer builds m3bundle I think. There was a problem regarding m3b= > >> und=3D > >>>> le for a while=3D2C because I had followed upgrade.sh too closely=3D2C w= > >> hich ha=3D > >>>> d this problem. And this is a sign of using old cm3cg. Are you sure you = > >> did=3D > >>>> n't do something weird? Uograde.py does upgrade cm3cg appropriately. Try= > >> he=3D > >>>> ad? > >>>> > >>> =20 > >>> I'm not sure I didn't do anything weird. I have a CM3 distribution that > >>> was release=2C then I upgraded it to head as of three weeks ago using > >>> the procedure Tony described to me a few years ago. I've been using > >>> that with no special problems since then. I then updated to the CVS head > >>> and ran "python upgrade.py". It does not rebuild cm3cg=2C but I can do i= > >> t > >>> manually and try again. > >>> =20 > >>> Mika > >> = > >> > >> --_1def5bc1-96d7-442f-bd33-2522abadf97d_ > >> Content-Type: text/html; charset="iso-8859-1" > >> Content-Transfer-Encoding: quoted-printable > >> > >> > >> > >> > >> > >> Tony's instructions imho are too much work=2C err= > >> or-prone. Upgrade.py does rebuild cm3cg. Don't do it manually=2C as you hav= > >> e to be careful when you switch from old to new=2C and upgrade.py knows. Th= > >> ere was a problem regarding m3bundle=2C fairly recently. So try head. Not a= > >> few weeks ago. The scripts specifically had a problem. Jay/phone > >> r> > To:=3B jay.krell@=3Bcornell.edu > Subject:=3B Re:=3B= > >> [=3BM3devel]=3B another Snow Leopard compiler crash > Date:= > >> =3B Sat=2C 8 Jan 2011 08:=3B10:=3B01 -0800 > From:=3B mika@= > >> =3Basync.caltech.edu > > Jay K writes:=3B > >=3B--_8699851d= > >> -dc9a-486c-965d-eaed43f71a51_ > >=3BContent-Type:=3B text/plain= > >> 9=3B charset==3B"=3Biso-8859-1"=3B > >=3BContent-Transfer-En= > >> coding:=3B quoted-printable > >=3B > >=3B It no longer build= > >> s m3bundle I think. There was a problem regarding m3bund==3B > >= > >> =3Ble for a while==3B2C because I had followed upgrade.sh too closely= > >> 1=3B2C which ha==3B > >=3Bd this problem. And this is a sign of us= > >> ing old cm3cg. Are you sure you did==3B > >=3Bn'=3Bt do somethi= > >> ng weird?=3B Uograde.py does upgrade cm3cg appropriately. Try he==3B<= > >> br>> >=3Bad?=3B > >=3B > > I'=3Bm not sure I didn'= > >> =3Bt do anything weird. I have a CM3 distribution that > was release=2C= > >> then I upgraded it to head as of three weeks ago using > the procedure = > >> Tony described to me a few years ago. I'=3Bve been using > that with= > >> no special problems since then. I then updated to the CVS head > and r= > >> an "=3Bpython upgrade.py"=3B. It does not rebuild cm3cg=2C but I can= > >> do it > manually and try again. > > Mika > >> <= > >> /body> > >> = > >> > >> --_1def5bc1-96d7-442f-bd33-2522abadf97d_-- From hosking at cs.purdue.edu Sun Jan 9 01:29:10 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 8 Jan 2011 19:29:10 -0500 Subject: [M3devel] FW: LONGINT subrange problems In-Reply-To: References: <20110108081522.7A4C12474003@birch.elegosoft.com>, Message-ID: <9834E1DB-D87B-4263-BF04-4E6140B5D3AD@cs.purdue.edu> Yes, I'll take a look. On Jan 8, 2011, at 9:56 AM, Jay K wrote: > Tony any chance you can look at this? Or advise me where to fix? Notice the mismatches go both ways. This is on Darwin/i386 for me. Probably occurs on all 32bit targets & no 64bit targets. > > - Jay/phone > > > From: jay.krell at cornell.edu > > To: m3devel at elegosoft.com > > Date: Sat, 8 Jan 2011 08:19:06 +0000 > > Subject: [M3devel] FW: LONGINT subrange problems > > > > > > This is all based on Mika's work. > > > > > > MODULE Main; > > > > PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; > > > > PROCEDURE F2() = > > <*UNUSED*>VAR x: [0L..0L]; > > BEGIN > > END F2; > > > > PROCEDURE F3() = > > VAR x: [0L..0L]; > > BEGIN > > F1(x); > > END F3; > > > > BEGIN > > F1(0L); > > F2(); > > F3(); > > END Main. > > > > > > (20) declare_procedure name:Main__F1 n_params:1 lev:0 exported:false procedure:0x0 procedure:0x4 > > > > (22) declare_procedure name:Main__F2 n_params:0 lev:0 exported:false procedure:0x0 procedure:0x5 > > > > (24) declare_procedure name:Main__F3 n_params:0 lev:0 exported:false procedure:0x0 procedure:0x6 > > > > > > > > (33) begin_procedure procedure:0x5 > > (34) set_source_line 6 > > (35) load_integer type:int_64 0 > > (36) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int32 ] got [ Int64 ] > > (37) store var:0x5 offset:0 src_t:int_32 dst_t:word_8 > > (38) set_source_line 8 > > (39) exit_proc type:void > > (40) end_procedure procedure:0x5 > > (41) comment comment:F3 > > (42) set_source_line 0xA(10) > > > > (43) begin_procedure procedure:0x6 > > (44) set_source_line 0xB(11) > > (45) load_integer type:int_64 0 > > (46) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int32 ] got [ Int64 ] > > (47) store var:0x6 offset:0 src_t:int_32 dst_t:word_8 > > (48) set_source_line 0xD(13) > > > > (49) start_call_direct procedure:0x4 level:0 > > (50) load var:0x6 offset:0 src_t:word_8 dst_t:int_32 > > (51) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] > > (52) pop_param type:int_64 > > (53) call_direct procedure:0x4 > > (54) set_source_line 0xE(14) > > (55) exit_proc type:void > > (56) end_procedure procedure:0x6 > > (57) comment comment:Main_M3 > > (58) comment comment:module main body Main_M3 > > (59) set_source_line 0x10(16) > > > > > > > > > > > > > > > > ---------------------------------------- > > > Date: Sat, 8 Jan 2011 09:15:22 +0000 > > > To: m3commit at elegosoft.com > > > From: jkrell at elego.de > > > Subject: [M3commit] CVS Update: cm3 > > > > > > CVSROOT: /usr/cvs > > > Changes by: jkrell at birch. 11/01/08 09:15:21 > > > > > > Modified files: > > > cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > > > > > > Log message: > > > more LONGINT subrange problems, this now has 3 internal codegen errors, > > > due to stack type and expected type mismatches > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.caltech.edu Sun Jan 9 02:43:55 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Sat, 08 Jan 2011 17:43:55 -0800 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: <0A37C595-C896-4B66-9EDF-61BB30645321@cs.purdue.edu> Message-ID: <20110109014355.0A01F1A205B@async.async.caltech.edu> Well I spent the whole day figuring out how to update the compiler.. finally got everything working and I think this is with the very latest version (Jay just committed something two hours ago and it's in here). Or... wait.. did he go back a version and re-introduce the deadlock? That would explain why it's behaving the same way as it was before... Mika Thread 68 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 #5 0x97137217 in _cthread_fork_prepare () #6 0x97137155 in fork () #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixCommon.m3:75 #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #13 0x9713885d in _pthread_start () #14 0x971386e2 in thread_start () Thread 67 (process 32362): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003beb7e in ThreadInternal__Poll (fd=13, read=1, m3timeout=-1) at ../src/thread/Common/ThreadInternal.c:31 #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x2009550, fd=13, read=1 '\001', interval=-1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003c19a4 in SchedulerPosix__IOWait (fd=13, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 #4 0x0034f862 in FilePosix__IntermittentRead (h=0x24334f8, b=0xb1df4cd0, mayBlock=1 '\001') at ../src/os/POSIX/FilePosix.m3:220 #5 0x0035e935 in FileRd__Seek (rd=0x2433518, pos=0, dontBlock=0 '\0') at ../src/rw/FileRd.m3:83 #6 0x00356338 in Rd__DoSeek (rd=0x2433518) at ../src/rw/Rd.m3:54 #7 0x003560c1 in UnsafeRd__FastGetChar (rd=0x2433518) at ../src/rw/Rd.m3:43 #8 0x00356018 in Rd__GetChar (rd=0x2433518) at ../src/rw/Rd.m3:34 #9 0x00316fbc in ProcUtils__SSApply (self=0x242f128) at ../src/ProcUtils.m3:54 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009550) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009550) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 66 (process 32362): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003beb7e in ThreadInternal__Poll (fd=11, read=1, m3timeout=-1) at ../src/thread/Common/ThreadInternal.c:31 #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x20094a0, fd=11, read=1 '\001', interval=-1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003c19a4 in SchedulerPosix__IOWait (fd=11, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 #4 0x0034f862 in FilePosix__IntermittentRead (h=0x239f994, b=0xb1d72cd0, mayBlock=1 '\001') at ../src/os/POSIX/FilePosix.m3:220 #5 0x0035e935 in FileRd__Seek (rd=0x239f9b4, pos=0, dontBlock=0 '\0') at ../src/rw/FileRd.m3:83 #6 0x00356338 in Rd__DoSeek (rd=0x239f9b4) at ../src/rw/Rd.m3:54 #7 0x003560c1 in UnsafeRd__FastGetChar (rd=0x239f9b4) at ../src/rw/Rd.m3:43 #8 0x00356018 in Rd__GetChar (rd=0x239f9b4) at ../src/rw/Rd.m3:34 #9 0x00316fbc in ProcUtils__SSApply (self=0x242f0f0) at ../src/ProcUtils.m3:54 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x20094a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20094a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 65 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #33 0x9713885d in _pthread_start () #34 0x971386e2 in thread_start () Thread 64 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #28 0x9713885d in _pthread_start () #29 0x971386e2 in thread_start () Thread 60 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 59 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #19 0x9713885d in _pthread_start () #20 0x971386e2 in thread_start () Thread 54 (process 32362): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003beb7e in ThreadInternal__Poll (fd=10, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:31 #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x161dfc0, fd=10, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=10, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 #4 0x00346693 in TCP__GetBytesFD (t=0x22211d8, arr=0x22f400c, timeout=-1) at ../src/POSIX/TCP.m3:326 #5 0x00348786 in ConnRW__RdSeek (rd=0x2221260, pos=267, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 #6 0x003591ce in Rd__GetLine (rd=0x2221260) at ../src/rw/Rd.m3:426 #7 0x002b2826 in TWSTester__RApply (cl=0x2221290) at ../src/TWSTester.m3:382 #8 0x003c0ea5 in ThreadPThread__RunThread (me=0x161dfc0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #9 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161dfc0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #10 0x9713885d in _pthread_start () #11 0x971386e2 in thread_start () Thread 53 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161deb0, mutex=0x161e1c0, m3timeout=1294411605.506855) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x161e160, n=0.5, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=0.5) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x00297efc in PMTWS__TSCApply (cl=0x2221088) at ../src/PMTWS.m3:229 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e160) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e160) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 52 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #14 0x9713885d in _pthread_start () #15 0x971386e2 in thread_start () Thread 51 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #14 0x9713885d in _pthread_start () #15 0x971386e2 in thread_start () Thread 50 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2005ac0, mutex=0x20059b0, m3timeout=1294411629.006319) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x2005a60, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000e162d in DBTable_gcoms_aux_ordrMonitor__ApplyC (cl=0x229a528) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2005a60) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2005a60) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 49 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2005a40, mutex=0x20058e0, m3timeout=1294411606.0014169) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x20059e0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000e357e in DBTable_gcoms_aux_ordrMonitor__CleanerApply (cl=0x229a720) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x20059e0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20059e0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 48 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161de60, mutex=0x161aa50, m3timeout=1294411629.003248) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x161aae0, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000d2f00 in DBTable_gcoms_fillMonitor__ApplyC (cl=0x229a258) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161aae0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161aae0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 47 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161ac10, mutex=0x1625c10, m3timeout=1294411605.9982891) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x161aa80, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000d50b3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=0x229a450) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161aa80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161aa80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 46 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2004440, mutex=0x2004410, m3timeout=1294411678.997467) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x20043b0, n=100, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=100) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000da48e in DBTable_gcoms_aux_instrumentMonitor__ApplyC (cl=0x1711268) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x20043b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20043b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 45 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x20038d0, mutex=0x2004380, m3timeout=1294411605.9944479) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x2004320, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000dc415 in DBTable_gcoms_aux_instrumentMonitor__CleanerApply (cl=0x1711460) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2004320) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2004320) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 44 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x20071d0, mutex=0x20070e0, m3timeout=1294411678.9916439) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x2007170, n=100, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=100) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x224daf0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007170) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007170) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 43 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x20046e0, mutex=0x2006f50, m3timeout=1294411605.83337) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x2007110, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x224dce8) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007110) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007110) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 42 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161d830, mutex=0x161d780, m3timeout=1294411678.981461) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x161dae0, n=100, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=100) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x224d768) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161dae0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161dae0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 41 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161d7e0, mutex=0x161da50, m3timeout=1294411605.8302381) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x161da80, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x224d960) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161da80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161da80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 40 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161d940, mutex=0x161d910, m3timeout=1294411678.8294799) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x161d8b0, n=100, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=100) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000c4b88 in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=0x224d348) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161d8b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161d8b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 39 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x16262c0, mutex=0x161d750, m3timeout=1294411605.8264539) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x161d850, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000c6a9a in DBTable_gcoms_ordr_statusMonitor__CleanerApply (cl=0x224d540) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161d850) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161d850) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 38 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2003bc0, mutex=0x2003cd0, m3timeout=1294411628.744529) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x2003c70, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000b4d70 in DBTable_gcoms_strategyMonitor__ApplyC (cl=0x228c348) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2003c70) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2003c70) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 37 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2003ba0, mutex=0x2003be0, m3timeout=1294411605.7216971) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x2003c10, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000b6cc1 in DBTable_gcoms_strategyMonitor__CleanerApply (cl=0x228c538) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2003c10) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2003c10) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 36 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x16256b0, mutex=0x16255a0, m3timeout=1294411628.815861) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x1625650, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x228c080) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x1625650) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1625650) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 35 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x1625630, mutex=0x1625570, m3timeout=1294411605.7159209) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x16255d0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x228c270) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x16255d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x16255d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 34 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2003a30, mutex=0x20031e0, m3timeout=1294411628.7167931) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x20039d0, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 #6 0x000d2f00 in DBTable_gcoms_fillMonitor__ApplyC (cl=0x2255d40) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x20039d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20039d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 33 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x20034c0, mutex=0x20038a0, m3timeout=1294411605.7081449) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 #4 0x003c1763 in ThreadPThread__XPause (self=0x2003970, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000d50b3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=0x2255f30) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2003970) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2003970) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 32 (process 32362): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003beb7e in ThreadInternal__Poll (fd=9, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:31 #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x2003780, fd=9, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=9, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 #4 0x00346693 in TCP__GetBytesFD (t=0x227c15c, arr=0x227600c, timeout=-1) at ../src/POSIX/TCP.m3:326 #5 0x00348786 in ConnRW__RdSeek (rd=0x227a010, pos=0, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 #6 0x003591ce in Rd__GetLine (rd=0x227a010) at ../src/rw/Rd.m3:426 #7 0x002678d9 in UpdateMonitor__InApplyP (cl=0x227a040) at ../src/UpdateMonitor.m3:240 #8 0x003c0ea5 in ThreadPThread__RunThread (me=0x2003780) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #9 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2003780) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #10 0x9713885d in _pthread_start () #11 0x971386e2 in thread_start () Thread 31 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2003420, j=0x2003720) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x20036c0, m=0x227c220, c=0x227c22c, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x227c220, c=0x227c22c) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002674cc in UpdateMonitor__OutApplyP (p=0x227c17c) at ../src/UpdateMonitor.m3:178 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x20036c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20036c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 30 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x161a290, j=0x1625020) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x1624fc0, m=0x2255ac0, c=0x2255af4, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x2255ac0, c=0x2255af4) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x0026a003 in DesynchronizedDB__PApply (p=0x2255b04) at ../src/DesynchronizedDB.m3:216 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x1624fc0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1624fc0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 29 (process 32362): #0 0x9716c1d6 in __wait4 () #1 0x9716c1c9 in waitpid$UNIX2003 () #2 0x003c50d5 in Uexec__waitpid (i=32392, j=0xb0e36b7c, k=0) at ../src/unix/Common/Uexec.c:66 #3 0x003c1d31 in SchedulerPosix__WaitProcess (pid=32392, status=0xb0e36b7c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 #4 0x003536dc in Process__Wait (p=0x22585fc) at ../src/os/POSIX/ProcessPosixCommon.m3:275 #5 0x003163ad in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:185 #6 0x00316d6e in ProcUtils__Apply (self=0x2256284) at ../src/ProcUtils.m3:274 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x16251a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x16251a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 28 (process 32362): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003beb7e in ThreadInternal__Poll (fd=8, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:31 #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x20030c0, fd=8, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=8, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 #4 0x00346693 in TCP__GetBytesFD (t=0x22562c4, arr=0x225e00c, timeout=-1) at ../src/POSIX/TCP.m3:326 #5 0x00348786 in ConnRW__RdSeek (rd=0x2256318, pos=0, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 #6 0x00356338 in Rd__DoSeek (rd=0x2256318) at ../src/rw/Rd.m3:54 #7 0x003560c1 in UnsafeRd__FastGetChar (rd=0x2256318) at ../src/rw/Rd.m3:43 #8 0x00356018 in Rd__GetChar (rd=0x2256318) at ../src/rw/Rd.m3:34 #9 0x002c62c5 in ReadLine__ReadALine (t=0x225600c) at ../src/ReadLine.m3:151 #10 0x002c877e in ReadLine__ReadLine (t=0x225600c) at ../src/ReadLine.m3:411 #11 0x0023b1fb in SchemeReadLine__GetCh (p=0x2256348) at ../src/SchemeReadLine.m3:80 #12 0x0025f4b3 in SchemeInputPort__NextToken (t=0x2256348, wx=0x22563cc) at ../src/SchemeInputPort.m3:309 #13 0x0025eb94 in SchemeInputPort__Read (t=0x2256348) at ../src/SchemeInputPort.m3:177 #14 0x0023ba70 in SchemeReadLine__MainLoop (rl=0x225600c, scm=0x22340d0) at ../src/SchemeReadLine.m3:146 #15 0x00006c23 in Main__SCApply (c=0x2255620) at ../src/Main.m3:92 #16 0x003c0ea5 in ThreadPThread__RunThread (me=0x20030c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #17 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20030c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #18 0x9713885d in _pthread_start () #19 0x971386e2 in thread_start () Thread 27 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 26 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20011c0, j=0x2001e10) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2001db0, m=0x1738078, c=0x17380a8, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1738078, c=0x17380a8) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x0009e3d6 in GCOMSOrderStatus__Apply (cl=0x17380b8) at ../src/GCOMSOrderStatus.m3:166 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001db0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001db0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 25 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x1619840, j=0x1619920) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x161a170, m=0x15aab74, c=0x15aab80, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x15aab74, c=0x15aab80) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x000a4482 in GCOMSBusyOrders__Apply (cl=0x15aab90) at ../src/GCOMSBusyOrders.m3:63 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a170) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a170) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 24 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20011a0, j=0x2001170) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2001110, m=0x173e044, c=0x173e050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x173e044, c=0x173e050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0bace84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0bace84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x1594280) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15943b0) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001110) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001110) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 23 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20010f0, j=0x20010c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2001060, m=0x1724034, c=0x1724040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1724034, c=0x1724040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0b2ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0b2ae84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15940f0) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1594220) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001060) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001060) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 22 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2001040, j=0x2001010) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000fb0, m=0x1722034, c=0x1722040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1722034, c=0x1722040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0aa8e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0aa8e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15adb40) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad7cc) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000fb0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000fb0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 21 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000f90, j=0x2000f60) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000f00, m=0x1720034, c=0x1720040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1720034, c=0x1720040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0a26e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0a26e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15adae0) at ../src/SX.m3:151 #9 0x0016017c in CurrencySXProxy__Apply (cl=0x15ad7b0) at ../I386_DARWIN/CurrencySXProxy.m3 => /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000f00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000f00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 20 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000ee0, j=0x2000eb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000e50, m=0x173c044, c=0x173c050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x173c044, c=0x173c050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb09a4e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb09a4e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad450) at ../src/SX.m3:151 #9 0x002d3613 in BoolSXProxy__Apply (cl=0x15ad794) at ../I386_DARWIN/BoolSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000e50) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000e50) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 19 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000e30, j=0x2000e00) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000da0, m=0x171e034, c=0x171e040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x171e034, c=0x171e040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0922e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0922e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad3e8) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad778) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000da0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000da0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 18 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000d80, j=0x2000d50) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000cf0, m=0x1740044, c=0x1740050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1740044, c=0x1740050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb08a0e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb08a0e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad380) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad75c) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000cf0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000cf0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 17 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000cd0, j=0x2000ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000c40, m=0x1704044, c=0x1704050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1704044, c=0x1704050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb081ee84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb081ee84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad318) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad740) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000c40) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000c40) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 16 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000c20, j=0x2000bf0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000b90, m=0x1702044, c=0x1702050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1702044, c=0x1702050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb079ce84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb079ce84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad2b0) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad724) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000b90) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000b90) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 15 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000b70, j=0x2000b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000ae0, m=0x173a044, c=0x173a050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x173a044, c=0x173a050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb071ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb071ae84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad248) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad708) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000ae0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000ae0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 14 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000ac0, j=0x2000a90) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000a30, m=0x171a034, c=0x171a040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x171a034, c=0x171a040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0698e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0698e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad1e0) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad6ec) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000a30) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000a30) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 13 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000a10, j=0x20009e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000980, m=0x1718034, c=0x1718040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1718034, c=0x1718040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0616e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0616e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad618) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad6d0) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000980) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000980) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 12 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000960, j=0x2000930) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x20008d0, m=0x1716034, c=0x1716040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1716034, c=0x1716040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0594e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0594e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad5b0) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad6b4) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x20008d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20008d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 11 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20008b0, j=0x2000880) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000820, m=0x1714034, c=0x1714040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1714034, c=0x1714040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0512e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0512e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad548) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad698) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000820) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000820) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 10 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000800, j=0x20007d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000770, m=0x1712034, c=0x1712040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x1712034, c=0x1712040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0490e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0490e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15acea8) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad67c) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000770) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000770) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 9 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000750, j=0x2000720) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x20006c0, m=0x15b6034, c=0x15b6040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x15b6034, c=0x15b6040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb040ee84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb040ee84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591ea8) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1591fd8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x20006c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20006c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 8 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20006a0, j=0x2000670) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000610, m=0x15b4034, c=0x15b4040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x15b4034, c=0x15b4040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb038ce84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb038ce84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591bf8) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1591d28) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000610) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000610) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 7 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20005f0, j=0x20005c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000560, m=0x15b2034, c=0x15b2040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x15b2034, c=0x15b2040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb030ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb030ae84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591a70) at ../src/SX.m3:151 #9 0x0016017c in CurrencySXProxy__Apply (cl=0x1591b98) at ../I386_DARWIN/CurrencySXProxy.m3 => /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 6 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000540, j=0x2000510) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x20004b0, m=0x171c0c0, c=0x171c0cc, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x171c0c0, c=0x171c0cc) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0288e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0288e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591808) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1591938) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x20004b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20004b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 5 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000490, j=0x2000460) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000400, m=0x15b0034, c=0x15b0040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x15b0034, c=0x15b0040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0206e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0206e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591678) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15917a8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000400) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000400) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 4 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20003e0, j=0x20003b0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000350, m=0x15ae034, c=0x15ae040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x15ae034, c=0x15ae040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002d9828 in SXSelect__WaitE (on=0xb0184e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002d8e0d in SXSelect__Wait (on=0xb0184e84, touched=0x0) at ../src/SX.m3:149 #8 0x002d8e66 in SXSelect__Wait1 (on=0x15914e8) at ../src/SX.m3:151 #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1591618) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000350) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000350) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 3 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000150, j=0x20002c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000260, m=0x159123c, c=0x159122c, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003bf5c8 in Thread__Wait (m=0x159123c, c=0x159122c) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002ce79c in VarProxyDefs__NotifyApply (cl=0x1591248) at ../src/VarProxyDefs.m3:55 #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000260) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000260) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 2 (process 32362): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #13 0x9713885d in _pthread_start () #14 0x971386e2 in thread_start () Thread 1 (process 32362): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x16076f0, j=0x16076c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 #4 0x003bf4bf in ThreadPThread__XWait (self=0x1607660, m=0x15ac4b0, c=0x242f190, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003c1499 in ThreadPThread__XJoin (self=0x1607660, t=0x242f174, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:513 #6 0x003c15ae in Thread__Join (t=0x242f174) at ../src/thread/PTHREAD/ThreadPThread.m3:525 #7 0x003158c9 in ProcUtils__Wait (c=0x242f0d4) at ../src/ProcUtils.m3:318 #8 0x0024618a in SchemeCommandRunner__RealRunTimeoutCommandApply (proc=0x1738cc4, interp=0x2367eac, args=0x239bd88) at ../src/SchemeCommandRunner.m3:164 #9 0x00245e07 in SchemeCommandRunner__RunTimeoutCommandApply (proc=0x1738cc4, interp=0x2367eac, args=0x239bd88) at ../src/SchemeCommandRunner.m3:129 #10 0x00245405 in SchemeCommandRunner__RunCommandApply (proc=0x1738cc4, interp=0x2367eac, args=0x239bd70) at ../src/SchemeCommandRunner.m3:23 #11 0x0025c183 in SchemePrimitive__EDApply (ed=0x1738340, t=0x236b540, interp=0x2367eac, args=0x239bd70) at ../src/SchemePrimitive.m3:207 #12 0x00256d12 in SchemePrimitive__Prims (t=0x236b540, interp=0x2367eac, args=0x239bd70, x=0x239a328, y=0x239bd5c, free=0xbfffe82f) at ../src/SchemePrimitive.m3:580 #13 0x0025bb2b in SchemePrimitive__Apply2 (t=0x236b540, interp=0x2367eac, a1=0x239a328, a2=0x239bd5c) at ../src/SchemePrimitive.m3:549 #14 0x0024d640 in Scheme__EvalInternal (t=0x2367eac, x=0x239a288, env=0x239bce0) at ../src/Scheme.m3:585 #15 0x0024d3a8 in Scheme__EvalInternal (t=0x2367eac, x=0x239a1d8, env=0x239bce0) at ../src/Scheme.m3:582 #16 0x0024d82d in Scheme__Eval (t=0x2367eac, x=0x239b098, envP=0x2367ef4) at ../src/Scheme.m3:353 #17 0x0024b005 in Scheme__EvalInGlobalEnv (t=0x2367eac, x=0x239b098) at ../src/Scheme.m3:603 #18 0x0002aebc in SchemeCalculator__Calc (t=0x2367e9c, arr=0xbfffecdc) at ../src/SchemeCalculator.m3:61 #19 0x0000cbd3 in EuroDriver__Loop (t=0x224da38) at ../src/EuroDriver.m3:289 #20 0x00008820 in Main_M3 (mode=1) at ../src/Main.m3:268 #21 0x003b465a in RTLinker__RunMainBody (m=0x59e4c0) at ../src/runtime/common/RTLinker.m3:406 #22 0x003b3a8f in RTLinker__AddUnitI (m=0x59e4c0) at ../src/runtime/common/RTLinker.m3:113 #23 0x003b3b13 in RTLinker__AddUnit (b=0x6c5d) at ../src/runtime/common/RTLinker.m3:122 #24 0x000052ec in main (argc=19, argv=0xbffff1b4, envp=0xbffff204) at _m3main.c:16 Thread 75 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003ac2e3 in ThreadPThread__PThreadLockMutex (mutex=0x5d3ac0, line=1288, index=2) at ../src/thread/PTHREAD/ThreadPThread.m3:1262 #4 0x003ac409 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1288 #5 0x97137217 in _cthread_fork_prepare () #6 0x97137155 in fork () #7 0x0033bc4d in ProcessPosixCommon__Create_ForkExec (cmd=0x31e02ac, params=0x31e03c8, env=0x0, wd=0x53bf44, stdin=0x0, stdout=0x30e91cc, stderr=0x30ea700) at ../src/os/POSIX/ProcessPosixCommon.m3:75 #8 0x0033d137 in Process__Create (cmd=0x31e02ac, params=0x31e03c8, env=0x0, wd=0x53bf44, stdin=0x0, stdout=0x30e91cc, stderr=0x30ea700) at ../src/os/POSIX/ProcessPosix.m3:21 #9 0x002ffdbc in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 #10 0x003007c1 in ProcUtils__Apply (self=0x30eb88c) at ../src/ProcUtils.m3:274 #11 0x003a9c5b in ThreadPThread__RunThread (me=0x161dd00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #12 0x003a998a in ThreadPThread__ThreadBase (param=0x161dd00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #13 0x9713885d in _pthread_start () #14 0x971386e2 in thread_start () Thread 74 (process 67010): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003a7b74 in ThreadInternal__Poll (fd=13, read=1, m3timeout=-1) at ../src/thread/Common/ThreadInternal.c:57 #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x161dc50, fd=13, read=1 '\001', interval=-1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003aa6dc in SchedulerPosix__IOWait (fd=13, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 #4 0x00338b5f in FilePosix__IntermittentRead (h=0x30ea6f0, b=0xb1ef8cf0, mayBlock=1 '\001') at ../src/os/POSIX/FilePosix.m3:220 #5 0x00347c68 in FileRd__Seek (rd=0x30ea710, pos=0, dontBlock=0 '\0') at ../src/rw/FileRd.m3:83 #6 0x0033f64d in Rd__DoSeek (rd=0x30ea710) at ../src/rw/Rd.m3:54 #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=0x30ea710) at ../src/rw/Rd.m3:43 #8 0x0033f32d in Rd__GetChar (rd=0x30ea710) at ../src/rw/Rd.m3:34 #9 0x00300a0b in ProcUtils__SSApply (self=0x30eb854) at ../src/ProcUtils.m3:54 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161dc50) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161dc50) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 73 (process 67010): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003a7b74 in ThreadInternal__Poll (fd=11, read=1, m3timeout=-1) at ../src/thread/Common/ThreadInternal.c:57 #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x161dbc0, fd=11, read=1 '\001', interval=-1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003aa6dc in SchedulerPosix__IOWait (fd=11, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 #4 0x00338b5f in FilePosix__IntermittentRead (h=0x30e91bc, b=0xb1e76cf0, mayBlock=1 '\001') at ../src/os/POSIX/FilePosix.m3:220 #5 0x00347c68 in FileRd__Seek (rd=0x30e91dc, pos=0, dontBlock=0 '\0') at ../src/rw/FileRd.m3:83 #6 0x0033f64d in Rd__DoSeek (rd=0x30e91dc) at ../src/rw/Rd.m3:54 #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=0x30e91dc) at ../src/rw/Rd.m3:43 #8 0x0033f32d in Rd__GetChar (rd=0x30e91dc) at ../src/rw/Rd.m3:34 #9 0x00300a0b in ProcUtils__SSApply (self=0x30eb81c) at ../src/ProcUtils.m3:54 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161dbc0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161dbc0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 72 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7ebe in ThreadPThread__InitMutex (m=0x31339fc, root=0x31339f8, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003a7f82 in ThreadPThread__LockMutex (m=0x31339f8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x0033f30b in Rd__GetChar (rd=0x31339f8) at ../src/rw/Rd.m3:33 #6 0x0034dffd in Lex__Skip (rd=0x31339f8, cs=0x548018) at ../src/fmtlex/Lex.m3:46 #7 0x003503c3 in Lex__ReadReal (rd=0x31339f8, sign=0xb1df47c3, digits=0xb1df47dc, digCnt=0xb1df47c8, exp=0xb1df47cc) at ../src/fmtlex/Lex.m3:569 #8 0x00350ef5 in Lex__LongReal (rd=0x31339f8) at ../src/fmtlex/Lex.m3:662 #9 0x003518f1 in Scan__LongReal (txt=0x25768e8) at ../src/fmtlex/Scan.m3:77 #10 0x0024f849 in SchemeInputPort__NextToken (t=0x30d4aec, wx=0x31337e8) at ../src/SchemeInputPort.m3:439 #11 0x0024fb9c in SchemeInputPort__ReadTail2 (t=0x30d4aec, wx=0x31337e8) at ../src/SchemeInputPort.m3:240 #12 0x0024e100 in SchemeInputPort__Read (t=0x30d4aec) at ../src/SchemeInputPort.m3:179 #13 0x0024e2bc in SchemeInputPort__Read (t=0x30d4aec) at ../src/SchemeInputPort.m3:191 #14 0x0024fb73 in SchemeInputPort__ReadTail2 (t=0x30d4aec, wx=0x3133620) at ../src/SchemeInputPort.m3:240 #15 0x0024e100 in SchemeInputPort__Read (t=0x30d4aec) at ../src/SchemeInputPort.m3:179 #16 0x0024fb73 in SchemeInputPort__ReadTail2 (t=0x30d4aec, wx=0x3133548) at ../src/SchemeInputPort.m3:240 #17 0x0024e100 in SchemeInputPort__Read (t=0x30d4aec) at ../src/SchemeInputPort.m3:179 #18 0x0023c6cd in Scheme__LoadPort (t=0x30d018c, in=0x30d4aec) at ../src/Scheme.m3:317 #19 0x002399e3 in Scheme__LoadRd (t=0x30d018c, rd=0x30d3cf0, fn=0x0) at ../src/Scheme.m3:174 #20 0x0023d255 in Scheme__ReadInitialFiles (t=0x30d018c, files=0x46fc8c) at ../src/Scheme.m3:134 #21 0x0023d5e7 in Scheme__Init2 (t=0x30d018c, input=0x20003b4, output=0x20013e8, files=0x46fc8c, env=0x0) at ../src/Scheme.m3:127 #22 0x00239461 in Scheme__Init (t=0x30d018c, files=0x46fc8c, env=0x0) at ../src/Scheme.m3:102 #23 0x00029420 in SchemeCalculator__Init (t=0x30d017c, code=0x263fccc) at ../src/SchemeCalculator.m3:28 #24 0x0000deef in EuroDriver__OApply (cl=0x3241b88) at ../src/EuroDriver.m3:865 #25 0x003a9c5b in ThreadPThread__RunThread (me=0x2307650) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #26 0x003a998a in ThreadPThread__ThreadBase (param=0x2307650) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #27 0x9713885d in _pthread_start () #28 0x971386e2 in thread_start () Thread 71 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1345 #4 0x003995a6 in RTHeapRep__RegisterFinalCleanup (r=0x31239f8, p=0x3a7d52) at ../src/runtime/common/RTCollector.m3:2148 #5 0x003a7f1e in ThreadPThread__InitMutex (m=0x31239fc, root=0x31239f8, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:106 #6 0x003a7f82 in ThreadPThread__LockMutex (m=0x31239f8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #7 0x0033f30b in Rd__GetChar (rd=0x31239f8) at ../src/rw/Rd.m3:33 #8 0x0034dffd in Lex__Skip (rd=0x31239f8, cs=0x548018) at ../src/fmtlex/Lex.m3:46 #9 0x003503c3 in Lex__ReadReal (rd=0x31239f8, sign=0xb1d727c3, digits=0xb1d727dc, digCnt=0xb1d727c8, exp=0xb1d727cc) at ../src/fmtlex/Lex.m3:569 #10 0x00350ef5 in Lex__LongReal (rd=0x31239f8) at ../src/fmtlex/Lex.m3:662 #11 0x003518f1 in Scan__LongReal (txt=0x25768e8) at ../src/fmtlex/Scan.m3:77 #12 0x0024f849 in SchemeInputPort__NextToken (t=0x3264aec, wx=0x31237e8) at ../src/SchemeInputPort.m3:439 #13 0x0024fb9c in SchemeInputPort__ReadTail2 (t=0x3264aec, wx=0x31237e8) at ../src/SchemeInputPort.m3:240 #14 0x0024e100 in SchemeInputPort__Read (t=0x3264aec) at ../src/SchemeInputPort.m3:179 #15 0x0024e2bc in SchemeInputPort__Read (t=0x3264aec) at ../src/SchemeInputPort.m3:191 #16 0x0024fb73 in SchemeInputPort__ReadTail2 (t=0x3264aec, wx=0x3123620) at ../src/SchemeInputPort.m3:240 #17 0x0024e100 in SchemeInputPort__Read (t=0x3264aec) at ../src/SchemeInputPort.m3:179 #18 0x0024fb73 in SchemeInputPort__ReadTail2 (t=0x3264aec, wx=0x3123548) at ../src/SchemeInputPort.m3:240 #19 0x0024e100 in SchemeInputPort__Read (t=0x3264aec) at ../src/SchemeInputPort.m3:179 #20 0x0023c6cd in Scheme__LoadPort (t=0x326018c, in=0x3264aec) at ../src/Scheme.m3:317 #21 0x002399e3 in Scheme__LoadRd (t=0x326018c, rd=0x3263cf0, fn=0x0) at ../src/Scheme.m3:174 #22 0x0023d255 in Scheme__ReadInitialFiles (t=0x326018c, files=0x46fc8c) at ../src/Scheme.m3:134 #23 0x0023d5e7 in Scheme__Init2 (t=0x326018c, input=0x20003b4, output=0x20013e8, files=0x46fc8c, env=0x0) at ../src/Scheme.m3:127 #24 0x00239461 in Scheme__Init (t=0x326018c, files=0x46fc8c, env=0x0) at ../src/Scheme.m3:102 #25 0x00029420 in SchemeCalculator__Init (t=0x326017c, code=0x263fccc) at ../src/SchemeCalculator.m3:28 #26 0x0000deef in EuroDriver__OApply (cl=0x3241af0) at ../src/EuroDriver.m3:865 #27 0x003a9c5b in ThreadPThread__RunThread (me=0x23075c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #28 0x003a998a in ThreadPThread__ThreadBase (param=0x23075c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #29 0x9713885d in _pthread_start () #30 0x971386e2 in thread_start () Thread 67 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7ebe in ThreadPThread__InitMutex (m=0x2686284, root=0x2686280, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003a7f82 in ThreadPThread__LockMutex (m=0x2686280) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x003a7d30 in Thread__Acquire (m=0x2686280) at ../src/thread/PTHREAD/ThreadPThread.m3:81 #6 0x00343175 in RdClass__Lock (rd=0x2686280) at ../src/rw/Rd.m3:521 #7 0x0024d9ef in SchemeInputPort__Lock (t=0x2686368) at ../src/SchemeInputPort.m3:72 #8 0x0024e87d in SchemeInputPort__NextToken (t=0x2686368, wx=0x2686388) at ../src/SchemeInputPort.m3:299 #9 0x0024e0bb in SchemeInputPort__Read (t=0x2686368) at ../src/SchemeInputPort.m3:177 #10 0x00239a38 in Scheme__LoadEval (t=0x254018c, rd=0x2686280) at ../src/Scheme.m3:291 #11 0x00239abd in Scheme__LoadEvalText (t=0x254018c, txt=0x263fccc) at ../src/Scheme.m3:306 #12 0x00029574 in SchemeCalculator__Calc (t=0x254017c, arr=0xb1cf09e4) at ../src/SchemeCalculator.m3:47 #13 0x0000ee50 in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 #14 0x0000e7d6 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 #15 0x000103ca in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 #16 0x0000e3a2 in EuroDriver__OApply (cl=0x3018bb0) at ../src/EuroDriver.m3:892 #17 0x003a9c5b in ThreadPThread__RunThread (me=0x23054a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #18 0x003a998a in ThreadPThread__ThreadBase (param=0x23054a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #19 0x9713885d in _pthread_start () #20 0x971386e2 in thread_start () Thread 66 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x230d020, j=0x2305470) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2305410, m=0x311a158, c=0x311a164, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x311a158, c=0x311a164) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb1c6ecb8, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb1c6ecb8, touched=0x0) at ../src/SX.m3:149 #8 0x0001063a in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 #9 0x0000e3a2 in EuroDriver__OApply (cl=0x3018b18) at ../src/EuroDriver.m3:892 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2305410) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2305410) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 62 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x23019d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x31b1584) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x003a7d30 in Thread__Acquire (m=0x31b1584) at ../src/thread/PTHREAD/ThreadPThread.m3:81 #5 0x002c5bb6 in SX__Lock (arr=0x327c430) at ../src/SX.m3:318 #6 0x002c5496 in SXSelect__WaitE (on=0xb1beccb8, except=0x0, touched=0x0) at ../src/SX.m3:241 #7 0x002c4acd in SXSelect__Wait (on=0xb1beccb8, touched=0x0) at ../src/SX.m3:149 #8 0x0001063a in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 #9 0x0000e3a2 in EuroDriver__OApply (cl=0x21fcc00) at ../src/EuroDriver.m3:892 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x1626040) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x1626040) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 61 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7ebe in ThreadPThread__InitMutex (m=0x252c4b4, root=0x252c4b0, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003a7f82 in ThreadPThread__LockMutex (m=0x252c4b0) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x003a7d30 in Thread__Acquire (m=0x252c4b0) at ../src/thread/PTHREAD/ThreadPThread.m3:81 #6 0x00343175 in RdClass__Lock (rd=0x252c4b0) at ../src/rw/Rd.m3:521 #7 0x0024d9ef in SchemeInputPort__Lock (t=0x252c598) at ../src/SchemeInputPort.m3:72 #8 0x0024e87d in SchemeInputPort__NextToken (t=0x252c598, wx=0x252c5b8) at ../src/SchemeInputPort.m3:299 #9 0x0024e0bb in SchemeInputPort__Read (t=0x252c598) at ../src/SchemeInputPort.m3:177 #10 0x00239a38 in Scheme__LoadEval (t=0x26f018c, rd=0x252c4b0) at ../src/Scheme.m3:291 #11 0x00239abd in Scheme__LoadEvalText (t=0x26f018c, txt=0x263fccc) at ../src/Scheme.m3:306 #12 0x00029574 in SchemeCalculator__Calc (t=0x26f017c, arr=0xb1b6a864) at ../src/SchemeCalculator.m3:47 #13 0x0000ee50 in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 #14 0x0000e7d6 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 #15 0x000103ca in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 #16 0x0000e3a2 in EuroDriver__OApply (cl=0x21fcb68) at ../src/EuroDriver.m3:892 #17 0x003a9c5b in ThreadPThread__RunThread (me=0x1625f80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #18 0x003a998a in ThreadPThread__ThreadBase (param=0x1625f80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #19 0x9713885d in _pthread_start () #20 0x971386e2 in thread_start () Thread 54 (process 67010): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003a7b74 in ThreadInternal__Poll (fd=10, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:57 #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x23071d0, fd=10, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=10, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 #4 0x003344ff in TCP__GetBytesFD (t=0x3050f80, arr=0x3053048, timeout=-1) at ../src/POSIX/TCP.m3:326 #5 0x003365ce in ConnRW__RdSeek (rd=0x3053018, pos=390, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 #6 0x003424e3 in Rd__GetLine (rd=0x3053018) at ../src/rw/Rd.m3:426 #7 0x002a00d4 in TWSTester__RApply (cl=0x3055054) at ../src/TWSTester.m3:382 #8 0x003a9c5b in ThreadPThread__RunThread (me=0x23071d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #9 0x003a998a in ThreadPThread__ThreadBase (param=0x23071d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #10 0x9713885d in _pthread_start () #11 0x971386e2 in thread_start () Thread 53 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x1621150, mutex=0x1621120, m3timeout=1294537044.5119109) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x16210c0, n=0.5, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=0.5) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x00286610 in PMTWS__TSCApply (cl=0x3050e30) at ../src/PMTWS.m3:229 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x16210c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x16210c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 52 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1345 #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x1621054) at ../src/runtime/common/RTAllocator.m3:363 #5 0x0038f2c7 in RTAllocator__GetTracedObj (def=0x5d6bf4) at ../src/runtime/common/RTAllocator.m3:224 #6 0x0038ed60 in RTHooks__AllocateTracedObj (defn=0x5d6bf4) at ../src/runtime/common/RTAllocator.m3:122 #7 0x003bc686 in RTHooks__Concat (t=0x3240a08, u=0x52c460) at ../src/text/TextCat.m3:28 #8 0x0029e655 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 #9 0x0029ea07 in TWSTester__ReqMktData (t=0x30505a8, tickerId=4, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 #10 0x002aa233 in TWSTestBridge__MreqMktData (t=0x30505a8, tickerId=4, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 #11 0x00286034 in PMTWS__TSCApply (cl=0x3050dec) at ../src/PMTWS.m3:210 #12 0x003a9c5b in ThreadPThread__RunThread (me=0x1621010) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #13 0x003a998a in ThreadPThread__ThreadBase (param=0x1621010) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #14 0x9713885d in _pthread_start () #15 0x971386e2 in thread_start () Thread 51 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1345 #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x1620ed4) at ../src/runtime/common/RTAllocator.m3:363 #5 0x0038f048 in RTAllocator__GetTracedRef (def=0x5711e0) at ../src/runtime/common/RTAllocator.m3:202 #6 0x0038ed2f in RTHooks__AllocateTracedRef (defn=0x5711e0) at ../src/runtime/common/RTAllocator.m3:115 #7 0x000a8f49 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x328f110, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 #8 0x000a5ecc in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x26608c0, res=0x328f110) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 #9 0x00085c9f in GCOMSPortfolio__Lock (t=0x2660590) at ../src/GCOMSPortfolio.m3:94 #10 0x000288d9 in SXPortfolio__Scan (t=0x300c578) at ../src/SXPortfolio.m3:47 #11 0x0002920d in SXPortfolio__Apply (cl=0x3050324) at ../src/SXPortfolio.m3:113 #12 0x003a9c5b in ThreadPThread__RunThread (me=0x1620e90) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #13 0x003a998a in ThreadPThread__ThreadBase (param=0x1620e90) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #14 0x9713885d in _pthread_start () #15 0x971386e2 in thread_start () Thread 50 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4ad944, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 #5 0x000d9ad8 in DBTable_gcoms_aux_ordrMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #6 0x000d9cdf in DBTable_gcoms_aux_ordrMonitor__CheckForNew (cl=0x300c218) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #7 0x000d9a01 in DBTable_gcoms_aux_ordrMonitor__Sync (cl=0x300c218) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #8 0x000d9588 in DBTable_gcoms_aux_ordrMonitor__ApplyC (cl=0x300c218) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #9 0x003a9c5b in ThreadPThread__RunThread (me=0x1620d80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #10 0x003a998a in ThreadPThread__ThreadBase (param=0x1620d80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #11 0x9713885d in _pthread_start () #12 0x971386e2 in thread_start () Thread 49 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x1620d60, mutex=0x1620cd0, m3timeout=1294537044.970454) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x1620d00, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000db5a3 in DBTable_gcoms_aux_ordrMonitor__CleanerApply (cl=0x300c410) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1620d00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1620d00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 48 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4aa228, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 #5 0x000cb8aa in DBTable_gcoms_fillMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #6 0x000cbbf5 in DBTable_gcoms_fillMonitor__CheckForNew (cl=0x300bf48) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #7 0x000cb7d3 in DBTable_gcoms_fillMonitor__Sync (cl=0x300bf48) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #8 0x000cb35a in DBTable_gcoms_fillMonitor__ApplyC (cl=0x300bf48) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #9 0x003a9c5b in ThreadPThread__RunThread (me=0x1620b50) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #10 0x003a998a in ThreadPThread__ThreadBase (param=0x1620b50) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #11 0x9713885d in _pthread_start () #12 0x971386e2 in thread_start () Thread 47 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x16243d0, mutex=0x1620ac0, m3timeout=1294537044.9675839) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x1620af0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000cd5e3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=0x300c140) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1620af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1620af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 46 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4abd98, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 #5 0x000d2b9a in DBTable_gcoms_aux_instrumentMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #6 0x000d2dbf in DBTable_gcoms_aux_instrumentMonitor__CheckForNew (cl=0x30091c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #7 0x000d2ac3 in DBTable_gcoms_aux_instrumentMonitor__Sync (cl=0x30091c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #8 0x000d264a in DBTable_gcoms_aux_instrumentMonitor__ApplyC (cl=0x30091c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #9 0x003a9c5b in ThreadPThread__RunThread (me=0x2306710) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #10 0x003a998a in ThreadPThread__ThreadBase (param=0x2306710) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #11 0x9713885d in _pthread_start () #12 0x971386e2 in thread_start () Thread 45 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x230b2d0, mutex=0x2306680, m3timeout=1294537044.960629) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x23066b0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000d469b in DBTable_gcoms_aux_instrumentMonitor__CleanerApply (cl=0x30093c0) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x23066b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x23066b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 44 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a159c, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=0x3205b38) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=0x3205b38) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x3205b38) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #9 0x003a9c5b in ThreadPThread__RunThread (me=0x230b000) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #10 0x003a998a in ThreadPThread__ThreadBase (param=0x230b000) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #11 0x9713885d in _pthread_start () #12 0x971386e2 in thread_start () Thread 43 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x230afe0, mutex=0x230af20, m3timeout=1294537044.8138101) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x230af80, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x3205d30) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x230af80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x230af80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 42 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a159c, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=0x32057b0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=0x32057b0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x32057b0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #9 0x003a9c5b in ThreadPThread__RunThread (me=0x230aca0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #10 0x003a998a in ThreadPThread__ThreadBase (param=0x230aca0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #11 0x9713885d in _pthread_start () #12 0x971386e2 in thread_start () Thread 41 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x2301860, mutex=0x230ab40, m3timeout=1294537044.8138311) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x230aba0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x32059a8) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x230aba0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x230aba0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 40 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a6b9c, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 #5 0x000bd587 in DBTable_gcoms_ordr_statusMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #6 0x000bd76e in DBTable_gcoms_ordr_statusMonitor__CheckForNew (cl=0x3205390) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #7 0x000bd4b0 in DBTable_gcoms_ordr_statusMonitor__Sync (cl=0x3205390) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #8 0x000bd037 in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=0x3205390) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #9 0x003a9c5b in ThreadPThread__RunThread (me=0x1621f10) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #10 0x003a998a in ThreadPThread__ThreadBase (param=0x1621f10) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #11 0x9713885d in _pthread_start () #12 0x971386e2 in thread_start () Thread 39 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x16242f0, mutex=0x1621ee0, m3timeout=1294537044.8137701) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x1622280, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000bf010 in DBTable_gcoms_ordr_statusMonitor__CleanerApply (cl=0x3205588) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1622280) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1622280) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 38 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a3144, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 #5 0x000adb3f in DBTable_gcoms_strategyMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #6 0x000add46 in DBTable_gcoms_strategyMonitor__CheckForNew (cl=0x2660b88) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #7 0x000ada68 in DBTable_gcoms_strategyMonitor__Sync (cl=0x2660b88) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #8 0x000ad5ef in DBTable_gcoms_strategyMonitor__ApplyC (cl=0x2660b88) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #9 0x003a9c5b in ThreadPThread__RunThread (me=0x161b820) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #10 0x003a998a in ThreadPThread__ThreadBase (param=0x161b820) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #11 0x9713885d in _pthread_start () #12 0x971386e2 in thread_start () Thread 37 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x2306160, mutex=0x2305f70, m3timeout=1294537044.6482379) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x2306100, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000af60a in DBTable_gcoms_strategyMonitor__CleanerApply (cl=0x2660d78) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x2306100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x2306100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 36 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a159c, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=0x26608c0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=0x26608c0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x26608c0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #9 0x003a9c5b in ThreadPThread__RunThread (me=0x2305e30) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #10 0x003a998a in ThreadPThread__ThreadBase (param=0x2305e30) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #11 0x9713885d in _pthread_start () #12 0x971386e2 in thread_start () Thread 35 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x2305dd0, mutex=0x2305c40, m3timeout=1294537044.6481991) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x2305d70, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x2660ab0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x2305d70) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x2305d70) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 34 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1345 #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=32, dataAlignment=4, thread=0x1623e04) at ../src/runtime/common/RTAllocator.m3:363 #5 0x0038f2c7 in RTAllocator__GetTracedObj (def=0x5c87d4) at ../src/runtime/common/RTAllocator.m3:224 #6 0x0038ed60 in RTHooks__AllocateTracedObj (defn=0x5c87d4) at ../src/runtime/common/RTAllocator.m3:122 #7 0x00260a50 in DatabaseUtils__FilterUnprintable (t=0x4aa228) at ../src/DatabaseUtils.m3:124 #8 0x0026b6ae in UnsafeDatabase__ExecM (t=0x2660178, query=0x4aa228, busyWait=0 '\0', abortConnectionOnFail=1 '\001') at ../src/UnsafeDatabase.m3:217 #9 0x0026baa5 in UnsafeDatabase__TExecM (t=0x2660178, query=0x4aa228, busyWait=0 '\0', abortConnectionOnFail=1 '\001') at ../src/UnsafeDatabase.m3:258 #10 0x002587f9 in DesynchronizedDB__SExec (t=0x26602c4, query=0x4aa228, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:126 #11 0x000cb8aa in DBTable_gcoms_fillMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 #12 0x000cbbf5 in DBTable_gcoms_fillMonitor__CheckForNew (cl=0x26605f8) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 #13 0x000cb7d3 in DBTable_gcoms_fillMonitor__Sync (cl=0x26605f8) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 #14 0x000cb35a in DBTable_gcoms_fillMonitor__ApplyC (cl=0x26605f8) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 #15 0x003a9c5b in ThreadPThread__RunThread (me=0x1623dc0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #16 0x003a998a in ThreadPThread__ThreadBase (param=0x1623dc0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #17 0x9713885d in _pthread_start () #18 0x971386e2 in thread_start () Thread 33 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x1623da0, mutex=0x1623640, m3timeout=1294537044.6482589) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 #4 0x003aa4a2 in ThreadPThread__XPause (self=0x1623d40, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000cd5e3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=0x26607e8) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1623d40) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1623d40) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 32 (process 67010): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003a7b74 in ThreadInternal__Poll (fd=9, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:57 #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x1623c00, fd=9, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=9, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 #4 0x003344ff in TCP__GetBytesFD (t=0x267015c, arr=0x2690040, timeout=-1) at ../src/POSIX/TCP.m3:326 #5 0x003365ce in ConnRW__RdSeek (rd=0x2690010, pos=0, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 #6 0x003424e3 in Rd__GetLine (rd=0x2690010) at ../src/rw/Rd.m3:426 #7 0x00256bb0 in UpdateMonitor__InApplyP (cl=0x269204c) at ../src/UpdateMonitor.m3:240 #8 0x003a9c5b in ThreadPThread__RunThread (me=0x1623c00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #9 0x003a998a in ThreadPThread__ThreadBase (param=0x1623c00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #10 0x9713885d in _pthread_start () #11 0x971386e2 in thread_start () Thread 31 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x1623470, j=0x1623ba0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x1623b40, m=0x2670220, c=0x267022c, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2670220, c=0x267022c) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002567b1 in UpdateMonitor__OutApplyP (p=0x267017c) at ../src/UpdateMonitor.m3:178 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1623b40) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1623b40) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 30 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23016c0, j=0x2305a80) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2305a20, m=0x2660378, c=0x26603ac, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2660378, c=0x26603ac) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x00259145 in DesynchronizedDB__PApply (p=0x26603bc) at ../src/DesynchronizedDB.m3:216 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x2305a20) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x2305a20) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 29 (process 67010): #0 0x9716c1d6 in __wait4 () #1 0x9716c1c9 in waitpid$UNIX2003 () #2 0x003add58 in Uexec__waitpid (i=67040, j=0xb0e36b4c, k=0) at ../src/unix/Common/Uexec.c:67 #3 0x003aaa51 in SchedulerPosix__WaitProcess (pid=67040, status=0xb0e36b4c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 #4 0x0033ca19 in Process__Wait (p=0x2650590) at ../src/os/POSIX/ProcessPosixCommon.m3:275 #5 0x002ffdf6 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:185 #6 0x003007c1 in ProcUtils__Apply (self=0x2640284) at ../src/ProcUtils.m3:274 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x16233b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x16233b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 28 (process 67010): #0 0x9719ea7e in poll$UNIX2003 () #1 0x003a7b74 in ThreadInternal__Poll (fd=7, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:57 #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x1623300, fd=7, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=7, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 #4 0x003344ff in TCP__GetBytesFD (t=0x26402c4, arr=0x2642358, timeout=-1) at ../src/POSIX/TCP.m3:326 #5 0x003365ce in ConnRW__RdSeek (rd=0x2642328, pos=0, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 #6 0x0033f64d in Rd__DoSeek (rd=0x2642328) at ../src/rw/Rd.m3:54 #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=0x2642328) at ../src/rw/Rd.m3:43 #8 0x0033f32d in Rd__GetChar (rd=0x2642328) at ../src/rw/Rd.m3:34 #9 0x002b26e9 in ReadLine__ReadALine (t=0x264000c) at ../src/ReadLine.m3:151 #10 0x002b4a56 in ReadLine__ReadLine (t=0x264000c) at ../src/ReadLine.m3:411 #11 0x0022a383 in SchemeReadLine__GetCh (p=0x2644364) at ../src/SchemeReadLine.m3:80 #12 0x0024e942 in SchemeInputPort__NextToken (t=0x2644364, wx=0x26443e8) at ../src/SchemeInputPort.m3:309 #13 0x0024e0bb in SchemeInputPort__Read (t=0x2644364) at ../src/SchemeInputPort.m3:177 #14 0x0022abaa in SchemeReadLine__MainLoop (rl=0x264000c, scm=0x256b9e4) at ../src/SchemeReadLine.m3:146 #15 0x00006bb7 in Main__SCApply (c=0x263fed0) at ../src/Main.m3:92 #16 0x003a9c5b in ThreadPThread__RunThread (me=0x1623300) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #17 0x003a998a in ThreadPThread__ThreadBase (param=0x1623300) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #18 0x9713885d in _pthread_start () #19 0x971386e2 in thread_start () Thread 27 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x161bd50) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7faf in ThreadPThread__LockMutex (m=0x25400a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 #4 0x002c77db in SXLongReal__Update (v=0x2540010, newValue=1293719775.9374268, when=1293719775.9374378) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 #5 0x002c7abe in SXLongReal__SetVar (v=0x2540010, newValue=1293719775.9374268, when=1293719775.9374378) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 #6 0x002eaaf7 in SXTimer__Loop (cl=0x21e11cc) at ../src/SXTimer.m3:64 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x161b610) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x161b610) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 26 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23016a0, j=0x2301670) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2301610, m=0x2114828, c=0x2114858, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2114828, c=0x2114858) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x000974c8 in GCOMSOrderStatus__Apply (cl=0x2114868) at ../src/GCOMSOrderStatus.m3:166 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x2301610) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x2301610) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 25 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300540, j=0x2301580) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x23015b0, m=0x211476c, c=0x2114778, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x211476c, c=0x2114778) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x0009d268 in GCOMSBusyOrders__Apply (cl=0x2114788) at ../src/GCOMSBusyOrders.m3:63 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x23015b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x23015b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 24 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300d90, j=0x2300d60) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300d00, m=0x21d0044, c=0x21d0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x21d0044, c=0x21d0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0bace84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0bace84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2111418) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2111548) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300d00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300d00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 23 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300ce0, j=0x2300cb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300c50, m=0x21c0044, c=0x21c0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x21c0044, c=0x21c0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0b2ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0b2ae84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2111288) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x21113b8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300c50) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300c50) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 22 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300c30, j=0x2300c00) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300ba0, m=0x21b0044, c=0x21b0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x21b0044, c=0x21b0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0aa8e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0aa8e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110fd8) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2111108) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300ba0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300ba0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 21 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300b80, j=0x2300b50) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300af0, m=0x21a0044, c=0x21a0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x21a0044, c=0x21a0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0a26e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0a26e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110e50) at ../src/SX.m3:151 #9 0x00163596 in CurrencySXProxy__Apply (cl=0x2110f78) at ../I386_DARWIN/CurrencySXProxy.m3 => /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 20 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300a10, j=0x23009e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300980, m=0x2190044, c=0x2190050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2190044, c=0x2190050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb09a4e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb09a4e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110b48) at ../src/SX.m3:151 #9 0x002bf3d5 in BoolSXProxy__Apply (cl=0x2110c70) at ../I386_DARWIN/BoolSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300980) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300980) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 19 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300960, j=0x2300930) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x23008d0, m=0x2180044, c=0x2180050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2180044, c=0x2180050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0922e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0922e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x21109b8) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2110ae8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x23008d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x23008d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 18 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23008b0, j=0x2300880) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300820, m=0x2170044, c=0x2170050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2170044, c=0x2170050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb08a0e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb08a0e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110828) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2110958) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300820) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300820) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 17 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300800, j=0x23007d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300770, m=0x2160044, c=0x2160050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2160044, c=0x2160050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb081ee84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb081ee84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110698) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x21107c8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300770) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300770) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 16 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300750, j=0x2300720) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x23006c0, m=0x2150044, c=0x2150050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2150044, c=0x2150050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb079ce84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb079ce84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110508) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2110638) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x23006c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x23006c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 15 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23006a0, j=0x2300670) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300610, m=0x2140044, c=0x2140050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2140044, c=0x2140050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb071ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb071ae84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110378) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x21104a8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300610) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300610) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 14 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161af10, j=0x161aee0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x161ae80, m=0x2130044, c=0x2130050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2130044, c=0x2130050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0698e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0698e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x21101e8) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2110318) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161ae80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161ae80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 13 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23005f0, j=0x23005c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300560, m=0x2120044, c=0x2120050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2120044, c=0x2120050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0616e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0616e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x20c0c40) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x21100ac) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 12 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23004c0, j=0x2300490) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300430, m=0x2080044, c=0x2080050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2080044, c=0x2080050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0594e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0594e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x20c0ab0) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x20c0be0) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300430) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300430) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 11 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300410, j=0x23003e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300380, m=0x20f0044, c=0x20f0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x20f0044, c=0x20f0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0512e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0512e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x20c0920) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x20c0a50) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300380) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300380) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 10 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161aad0, j=0x161aaa0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x161aa40, m=0x20b0044, c=0x20b0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x20b0044, c=0x20b0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0490e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0490e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020e88) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020fb8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161aa40) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161aa40) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 9 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23002a0, j=0x2300270) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x2300210, m=0x2090044, c=0x2090050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2090044, c=0x2090050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb040ee84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb040ee84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020cf8) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020e28) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300210) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300210) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 8 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a9c0, j=0x161a990) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x161a930, m=0x20e0034, c=0x20e0040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x20e0034, c=0x20e0040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb038ce84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb038ce84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020a48) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020b78) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a930) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a930) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 7 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a910, j=0x161a8e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x161a880, m=0x20a0034, c=0x20a0040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x20a0034, c=0x20a0040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb030ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb030ae84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x20208c0) at ../src/SX.m3:151 #9 0x00163596 in CurrencySXProxy__Apply (cl=0x20209e8) at ../I386_DARWIN/CurrencySXProxy.m3 => /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a880) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a880) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 6 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a860, j=0x161a830) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x161a7d0, m=0x2050044, c=0x2050050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2050044, c=0x2050050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0288e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0288e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020658) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020788) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a7d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a7d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 5 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a7b0, j=0x161a780) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x161a720, m=0x2040044, c=0x2040050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2040044, c=0x2040050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0206e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0206e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x20204c8) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x20205f8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a720) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a720) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 4 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a290, j=0x161a6f0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x161a690, m=0x2030044, c=0x2030050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x2030044, c=0x2030050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002c5482 in SXSelect__WaitE (on=0xb0184e84, except=0x0, touched=0x0) at ../src/SX.m3:239 #7 0x002c4acd in SXSelect__Wait (on=0xb0184e84, touched=0x0) at ../src/SX.m3:149 #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020338) at ../src/SX.m3:151 #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020468) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a690) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a690) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #12 0x9713885d in _pthread_start () #13 0x971386e2 in thread_start () Thread 3 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x1619840, j=0x161a600) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x161a230, m=0x202008c, c=0x202007c, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003a853e in Thread__Wait (m=0x202008c, c=0x202007c) at ../src/thread/PTHREAD/ThreadPThread.m3:204 #6 0x002ba948 in VarProxyDefs__NotifyApply (cl=0x2020098) at ../src/VarProxyDefs.m3:55 #7 0x003a9c5b in ThreadPThread__RunThread (me=0x161a230) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #8 0x003a998a in ThreadPThread__ThreadBase (param=0x161a230) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #9 0x9713885d in _pthread_start () #10 0x971386e2 in thread_start () Thread 2 (process 67010): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 #3 0x003a7ebe in ThreadPThread__InitMutex (m=0x20100ac, root=0x20100a8, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #4 0x003a7f82 in ThreadPThread__LockMutex (m=0x20100a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #5 0x0033f30b in Rd__GetChar (rd=0x20100a8) at ../src/rw/Rd.m3:33 #6 0x0034dffd in Lex__Skip (rd=0x20100a8, cs=0x548018) at ../src/fmtlex/Lex.m3:46 #7 0x003503c3 in Lex__ReadReal (rd=0x20100a8, sign=0xb00809e3, digits=0xb00809fc, digCnt=0xb00809e8, exp=0xb00809ec) at ../src/fmtlex/Lex.m3:569 #8 0x00350ef5 in Lex__LongReal (rd=0x20100a8) at ../src/fmtlex/Lex.m3:662 #9 0x003518f1 in Scan__LongReal (txt=0x201007c) at ../src/fmtlex/Scan.m3:77 #10 0x0030ef75 in XTime__ClApply (cl=0x2004624) at ../src/XTime.m3:185 #11 0x003a9c5b in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #12 0x003a998a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #13 0x9713885d in _pthread_start () #14 0x971386e2 in thread_start () Thread 1 (process 67010): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x16076f0, j=0x16076c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 #4 0x003a842f in ThreadPThread__XWait (self=0x1607660, m=0x2000084, c=0x30eb8bc, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 #5 0x003aa1f3 in ThreadPThread__XJoin (self=0x1607660, t=0x30eb8a0, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:513 #6 0x003aa2f5 in Thread__Join (t=0x30eb8a0) at ../src/thread/PTHREAD/ThreadPThread.m3:525 #7 0x002ff2b8 in ProcUtils__Wait (c=0x30eb800) at ../src/ProcUtils.m3:318 #8 0x00234ebd in SchemeCommandRunner__RealRunTimeoutCommandApply (proc=0x21e0b44, interp=0x3241ec4, args=0x30e775c) at ../src/SchemeCommandRunner.m3:164 #9 0x00234b4f in SchemeCommandRunner__RunTimeoutCommandApply (proc=0x21e0b44, interp=0x3241ec4, args=0x30e775c) at ../src/SchemeCommandRunner.m3:129 #10 0x00234217 in SchemeCommandRunner__RunCommandApply (proc=0x21e0b44, interp=0x3241ec4, args=0x30e7744) at ../src/SchemeCommandRunner.m3:23 #11 0x0024b81b in SchemePrimitive__EDApply (ed=0x21e01c0, t=0x3245844, interp=0x3241ec4, args=0x30e7744) at ../src/SchemePrimitive.m3:207 #12 0x00246509 in SchemePrimitive__Prims (t=0x3245844, interp=0x3241ec4, args=0x30e7744, x=0x30e5cfc, y=0x30e7730, free=0xbfffea1f) at ../src/SchemePrimitive.m3:580 #13 0x0024b1cb in SchemePrimitive__Apply2 (t=0x3245844, interp=0x3241ec4, a1=0x30e5cfc, a2=0x30e7730) at ../src/SchemePrimitive.m3:549 #14 0x0023c16f in Scheme__EvalInternal (t=0x3241ec4, x=0x30e5c5c, env=0x30e76b4) at ../src/Scheme.m3:585 #15 0x0023bedf in Scheme__EvalInternal (t=0x3241ec4, x=0x30e5bac, env=0x30e76b4) at ../src/Scheme.m3:582 #16 0x0023c35e in Scheme__Eval (t=0x3241ec4, x=0x30e6a6c, envP=0x3241f0c) at ../src/Scheme.m3:353 #17 0x00239bcf in Scheme__EvalInGlobalEnv (t=0x3241ec4, x=0x30e6a6c) at ../src/Scheme.m3:603 #18 0x0002972b in SchemeCalculator__Calc (t=0x3241eb4, arr=0xbfffee3c) at ../src/SchemeCalculator.m3:61 #19 0x0000c8af in EuroDriver__Loop (t=0x3205a80) at ../src/EuroDriver.m3:289 #20 0x00008781 in Main_M3 (mode=1) at ../src/Main.m3:268 #21 0x0039d83d in RTLinker__RunMainBody (m=0x55e420) at ../src/runtime/common/RTLinker.m3:406 #22 0x0039cc99 in RTLinker__AddUnitI (m=0x55e420) at ../src/runtime/common/RTLinker.m3:113 #23 0x0039cd1a in RTLinker__AddUnit (b=0x6be3) at ../src/runtime/common/RTLinker.m3:122 #24 0x0000528c in main (argc=19, argv=0xbffff330, envp=0xbffff380) at _m3main.c:16 From jay.krell at cornell.edu Sun Jan 9 02:46:33 2011 From: jay.krell at cornell.edu (Jay K) Date: Sun, 9 Jan 2011 01:46:33 +0000 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: <20110109014355.0A01F1A205B@async.async.caltech.edu> References: <0A37C595-C896-4B66-9EDF-61BB30645321@cs.purdue.edu> ,<20110109014355.0A01F1A205B@async.async.caltech.edu> Message-ID: Tony raised legit issue w/ my fix. I will try another very soon (tonight). Index: ThreadPThread.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3,v retrieving revision 1.247 diff -u -r1.247 ThreadPThread.m3 --- ThreadPThread.m3??? 9 Jan 2011 00:36:07 -0000??? 1.247 +++ ThreadPThread.m3??? 9 Jan 2011 01:14:16 -0000 @@ -1283,10 +1283,10 @@ ?????? cond: Condition; ?? BEGIN ???? Acquire(joinMu); -??? LockHeap(); ???? FOR i := FIRST(locks) TO LAST(locks) DO ?????? PThreadLockMutex(locks[i], ThisLine(), i); ???? END; +??? LockHeap(); ???? (* Walk activations and lock all threads, conditions. ????? * NOTE: We have initMu, activeMu, so slots ????? * won't change, conditions and mutexes ?- Jay ---------------------------------------- > To: hosking at cs.purdue.edu > Date: Sat, 8 Jan 2011 17:43:55 -0800 > From: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > > Well I spent the whole day figuring out how to update the compiler.. > finally got everything working and I think this is with the very latest > version (Jay just committed something two hours ago and it's in here). > > Or... wait.. did he go back a version and re-introduce the deadlock? > That would explain why it's behaving the same way as it was before... > > Mika > > > > Thread 68 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 > #5 0x97137217 in _cthread_fork_prepare () > #6 0x97137155 in fork () > #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixCommon.m3:75 > #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > Thread 67 (process 32362): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003beb7e in ThreadInternal__Poll (fd=13, read=1, m3timeout=-1) at ../src/thread/Common/ThreadInternal.c:31 > #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x2009550, fd=13, read=1 '\001', interval=-1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003c19a4 in SchedulerPosix__IOWait (fd=13, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 > #4 0x0034f862 in FilePosix__IntermittentRead (h=0x24334f8, b=0xb1df4cd0, mayBlock=1 '\001') at ../src/os/POSIX/FilePosix.m3:220 > #5 0x0035e935 in FileRd__Seek (rd=0x2433518, pos=0, dontBlock=0 '\0') at ../src/rw/FileRd.m3:83 > #6 0x00356338 in Rd__DoSeek (rd=0x2433518) at ../src/rw/Rd.m3:54 > #7 0x003560c1 in UnsafeRd__FastGetChar (rd=0x2433518) at ../src/rw/Rd.m3:43 > #8 0x00356018 in Rd__GetChar (rd=0x2433518) at ../src/rw/Rd.m3:34 > #9 0x00316fbc in ProcUtils__SSApply (self=0x242f128) at ../src/ProcUtils.m3:54 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009550) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009550) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 66 (process 32362): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003beb7e in ThreadInternal__Poll (fd=11, read=1, m3timeout=-1) at ../src/thread/Common/ThreadInternal.c:31 > #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x20094a0, fd=11, read=1 '\001', interval=-1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003c19a4 in SchedulerPosix__IOWait (fd=11, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 > #4 0x0034f862 in FilePosix__IntermittentRead (h=0x239f994, b=0xb1d72cd0, mayBlock=1 '\001') at ../src/os/POSIX/FilePosix.m3:220 > #5 0x0035e935 in FileRd__Seek (rd=0x239f9b4, pos=0, dontBlock=0 '\0') at ../src/rw/FileRd.m3:83 > #6 0x00356338 in Rd__DoSeek (rd=0x239f9b4) at ../src/rw/Rd.m3:54 > #7 0x003560c1 in UnsafeRd__FastGetChar (rd=0x239f9b4) at ../src/rw/Rd.m3:43 > #8 0x00356018 in Rd__GetChar (rd=0x239f9b4) at ../src/rw/Rd.m3:34 > #9 0x00316fbc in ProcUtils__SSApply (self=0x242f0f0) at ../src/ProcUtils.m3:54 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x20094a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20094a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 65 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 > #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 > #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 > #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 > #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 > #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 > #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 > #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 > #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 > #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 > #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 > #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 > #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 > #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 > #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 > #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #33 0x9713885d in _pthread_start () > #34 0x971386e2 in thread_start () > > Thread 64 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 > #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 > #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 > #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 > #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 > #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 > #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 > #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 > #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 > #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 > #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 > #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #28 0x9713885d in _pthread_start () > #29 0x971386e2 in thread_start () > > Thread 60 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 > #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 > #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 > #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 59 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 > #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 > #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 > #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 > #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 > #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 > #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 > #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 > #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #19 0x9713885d in _pthread_start () > #20 0x971386e2 in thread_start () > > Thread 54 (process 32362): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003beb7e in ThreadInternal__Poll (fd=10, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:31 > #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x161dfc0, fd=10, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=10, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > #4 0x00346693 in TCP__GetBytesFD (t=0x22211d8, arr=0x22f400c, timeout=-1) at ../src/POSIX/TCP.m3:326 > #5 0x00348786 in ConnRW__RdSeek (rd=0x2221260, pos=267, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 > #6 0x003591ce in Rd__GetLine (rd=0x2221260) at ../src/rw/Rd.m3:426 > #7 0x002b2826 in TWSTester__RApply (cl=0x2221290) at ../src/TWSTester.m3:382 > #8 0x003c0ea5 in ThreadPThread__RunThread (me=0x161dfc0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #9 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161dfc0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #10 0x9713885d in _pthread_start () > #11 0x971386e2 in thread_start () > > Thread 53 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161deb0, mutex=0x161e1c0, m3timeout=1294411605.506855) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x161e160, n=0.5, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=0.5) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x00297efc in PMTWS__TSCApply (cl=0x2221088) at ../src/PMTWS.m3:229 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e160) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e160) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 52 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 > #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 > #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 > #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #14 0x9713885d in _pthread_start () > #15 0x971386e2 in thread_start () > > Thread 51 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 > #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 > #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 > #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 > #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #14 0x9713885d in _pthread_start () > #15 0x971386e2 in thread_start () > > Thread 50 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2005ac0, mutex=0x20059b0, m3timeout=1294411629.006319) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x2005a60, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000e162d in DBTable_gcoms_aux_ordrMonitor__ApplyC (cl=0x229a528) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2005a60) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2005a60) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 49 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2005a40, mutex=0x20058e0, m3timeout=1294411606.0014169) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x20059e0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000e357e in DBTable_gcoms_aux_ordrMonitor__CleanerApply (cl=0x229a720) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x20059e0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20059e0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 48 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161de60, mutex=0x161aa50, m3timeout=1294411629.003248) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x161aae0, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000d2f00 in DBTable_gcoms_fillMonitor__ApplyC (cl=0x229a258) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161aae0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161aae0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 47 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161ac10, mutex=0x1625c10, m3timeout=1294411605.9982891) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x161aa80, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000d50b3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=0x229a450) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161aa80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161aa80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 46 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2004440, mutex=0x2004410, m3timeout=1294411678.997467) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x20043b0, n=100, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=100) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000da48e in DBTable_gcoms_aux_instrumentMonitor__ApplyC (cl=0x1711268) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x20043b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20043b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 45 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x20038d0, mutex=0x2004380, m3timeout=1294411605.9944479) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x2004320, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000dc415 in DBTable_gcoms_aux_instrumentMonitor__CleanerApply (cl=0x1711460) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2004320) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2004320) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 44 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x20071d0, mutex=0x20070e0, m3timeout=1294411678.9916439) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x2007170, n=100, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=100) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x224daf0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007170) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007170) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 43 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x20046e0, mutex=0x2006f50, m3timeout=1294411605.83337) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x2007110, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x224dce8) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007110) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007110) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 42 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161d830, mutex=0x161d780, m3timeout=1294411678.981461) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x161dae0, n=100, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=100) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x224d768) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161dae0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161dae0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 41 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161d7e0, mutex=0x161da50, m3timeout=1294411605.8302381) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x161da80, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x224d960) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161da80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161da80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 40 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x161d940, mutex=0x161d910, m3timeout=1294411678.8294799) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x161d8b0, n=100, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=100) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000c4b88 in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=0x224d348) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161d8b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161d8b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 39 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x16262c0, mutex=0x161d750, m3timeout=1294411605.8264539) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x161d850, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000c6a9a in DBTable_gcoms_ordr_statusMonitor__CleanerApply (cl=0x224d540) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161d850) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161d850) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 38 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2003bc0, mutex=0x2003cd0, m3timeout=1294411628.744529) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x2003c70, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000b4d70 in DBTable_gcoms_strategyMonitor__ApplyC (cl=0x228c348) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2003c70) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2003c70) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 37 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2003ba0, mutex=0x2003be0, m3timeout=1294411605.7216971) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x2003c10, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000b6cc1 in DBTable_gcoms_strategyMonitor__CleanerApply (cl=0x228c538) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2003c10) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2003c10) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 36 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x16256b0, mutex=0x16255a0, m3timeout=1294411628.815861) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x1625650, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x228c080) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x1625650) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1625650) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 35 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x1625630, mutex=0x1625570, m3timeout=1294411605.7159209) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x16255d0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x228c270) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x16255d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x16255d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 34 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x2003a30, mutex=0x20031e0, m3timeout=1294411628.7167931) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x20039d0, n=50, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c1886 in Thread__AlertPause (n=50) at ../src/thread/PTHREAD/ThreadPThread.m3:573 > #6 0x000d2f00 in DBTable_gcoms_fillMonitor__ApplyC (cl=0x2255d40) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:416 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x20039d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20039d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 33 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=0x20034c0, mutex=0x20038a0, m3timeout=1294411605.7081449) at ../src/thread/PTHREAD/ThreadPThreadC.c:413 > #4 0x003c1763 in ThreadPThread__XPause (self=0x2003970, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003c183a in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000d50b3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=0x2255f30) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2003970) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2003970) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 32 (process 32362): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003beb7e in ThreadInternal__Poll (fd=9, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:31 > #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x2003780, fd=9, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=9, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > #4 0x00346693 in TCP__GetBytesFD (t=0x227c15c, arr=0x227600c, timeout=-1) at ../src/POSIX/TCP.m3:326 > #5 0x00348786 in ConnRW__RdSeek (rd=0x227a010, pos=0, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 > #6 0x003591ce in Rd__GetLine (rd=0x227a010) at ../src/rw/Rd.m3:426 > #7 0x002678d9 in UpdateMonitor__InApplyP (cl=0x227a040) at ../src/UpdateMonitor.m3:240 > #8 0x003c0ea5 in ThreadPThread__RunThread (me=0x2003780) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #9 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2003780) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #10 0x9713885d in _pthread_start () > #11 0x971386e2 in thread_start () > > Thread 31 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2003420, j=0x2003720) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x20036c0, m=0x227c220, c=0x227c22c, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x227c220, c=0x227c22c) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002674cc in UpdateMonitor__OutApplyP (p=0x227c17c) at ../src/UpdateMonitor.m3:178 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x20036c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20036c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 30 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x161a290, j=0x1625020) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x1624fc0, m=0x2255ac0, c=0x2255af4, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x2255ac0, c=0x2255af4) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x0026a003 in DesynchronizedDB__PApply (p=0x2255b04) at ../src/DesynchronizedDB.m3:216 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x1624fc0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1624fc0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 29 (process 32362): > #0 0x9716c1d6 in __wait4 () > #1 0x9716c1c9 in waitpid$UNIX2003 () > #2 0x003c50d5 in Uexec__waitpid (i=32392, j=0xb0e36b7c, k=0) at ../src/unix/Common/Uexec.c:66 > #3 0x003c1d31 in SchedulerPosix__WaitProcess (pid=32392, status=0xb0e36b7c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 > #4 0x003536dc in Process__Wait (p=0x22585fc) at ../src/os/POSIX/ProcessPosixCommon.m3:275 > #5 0x003163ad in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:185 > #6 0x00316d6e in ProcUtils__Apply (self=0x2256284) at ../src/ProcUtils.m3:274 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x16251a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x16251a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 28 (process 32362): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003beb7e in ThreadInternal__Poll (fd=8, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:31 > #2 0x003c1bd5 in ThreadPThread__XIOWait (self=0x20030c0, fd=8, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=8, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > #4 0x00346693 in TCP__GetBytesFD (t=0x22562c4, arr=0x225e00c, timeout=-1) at ../src/POSIX/TCP.m3:326 > #5 0x00348786 in ConnRW__RdSeek (rd=0x2256318, pos=0, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 > #6 0x00356338 in Rd__DoSeek (rd=0x2256318) at ../src/rw/Rd.m3:54 > #7 0x003560c1 in UnsafeRd__FastGetChar (rd=0x2256318) at ../src/rw/Rd.m3:43 > #8 0x00356018 in Rd__GetChar (rd=0x2256318) at ../src/rw/Rd.m3:34 > #9 0x002c62c5 in ReadLine__ReadALine (t=0x225600c) at ../src/ReadLine.m3:151 > #10 0x002c877e in ReadLine__ReadLine (t=0x225600c) at ../src/ReadLine.m3:411 > #11 0x0023b1fb in SchemeReadLine__GetCh (p=0x2256348) at ../src/SchemeReadLine.m3:80 > #12 0x0025f4b3 in SchemeInputPort__NextToken (t=0x2256348, wx=0x22563cc) at ../src/SchemeInputPort.m3:309 > #13 0x0025eb94 in SchemeInputPort__Read (t=0x2256348) at ../src/SchemeInputPort.m3:177 > #14 0x0023ba70 in SchemeReadLine__MainLoop (rl=0x225600c, scm=0x22340d0) at ../src/SchemeReadLine.m3:146 > #15 0x00006c23 in Main__SCApply (c=0x2255620) at ../src/Main.m3:92 > #16 0x003c0ea5 in ThreadPThread__RunThread (me=0x20030c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #17 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20030c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #18 0x9713885d in _pthread_start () > #19 0x971386e2 in thread_start () > > Thread 27 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 26 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20011c0, j=0x2001e10) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2001db0, m=0x1738078, c=0x17380a8, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1738078, c=0x17380a8) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x0009e3d6 in GCOMSOrderStatus__Apply (cl=0x17380b8) at ../src/GCOMSOrderStatus.m3:166 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001db0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001db0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 25 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x1619840, j=0x1619920) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x161a170, m=0x15aab74, c=0x15aab80, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x15aab74, c=0x15aab80) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x000a4482 in GCOMSBusyOrders__Apply (cl=0x15aab90) at ../src/GCOMSBusyOrders.m3:63 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a170) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a170) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 24 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20011a0, j=0x2001170) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2001110, m=0x173e044, c=0x173e050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x173e044, c=0x173e050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0bace84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0bace84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x1594280) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15943b0) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001110) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001110) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 23 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20010f0, j=0x20010c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2001060, m=0x1724034, c=0x1724040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1724034, c=0x1724040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0b2ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0b2ae84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15940f0) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1594220) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001060) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001060) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 22 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2001040, j=0x2001010) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000fb0, m=0x1722034, c=0x1722040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1722034, c=0x1722040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0aa8e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0aa8e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15adb40) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad7cc) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000fb0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000fb0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 21 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000f90, j=0x2000f60) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000f00, m=0x1720034, c=0x1720040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1720034, c=0x1720040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0a26e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0a26e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15adae0) at ../src/SX.m3:151 > #9 0x0016017c in CurrencySXProxy__Apply (cl=0x15ad7b0) at ../I386_DARWIN/CurrencySXProxy.m3 => /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000f00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000f00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 20 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000ee0, j=0x2000eb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000e50, m=0x173c044, c=0x173c050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x173c044, c=0x173c050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb09a4e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb09a4e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad450) at ../src/SX.m3:151 > #9 0x002d3613 in BoolSXProxy__Apply (cl=0x15ad794) at ../I386_DARWIN/BoolSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000e50) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000e50) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 19 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000e30, j=0x2000e00) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000da0, m=0x171e034, c=0x171e040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x171e034, c=0x171e040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0922e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0922e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad3e8) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad778) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000da0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000da0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 18 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000d80, j=0x2000d50) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000cf0, m=0x1740044, c=0x1740050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1740044, c=0x1740050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb08a0e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb08a0e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad380) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad75c) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000cf0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000cf0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 17 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000cd0, j=0x2000ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000c40, m=0x1704044, c=0x1704050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1704044, c=0x1704050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb081ee84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb081ee84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad318) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad740) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000c40) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000c40) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 16 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000c20, j=0x2000bf0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000b90, m=0x1702044, c=0x1702050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1702044, c=0x1702050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb079ce84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb079ce84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad2b0) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad724) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000b90) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000b90) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 15 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000b70, j=0x2000b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000ae0, m=0x173a044, c=0x173a050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x173a044, c=0x173a050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb071ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb071ae84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad248) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad708) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000ae0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000ae0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 14 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000ac0, j=0x2000a90) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000a30, m=0x171a034, c=0x171a040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x171a034, c=0x171a040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0698e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0698e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad1e0) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad6ec) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000a30) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000a30) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 13 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000a10, j=0x20009e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000980, m=0x1718034, c=0x1718040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1718034, c=0x1718040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0616e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0616e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad618) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad6d0) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000980) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000980) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 12 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000960, j=0x2000930) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x20008d0, m=0x1716034, c=0x1716040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1716034, c=0x1716040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0594e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0594e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad5b0) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad6b4) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x20008d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20008d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 11 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20008b0, j=0x2000880) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000820, m=0x1714034, c=0x1714040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1714034, c=0x1714040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0512e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0512e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15ad548) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad698) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000820) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000820) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 10 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000800, j=0x20007d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000770, m=0x1712034, c=0x1712040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x1712034, c=0x1712040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0490e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0490e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15acea8) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15ad67c) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000770) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000770) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 9 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000750, j=0x2000720) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x20006c0, m=0x15b6034, c=0x15b6040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x15b6034, c=0x15b6040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb040ee84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb040ee84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591ea8) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1591fd8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x20006c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20006c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 8 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20006a0, j=0x2000670) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000610, m=0x15b4034, c=0x15b4040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x15b4034, c=0x15b4040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb038ce84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb038ce84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591bf8) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1591d28) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000610) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000610) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 7 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20005f0, j=0x20005c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000560, m=0x15b2034, c=0x15b2040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x15b2034, c=0x15b2040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb030ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb030ae84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591a70) at ../src/SX.m3:151 > #9 0x0016017c in CurrencySXProxy__Apply (cl=0x1591b98) at ../I386_DARWIN/CurrencySXProxy.m3 => /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 6 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000540, j=0x2000510) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x20004b0, m=0x171c0c0, c=0x171c0cc, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x171c0c0, c=0x171c0cc) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0288e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0288e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591808) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1591938) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x20004b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x20004b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 5 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000490, j=0x2000460) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000400, m=0x15b0034, c=0x15b0040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x15b0034, c=0x15b0040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0206e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0206e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x1591678) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x15917a8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000400) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000400) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 4 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x20003e0, j=0x20003b0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000350, m=0x15ae034, c=0x15ae040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x15ae034, c=0x15ae040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002d9828 in SXSelect__WaitE (on=0xb0184e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002d8e0d in SXSelect__Wait (on=0xb0184e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002d8e66 in SXSelect__Wait1 (on=0x15914e8) at ../src/SX.m3:151 > #9 0x002d4515 in LongRealSXProxy__Apply (cl=0x1591618) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000350) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000350) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 3 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x2000150, j=0x20002c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x2000260, m=0x159123c, c=0x159122c, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003bf5c8 in Thread__Wait (m=0x159123c, c=0x159122c) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002ce79c in VarProxyDefs__NotifyApply (cl=0x1591248) at ../src/VarProxyDefs.m3:55 > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2000260) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2000260) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 2 (process 32362): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 > #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 > #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 > #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 > #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > Thread 1 (process 32362): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=0x16076f0, j=0x16076c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > #4 0x003bf4bf in ThreadPThread__XWait (self=0x1607660, m=0x15ac4b0, c=0x242f190, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003c1499 in ThreadPThread__XJoin (self=0x1607660, t=0x242f174, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:513 > #6 0x003c15ae in Thread__Join (t=0x242f174) at ../src/thread/PTHREAD/ThreadPThread.m3:525 > #7 0x003158c9 in ProcUtils__Wait (c=0x242f0d4) at ../src/ProcUtils.m3:318 > #8 0x0024618a in SchemeCommandRunner__RealRunTimeoutCommandApply (proc=0x1738cc4, interp=0x2367eac, args=0x239bd88) at ../src/SchemeCommandRunner.m3:164 > #9 0x00245e07 in SchemeCommandRunner__RunTimeoutCommandApply (proc=0x1738cc4, interp=0x2367eac, args=0x239bd88) at ../src/SchemeCommandRunner.m3:129 > #10 0x00245405 in SchemeCommandRunner__RunCommandApply (proc=0x1738cc4, interp=0x2367eac, args=0x239bd70) at ../src/SchemeCommandRunner.m3:23 > #11 0x0025c183 in SchemePrimitive__EDApply (ed=0x1738340, t=0x236b540, interp=0x2367eac, args=0x239bd70) at ../src/SchemePrimitive.m3:207 > #12 0x00256d12 in SchemePrimitive__Prims (t=0x236b540, interp=0x2367eac, args=0x239bd70, x=0x239a328, y=0x239bd5c, free=0xbfffe82f) at ../src/SchemePrimitive.m3:580 > #13 0x0025bb2b in SchemePrimitive__Apply2 (t=0x236b540, interp=0x2367eac, a1=0x239a328, a2=0x239bd5c) at ../src/SchemePrimitive.m3:549 > #14 0x0024d640 in Scheme__EvalInternal (t=0x2367eac, x=0x239a288, env=0x239bce0) at ../src/Scheme.m3:585 > #15 0x0024d3a8 in Scheme__EvalInternal (t=0x2367eac, x=0x239a1d8, env=0x239bce0) at ../src/Scheme.m3:582 > #16 0x0024d82d in Scheme__Eval (t=0x2367eac, x=0x239b098, envP=0x2367ef4) at ../src/Scheme.m3:353 > #17 0x0024b005 in Scheme__EvalInGlobalEnv (t=0x2367eac, x=0x239b098) at ../src/Scheme.m3:603 > #18 0x0002aebc in SchemeCalculator__Calc (t=0x2367e9c, arr=0xbfffecdc) at ../src/SchemeCalculator.m3:61 > #19 0x0000cbd3 in EuroDriver__Loop (t=0x224da38) at ../src/EuroDriver.m3:289 > #20 0x00008820 in Main_M3 (mode=1) at ../src/Main.m3:268 > #21 0x003b465a in RTLinker__RunMainBody (m=0x59e4c0) at ../src/runtime/common/RTLinker.m3:406 > #22 0x003b3a8f in RTLinker__AddUnitI (m=0x59e4c0) at ../src/runtime/common/RTLinker.m3:113 > #23 0x003b3b13 in RTLinker__AddUnit (b=0x6c5d) at ../src/runtime/common/RTLinker.m3:122 > #24 0x000052ec in main (argc=19, argv=0xbffff1b4, envp=0xbffff204) at _m3main.c:16 > > Thread 75 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003ac2e3 in ThreadPThread__PThreadLockMutex (mutex=0x5d3ac0, line=1288, index=2) at ../src/thread/PTHREAD/ThreadPThread.m3:1262 > #4 0x003ac409 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1288 > #5 0x97137217 in _cthread_fork_prepare () > #6 0x97137155 in fork () > #7 0x0033bc4d in ProcessPosixCommon__Create_ForkExec (cmd=0x31e02ac, params=0x31e03c8, env=0x0, wd=0x53bf44, stdin=0x0, stdout=0x30e91cc, stderr=0x30ea700) at ../src/os/POSIX/ProcessPosixCommon.m3:75 > #8 0x0033d137 in Process__Create (cmd=0x31e02ac, params=0x31e03c8, env=0x0, wd=0x53bf44, stdin=0x0, stdout=0x30e91cc, stderr=0x30ea700) at ../src/os/POSIX/ProcessPosix.m3:21 > #9 0x002ffdbc in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > #10 0x003007c1 in ProcUtils__Apply (self=0x30eb88c) at ../src/ProcUtils.m3:274 > #11 0x003a9c5b in ThreadPThread__RunThread (me=0x161dd00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x003a998a in ThreadPThread__ThreadBase (param=0x161dd00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > Thread 74 (process 67010): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003a7b74 in ThreadInternal__Poll (fd=13, read=1, m3timeout=-1) at ../src/thread/Common/ThreadInternal.c:57 > #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x161dc50, fd=13, read=1 '\001', interval=-1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003aa6dc in SchedulerPosix__IOWait (fd=13, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 > #4 0x00338b5f in FilePosix__IntermittentRead (h=0x30ea6f0, b=0xb1ef8cf0, mayBlock=1 '\001') at ../src/os/POSIX/FilePosix.m3:220 > #5 0x00347c68 in FileRd__Seek (rd=0x30ea710, pos=0, dontBlock=0 '\0') at ../src/rw/FileRd.m3:83 > #6 0x0033f64d in Rd__DoSeek (rd=0x30ea710) at ../src/rw/Rd.m3:54 > #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=0x30ea710) at ../src/rw/Rd.m3:43 > #8 0x0033f32d in Rd__GetChar (rd=0x30ea710) at ../src/rw/Rd.m3:34 > #9 0x00300a0b in ProcUtils__SSApply (self=0x30eb854) at ../src/ProcUtils.m3:54 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161dc50) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161dc50) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 73 (process 67010): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003a7b74 in ThreadInternal__Poll (fd=11, read=1, m3timeout=-1) at ../src/thread/Common/ThreadInternal.c:57 > #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x161dbc0, fd=11, read=1 '\001', interval=-1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003aa6dc in SchedulerPosix__IOWait (fd=11, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 > #4 0x00338b5f in FilePosix__IntermittentRead (h=0x30e91bc, b=0xb1e76cf0, mayBlock=1 '\001') at ../src/os/POSIX/FilePosix.m3:220 > #5 0x00347c68 in FileRd__Seek (rd=0x30e91dc, pos=0, dontBlock=0 '\0') at ../src/rw/FileRd.m3:83 > #6 0x0033f64d in Rd__DoSeek (rd=0x30e91dc) at ../src/rw/Rd.m3:54 > #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=0x30e91dc) at ../src/rw/Rd.m3:43 > #8 0x0033f32d in Rd__GetChar (rd=0x30e91dc) at ../src/rw/Rd.m3:34 > #9 0x00300a0b in ProcUtils__SSApply (self=0x30eb81c) at ../src/ProcUtils.m3:54 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161dbc0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161dbc0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 72 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7ebe in ThreadPThread__InitMutex (m=0x31339fc, root=0x31339f8, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003a7f82 in ThreadPThread__LockMutex (m=0x31339f8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x0033f30b in Rd__GetChar (rd=0x31339f8) at ../src/rw/Rd.m3:33 > #6 0x0034dffd in Lex__Skip (rd=0x31339f8, cs=0x548018) at ../src/fmtlex/Lex.m3:46 > #7 0x003503c3 in Lex__ReadReal (rd=0x31339f8, sign=0xb1df47c3, digits=0xb1df47dc, digCnt=0xb1df47c8, exp=0xb1df47cc) at ../src/fmtlex/Lex.m3:569 > #8 0x00350ef5 in Lex__LongReal (rd=0x31339f8) at ../src/fmtlex/Lex.m3:662 > #9 0x003518f1 in Scan__LongReal (txt=0x25768e8) at ../src/fmtlex/Scan.m3:77 > #10 0x0024f849 in SchemeInputPort__NextToken (t=0x30d4aec, wx=0x31337e8) at ../src/SchemeInputPort.m3:439 > #11 0x0024fb9c in SchemeInputPort__ReadTail2 (t=0x30d4aec, wx=0x31337e8) at ../src/SchemeInputPort.m3:240 > #12 0x0024e100 in SchemeInputPort__Read (t=0x30d4aec) at ../src/SchemeInputPort.m3:179 > #13 0x0024e2bc in SchemeInputPort__Read (t=0x30d4aec) at ../src/SchemeInputPort.m3:191 > #14 0x0024fb73 in SchemeInputPort__ReadTail2 (t=0x30d4aec, wx=0x3133620) at ../src/SchemeInputPort.m3:240 > #15 0x0024e100 in SchemeInputPort__Read (t=0x30d4aec) at ../src/SchemeInputPort.m3:179 > #16 0x0024fb73 in SchemeInputPort__ReadTail2 (t=0x30d4aec, wx=0x3133548) at ../src/SchemeInputPort.m3:240 > #17 0x0024e100 in SchemeInputPort__Read (t=0x30d4aec) at ../src/SchemeInputPort.m3:179 > #18 0x0023c6cd in Scheme__LoadPort (t=0x30d018c, in=0x30d4aec) at ../src/Scheme.m3:317 > #19 0x002399e3 in Scheme__LoadRd (t=0x30d018c, rd=0x30d3cf0, fn=0x0) at ../src/Scheme.m3:174 > #20 0x0023d255 in Scheme__ReadInitialFiles (t=0x30d018c, files=0x46fc8c) at ../src/Scheme.m3:134 > #21 0x0023d5e7 in Scheme__Init2 (t=0x30d018c, input=0x20003b4, output=0x20013e8, files=0x46fc8c, env=0x0) at ../src/Scheme.m3:127 > #22 0x00239461 in Scheme__Init (t=0x30d018c, files=0x46fc8c, env=0x0) at ../src/Scheme.m3:102 > #23 0x00029420 in SchemeCalculator__Init (t=0x30d017c, code=0x263fccc) at ../src/SchemeCalculator.m3:28 > #24 0x0000deef in EuroDriver__OApply (cl=0x3241b88) at ../src/EuroDriver.m3:865 > #25 0x003a9c5b in ThreadPThread__RunThread (me=0x2307650) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #26 0x003a998a in ThreadPThread__ThreadBase (param=0x2307650) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #27 0x9713885d in _pthread_start () > #28 0x971386e2 in thread_start () > > Thread 71 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1345 > #4 0x003995a6 in RTHeapRep__RegisterFinalCleanup (r=0x31239f8, p=0x3a7d52) at ../src/runtime/common/RTCollector.m3:2148 > #5 0x003a7f1e in ThreadPThread__InitMutex (m=0x31239fc, root=0x31239f8, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > #6 0x003a7f82 in ThreadPThread__LockMutex (m=0x31239f8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #7 0x0033f30b in Rd__GetChar (rd=0x31239f8) at ../src/rw/Rd.m3:33 > #8 0x0034dffd in Lex__Skip (rd=0x31239f8, cs=0x548018) at ../src/fmtlex/Lex.m3:46 > #9 0x003503c3 in Lex__ReadReal (rd=0x31239f8, sign=0xb1d727c3, digits=0xb1d727dc, digCnt=0xb1d727c8, exp=0xb1d727cc) at ../src/fmtlex/Lex.m3:569 > #10 0x00350ef5 in Lex__LongReal (rd=0x31239f8) at ../src/fmtlex/Lex.m3:662 > #11 0x003518f1 in Scan__LongReal (txt=0x25768e8) at ../src/fmtlex/Scan.m3:77 > #12 0x0024f849 in SchemeInputPort__NextToken (t=0x3264aec, wx=0x31237e8) at ../src/SchemeInputPort.m3:439 > #13 0x0024fb9c in SchemeInputPort__ReadTail2 (t=0x3264aec, wx=0x31237e8) at ../src/SchemeInputPort.m3:240 > #14 0x0024e100 in SchemeInputPort__Read (t=0x3264aec) at ../src/SchemeInputPort.m3:179 > #15 0x0024e2bc in SchemeInputPort__Read (t=0x3264aec) at ../src/SchemeInputPort.m3:191 > #16 0x0024fb73 in SchemeInputPort__ReadTail2 (t=0x3264aec, wx=0x3123620) at ../src/SchemeInputPort.m3:240 > #17 0x0024e100 in SchemeInputPort__Read (t=0x3264aec) at ../src/SchemeInputPort.m3:179 > #18 0x0024fb73 in SchemeInputPort__ReadTail2 (t=0x3264aec, wx=0x3123548) at ../src/SchemeInputPort.m3:240 > #19 0x0024e100 in SchemeInputPort__Read (t=0x3264aec) at ../src/SchemeInputPort.m3:179 > #20 0x0023c6cd in Scheme__LoadPort (t=0x326018c, in=0x3264aec) at ../src/Scheme.m3:317 > #21 0x002399e3 in Scheme__LoadRd (t=0x326018c, rd=0x3263cf0, fn=0x0) at ../src/Scheme.m3:174 > #22 0x0023d255 in Scheme__ReadInitialFiles (t=0x326018c, files=0x46fc8c) at ../src/Scheme.m3:134 > #23 0x0023d5e7 in Scheme__Init2 (t=0x326018c, input=0x20003b4, output=0x20013e8, files=0x46fc8c, env=0x0) at ../src/Scheme.m3:127 > #24 0x00239461 in Scheme__Init (t=0x326018c, files=0x46fc8c, env=0x0) at ../src/Scheme.m3:102 > #25 0x00029420 in SchemeCalculator__Init (t=0x326017c, code=0x263fccc) at ../src/SchemeCalculator.m3:28 > #26 0x0000deef in EuroDriver__OApply (cl=0x3241af0) at ../src/EuroDriver.m3:865 > #27 0x003a9c5b in ThreadPThread__RunThread (me=0x23075c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #28 0x003a998a in ThreadPThread__ThreadBase (param=0x23075c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #29 0x9713885d in _pthread_start () > #30 0x971386e2 in thread_start () > > Thread 67 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7ebe in ThreadPThread__InitMutex (m=0x2686284, root=0x2686280, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003a7f82 in ThreadPThread__LockMutex (m=0x2686280) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x003a7d30 in Thread__Acquire (m=0x2686280) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #6 0x00343175 in RdClass__Lock (rd=0x2686280) at ../src/rw/Rd.m3:521 > #7 0x0024d9ef in SchemeInputPort__Lock (t=0x2686368) at ../src/SchemeInputPort.m3:72 > #8 0x0024e87d in SchemeInputPort__NextToken (t=0x2686368, wx=0x2686388) at ../src/SchemeInputPort.m3:299 > #9 0x0024e0bb in SchemeInputPort__Read (t=0x2686368) at ../src/SchemeInputPort.m3:177 > #10 0x00239a38 in Scheme__LoadEval (t=0x254018c, rd=0x2686280) at ../src/Scheme.m3:291 > #11 0x00239abd in Scheme__LoadEvalText (t=0x254018c, txt=0x263fccc) at ../src/Scheme.m3:306 > #12 0x00029574 in SchemeCalculator__Calc (t=0x254017c, arr=0xb1cf09e4) at ../src/SchemeCalculator.m3:47 > #13 0x0000ee50 in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > #14 0x0000e7d6 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > #15 0x000103ca in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > #16 0x0000e3a2 in EuroDriver__OApply (cl=0x3018bb0) at ../src/EuroDriver.m3:892 > #17 0x003a9c5b in ThreadPThread__RunThread (me=0x23054a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #18 0x003a998a in ThreadPThread__ThreadBase (param=0x23054a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #19 0x9713885d in _pthread_start () > #20 0x971386e2 in thread_start () > > Thread 66 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x230d020, j=0x2305470) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2305410, m=0x311a158, c=0x311a164, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x311a158, c=0x311a164) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb1c6ecb8, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb1c6ecb8, touched=0x0) at ../src/SX.m3:149 > #8 0x0001063a in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > #9 0x0000e3a2 in EuroDriver__OApply (cl=0x3018b18) at ../src/EuroDriver.m3:892 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2305410) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2305410) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 62 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x23019d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x31b1584) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x003a7d30 in Thread__Acquire (m=0x31b1584) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #5 0x002c5bb6 in SX__Lock (arr=0x327c430) at ../src/SX.m3:318 > #6 0x002c5496 in SXSelect__WaitE (on=0xb1beccb8, except=0x0, touched=0x0) at ../src/SX.m3:241 > #7 0x002c4acd in SXSelect__Wait (on=0xb1beccb8, touched=0x0) at ../src/SX.m3:149 > #8 0x0001063a in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > #9 0x0000e3a2 in EuroDriver__OApply (cl=0x21fcc00) at ../src/EuroDriver.m3:892 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x1626040) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x1626040) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 61 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7ebe in ThreadPThread__InitMutex (m=0x252c4b4, root=0x252c4b0, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003a7f82 in ThreadPThread__LockMutex (m=0x252c4b0) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x003a7d30 in Thread__Acquire (m=0x252c4b0) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > #6 0x00343175 in RdClass__Lock (rd=0x252c4b0) at ../src/rw/Rd.m3:521 > #7 0x0024d9ef in SchemeInputPort__Lock (t=0x252c598) at ../src/SchemeInputPort.m3:72 > #8 0x0024e87d in SchemeInputPort__NextToken (t=0x252c598, wx=0x252c5b8) at ../src/SchemeInputPort.m3:299 > #9 0x0024e0bb in SchemeInputPort__Read (t=0x252c598) at ../src/SchemeInputPort.m3:177 > #10 0x00239a38 in Scheme__LoadEval (t=0x26f018c, rd=0x252c4b0) at ../src/Scheme.m3:291 > #11 0x00239abd in Scheme__LoadEvalText (t=0x26f018c, txt=0x263fccc) at ../src/Scheme.m3:306 > #12 0x00029574 in SchemeCalculator__Calc (t=0x26f017c, arr=0xb1b6a864) at ../src/SchemeCalculator.m3:47 > #13 0x0000ee50 in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > #14 0x0000e7d6 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > #15 0x000103ca in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > #16 0x0000e3a2 in EuroDriver__OApply (cl=0x21fcb68) at ../src/EuroDriver.m3:892 > #17 0x003a9c5b in ThreadPThread__RunThread (me=0x1625f80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #18 0x003a998a in ThreadPThread__ThreadBase (param=0x1625f80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #19 0x9713885d in _pthread_start () > #20 0x971386e2 in thread_start () > > Thread 54 (process 67010): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003a7b74 in ThreadInternal__Poll (fd=10, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:57 > #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x23071d0, fd=10, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=10, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > #4 0x003344ff in TCP__GetBytesFD (t=0x3050f80, arr=0x3053048, timeout=-1) at ../src/POSIX/TCP.m3:326 > #5 0x003365ce in ConnRW__RdSeek (rd=0x3053018, pos=390, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 > #6 0x003424e3 in Rd__GetLine (rd=0x3053018) at ../src/rw/Rd.m3:426 > #7 0x002a00d4 in TWSTester__RApply (cl=0x3055054) at ../src/TWSTester.m3:382 > #8 0x003a9c5b in ThreadPThread__RunThread (me=0x23071d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #9 0x003a998a in ThreadPThread__ThreadBase (param=0x23071d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #10 0x9713885d in _pthread_start () > #11 0x971386e2 in thread_start () > > Thread 53 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x1621150, mutex=0x1621120, m3timeout=1294537044.5119109) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x16210c0, n=0.5, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=0.5) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x00286610 in PMTWS__TSCApply (cl=0x3050e30) at ../src/PMTWS.m3:229 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x16210c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x16210c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 52 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1345 > #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x1621054) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x0038f2c7 in RTAllocator__GetTracedObj (def=0x5d6bf4) at ../src/runtime/common/RTAllocator.m3:224 > #6 0x0038ed60 in RTHooks__AllocateTracedObj (defn=0x5d6bf4) at ../src/runtime/common/RTAllocator.m3:122 > #7 0x003bc686 in RTHooks__Concat (t=0x3240a08, u=0x52c460) at ../src/text/TextCat.m3:28 > #8 0x0029e655 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > #9 0x0029ea07 in TWSTester__ReqMktData (t=0x30505a8, tickerId=4, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > #10 0x002aa233 in TWSTestBridge__MreqMktData (t=0x30505a8, tickerId=4, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > #11 0x00286034 in PMTWS__TSCApply (cl=0x3050dec) at ../src/PMTWS.m3:210 > #12 0x003a9c5b in ThreadPThread__RunThread (me=0x1621010) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #13 0x003a998a in ThreadPThread__ThreadBase (param=0x1621010) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #14 0x9713885d in _pthread_start () > #15 0x971386e2 in thread_start () > > Thread 51 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1345 > #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x1620ed4) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x0038f048 in RTAllocator__GetTracedRef (def=0x5711e0) at ../src/runtime/common/RTAllocator.m3:202 > #6 0x0038ed2f in RTHooks__AllocateTracedRef (defn=0x5711e0) at ../src/runtime/common/RTAllocator.m3:115 > #7 0x000a8f49 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x328f110, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > #8 0x000a5ecc in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x26608c0, res=0x328f110) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > #9 0x00085c9f in GCOMSPortfolio__Lock (t=0x2660590) at ../src/GCOMSPortfolio.m3:94 > #10 0x000288d9 in SXPortfolio__Scan (t=0x300c578) at ../src/SXPortfolio.m3:47 > #11 0x0002920d in SXPortfolio__Apply (cl=0x3050324) at ../src/SXPortfolio.m3:113 > #12 0x003a9c5b in ThreadPThread__RunThread (me=0x1620e90) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #13 0x003a998a in ThreadPThread__ThreadBase (param=0x1620e90) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #14 0x9713885d in _pthread_start () > #15 0x971386e2 in thread_start () > > Thread 50 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4ad944, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 > #5 0x000d9ad8 in DBTable_gcoms_aux_ordrMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #6 0x000d9cdf in DBTable_gcoms_aux_ordrMonitor__CheckForNew (cl=0x300c218) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #7 0x000d9a01 in DBTable_gcoms_aux_ordrMonitor__Sync (cl=0x300c218) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #8 0x000d9588 in DBTable_gcoms_aux_ordrMonitor__ApplyC (cl=0x300c218) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #9 0x003a9c5b in ThreadPThread__RunThread (me=0x1620d80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #10 0x003a998a in ThreadPThread__ThreadBase (param=0x1620d80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #11 0x9713885d in _pthread_start () > #12 0x971386e2 in thread_start () > > Thread 49 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x1620d60, mutex=0x1620cd0, m3timeout=1294537044.970454) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x1620d00, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000db5a3 in DBTable_gcoms_aux_ordrMonitor__CleanerApply (cl=0x300c410) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1620d00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1620d00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 48 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4aa228, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 > #5 0x000cb8aa in DBTable_gcoms_fillMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #6 0x000cbbf5 in DBTable_gcoms_fillMonitor__CheckForNew (cl=0x300bf48) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #7 0x000cb7d3 in DBTable_gcoms_fillMonitor__Sync (cl=0x300bf48) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #8 0x000cb35a in DBTable_gcoms_fillMonitor__ApplyC (cl=0x300bf48) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #9 0x003a9c5b in ThreadPThread__RunThread (me=0x1620b50) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #10 0x003a998a in ThreadPThread__ThreadBase (param=0x1620b50) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #11 0x9713885d in _pthread_start () > #12 0x971386e2 in thread_start () > > Thread 47 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x16243d0, mutex=0x1620ac0, m3timeout=1294537044.9675839) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x1620af0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000cd5e3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=0x300c140) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1620af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1620af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 46 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4abd98, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 > #5 0x000d2b9a in DBTable_gcoms_aux_instrumentMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #6 0x000d2dbf in DBTable_gcoms_aux_instrumentMonitor__CheckForNew (cl=0x30091c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #7 0x000d2ac3 in DBTable_gcoms_aux_instrumentMonitor__Sync (cl=0x30091c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #8 0x000d264a in DBTable_gcoms_aux_instrumentMonitor__ApplyC (cl=0x30091c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #9 0x003a9c5b in ThreadPThread__RunThread (me=0x2306710) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #10 0x003a998a in ThreadPThread__ThreadBase (param=0x2306710) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #11 0x9713885d in _pthread_start () > #12 0x971386e2 in thread_start () > > Thread 45 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x230b2d0, mutex=0x2306680, m3timeout=1294537044.960629) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x23066b0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000d469b in DBTable_gcoms_aux_instrumentMonitor__CleanerApply (cl=0x30093c0) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x23066b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x23066b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 44 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a159c, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 > #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=0x3205b38) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=0x3205b38) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x3205b38) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #9 0x003a9c5b in ThreadPThread__RunThread (me=0x230b000) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #10 0x003a998a in ThreadPThread__ThreadBase (param=0x230b000) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #11 0x9713885d in _pthread_start () > #12 0x971386e2 in thread_start () > > Thread 43 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x230afe0, mutex=0x230af20, m3timeout=1294537044.8138101) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x230af80, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x3205d30) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x230af80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x230af80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 42 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a159c, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 > #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=0x32057b0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=0x32057b0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x32057b0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #9 0x003a9c5b in ThreadPThread__RunThread (me=0x230aca0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #10 0x003a998a in ThreadPThread__ThreadBase (param=0x230aca0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #11 0x9713885d in _pthread_start () > #12 0x971386e2 in thread_start () > > Thread 41 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x2301860, mutex=0x230ab40, m3timeout=1294537044.8138311) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x230aba0, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x32059a8) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x230aba0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x230aba0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 40 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a6b9c, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 > #5 0x000bd587 in DBTable_gcoms_ordr_statusMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #6 0x000bd76e in DBTable_gcoms_ordr_statusMonitor__CheckForNew (cl=0x3205390) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #7 0x000bd4b0 in DBTable_gcoms_ordr_statusMonitor__Sync (cl=0x3205390) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #8 0x000bd037 in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=0x3205390) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #9 0x003a9c5b in ThreadPThread__RunThread (me=0x1621f10) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #10 0x003a998a in ThreadPThread__ThreadBase (param=0x1621f10) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #11 0x9713885d in _pthread_start () > #12 0x971386e2 in thread_start () > > Thread 39 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x16242f0, mutex=0x1621ee0, m3timeout=1294537044.8137701) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x1622280, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000bf010 in DBTable_gcoms_ordr_statusMonitor__CleanerApply (cl=0x3205588) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1622280) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1622280) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 38 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a3144, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 > #5 0x000adb3f in DBTable_gcoms_strategyMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #6 0x000add46 in DBTable_gcoms_strategyMonitor__CheckForNew (cl=0x2660b88) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #7 0x000ada68 in DBTable_gcoms_strategyMonitor__Sync (cl=0x2660b88) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #8 0x000ad5ef in DBTable_gcoms_strategyMonitor__ApplyC (cl=0x2660b88) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #9 0x003a9c5b in ThreadPThread__RunThread (me=0x161b820) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #10 0x003a998a in ThreadPThread__ThreadBase (param=0x161b820) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #11 0x9713885d in _pthread_start () > #12 0x971386e2 in thread_start () > > Thread 37 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x2306160, mutex=0x2305f70, m3timeout=1294537044.6482379) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x2306100, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000af60a in DBTable_gcoms_strategyMonitor__CleanerApply (cl=0x2660d78) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x2306100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x2306100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 36 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x2305bb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x26602f0) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x0025877b in DesynchronizedDB__SExec (t=0x26602c4, query=0x4a159c, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:125 > #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=0x26608c0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=0x26608c0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=0x26608c0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #9 0x003a9c5b in ThreadPThread__RunThread (me=0x2305e30) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #10 0x003a998a in ThreadPThread__ThreadBase (param=0x2305e30) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #11 0x9713885d in _pthread_start () > #12 0x971386e2 in thread_start () > > Thread 35 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x2305dd0, mutex=0x2305c40, m3timeout=1294537044.6481991) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x2305d70, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=0x2660ab0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x2305d70) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x2305d70) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 34 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1345 > #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=32, dataAlignment=4, thread=0x1623e04) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x0038f2c7 in RTAllocator__GetTracedObj (def=0x5c87d4) at ../src/runtime/common/RTAllocator.m3:224 > #6 0x0038ed60 in RTHooks__AllocateTracedObj (defn=0x5c87d4) at ../src/runtime/common/RTAllocator.m3:122 > #7 0x00260a50 in DatabaseUtils__FilterUnprintable (t=0x4aa228) at ../src/DatabaseUtils.m3:124 > #8 0x0026b6ae in UnsafeDatabase__ExecM (t=0x2660178, query=0x4aa228, busyWait=0 '\0', abortConnectionOnFail=1 '\001') at ../src/UnsafeDatabase.m3:217 > #9 0x0026baa5 in UnsafeDatabase__TExecM (t=0x2660178, query=0x4aa228, busyWait=0 '\0', abortConnectionOnFail=1 '\001') at ../src/UnsafeDatabase.m3:258 > #10 0x002587f9 in DesynchronizedDB__SExec (t=0x26602c4, query=0x4aa228, busyWait=0 '\0', acof=1 '\001') at ../src/DesynchronizedDB.m3:126 > #11 0x000cb8aa in DBTable_gcoms_fillMonitor__DbNow (db=0x26602c4) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:456 > #12 0x000cbbf5 in DBTable_gcoms_fillMonitor__CheckForNew (cl=0x26605f8) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > #13 0x000cb7d3 in DBTable_gcoms_fillMonitor__Sync (cl=0x26605f8) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:445 > #14 0x000cb35a in DBTable_gcoms_fillMonitor__ApplyC (cl=0x26605f8) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:393 > #15 0x003a9c5b in ThreadPThread__RunThread (me=0x1623dc0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #16 0x003a998a in ThreadPThread__ThreadBase (param=0x1623dc0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #17 0x9713885d in _pthread_start () > #18 0x971386e2 in thread_start () > > Thread 33 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=0x1623da0, mutex=0x1623640, m3timeout=1294537044.6482589) at ../src/thread/PTHREAD/ThreadPThreadC.c:431 > #4 0x003aa4a2 in ThreadPThread__XPause (self=0x1623d40, n=1, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x003aa572 in Thread__Pause (n=1) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000cd5e3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=0x26607e8) at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1623d40) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1623d40) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 32 (process 67010): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003a7b74 in ThreadInternal__Poll (fd=9, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:57 > #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x1623c00, fd=9, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=9, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > #4 0x003344ff in TCP__GetBytesFD (t=0x267015c, arr=0x2690040, timeout=-1) at ../src/POSIX/TCP.m3:326 > #5 0x003365ce in ConnRW__RdSeek (rd=0x2690010, pos=0, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 > #6 0x003424e3 in Rd__GetLine (rd=0x2690010) at ../src/rw/Rd.m3:426 > #7 0x00256bb0 in UpdateMonitor__InApplyP (cl=0x269204c) at ../src/UpdateMonitor.m3:240 > #8 0x003a9c5b in ThreadPThread__RunThread (me=0x1623c00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #9 0x003a998a in ThreadPThread__ThreadBase (param=0x1623c00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #10 0x9713885d in _pthread_start () > #11 0x971386e2 in thread_start () > > Thread 31 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x1623470, j=0x1623ba0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x1623b40, m=0x2670220, c=0x267022c, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2670220, c=0x267022c) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002567b1 in UpdateMonitor__OutApplyP (p=0x267017c) at ../src/UpdateMonitor.m3:178 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x1623b40) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x1623b40) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 30 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23016c0, j=0x2305a80) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2305a20, m=0x2660378, c=0x26603ac, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2660378, c=0x26603ac) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x00259145 in DesynchronizedDB__PApply (p=0x26603bc) at ../src/DesynchronizedDB.m3:216 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x2305a20) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x2305a20) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 29 (process 67010): > #0 0x9716c1d6 in __wait4 () > #1 0x9716c1c9 in waitpid$UNIX2003 () > #2 0x003add58 in Uexec__waitpid (i=67040, j=0xb0e36b4c, k=0) at ../src/unix/Common/Uexec.c:67 > #3 0x003aaa51 in SchedulerPosix__WaitProcess (pid=67040, status=0xb0e36b4c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 > #4 0x0033ca19 in Process__Wait (p=0x2650590) at ../src/os/POSIX/ProcessPosixCommon.m3:275 > #5 0x002ffdf6 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:185 > #6 0x003007c1 in ProcUtils__Apply (self=0x2640284) at ../src/ProcUtils.m3:274 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x16233b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x16233b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 28 (process 67010): > #0 0x9719ea7e in poll$UNIX2003 () > #1 0x003a7b74 in ThreadInternal__Poll (fd=7, read=1, m3timeout=1) at ../src/thread/Common/ThreadInternal.c:57 > #2 0x003aa8f1 in ThreadPThread__XIOWait (self=0x1623300, fd=7, read=1 '\001', interval=1.7976931348623157e+308, alertable=1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=7, read=1 '\001', timeoutInterval=-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > #4 0x003344ff in TCP__GetBytesFD (t=0x26402c4, arr=0x2642358, timeout=-1) at ../src/POSIX/TCP.m3:326 > #5 0x003365ce in ConnRW__RdSeek (rd=0x2642328, pos=0, dontBlock=0 '\0') at ../src/common/ConnRW.m3:69 > #6 0x0033f64d in Rd__DoSeek (rd=0x2642328) at ../src/rw/Rd.m3:54 > #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=0x2642328) at ../src/rw/Rd.m3:43 > #8 0x0033f32d in Rd__GetChar (rd=0x2642328) at ../src/rw/Rd.m3:34 > #9 0x002b26e9 in ReadLine__ReadALine (t=0x264000c) at ../src/ReadLine.m3:151 > #10 0x002b4a56 in ReadLine__ReadLine (t=0x264000c) at ../src/ReadLine.m3:411 > #11 0x0022a383 in SchemeReadLine__GetCh (p=0x2644364) at ../src/SchemeReadLine.m3:80 > #12 0x0024e942 in SchemeInputPort__NextToken (t=0x2644364, wx=0x26443e8) at ../src/SchemeInputPort.m3:309 > #13 0x0024e0bb in SchemeInputPort__Read (t=0x2644364) at ../src/SchemeInputPort.m3:177 > #14 0x0022abaa in SchemeReadLine__MainLoop (rl=0x264000c, scm=0x256b9e4) at ../src/SchemeReadLine.m3:146 > #15 0x00006bb7 in Main__SCApply (c=0x263fed0) at ../src/Main.m3:92 > #16 0x003a9c5b in ThreadPThread__RunThread (me=0x1623300) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #17 0x003a998a in ThreadPThread__ThreadBase (param=0x1623300) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #18 0x9713885d in _pthread_start () > #19 0x971386e2 in thread_start () > > Thread 27 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x161bd50) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7faf in ThreadPThread__LockMutex (m=0x25400a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > #4 0x002c77db in SXLongReal__Update (v=0x2540010, newValue=1293719775.9374268, when=1293719775.9374378) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > #5 0x002c7abe in SXLongReal__SetVar (v=0x2540010, newValue=1293719775.9374268, when=1293719775.9374378) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > #6 0x002eaaf7 in SXTimer__Loop (cl=0x21e11cc) at ../src/SXTimer.m3:64 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x161b610) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x161b610) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 26 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23016a0, j=0x2301670) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2301610, m=0x2114828, c=0x2114858, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2114828, c=0x2114858) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x000974c8 in GCOMSOrderStatus__Apply (cl=0x2114868) at ../src/GCOMSOrderStatus.m3:166 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x2301610) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x2301610) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 25 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300540, j=0x2301580) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x23015b0, m=0x211476c, c=0x2114778, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x211476c, c=0x2114778) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x0009d268 in GCOMSBusyOrders__Apply (cl=0x2114788) at ../src/GCOMSBusyOrders.m3:63 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x23015b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x23015b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 24 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300d90, j=0x2300d60) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300d00, m=0x21d0044, c=0x21d0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x21d0044, c=0x21d0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0bace84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0bace84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2111418) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2111548) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300d00) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300d00) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 23 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300ce0, j=0x2300cb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300c50, m=0x21c0044, c=0x21c0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x21c0044, c=0x21c0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0b2ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0b2ae84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2111288) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x21113b8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300c50) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300c50) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 22 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300c30, j=0x2300c00) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300ba0, m=0x21b0044, c=0x21b0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x21b0044, c=0x21b0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0aa8e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0aa8e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110fd8) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2111108) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300ba0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300ba0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 21 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300b80, j=0x2300b50) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300af0, m=0x21a0044, c=0x21a0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x21a0044, c=0x21a0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0a26e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0a26e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110e50) at ../src/SX.m3:151 > #9 0x00163596 in CurrencySXProxy__Apply (cl=0x2110f78) at ../I386_DARWIN/CurrencySXProxy.m3 => /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 20 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300a10, j=0x23009e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300980, m=0x2190044, c=0x2190050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2190044, c=0x2190050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb09a4e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb09a4e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110b48) at ../src/SX.m3:151 > #9 0x002bf3d5 in BoolSXProxy__Apply (cl=0x2110c70) at ../I386_DARWIN/BoolSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300980) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300980) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 19 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300960, j=0x2300930) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x23008d0, m=0x2180044, c=0x2180050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2180044, c=0x2180050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0922e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0922e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x21109b8) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2110ae8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x23008d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x23008d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 18 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23008b0, j=0x2300880) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300820, m=0x2170044, c=0x2170050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2170044, c=0x2170050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb08a0e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb08a0e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110828) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2110958) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300820) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300820) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 17 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300800, j=0x23007d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300770, m=0x2160044, c=0x2160050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2160044, c=0x2160050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb081ee84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb081ee84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110698) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x21107c8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300770) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300770) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 16 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300750, j=0x2300720) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x23006c0, m=0x2150044, c=0x2150050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2150044, c=0x2150050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb079ce84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb079ce84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110508) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2110638) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x23006c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x23006c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 15 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23006a0, j=0x2300670) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300610, m=0x2140044, c=0x2140050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2140044, c=0x2140050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb071ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb071ae84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2110378) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x21104a8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300610) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300610) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 14 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161af10, j=0x161aee0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x161ae80, m=0x2130044, c=0x2130050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2130044, c=0x2130050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0698e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0698e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x21101e8) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2110318) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161ae80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161ae80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 13 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23005f0, j=0x23005c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300560, m=0x2120044, c=0x2120050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2120044, c=0x2120050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0616e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0616e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x20c0c40) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x21100ac) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 12 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23004c0, j=0x2300490) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300430, m=0x2080044, c=0x2080050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2080044, c=0x2080050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0594e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0594e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x20c0ab0) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x20c0be0) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300430) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300430) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 11 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x2300410, j=0x23003e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300380, m=0x20f0044, c=0x20f0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x20f0044, c=0x20f0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0512e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0512e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x20c0920) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x20c0a50) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300380) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300380) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 10 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161aad0, j=0x161aaa0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x161aa40, m=0x20b0044, c=0x20b0050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x20b0044, c=0x20b0050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0490e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0490e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020e88) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020fb8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161aa40) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161aa40) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 9 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x23002a0, j=0x2300270) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x2300210, m=0x2090044, c=0x2090050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2090044, c=0x2090050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb040ee84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb040ee84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020cf8) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020e28) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x2300210) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x2300210) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 8 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a9c0, j=0x161a990) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x161a930, m=0x20e0034, c=0x20e0040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x20e0034, c=0x20e0040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb038ce84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb038ce84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020a48) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020b78) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a930) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a930) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 7 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a910, j=0x161a8e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x161a880, m=0x20a0034, c=0x20a0040, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x20a0034, c=0x20a0040) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb030ae84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb030ae84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x20208c0) at ../src/SX.m3:151 > #9 0x00163596 in CurrencySXProxy__Apply (cl=0x20209e8) at ../I386_DARWIN/CurrencySXProxy.m3 => /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a880) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a880) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 6 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a860, j=0x161a830) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x161a7d0, m=0x2050044, c=0x2050050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2050044, c=0x2050050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0288e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0288e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020658) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020788) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a7d0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a7d0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 5 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a7b0, j=0x161a780) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x161a720, m=0x2040044, c=0x2040050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2040044, c=0x2040050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0206e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0206e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x20204c8) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x20205f8) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a720) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a720) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 4 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x161a290, j=0x161a6f0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x161a690, m=0x2030044, c=0x2030050, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x2030044, c=0x2030050) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002c5482 in SXSelect__WaitE (on=0xb0184e84, except=0x0, touched=0x0) at ../src/SX.m3:239 > #7 0x002c4acd in SXSelect__Wait (on=0xb0184e84, touched=0x0) at ../src/SX.m3:149 > #8 0x002c4b21 in SXSelect__Wait1 (on=0x2020338) at ../src/SX.m3:151 > #9 0x002c01db in LongRealSXProxy__Apply (cl=0x2020468) at ../I386_DARWIN/LongRealSXProxy.m3 => ../src/SXProxy.mg:74 > #10 0x003a9c5b in ThreadPThread__RunThread (me=0x161a690) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x003a998a in ThreadPThread__ThreadBase (param=0x161a690) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 3 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x1619840, j=0x161a600) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x161a230, m=0x202008c, c=0x202007c, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003a853e in Thread__Wait (m=0x202008c, c=0x202007c) at ../src/thread/PTHREAD/ThreadPThread.m3:204 > #6 0x002ba948 in VarProxyDefs__NotifyApply (cl=0x2020098) at ../src/VarProxyDefs.m3:55 > #7 0x003a9c5b in ThreadPThread__RunThread (me=0x161a230) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #8 0x003a998a in ThreadPThread__ThreadBase (param=0x161a230) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #9 0x9713885d in _pthread_start () > #10 0x971386e2 in thread_start () > > Thread 2 (process 67010): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=0x5d3ac0) at ../src/thread/PTHREAD/ThreadPThreadC.c:463 > #3 0x003a7ebe in ThreadPThread__InitMutex (m=0x20100ac, root=0x20100a8, Clean=0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #4 0x003a7f82 in ThreadPThread__LockMutex (m=0x20100a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #5 0x0033f30b in Rd__GetChar (rd=0x20100a8) at ../src/rw/Rd.m3:33 > #6 0x0034dffd in Lex__Skip (rd=0x20100a8, cs=0x548018) at ../src/fmtlex/Lex.m3:46 > #7 0x003503c3 in Lex__ReadReal (rd=0x20100a8, sign=0xb00809e3, digits=0xb00809fc, digCnt=0xb00809e8, exp=0xb00809ec) at ../src/fmtlex/Lex.m3:569 > #8 0x00350ef5 in Lex__LongReal (rd=0x20100a8) at ../src/fmtlex/Lex.m3:662 > #9 0x003518f1 in Scan__LongReal (txt=0x201007c) at ../src/fmtlex/Scan.m3:77 > #10 0x0030ef75 in XTime__ClApply (cl=0x2004624) at ../src/XTime.m3:185 > #11 0x003a9c5b in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x003a998a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > Thread 1 (process 67010): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=0x16076f0, j=0x16076c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > #4 0x003a842f in ThreadPThread__XWait (self=0x1607660, m=0x2000084, c=0x30eb8bc, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:182 > #5 0x003aa1f3 in ThreadPThread__XJoin (self=0x1607660, t=0x30eb8a0, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:513 > #6 0x003aa2f5 in Thread__Join (t=0x30eb8a0) at ../src/thread/PTHREAD/ThreadPThread.m3:525 > #7 0x002ff2b8 in ProcUtils__Wait (c=0x30eb800) at ../src/ProcUtils.m3:318 > #8 0x00234ebd in SchemeCommandRunner__RealRunTimeoutCommandApply (proc=0x21e0b44, interp=0x3241ec4, args=0x30e775c) at ../src/SchemeCommandRunner.m3:164 > #9 0x00234b4f in SchemeCommandRunner__RunTimeoutCommandApply (proc=0x21e0b44, interp=0x3241ec4, args=0x30e775c) at ../src/SchemeCommandRunner.m3:129 > #10 0x00234217 in SchemeCommandRunner__RunCommandApply (proc=0x21e0b44, interp=0x3241ec4, args=0x30e7744) at ../src/SchemeCommandRunner.m3:23 > #11 0x0024b81b in SchemePrimitive__EDApply (ed=0x21e01c0, t=0x3245844, interp=0x3241ec4, args=0x30e7744) at ../src/SchemePrimitive.m3:207 > #12 0x00246509 in SchemePrimitive__Prims (t=0x3245844, interp=0x3241ec4, args=0x30e7744, x=0x30e5cfc, y=0x30e7730, free=0xbfffea1f) at ../src/SchemePrimitive.m3:580 > #13 0x0024b1cb in SchemePrimitive__Apply2 (t=0x3245844, interp=0x3241ec4, a1=0x30e5cfc, a2=0x30e7730) at ../src/SchemePrimitive.m3:549 > #14 0x0023c16f in Scheme__EvalInternal (t=0x3241ec4, x=0x30e5c5c, env=0x30e76b4) at ../src/Scheme.m3:585 > #15 0x0023bedf in Scheme__EvalInternal (t=0x3241ec4, x=0x30e5bac, env=0x30e76b4) at ../src/Scheme.m3:582 > #16 0x0023c35e in Scheme__Eval (t=0x3241ec4, x=0x30e6a6c, envP=0x3241f0c) at ../src/Scheme.m3:353 > #17 0x00239bcf in Scheme__EvalInGlobalEnv (t=0x3241ec4, x=0x30e6a6c) at ../src/Scheme.m3:603 > #18 0x0002972b in SchemeCalculator__Calc (t=0x3241eb4, arr=0xbfffee3c) at ../src/SchemeCalculator.m3:61 > #19 0x0000c8af in EuroDriver__Loop (t=0x3205a80) at ../src/EuroDriver.m3:289 > #20 0x00008781 in Main_M3 (mode=1) at ../src/Main.m3:268 > #21 0x0039d83d in RTLinker__RunMainBody (m=0x55e420) at ../src/runtime/common/RTLinker.m3:406 > #22 0x0039cc99 in RTLinker__AddUnitI (m=0x55e420) at ../src/runtime/common/RTLinker.m3:113 > #23 0x0039cd1a in RTLinker__AddUnit (b=0x6be3) at ../src/runtime/common/RTLinker.m3:122 > #24 0x0000528c in main (argc=19, argv=0xbffff330, envp=0xbffff380) at _m3main.c:16 From mika at async.caltech.edu Sun Jan 9 02:50:40 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Sat, 08 Jan 2011 17:50:40 -0800 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: References: <0A37C595-C896-4B66-9EDF-61BB30645321@cs.purdue.edu> , <20110109014355.0A01F1A205B@async.async.caltech.edu> Message-ID: <20110109015040.F196E1A205B@async.async.caltech.edu> On the plus side, the compiler bug you thought you had fixed has indeed disappeared. Mika Jay K writes: > >Tony raised legit issue w/ my fix. I will try another very soon (tonight). > > >Index: ThreadPThread.m3 >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3= >=2Cv >retrieving revision 1.247 >diff -u -r1.247 ThreadPThread.m3 >--- ThreadPThread.m3=A0=A0=A0 9 Jan 2011 00:36:07 -0000=A0=A0=A0 1.247 >+++ ThreadPThread.m3=A0=A0=A0 9 Jan 2011 01:14:16 -0000 >@@ -1283=2C10 +1283=2C10 @@ >=A0=A0=A0=A0=A0=A0 cond: Condition=3B >=A0=A0 BEGIN >=A0=A0=A0=A0 Acquire(joinMu)=3B >-=A0=A0=A0 LockHeap()=3B >=A0=A0=A0=A0 FOR i :=3D FIRST(locks) TO LAST(locks) DO >=A0=A0=A0=A0=A0=A0 PThreadLockMutex(locks[i]=2C ThisLine()=2C i)=3B >=A0=A0=A0=A0 END=3B >+=A0=A0=A0 LockHeap()=3B >=A0=A0=A0=A0 (* Walk activations and lock all threads=2C conditions. >=A0=A0=A0=A0=A0 * NOTE: We have initMu=2C activeMu=2C so slots >=A0=A0=A0=A0=A0 * won't change=2C conditions and mutexes > > > >=A0- Jay > >---------------------------------------- >> To: hosking at cs.purdue.edu >> Date: Sat=2C 8 Jan 2011 17:43:55 -0800 >> From: mika at async.caltech.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? >> >> >> Well I spent the whole day figuring out how to update the compiler.. >> finally got everything working and I think this is with the very latest >> version (Jay just committed something two hours ago and it's in here). >> >> Or... wait.. did he go back a version and re-introduce the deadlock? >> That would explain why it's behaving the same way as it was before... >> >> Mika >> >> >> >> Thread 68 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613c20) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=3D0x613c20=2C lin= >e=3D1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 >> #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD= >/ThreadPThread.m3:1279 >> #5 0x97137217 in _cthread_fork_prepare () >> #6 0x97137155 in fork () >> #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=3D0x242c2ac=2C = >params=3D0x242c3ac=2C env=3D0x0=2C wd=3D0x57bf44=2C stdin=3D0x0=2C stdout= >=3D0x239f9a4=2C stderr=3D0x2433508) at ../src/os/POSIX/ProcessPosixCommon.m= >3:75 >> #8 0x00353de5 in Process__Create (cmd=3D0x242c2ac=2C params=3D0x242c3ac= >=2C env=3D0x0=2C wd=3D0x57bf44=2C stdin=3D0x0=2C stdout=3D0x239f9a4=2C stde= >rr=3D0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 >> #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:18= >0 >> #10 0x00316d6e in ProcUtils__Apply (self=3D0x242f160) at ../src/ProcUtils= >.m3:274 >> #11 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2009600) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2009600) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #13 0x9713885d in _pthread_start () >> #14 0x971386e2 in thread_start () >> >> Thread 67 (process 32362): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D13=2C read=3D1=2C m3timeout= >=3D-1) at ../src/thread/Common/ThreadInternal.c:31 >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x2009550=2C fd=3D13=2C r= >ead=3D1 '\001'=2C interval=3D-1=2C alertable=3D0 '\0') at ../src/thread/PTH= >READ/ThreadPThread.m3:627 >> #3 0x003c19a4 in SchedulerPosix__IOWait (fd=3D13=2C read=3D1 '\001'=2C ti= >meoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 >> #4 0x0034f862 in FilePosix__IntermittentRead (h=3D0x24334f8=2C b=3D0xb1df= >4cd0=2C mayBlock=3D1 '\001') at ../src/os/POSIX/FilePosix.m3:220 >> #5 0x0035e935 in FileRd__Seek (rd=3D0x2433518=2C pos=3D0=2C dontBlock=3D0= > '\0') at ../src/rw/FileRd.m3:83 >> #6 0x00356338 in Rd__DoSeek (rd=3D0x2433518) at ../src/rw/Rd.m3:54 >> #7 0x003560c1 in UnsafeRd__FastGetChar (rd=3D0x2433518) at ../src/rw/Rd.m= >3:43 >> #8 0x00356018 in Rd__GetChar (rd=3D0x2433518) at ../src/rw/Rd.m3:34 >> #9 0x00316fbc in ProcUtils__SSApply (self=3D0x242f128) at ../src/ProcUtil= >s.m3:54 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2009550) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2009550) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 66 (process 32362): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D11=2C read=3D1=2C m3timeout= >=3D-1) at ../src/thread/Common/ThreadInternal.c:31 >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x20094a0=2C fd=3D11=2C r= >ead=3D1 '\001'=2C interval=3D-1=2C alertable=3D0 '\0') at ../src/thread/PTH= >READ/ThreadPThread.m3:627 >> #3 0x003c19a4 in SchedulerPosix__IOWait (fd=3D11=2C read=3D1 '\001'=2C ti= >meoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 >> #4 0x0034f862 in FilePosix__IntermittentRead (h=3D0x239f994=2C b=3D0xb1d7= >2cd0=2C mayBlock=3D1 '\001') at ../src/os/POSIX/FilePosix.m3:220 >> #5 0x0035e935 in FileRd__Seek (rd=3D0x239f9b4=2C pos=3D0=2C dontBlock=3D0= > '\0') at ../src/rw/FileRd.m3:83 >> #6 0x00356338 in Rd__DoSeek (rd=3D0x239f9b4) at ../src/rw/Rd.m3:54 >> #7 0x003560c1 in UnsafeRd__FastGetChar (rd=3D0x239f9b4) at ../src/rw/Rd.m= >3:43 >> #8 0x00356018 in Rd__GetChar (rd=3D0x239f9b4) at ../src/rw/Rd.m3:34 >> #9 0x00316fbc in ProcUtils__SSApply (self=3D0x242f0f0) at ../src/ProcUtil= >s.m3:54 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20094a0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20094a0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 65 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613c20) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003beefd in ThreadPThread__InitMutex (m=3D0x242a6f8=2C root=3D0x242a= >6f4=2C Clean=3D0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >> #4 0x003befce in ThreadPThread__LockMutex (m=3D0x242a6f4) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #5 0x00355ff6 in Rd__GetChar (rd=3D0x242a6f4) at ../src/rw/Rd.m3:33 >> #6 0x00364b5d in Lex__Skip (rd=3D0x242a6f4=2C cs=3D0x587ff8) at ../src/fm= >tlex/Lex.m3:46 >> #7 0x00366e53 in Lex__ReadReal (rd=3D0x242a6f4=2C sign=3D0xb1cf0603=2C di= >gits=3D0xb1cf061c=2C digCnt=3D0xb1cf0608=2C exp=3D0xb1cf060c) at ../src/fmt= >lex/Lex.m3:569 >> #8 0x003678f0 in Lex__LongReal (rd=3D0x242a6f4) at ../src/fmtlex/Lex.m3:6= >62 >> #9 0x0036834e in Scan__LongReal (txt=3D0x1753494) at ../src/fmtlex/Scan.m= >3:77 >> #10 0x002603f5 in SchemeInputPort__NextToken (t=3D0x2380de4=2C wx=3D0x242= >a4a8) at ../src/SchemeInputPort.m3:439 >> #11 0x00260756 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x242= >a4a8) at ../src/SchemeInputPort.m3:240 >> #12 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= >nputPort.m3:179 >> #13 0x0025edad in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= >nputPort.m3:191 >> #14 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x242= >a40c) at ../src/SchemeInputPort.m3:240 >> #15 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= >nputPort.m3:179 >> #16 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x239= >ddc4) at ../src/SchemeInputPort.m3:240 >> #17 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= >nputPort.m3:179 >> #18 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x239= >dc4c) at ../src/SchemeInputPort.m3:240 >> #19 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= >nputPort.m3:179 >> #20 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x239= >da8c) at ../src/SchemeInputPort.m3:240 >> #21 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= >nputPort.m3:179 >> #22 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x239= >d9b4) at ../src/SchemeInputPort.m3:240 >> #23 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= >nputPort.m3:179 >> #24 0x0024db82 in Scheme__LoadPort (t=3D0x237018c=2C in=3D0x2380de4) at .= >./src/Scheme.m3:317 >> #25 0x0024ae56 in Scheme__LoadRd (t=3D0x237018c=2C rd=3D0x2379cfc=2C fn= >=3D0x0) at ../src/Scheme.m3:174 >> #26 0x0024e659 in Scheme__ReadInitialFiles (t=3D0x237018c=2C files=3D0x4a= >fc8c) at ../src/Scheme.m3:134 >> #27 0x0024ea46 in Scheme__Init2 (t=3D0x237018c=2C input=3D0x15ac4ec=2C ou= >tput=3D0x15ac514=2C files=3D0x4afc8c=2C env=3D0x0) at ../src/Scheme.m3:127 >> #28 0x0024a89a in Scheme__Init (t=3D0x237018c=2C files=3D0x4afc8c=2C env= >=3D0x0) at ../src/Scheme.m3:102 >> #29 0x0002abbc in SchemeCalculator__Init (t=3D0x237017c=2C code=3D0x22554= >1c) at ../src/SchemeCalculator.m3:28 >> #30 0x0000e373 in EuroDriver__OApply (cl=3D0x2367b70) at ../src/EuroDrive= >r.m3:865 >> #31 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2008b80) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #32 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2008b80) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #33 0x9713885d in _pthread_start () >> #34 0x971386e2 in thread_start () >> >> Thread 64 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613ca0) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= >.m3:1336 >> #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=3D0x2430f38=2C p=3D0x= >3bed6f) at ../src/runtime/common/RTCollector.m3:2148 >> #5 0x003bef65 in ThreadPThread__InitMutex (m=3D0x2430f3c=2C root=3D0x2430= >f38=2C Clean=3D0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 >> #6 0x003befce in ThreadPThread__LockMutex (m=3D0x2430f38) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #7 0x00355ff6 in Rd__GetChar (rd=3D0x2430f38) at ../src/rw/Rd.m3:33 >> #8 0x00364b5d in Lex__Skip (rd=3D0x2430f38=2C cs=3D0x587ff8) at ../src/fm= >tlex/Lex.m3:46 >> #9 0x00366e53 in Lex__ReadReal (rd=3D0x2430f38=2C sign=3D0xb1c6e7c3=2C di= >gits=3D0xb1c6e7dc=2C digCnt=3D0xb1c6e7c8=2C exp=3D0xb1c6e7cc) at ../src/fmt= >lex/Lex.m3:569 >> #10 0x003678f0 in Lex__LongReal (rd=3D0x2430f38) at ../src/fmtlex/Lex.m3:= >662 >> #11 0x0036834e in Scan__LongReal (txt=3D0x1753494) at ../src/fmtlex/Scan.= >m3:77 >> #12 0x002603f5 in SchemeInputPort__NextToken (t=3D0x237ede4=2C wx=3D0x243= >0e44) at ../src/SchemeInputPort.m3:439 >> #13 0x00260756 in SchemeInputPort__ReadTail2 (t=3D0x237ede4=2C wx=3D0x243= >0e44) at ../src/SchemeInputPort.m3:240 >> #14 0x0025ebdd in SchemeInputPort__Read (t=3D0x237ede4) at ../src/SchemeI= >nputPort.m3:179 >> #15 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x237ede4=2C wx=3D0x243= >0db0) at ../src/SchemeInputPort.m3:240 >> #16 0x0025ebdd in SchemeInputPort__Read (t=3D0x237ede4) at ../src/SchemeI= >nputPort.m3:179 >> #17 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x237ede4=2C wx=3D0x243= >0cd8) at ../src/SchemeInputPort.m3:240 >> #18 0x0025ebdd in SchemeInputPort__Read (t=3D0x237ede4) at ../src/SchemeI= >nputPort.m3:179 >> #19 0x0024db82 in Scheme__LoadPort (t=3D0x236e18c=2C in=3D0x237ede4) at .= >./src/Scheme.m3:317 >> #20 0x0024ae56 in Scheme__LoadRd (t=3D0x236e18c=2C rd=3D0x2377cfc=2C fn= >=3D0x0) at ../src/Scheme.m3:174 >> #21 0x0024e659 in Scheme__ReadInitialFiles (t=3D0x236e18c=2C files=3D0x4a= >fc8c) at ../src/Scheme.m3:134 >> #22 0x0024ea46 in Scheme__Init2 (t=3D0x236e18c=2C input=3D0x15ac4ec=2C ou= >tput=3D0x15ac514=2C files=3D0x4afc8c=2C env=3D0x0) at ../src/Scheme.m3:127 >> #23 0x0024a89a in Scheme__Init (t=3D0x236e18c=2C files=3D0x4afc8c=2C env= >=3D0x0) at ../src/Scheme.m3:102 >> #24 0x0002abbc in SchemeCalculator__Init (t=3D0x236e17c=2C code=3D0x22554= >1c) at ../src/SchemeCalculator.m3:28 >> #25 0x0000e373 in EuroDriver__OApply (cl=3D0x2367ad8) at ../src/EuroDrive= >r.m3:865 >> #26 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2008af0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #27 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2008af0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #28 0x9713885d in _pthread_start () >> #29 0x971386e2 in thread_start () >> >> Thread 60 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x2006bc0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003befff in ThreadPThread__LockMutex (m=3D0x22cc724) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x003bed47 in Thread__Acquire (m=3D0x22cc724) at ../src/thread/PTHREAD= >/ThreadPThread.m3:81 >> #5 0x002d9fb9 in SX__Lock (arr=3D0x235a9a4) at ../src/SX.m3:318 >> #6 0x002d983f in SXSelect__WaitE (on=3D0xb1beccd8=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:241 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb1beccd8=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDrive= >r.m3:832 >> #9 0x0000e830 in EuroDriver__OApply (cl=3D0x22aad10) at ../src/EuroDriver= >.m3:892 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2007080) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2007080) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 59 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613c20) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003beefd in ThreadPThread__InitMutex (m=3D0x2354a24=2C root=3D0x2354= >a20=2C Clean=3D0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >> #4 0x003befce in ThreadPThread__LockMutex (m=3D0x2354a20) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #5 0x003bed47 in Thread__Acquire (m=3D0x2354a20) at ../src/thread/PTHREAD= >/ThreadPThread.m3:81 >> #6 0x00359e60 in RdClass__Lock (rd=3D0x2354a20) at ../src/rw/Rd.m3:521 >> #7 0x0025e4c4 in SchemeInputPort__Lock (t=3D0x2354b08) at ../src/SchemeIn= >putPort.m3:72 >> #8 0x0025f3dc in SchemeInputPort__NextToken (t=3D0x2354b08=2C wx=3D0x2354= >b28) at ../src/SchemeInputPort.m3:299 >> #9 0x0025eb94 in SchemeInputPort__Read (t=3D0x2354b08) at ../src/SchemeIn= >putPort.m3:177 >> #10 0x0024aea9 in Scheme__LoadEval (t=3D0x224418c=2C rd=3D0x2354a20) at .= >./src/Scheme.m3:291 >> #11 0x0024af22 in Scheme__LoadEvalText (t=3D0x224418c=2C txt=3D0x225541c)= > at ../src/Scheme.m3:306 >> #12 0x0002ad28 in SchemeCalculator__Calc (t=3D0x224417c=2C arr=3D0xb1b6ab= >04) at ../src/SchemeCalculator.m3:47 >> #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/Eur= >oDriver.m3:564 >> #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/E= >uroDriver.m3:507 >> #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriv= >er.m3:795 >> #16 0x0000e830 in EuroDriver__OApply (cl=3D0x22aac78) at ../src/EuroDrive= >r.m3:892 >> #17 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2007020) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #18 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2007020) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #19 0x9713885d in _pthread_start () >> #20 0x971386e2 in thread_start () >> >> Thread 54 (process 32362): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D10=2C read=3D1=2C m3timeout= >=3D1) at ../src/thread/Common/ThreadInternal.c:31 >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x161dfc0=2C fd=3D10=2C r= >ead=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001= >') at ../src/thread/PTHREAD/ThreadPThread.m3:627 >> #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=3D10=2C read=3D1 '\001'= >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 >> #4 0x00346693 in TCP__GetBytesFD (t=3D0x22211d8=2C arr=3D0x22f400c=2C tim= >eout=3D-1) at ../src/POSIX/TCP.m3:326 >> #5 0x00348786 in ConnRW__RdSeek (rd=3D0x2221260=2C pos=3D267=2C dontBlock= >=3D0 '\0') at ../src/common/ConnRW.m3:69 >> #6 0x003591ce in Rd__GetLine (rd=3D0x2221260) at ../src/rw/Rd.m3:426 >> #7 0x002b2826 in TWSTester__RApply (cl=3D0x2221290) at ../src/TWSTester.m= >3:382 >> #8 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161dfc0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #9 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161dfc0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #10 0x9713885d in _pthread_start () >> #11 0x971386e2 in thread_start () >> >> Thread 53 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161deb0= >=2C mutex=3D0x161e1c0=2C m3timeout=3D1294411605.506855) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161e160=2C n=3D0.5=2C al= >ertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D0.5) at ../src/thread/PTHREAD/ThreadP= >Thread.m3:567 >> #6 0x00297efc in PMTWS__TSCApply (cl=3D0x2221088) at ../src/PMTWS.m3:229 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161e160) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161e160) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 52 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613ca0) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= >.m3:1336 >> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=3D24=2C dataAlignment= >=3D4=2C thread=3D0x161e144) at ../src/runtime/common/RTAllocator.m3:363 >> #5 0x003a5a99 in RTAllocator__GetTracedObj (def=3D0x616d54) at ../src/run= >time/common/RTAllocator.m3:224 >> #6 0x003a550f in RTHooks__AllocateTracedObj (defn=3D0x616d54) at ../src/r= >untime/common/RTAllocator.m3:122 >> #7 0x003d3c0e in RTHooks__Concat (t=3D0x23669ec=2C u=3D0x56c460) at ../sr= >c/text/TextCat.m3:28 >> #8 0x002b0dc2 in TWSTester__MakeString (contract=3D0xb19e4dc0) at ../src/= >TWSTester.m3:92 >> #9 0x002b11ac in TWSTester__ReqMktData (t=3D0x2220800=2C tickerId=3D3=2C = >contract=3D0xb19e4dc0) at ../src/TWSTester.m3:136 >> #10 0x002bccaf in TWSTestBridge__MreqMktData (t=3D0x2220800=2C tickerId= >=3D3=2C contract=3D0xb19e4dc0) at ../src/TWSTestBridge.m3 =3D> ../src/TWSBr= >idgeG.mg:580 >> #11 0x002978ec in PMTWS__TSCApply (cl=3D0x2221044) at ../src/PMTWS.m3:210 >> #12 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161e100) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161e100) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #14 0x9713885d in _pthread_start () >> #15 0x971386e2 in thread_start () >> >> Thread 51 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613ca0) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= >.m3:1336 >> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=3D136=2C dataAlignmen= >t=3D8=2C thread=3D0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 >> #5 0x003a581e in RTAllocator__GetTracedRef (def=3D0x5b1280) at ../src/run= >time/common/RTAllocator.m3:202 >> #6 0x003a54da in RTHooks__AllocateTracedRef (defn=3D0x5b1280) at ../src/r= >untime/common/RTAllocator.m3:115 >> #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=3D0x235f464=2C = >key=3D0xb1962d7c=2C val=3D0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_in= >strumentTbl.m3 =3D> /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 >> #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=3D0x228c080= >=2C res=3D0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 = >=3D> /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 >> #9 0x0008c6de in GCOMSPortfolio__Lock (t=3D0x2255cd8) at ../src/GCOMSPort= >folio.m3:94 >> #10 0x00029faa in SXPortfolio__Scan (t=3D0x229a888) at ../src/SXPortfolio= >.m3:47 >> #11 0x0002a998 in SXPortfolio__Apply (cl=3D0x222057c) at ../src/SXPortfol= >io.m3:113 >> #12 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x1626560) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x1626560) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #14 0x9713885d in _pthread_start () >> #15 0x971386e2 in thread_start () >> >> Thread 50 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2005ac0= >=2C mutex=3D0x20059b0=2C m3timeout=3D1294411629.006319) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2005a60=2C n=3D50=2C ale= >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= >eadPThread.m3:573 >> #6 0x000e162d in DBTable_gcoms_aux_ordrMonitor__ApplyC (cl=3D0x229a528) a= >t ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/calarm= >/ratsql/src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2005a60) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2005a60) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 49 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2005a40= >=2C mutex=3D0x20058e0=2C m3timeout=3D1294411606.0014169) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x20059e0=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000e357e in DBTable_gcoms_aux_ordrMonitor__CleanerApply (cl=3D0x229a= >720) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/= >calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20059e0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20059e0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 48 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161de60= >=2C mutex=3D0x161aa50=2C m3timeout=3D1294411629.003248) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161aae0=2C n=3D50=2C ale= >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= >eadPThread.m3:573 >> #6 0x000d2f00 in DBTable_gcoms_fillMonitor__ApplyC (cl=3D0x229a258) at ..= >/I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/= >src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161aae0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161aae0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 47 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161ac10= >=2C mutex=3D0x1625c10=2C m3timeout=3D1294411605.9982891) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161aa80=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000d50b3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=3D0x229a450)= > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= >atsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161aa80) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161aa80) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 46 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2004440= >=2C mutex=3D0x2004410=2C m3timeout=3D1294411678.997467) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x20043b0=2C n=3D100=2C al= >ertable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D100) at ../src/thread/PTHREAD/Th= >readPThread.m3:573 >> #6 0x000da48e in DBTable_gcoms_aux_instrumentMonitor__ApplyC (cl=3D0x1711= >268) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Users/m= >ika/t/calarm/ratsql/src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20043b0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20043b0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 45 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x20038d0= >=2C mutex=3D0x2004380=2C m3timeout=3D1294411605.9944479) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2004320=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000dc415 in DBTable_gcoms_aux_instrumentMonitor__CleanerApply (cl=3D= >0x1711460) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /U= >sers/mika/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2004320) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2004320) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 44 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x20071d0= >=2C mutex=3D0x20070e0=2C m3timeout=3D1294411678.9916439) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2007170=2C n=3D100=2C al= >ertable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D100) at ../src/thread/PTHREAD/Th= >readPThread.m3:573 >> #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x224daf0)= > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= >larm/ratsql/src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2007170) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2007170) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 43 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x20046e0= >=2C mutex=3D0x2006f50=2C m3timeout=3D1294411605.83337) at ../src/thread/PTH= >READ/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2007110=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x22= >4dce8) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= >a/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2007110) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2007110) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 42 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161d830= >=2C mutex=3D0x161d780=2C m3timeout=3D1294411678.981461) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161dae0=2C n=3D100=2C al= >ertable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D100) at ../src/thread/PTHREAD/Th= >readPThread.m3:573 >> #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x224d768)= > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= >larm/ratsql/src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161dae0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161dae0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 41 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161d7e0= >=2C mutex=3D0x161da50=2C m3timeout=3D1294411605.8302381) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161da80=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x22= >4d960) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= >a/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161da80) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161da80) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 40 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161d940= >=2C mutex=3D0x161d910=2C m3timeout=3D1294411678.8294799) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161d8b0=2C n=3D100=2C al= >ertable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D100) at ../src/thread/PTHREAD/Th= >readPThread.m3:573 >> #6 0x000c4b88 in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=3D0x224d348= >) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mika/t/= >calarm/ratsql/src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161d8b0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161d8b0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 39 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x16262c0= >=2C mutex=3D0x161d750=2C m3timeout=3D1294411605.8264539) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161d850=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000c6a9a in DBTable_gcoms_ordr_statusMonitor__CleanerApply (cl=3D0x2= >24d540) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/m= >ika/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161d850) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161d850) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 38 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2003bc0= >=2C mutex=3D0x2003cd0=2C m3timeout=3D1294411628.744529) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2003c70=2C n=3D50=2C ale= >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= >eadPThread.m3:573 >> #6 0x000b4d70 in DBTable_gcoms_strategyMonitor__ApplyC (cl=3D0x228c348) a= >t ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/calarm= >/ratsql/src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2003c70) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2003c70) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 37 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2003ba0= >=2C mutex=3D0x2003be0=2C m3timeout=3D1294411605.7216971) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2003c10=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000b6cc1 in DBTable_gcoms_strategyMonitor__CleanerApply (cl=3D0x228c= >538) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/= >calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2003c10) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2003c10) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 36 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x16256b0= >=2C mutex=3D0x16255a0=2C m3timeout=3D1294411628.815861) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x1625650=2C n=3D50=2C ale= >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= >eadPThread.m3:573 >> #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x228c080)= > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= >larm/ratsql/src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x1625650) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x1625650) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 35 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x1625630= >=2C mutex=3D0x1625570=2C m3timeout=3D1294411605.7159209) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x16255d0=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x22= >8c270) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= >a/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x16255d0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x16255d0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 34 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2003a30= >=2C mutex=3D0x20031e0=2C m3timeout=3D1294411628.7167931) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x20039d0=2C n=3D50=2C ale= >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= >eadPThread.m3:573 >> #6 0x000d2f00 in DBTable_gcoms_fillMonitor__ApplyC (cl=3D0x2255d40) at ..= >/I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/= >src/TableMonitor.mg:416 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20039d0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20039d0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 33 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x20034c0= >=2C mutex=3D0x20038a0=2C m3timeout=3D1294411605.7081449) at ../src/thread/P= >THREAD/ThreadPThreadC.c:413 >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2003970=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000d50b3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=3D0x2255f30)= > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= >atsql/src/TableMonitor.mg:699 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2003970) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2003970) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 32 (process 32362): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D9=2C read=3D1=2C m3timeout=3D= >1) at ../src/thread/Common/ThreadInternal.c:31 >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x2003780=2C fd=3D9=2C re= >ad=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001'= >) at ../src/thread/PTHREAD/ThreadPThread.m3:627 >> #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=3D9=2C read=3D1 '\001'= >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 >> #4 0x00346693 in TCP__GetBytesFD (t=3D0x227c15c=2C arr=3D0x227600c=2C tim= >eout=3D-1) at ../src/POSIX/TCP.m3:326 >> #5 0x00348786 in ConnRW__RdSeek (rd=3D0x227a010=2C pos=3D0=2C dontBlock= >=3D0 '\0') at ../src/common/ConnRW.m3:69 >> #6 0x003591ce in Rd__GetLine (rd=3D0x227a010) at ../src/rw/Rd.m3:426 >> #7 0x002678d9 in UpdateMonitor__InApplyP (cl=3D0x227a040) at ../src/Updat= >eMonitor.m3:240 >> #8 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2003780) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #9 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2003780) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #10 0x9713885d in _pthread_start () >> #11 0x971386e2 in thread_start () >> >> Thread 31 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2003420=2C j=3D0= >x2003720) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x20036c0=2C m=3D0x227c220= >=2C c=3D0x227c22c=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x227c220=2C c=3D0x227c22c) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002674cc in UpdateMonitor__OutApplyP (p=3D0x227c17c) at ../src/Updat= >eMonitor.m3:178 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20036c0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20036c0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 30 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x161a290=2C j=3D0= >x1625020) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x1624fc0=2C m=3D0x2255ac0= >=2C c=3D0x2255af4=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x2255ac0=2C c=3D0x2255af4) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x0026a003 in DesynchronizedDB__PApply (p=3D0x2255b04) at ../src/Desyn= >chronizedDB.m3:216 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x1624fc0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x1624fc0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 29 (process 32362): >> #0 0x9716c1d6 in __wait4 () >> #1 0x9716c1c9 in waitpid$UNIX2003 () >> #2 0x003c50d5 in Uexec__waitpid (i=3D32392=2C j=3D0xb0e36b7c=2C k=3D0) at= > ../src/unix/Common/Uexec.c:66 >> #3 0x003c1d31 in SchedulerPosix__WaitProcess (pid=3D32392=2C status=3D0xb= >0e36b7c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 >> #4 0x003536dc in Process__Wait (p=3D0x22585fc) at ../src/os/POSIX/Process= >PosixCommon.m3:275 >> #5 0x003163ad in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:18= >5 >> #6 0x00316d6e in ProcUtils__Apply (self=3D0x2256284) at ../src/ProcUtils.= >m3:274 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x16251a0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x16251a0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 28 (process 32362): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D8=2C read=3D1=2C m3timeout=3D= >1) at ../src/thread/Common/ThreadInternal.c:31 >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x20030c0=2C fd=3D8=2C re= >ad=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001'= >) at ../src/thread/PTHREAD/ThreadPThread.m3:627 >> #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=3D8=2C read=3D1 '\001'= >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 >> #4 0x00346693 in TCP__GetBytesFD (t=3D0x22562c4=2C arr=3D0x225e00c=2C tim= >eout=3D-1) at ../src/POSIX/TCP.m3:326 >> #5 0x00348786 in ConnRW__RdSeek (rd=3D0x2256318=2C pos=3D0=2C dontBlock= >=3D0 '\0') at ../src/common/ConnRW.m3:69 >> #6 0x00356338 in Rd__DoSeek (rd=3D0x2256318) at ../src/rw/Rd.m3:54 >> #7 0x003560c1 in UnsafeRd__FastGetChar (rd=3D0x2256318) at ../src/rw/Rd.m= >3:43 >> #8 0x00356018 in Rd__GetChar (rd=3D0x2256318) at ../src/rw/Rd.m3:34 >> #9 0x002c62c5 in ReadLine__ReadALine (t=3D0x225600c) at ../src/ReadLine.m= >3:151 >> #10 0x002c877e in ReadLine__ReadLine (t=3D0x225600c) at ../src/ReadLine.m= >3:411 >> #11 0x0023b1fb in SchemeReadLine__GetCh (p=3D0x2256348) at ../src/SchemeR= >eadLine.m3:80 >> #12 0x0025f4b3 in SchemeInputPort__NextToken (t=3D0x2256348=2C wx=3D0x225= >63cc) at ../src/SchemeInputPort.m3:309 >> #13 0x0025eb94 in SchemeInputPort__Read (t=3D0x2256348) at ../src/SchemeI= >nputPort.m3:177 >> #14 0x0023ba70 in SchemeReadLine__MainLoop (rl=3D0x225600c=2C scm=3D0x223= >40d0) at ../src/SchemeReadLine.m3:146 >> #15 0x00006c23 in Main__SCApply (c=3D0x2255620) at ../src/Main.m3:92 >> #16 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20030c0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #17 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20030c0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #18 0x9713885d in _pthread_start () >> #19 0x971386e2 in thread_start () >> >> Thread 27 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x161e470) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003befff in ThreadPThread__LockMutex (m=3D0x22440a4) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x002dbd63 in SXLongReal__Update (v=3D0x2244010=2C newValue=3D12937212= >30.087589=2C when=3D1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 =3D>= > ../src/SXType.mg:79 >> #5 0x002dc086 in SXLongReal__SetVar (v=3D0x2244010=2C newValue=3D12937212= >30.087589=2C when=3D1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 =3D>= > ../src/SXType.mg:98 >> #6 0x00300c16 in SXTimer__Loop (cl=3D0x173934c) at ../src/SXTimer.m3:64 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2001ec0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2001ec0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 26 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20011c0=2C j=3D0= >x2001e10) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2001db0=2C m=3D0x1738078= >=2C c=3D0x17380a8=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1738078=2C c=3D0x17380a8) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x0009e3d6 in GCOMSOrderStatus__Apply (cl=3D0x17380b8) at ../src/GCOMS= >OrderStatus.m3:166 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2001db0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2001db0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 25 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x1619840=2C j=3D0= >x1619920) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x161a170=2C m=3D0x15aab74= >=2C c=3D0x15aab80=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15aab74=2C c=3D0x15aab80) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x000a4482 in GCOMSBusyOrders__Apply (cl=3D0x15aab90) at ../src/GCOMSB= >usyOrders.m3:63 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161a170) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161a170) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 24 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20011a0=2C j=3D0= >x2001170) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2001110=2C m=3D0x173e044= >=2C c=3D0x173e050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x173e044=2C c=3D0x173e050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0bace84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0bace84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1594280) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15943b0) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2001110) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2001110) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 23 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20010f0=2C j=3D0= >x20010c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2001060=2C m=3D0x1724034= >=2C c=3D0x1724040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1724034=2C c=3D0x1724040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0b2ae84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0b2ae84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15940f0) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1594220) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2001060) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2001060) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 22 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2001040=2C j=3D0= >x2001010) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000fb0=2C m=3D0x1722034= >=2C c=3D0x1722040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1722034=2C c=3D0x1722040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0aa8e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0aa8e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15adb40) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad7cc) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000fb0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000fb0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 21 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000f90=2C j=3D0= >x2000f60) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000f00=2C m=3D0x1720034= >=2C c=3D0x1720040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1720034=2C c=3D0x1720040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0a26e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0a26e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15adae0) at ../src/SX.m3:151 >> #9 0x0016017c in CurrencySXProxy__Apply (cl=3D0x15ad7b0) at ../I386_DARWI= >N/CurrencySXProxy.m3 =3D> /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000f00) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000f00) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 20 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000ee0=2C j=3D0= >x2000eb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000e50=2C m=3D0x173c044= >=2C c=3D0x173c050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x173c044=2C c=3D0x173c050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb09a4e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb09a4e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad450) at ../src/SX.m3:151 >> #9 0x002d3613 in BoolSXProxy__Apply (cl=3D0x15ad794) at ../I386_DARWIN/Bo= >olSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000e50) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000e50) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 19 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000e30=2C j=3D0= >x2000e00) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000da0=2C m=3D0x171e034= >=2C c=3D0x171e040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x171e034=2C c=3D0x171e040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0922e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0922e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad3e8) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad778) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000da0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000da0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 18 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000d80=2C j=3D0= >x2000d50) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000cf0=2C m=3D0x1740044= >=2C c=3D0x1740050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1740044=2C c=3D0x1740050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb08a0e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb08a0e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad380) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad75c) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000cf0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000cf0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 17 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000cd0=2C j=3D0= >x2000ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000c40=2C m=3D0x1704044= >=2C c=3D0x1704050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1704044=2C c=3D0x1704050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb081ee84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb081ee84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad318) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad740) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000c40) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000c40) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 16 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000c20=2C j=3D0= >x2000bf0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000b90=2C m=3D0x1702044= >=2C c=3D0x1702050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1702044=2C c=3D0x1702050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb079ce84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb079ce84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad2b0) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad724) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000b90) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000b90) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 15 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000b70=2C j=3D0= >x2000b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000ae0=2C m=3D0x173a044= >=2C c=3D0x173a050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x173a044=2C c=3D0x173a050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb071ae84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb071ae84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad248) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad708) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000ae0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000ae0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 14 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000ac0=2C j=3D0= >x2000a90) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000a30=2C m=3D0x171a034= >=2C c=3D0x171a040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x171a034=2C c=3D0x171a040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0698e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0698e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad1e0) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad6ec) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000a30) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000a30) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 13 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000a10=2C j=3D0= >x20009e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000980=2C m=3D0x1718034= >=2C c=3D0x1718040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1718034=2C c=3D0x1718040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0616e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0616e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad618) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad6d0) at ../I386_DARWI= N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000980) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000980) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 12 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000960=2C j=3D0= >x2000930) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x20008d0=2C m=3D0x1716034= >=2C c=3D0x1716040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1716034=2C c=3D0x1716040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0594e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0594e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad5b0) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad6b4) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20008d0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20008d0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 11 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20008b0=2C j=3D0= >x2000880) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000820=2C m=3D0x1714034= >=2C c=3D0x1714040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1714034=2C c=3D0x1714040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0512e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0512e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad548) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad698) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000820) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000820) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 10 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000800=2C j=3D0= >x20007d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000770=2C m=3D0x1712034= >=2C c=3D0x1712040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1712034=2C c=3D0x1712040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0490e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0490e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15acea8) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad67c) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000770) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000770) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 9 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000750=2C j=3D0= >x2000720) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x20006c0=2C m=3D0x15b6034= >=2C c=3D0x15b6040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15b6034=2C c=3D0x15b6040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb040ee84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb040ee84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591ea8) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1591fd8) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20006c0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20006c0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 8 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20006a0=2C j=3D0= >x2000670) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000610=2C m=3D0x15b4034= >=2C c=3D0x15b4040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15b4034=2C c=3D0x15b4040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb038ce84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb038ce84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591bf8) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1591d28) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000610) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000610) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 7 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20005f0=2C j=3D0= >x20005c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000560=2C m=3D0x15b2034= >=2C c=3D0x15b2040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15b2034=2C c=3D0x15b2040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb030ae84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb030ae84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591a70) at ../src/SX.m3:151 >> #9 0x0016017c in CurrencySXProxy__Apply (cl=3D0x1591b98) at ../I386_DARWI= >N/CurrencySXProxy.m3 =3D> /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000560) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000560) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 6 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000540=2C j=3D0= >x2000510) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x20004b0=2C m=3D0x171c0c0= >=2C c=3D0x171c0cc=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x171c0c0=2C c=3D0x171c0cc) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0288e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0288e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591808) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1591938) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20004b0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20004b0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 5 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000490=2C j=3D0= >x2000460) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000400=2C m=3D0x15b0034= >=2C c=3D0x15b0040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15b0034=2C c=3D0x15b0040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0206e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0206e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591678) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15917a8) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000400) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000400) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 4 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20003e0=2C j=3D0= >x20003b0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000350=2C m=3D0x15ae034= >=2C c=3D0x15ae040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15ae034=2C c=3D0x15ae040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0184e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0184e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15914e8) at ../src/SX.m3:151 >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1591618) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000350) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000350) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 3 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000150=2C j=3D0= >x20002c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000260=2C m=3D0x159123c= >=2C c=3D0x159122c=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003bf5c8 in Thread__Wait (m=3D0x159123c=2C c=3D0x159122c) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002ce79c in VarProxyDefs__NotifyApply (cl=3D0x1591248) at ../src/Var= >ProxyDefs.m3:55 >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000260) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000260) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 2 (process 32362): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613c20) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:452 >> #3 0x003beefd in ThreadPThread__InitMutex (m=3D0x23480ac=2C root=3D0x2348= >0a8=2C Clean=3D0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >> #4 0x003befce in ThreadPThread__LockMutex (m=3D0x23480a8) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #5 0x00355ff6 in Rd__GetChar (rd=3D0x23480a8) at ../src/rw/Rd.m3:33 >> #6 0x00364b5d in Lex__Skip (rd=3D0x23480a8=2C cs=3D0x587ff8) at ../src/fm= >tlex/Lex.m3:46 >> #7 0x00366e53 in Lex__ReadReal (rd=3D0x23480a8=2C sign=3D0xb0080ca3=2C di= >gits=3D0xb0080cbc=2C digCnt=3D0xb0080ca8=2C exp=3D0xb0080cac) at ../src/fmt= >lex/Lex.m3:569 >> #8 0x003678f0 in Lex__LongReal (rd=3D0x23480a8) at ../src/fmtlex/Lex.m3:6= >62 >> #9 0x0036834e in Scan__LongReal (txt=3D0x234807c) at ../src/fmtlex/Scan.m= >3:77 >> #10 0x003260a0 in XTime__ClApply (cl=3D0x15971b8) at ../src/XTime.m3:185 >> #11 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161a0b0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161a0b0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #13 0x9713885d in _pthread_start () >> #14 0x971386e2 in thread_start () >> >> Thread 1 (process 32362): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x16076f0=2C j=3D0= >x16076c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x1607660=2C m=3D0x15ac4b0= >=2C c=3D0x242f190=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003c1499 in ThreadPThread__XJoin (self=3D0x1607660=2C t=3D0x242f174= >=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:513 >> #6 0x003c15ae in Thread__Join (t=3D0x242f174) at ../src/thread/PTHREAD/Th= >readPThread.m3:525 >> #7 0x003158c9 in ProcUtils__Wait (c=3D0x242f0d4) at ../src/ProcUtils.m3:3= >18 >> #8 0x0024618a in SchemeCommandRunner__RealRunTimeoutCommandApply (proc=3D= >0x1738cc4=2C interp=3D0x2367eac=2C args=3D0x239bd88) at ../src/SchemeComman= >dRunner.m3:164 >> #9 0x00245e07 in SchemeCommandRunner__RunTimeoutCommandApply (proc=3D0x17= >38cc4=2C interp=3D0x2367eac=2C args=3D0x239bd88) at ../src/SchemeCommandRun= >ner.m3:129 >> #10 0x00245405 in SchemeCommandRunner__RunCommandApply (proc=3D0x1738cc4= >=2C interp=3D0x2367eac=2C args=3D0x239bd70) at ../src/SchemeCommandRunner.m= >3:23 >> #11 0x0025c183 in SchemePrimitive__EDApply (ed=3D0x1738340=2C t=3D0x236b5= >40=2C interp=3D0x2367eac=2C args=3D0x239bd70) at ../src/SchemePrimitive.m3:= >207 >> #12 0x00256d12 in SchemePrimitive__Prims (t=3D0x236b540=2C interp=3D0x236= >7eac=2C args=3D0x239bd70=2C x=3D0x239a328=2C y=3D0x239bd5c=2C free=3D0xbfff= >e82f) at ../src/SchemePrimitive.m3:580 >> #13 0x0025bb2b in SchemePrimitive__Apply2 (t=3D0x236b540=2C interp=3D0x23= >67eac=2C a1=3D0x239a328=2C a2=3D0x239bd5c) at ../src/SchemePrimitive.m3:549 >> #14 0x0024d640 in Scheme__EvalInternal (t=3D0x2367eac=2C x=3D0x239a288=2C= > env=3D0x239bce0) at ../src/Scheme.m3:585 >> #15 0x0024d3a8 in Scheme__EvalInternal (t=3D0x2367eac=2C x=3D0x239a1d8=2C= > env=3D0x239bce0) at ../src/Scheme.m3:582 >> #16 0x0024d82d in Scheme__Eval (t=3D0x2367eac=2C x=3D0x239b098=2C envP=3D= >0x2367ef4) at ../src/Scheme.m3:353 >> #17 0x0024b005 in Scheme__EvalInGlobalEnv (t=3D0x2367eac=2C x=3D0x239b098= >) at ../src/Scheme.m3:603 >> #18 0x0002aebc in SchemeCalculator__Calc (t=3D0x2367e9c=2C arr=3D0xbfffec= >dc) at ../src/SchemeCalculator.m3:61 >> #19 0x0000cbd3 in EuroDriver__Loop (t=3D0x224da38) at ../src/EuroDriver.m= >3:289 >> #20 0x00008820 in Main_M3 (mode=3D1) at ../src/Main.m3:268 >> #21 0x003b465a in RTLinker__RunMainBody (m=3D0x59e4c0) at ../src/runtime/= >common/RTLinker.m3:406 >> #22 0x003b3a8f in RTLinker__AddUnitI (m=3D0x59e4c0) at ../src/runtime/com= >mon/RTLinker.m3:113 >> #23 0x003b3b13 in RTLinker__AddUnit (b=3D0x6c5d) at ../src/runtime/common= >/RTLinker.m3:122 >> #24 0x000052ec in main (argc=3D19=2C argv=3D0xbffff1b4=2C envp=3D0xbffff2= >04) at _m3main.c:16 >> >> Thread 75 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003ac2e3 in ThreadPThread__PThreadLockMutex (mutex=3D0x5d3ac0=2C lin= >e=3D1288=2C index=3D2) at ../src/thread/PTHREAD/ThreadPThread.m3:1262 >> #4 0x003ac409 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD= >/ThreadPThread.m3:1288 >> #5 0x97137217 in _cthread_fork_prepare () >> #6 0x97137155 in fork () >> #7 0x0033bc4d in ProcessPosixCommon__Create_ForkExec (cmd=3D0x31e02ac=2C = >params=3D0x31e03c8=2C env=3D0x0=2C wd=3D0x53bf44=2C stdin=3D0x0=2C stdout= >=3D0x30e91cc=2C stderr=3D0x30ea700) at ../src/os/POSIX/ProcessPosixCommon.m= >3:75 >> #8 0x0033d137 in Process__Create (cmd=3D0x31e02ac=2C params=3D0x31e03c8= >=2C env=3D0x0=2C wd=3D0x53bf44=2C stdin=3D0x0=2C stdout=3D0x30e91cc=2C stde= >rr=3D0x30ea700) at ../src/os/POSIX/ProcessPosix.m3:21 >> #9 0x002ffdbc in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:18= >0 >> #10 0x003007c1 in ProcUtils__Apply (self=3D0x30eb88c) at ../src/ProcUtils= >.m3:274 >> #11 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161dd00) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #12 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161dd00) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #13 0x9713885d in _pthread_start () >> #14 0x971386e2 in thread_start () >> >> Thread 74 (process 67010): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D13=2C read=3D1=2C m3timeout= >=3D-1) at ../src/thread/Common/ThreadInternal.c:57 >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x161dc50=2C fd=3D13=2C r= >ead=3D1 '\001'=2C interval=3D-1=2C alertable=3D0 '\0') at ../src/thread/PTH= >READ/ThreadPThread.m3:627 >> #3 0x003aa6dc in SchedulerPosix__IOWait (fd=3D13=2C read=3D1 '\001'=2C ti= >meoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 >> #4 0x00338b5f in FilePosix__IntermittentRead (h=3D0x30ea6f0=2C b=3D0xb1ef= >8cf0=2C mayBlock=3D1 '\001') at ../src/os/POSIX/FilePosix.m3:220 >> #5 0x00347c68 in FileRd__Seek (rd=3D0x30ea710=2C pos=3D0=2C dontBlock=3D0= > '\0') at ../src/rw/FileRd.m3:83 >> #6 0x0033f64d in Rd__DoSeek (rd=3D0x30ea710) at ../src/rw/Rd.m3:54 >> #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=3D0x30ea710) at ../src/rw/Rd.m= >3:43 >> #8 0x0033f32d in Rd__GetChar (rd=3D0x30ea710) at ../src/rw/Rd.m3:34 >> #9 0x00300a0b in ProcUtils__SSApply (self=3D0x30eb854) at ../src/ProcUtil= >s.m3:54 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161dc50) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161dc50) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 73 (process 67010): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D11=2C read=3D1=2C m3timeout= >=3D-1) at ../src/thread/Common/ThreadInternal.c:57 >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x161dbc0=2C fd=3D11=2C r= >ead=3D1 '\001'=2C interval=3D-1=2C alertable=3D0 '\0') at ../src/thread/PTH= >READ/ThreadPThread.m3:627 >> #3 0x003aa6dc in SchedulerPosix__IOWait (fd=3D11=2C read=3D1 '\001'=2C ti= >meoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 >> #4 0x00338b5f in FilePosix__IntermittentRead (h=3D0x30e91bc=2C b=3D0xb1e7= >6cf0=2C mayBlock=3D1 '\001') at ../src/os/POSIX/FilePosix.m3:220 >> #5 0x00347c68 in FileRd__Seek (rd=3D0x30e91dc=2C pos=3D0=2C dontBlock=3D0= > '\0') at ../src/rw/FileRd.m3:83 >> #6 0x0033f64d in Rd__DoSeek (rd=3D0x30e91dc) at ../src/rw/Rd.m3:54 >> #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=3D0x30e91dc) at ../src/rw/Rd.m= >3:43 >> #8 0x0033f32d in Rd__GetChar (rd=3D0x30e91dc) at ../src/rw/Rd.m3:34 >> #9 0x00300a0b in ProcUtils__SSApply (self=3D0x30eb81c) at ../src/ProcUtil= >s.m3:54 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161dbc0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161dbc0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 72 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7ebe in ThreadPThread__InitMutex (m=3D0x31339fc=2C root=3D0x3133= >9f8=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >> #4 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x31339f8) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #5 0x0033f30b in Rd__GetChar (rd=3D0x31339f8) at ../src/rw/Rd.m3:33 >> #6 0x0034dffd in Lex__Skip (rd=3D0x31339f8=2C cs=3D0x548018) at ../src/fm= >tlex/Lex.m3:46 >> #7 0x003503c3 in Lex__ReadReal (rd=3D0x31339f8=2C sign=3D0xb1df47c3=2C di= >gits=3D0xb1df47dc=2C digCnt=3D0xb1df47c8=2C exp=3D0xb1df47cc) at ../src/fmt= >lex/Lex.m3:569 >> #8 0x00350ef5 in Lex__LongReal (rd=3D0x31339f8) at ../src/fmtlex/Lex.m3:6= >62 >> #9 0x003518f1 in Scan__LongReal (txt=3D0x25768e8) at ../src/fmtlex/Scan.m= >3:77 >> #10 0x0024f849 in SchemeInputPort__NextToken (t=3D0x30d4aec=2C wx=3D0x313= >37e8) at ../src/SchemeInputPort.m3:439 >> #11 0x0024fb9c in SchemeInputPort__ReadTail2 (t=3D0x30d4aec=2C wx=3D0x313= >37e8) at ../src/SchemeInputPort.m3:240 >> #12 0x0024e100 in SchemeInputPort__Read (t=3D0x30d4aec) at ../src/SchemeI= >nputPort.m3:179 >> #13 0x0024e2bc in SchemeInputPort__Read (t=3D0x30d4aec) at ../src/SchemeI= >nputPort.m3:191 >> #14 0x0024fb73 in SchemeInputPort__ReadTail2 (t=3D0x30d4aec=2C wx=3D0x313= >3620) at ../src/SchemeInputPort.m3:240 >> #15 0x0024e100 in SchemeInputPort__Read (t=3D0x30d4aec) at ../src/SchemeI= >nputPort.m3:179 >> #16 0x0024fb73 in SchemeInputPort__ReadTail2 (t=3D0x30d4aec=2C wx=3D0x313= >3548) at ../src/SchemeInputPort.m3:240 >> #17 0x0024e100 in SchemeInputPort__Read (t=3D0x30d4aec) at ../src/SchemeI= >nputPort.m3:179 >> #18 0x0023c6cd in Scheme__LoadPort (t=3D0x30d018c=2C in=3D0x30d4aec) at .= >./src/Scheme.m3:317 >> #19 0x002399e3 in Scheme__LoadRd (t=3D0x30d018c=2C rd=3D0x30d3cf0=2C fn= >=3D0x0) at ../src/Scheme.m3:174 >> #20 0x0023d255 in Scheme__ReadInitialFiles (t=3D0x30d018c=2C files=3D0x46= >fc8c) at ../src/Scheme.m3:134 >> #21 0x0023d5e7 in Scheme__Init2 (t=3D0x30d018c=2C input=3D0x20003b4=2C ou= >tput=3D0x20013e8=2C files=3D0x46fc8c=2C env=3D0x0) at ../src/Scheme.m3:127 >> #22 0x00239461 in Scheme__Init (t=3D0x30d018c=2C files=3D0x46fc8c=2C env= >=3D0x0) at ../src/Scheme.m3:102 >> #23 0x00029420 in SchemeCalculator__Init (t=3D0x30d017c=2C code=3D0x263fc= >cc) at ../src/SchemeCalculator.m3:28 >> #24 0x0000deef in EuroDriver__OApply (cl=3D0x3241b88) at ../src/EuroDrive= >r.m3:865 >> #25 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2307650) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #26 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2307650) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #27 0x9713885d in _pthread_start () >> #28 0x971386e2 in thread_start () >> >> Thread 71 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3b40) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= >.m3:1345 >> #4 0x003995a6 in RTHeapRep__RegisterFinalCleanup (r=3D0x31239f8=2C p=3D0x= >3a7d52) at ../src/runtime/common/RTCollector.m3:2148 >> #5 0x003a7f1e in ThreadPThread__InitMutex (m=3D0x31239fc=2C root=3D0x3123= >9f8=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:106 >> #6 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x31239f8) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #7 0x0033f30b in Rd__GetChar (rd=3D0x31239f8) at ../src/rw/Rd.m3:33 >> #8 0x0034dffd in Lex__Skip (rd=3D0x31239f8=2C cs=3D0x548018) at ../src/fm= >tlex/Lex.m3:46 >> #9 0x003503c3 in Lex__ReadReal (rd=3D0x31239f8=2C sign=3D0xb1d727c3=2C di= >gits=3D0xb1d727dc=2C digCnt=3D0xb1d727c8=2C exp=3D0xb1d727cc) at ../src/fmt= >lex/Lex.m3:569 >> #10 0x00350ef5 in Lex__LongReal (rd=3D0x31239f8) at ../src/fmtlex/Lex.m3:= >662 >> #11 0x003518f1 in Scan__LongReal (txt=3D0x25768e8) at ../src/fmtlex/Scan.= >m3:77 >> #12 0x0024f849 in SchemeInputPort__NextToken (t=3D0x3264aec=2C wx=3D0x312= >37e8) at ../src/SchemeInputPort.m3:439 >> #13 0x0024fb9c in SchemeInputPort__ReadTail2 (t=3D0x3264aec=2C wx=3D0x312= >37e8) at ../src/SchemeInputPort.m3:240 >> #14 0x0024e100 in SchemeInputPort__Read (t=3D0x3264aec) at ../src/SchemeI= >nputPort.m3:179 >> #15 0x0024e2bc in SchemeInputPort__Read (t=3D0x3264aec) at ../src/SchemeI= >nputPort.m3:191 >> #16 0x0024fb73 in SchemeInputPort__ReadTail2 (t=3D0x3264aec=2C wx=3D0x312= >3620) at ../src/SchemeInputPort.m3:240 >> #17 0x0024e100 in SchemeInputPort__Read (t=3D0x3264aec) at ../src/SchemeI= >nputPort.m3:179 >> #18 0x0024fb73 in SchemeInputPort__ReadTail2 (t=3D0x3264aec=2C wx=3D0x312= >3548) at ../src/SchemeInputPort.m3:240 >> #19 0x0024e100 in SchemeInputPort__Read (t=3D0x3264aec) at ../src/SchemeI= >nputPort.m3:179 >> #20 0x0023c6cd in Scheme__LoadPort (t=3D0x326018c=2C in=3D0x3264aec) at .= >./src/Scheme.m3:317 >> #21 0x002399e3 in Scheme__LoadRd (t=3D0x326018c=2C rd=3D0x3263cf0=2C fn= >=3D0x0) at ../src/Scheme.m3:174 >> #22 0x0023d255 in Scheme__ReadInitialFiles (t=3D0x326018c=2C files=3D0x46= >fc8c) at ../src/Scheme.m3:134 >> #23 0x0023d5e7 in Scheme__Init2 (t=3D0x326018c=2C input=3D0x20003b4=2C ou= >tput=3D0x20013e8=2C files=3D0x46fc8c=2C env=3D0x0) at ../src/Scheme.m3:127 >> #24 0x00239461 in Scheme__Init (t=3D0x326018c=2C files=3D0x46fc8c=2C env= >=3D0x0) at ../src/Scheme.m3:102 >> #25 0x00029420 in SchemeCalculator__Init (t=3D0x326017c=2C code=3D0x263fc= >cc) at ../src/SchemeCalculator.m3:28 >> #26 0x0000deef in EuroDriver__OApply (cl=3D0x3241af0) at ../src/EuroDrive= >r.m3:865 >> #27 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23075c0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #28 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23075c0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #29 0x9713885d in _pthread_start () >> #30 0x971386e2 in thread_start () >> >> Thread 67 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7ebe in ThreadPThread__InitMutex (m=3D0x2686284=2C root=3D0x2686= >280=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >> #4 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x2686280) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #5 0x003a7d30 in Thread__Acquire (m=3D0x2686280) at ../src/thread/PTHREAD= >/ThreadPThread.m3:81 >> #6 0x00343175 in RdClass__Lock (rd=3D0x2686280) at ../src/rw/Rd.m3:521 >> #7 0x0024d9ef in SchemeInputPort__Lock (t=3D0x2686368) at ../src/SchemeIn= >putPort.m3:72 >> #8 0x0024e87d in SchemeInputPort__NextToken (t=3D0x2686368=2C wx=3D0x2686= >388) at ../src/SchemeInputPort.m3:299 >> #9 0x0024e0bb in SchemeInputPort__Read (t=3D0x2686368) at ../src/SchemeIn= >putPort.m3:177 >> #10 0x00239a38 in Scheme__LoadEval (t=3D0x254018c=2C rd=3D0x2686280) at .= >./src/Scheme.m3:291 >> #11 0x00239abd in Scheme__LoadEvalText (t=3D0x254018c=2C txt=3D0x263fccc)= > at ../src/Scheme.m3:306 >> #12 0x00029574 in SchemeCalculator__Calc (t=3D0x254017c=2C arr=3D0xb1cf09= >e4) at ../src/SchemeCalculator.m3:47 >> #13 0x0000ee50 in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/Eur= >oDriver.m3:564 >> #14 0x0000e7d6 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/E= >uroDriver.m3:507 >> #15 0x000103ca in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriv= >er.m3:795 >> #16 0x0000e3a2 in EuroDriver__OApply (cl=3D0x3018bb0) at ../src/EuroDrive= >r.m3:892 >> #17 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23054a0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #18 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23054a0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #19 0x9713885d in _pthread_start () >> #20 0x971386e2 in thread_start () >> >> Thread 66 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x230d020=2C j=3D0= >x2305470) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2305410=2C m=3D0x311a158= >=2C c=3D0x311a164=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x311a158=2C c=3D0x311a164) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb1c6ecb8=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb1c6ecb8=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x0001063a in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDrive= >r.m3:832 >> #9 0x0000e3a2 in EuroDriver__OApply (cl=3D0x3018b18) at ../src/EuroDriver= >.m3:892 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2305410) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2305410) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 62 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x23019d0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x31b1584) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x003a7d30 in Thread__Acquire (m=3D0x31b1584) at ../src/thread/PTHREAD= >/ThreadPThread.m3:81 >> #5 0x002c5bb6 in SX__Lock (arr=3D0x327c430) at ../src/SX.m3:318 >> #6 0x002c5496 in SXSelect__WaitE (on=3D0xb1beccb8=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:241 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb1beccb8=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x0001063a in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDrive= >r.m3:832 >> #9 0x0000e3a2 in EuroDriver__OApply (cl=3D0x21fcc00) at ../src/EuroDriver= >.m3:892 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1626040) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1626040) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 61 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7ebe in ThreadPThread__InitMutex (m=3D0x252c4b4=2C root=3D0x252c= >4b0=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >> #4 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x252c4b0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #5 0x003a7d30 in Thread__Acquire (m=3D0x252c4b0) at ../src/thread/PTHREAD= >/ThreadPThread.m3:81 >> #6 0x00343175 in RdClass__Lock (rd=3D0x252c4b0) at ../src/rw/Rd.m3:521 >> #7 0x0024d9ef in SchemeInputPort__Lock (t=3D0x252c598) at ../src/SchemeIn= >putPort.m3:72 >> #8 0x0024e87d in SchemeInputPort__NextToken (t=3D0x252c598=2C wx=3D0x252c= >5b8) at ../src/SchemeInputPort.m3:299 >> #9 0x0024e0bb in SchemeInputPort__Read (t=3D0x252c598) at ../src/SchemeIn= >putPort.m3:177 >> #10 0x00239a38 in Scheme__LoadEval (t=3D0x26f018c=2C rd=3D0x252c4b0) at .= >./src/Scheme.m3:291 >> #11 0x00239abd in Scheme__LoadEvalText (t=3D0x26f018c=2C txt=3D0x263fccc)= > at ../src/Scheme.m3:306 >> #12 0x00029574 in SchemeCalculator__Calc (t=3D0x26f017c=2C arr=3D0xb1b6a8= >64) at ../src/SchemeCalculator.m3:47 >> #13 0x0000ee50 in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/Eur= >oDriver.m3:564 >> #14 0x0000e7d6 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/E= >uroDriver.m3:507 >> #15 0x000103ca in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriv= >er.m3:795 >> #16 0x0000e3a2 in EuroDriver__OApply (cl=3D0x21fcb68) at ../src/EuroDrive= >r.m3:892 >> #17 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1625f80) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #18 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1625f80) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #19 0x9713885d in _pthread_start () >> #20 0x971386e2 in thread_start () >> >> Thread 54 (process 67010): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D10=2C read=3D1=2C m3timeout= >=3D1) at ../src/thread/Common/ThreadInternal.c:57 >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x23071d0=2C fd=3D10=2C r= >ead=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001= >') at ../src/thread/PTHREAD/ThreadPThread.m3:627 >> #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=3D10=2C read=3D1 '\001'= >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 >> #4 0x003344ff in TCP__GetBytesFD (t=3D0x3050f80=2C arr=3D0x3053048=2C tim= >eout=3D-1) at ../src/POSIX/TCP.m3:326 >> #5 0x003365ce in ConnRW__RdSeek (rd=3D0x3053018=2C pos=3D390=2C dontBlock= >=3D0 '\0') at ../src/common/ConnRW.m3:69 >> #6 0x003424e3 in Rd__GetLine (rd=3D0x3053018) at ../src/rw/Rd.m3:426 >> #7 0x002a00d4 in TWSTester__RApply (cl=3D0x3055054) at ../src/TWSTester.m= >3:382 >> #8 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23071d0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #9 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23071d0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #10 0x9713885d in _pthread_start () >> #11 0x971386e2 in thread_start () >> >> Thread 53 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x1621150= >=2C mutex=3D0x1621120=2C m3timeout=3D1294537044.5119109) at ../src/thread/P= >THREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x16210c0=2C n=3D0.5=2C al= >ertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D0.5) at ../src/thread/PTHREAD/ThreadP= >Thread.m3:567 >> #6 0x00286610 in PMTWS__TSCApply (cl=3D0x3050e30) at ../src/PMTWS.m3:229 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x16210c0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x16210c0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 52 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3b40) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= >.m3:1345 >> #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=3D24=2C dataAlignment= >=3D4=2C thread=3D0x1621054) at ../src/runtime/common/RTAllocator.m3:363 >> #5 0x0038f2c7 in RTAllocator__GetTracedObj (def=3D0x5d6bf4) at ../src/run= >time/common/RTAllocator.m3:224 >> #6 0x0038ed60 in RTHooks__AllocateTracedObj (defn=3D0x5d6bf4) at ../src/r= >untime/common/RTAllocator.m3:122 >> #7 0x003bc686 in RTHooks__Concat (t=3D0x3240a08=2C u=3D0x52c460) at ../sr= >c/text/TextCat.m3:28 >> #8 0x0029e655 in TWSTester__MakeString (contract=3D0xb19e4dc0) at ../src/= >TWSTester.m3:92 >> #9 0x0029ea07 in TWSTester__ReqMktData (t=3D0x30505a8=2C tickerId=3D4=2C = >contract=3D0xb19e4dc0) at ../src/TWSTester.m3:136 >> #10 0x002aa233 in TWSTestBridge__MreqMktData (t=3D0x30505a8=2C tickerId= >=3D4=2C contract=3D0xb19e4dc0) at ../src/TWSTestBridge.m3 =3D> ../src/TWSBr= >idgeG.mg:580 >> #11 0x00286034 in PMTWS__TSCApply (cl=3D0x3050dec) at ../src/PMTWS.m3:210 >> #12 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1621010) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #13 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1621010) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #14 0x9713885d in _pthread_start () >> #15 0x971386e2 in thread_start () >> >> Thread 51 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3b40) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= >.m3:1345 >> #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=3D136=2C dataAlignmen= >t=3D8=2C thread=3D0x1620ed4) at ../src/runtime/common/RTAllocator.m3:363 >> #5 0x0038f048 in RTAllocator__GetTracedRef (def=3D0x5711e0) at ../src/run= >time/common/RTAllocator.m3:202 >> #6 0x0038ed2f in RTHooks__AllocateTracedRef (defn=3D0x5711e0) at ../src/r= >untime/common/RTAllocator.m3:115 >> #7 0x000a8f49 in IntDBTable_gcoms_instrumentTbl__Put (tbl=3D0x328f110=2C = >key=3D0xb1962d7c=2C val=3D0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_in= >strumentTbl.m3 =3D> /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 >> #8 0x000a5ecc in DBTable_gcoms_instrumentMonitor__CopyC (cl=3D0x26608c0= >=2C res=3D0x328f110) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 = >=3D> /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 >> #9 0x00085c9f in GCOMSPortfolio__Lock (t=3D0x2660590) at ../src/GCOMSPort= >folio.m3:94 >> #10 0x000288d9 in SXPortfolio__Scan (t=3D0x300c578) at ../src/SXPortfolio= >.m3:47 >> #11 0x0002920d in SXPortfolio__Apply (cl=3D0x3050324) at ../src/SXPortfol= >io.m3:113 >> #12 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620e90) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #13 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620e90) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #14 0x9713885d in _pthread_start () >> #15 0x971386e2 in thread_start () >> >> Thread 50 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4ad9= >44=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= >25 >> #5 0x000d9ad8 in DBTable_gcoms_aux_ordrMonitor__DbNow (db=3D0x26602c4) at= > ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/calarm/= >ratsql/src/TableMonitor.mg:456 >> #6 0x000d9cdf in DBTable_gcoms_aux_ordrMonitor__CheckForNew (cl=3D0x300c2= >18) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/c= >alarm/ratsql/src/TableMonitor.mg:467 >> #7 0x000d9a01 in DBTable_gcoms_aux_ordrMonitor__Sync (cl=3D0x300c218) at = >../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/calarm/r= >atsql/src/TableMonitor.mg:445 >> #8 0x000d9588 in DBTable_gcoms_aux_ordrMonitor__ApplyC (cl=3D0x300c218) a= >t ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/calarm= >/ratsql/src/TableMonitor.mg:393 >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620d80) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620d80) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #11 0x9713885d in _pthread_start () >> #12 0x971386e2 in thread_start () >> >> Thread 49 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x1620d60= >=2C mutex=3D0x1620cd0=2C m3timeout=3D1294537044.970454) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x1620d00=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000db5a3 in DBTable_gcoms_aux_ordrMonitor__CleanerApply (cl=3D0x300c= >410) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/= >calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620d00) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620d00) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 48 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4aa2= >28=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= >25 >> #5 0x000cb8aa in DBTable_gcoms_fillMonitor__DbNow (db=3D0x26602c4) at ../= >I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/s= >rc/TableMonitor.mg:456 >> #6 0x000cbbf5 in DBTable_gcoms_fillMonitor__CheckForNew (cl=3D0x300bf48) = >at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ra= >tsql/src/TableMonitor.mg:467 >> #7 0x000cb7d3 in DBTable_gcoms_fillMonitor__Sync (cl=3D0x300bf48) at ../I= >386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/sr= >c/TableMonitor.mg:445 >> #8 0x000cb35a in DBTable_gcoms_fillMonitor__ApplyC (cl=3D0x300bf48) at ..= >/I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/= >src/TableMonitor.mg:393 >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620b50) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620b50) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #11 0x9713885d in _pthread_start () >> #12 0x971386e2 in thread_start () >> >> Thread 47 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x16243d0= >=2C mutex=3D0x1620ac0=2C m3timeout=3D1294537044.9675839) at ../src/thread/P= >THREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x1620af0=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000cd5e3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=3D0x300c140)= > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= >atsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620af0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620af0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 46 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4abd= >98=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= >25 >> #5 0x000d2b9a in DBTable_gcoms_aux_instrumentMonitor__DbNow (db=3D0x26602= >c4) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Users/mi= >ka/t/calarm/ratsql/src/TableMonitor.mg:456 >> #6 0x000d2dbf in DBTable_gcoms_aux_instrumentMonitor__CheckForNew (cl=3D0= >x30091c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Us= >ers/mika/t/calarm/ratsql/src/TableMonitor.mg:467 >> #7 0x000d2ac3 in DBTable_gcoms_aux_instrumentMonitor__Sync (cl=3D0x30091c= >8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Users/mik= >a/t/calarm/ratsql/src/TableMonitor.mg:445 >> #8 0x000d264a in DBTable_gcoms_aux_instrumentMonitor__ApplyC (cl=3D0x3009= >1c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Users/m= >ika/t/calarm/ratsql/src/TableMonitor.mg:393 >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2306710) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2306710) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #11 0x9713885d in _pthread_start () >> #12 0x971386e2 in thread_start () >> >> Thread 45 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x230b2d0= >=2C mutex=3D0x2306680=2C m3timeout=3D1294537044.960629) at ../src/thread/PT= >HREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x23066b0=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000d469b in DBTable_gcoms_aux_instrumentMonitor__CleanerApply (cl=3D= >0x30093c0) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /U= >sers/mika/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23066b0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23066b0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 44 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a15= >9c=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= >25 >> #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=3D0x26602c4) = >at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cal= >arm/ratsql/src/TableMonitor.mg:456 >> #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=3D0x320= >5b38) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika= >/t/calarm/ratsql/src/TableMonitor.mg:467 >> #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=3D0x3205b38) a= >t ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cala= >rm/ratsql/src/TableMonitor.mg:445 >> #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x3205b38)= > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= >larm/ratsql/src/TableMonitor.mg:393 >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x230b000) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x230b000) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #11 0x9713885d in _pthread_start () >> #12 0x971386e2 in thread_start () >> >> Thread 43 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x230afe0= >=2C mutex=3D0x230af20=2C m3timeout=3D1294537044.8138101) at ../src/thread/P= >THREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x230af80=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x32= >05d30) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= >a/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x230af80) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x230af80) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 42 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a15= >9c=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= >25 >> #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=3D0x26602c4) = >at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cal= >arm/ratsql/src/TableMonitor.mg:456 >> #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=3D0x320= >57b0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika= >/t/calarm/ratsql/src/TableMonitor.mg:467 >> #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=3D0x32057b0) a= >t ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cala= >rm/ratsql/src/TableMonitor.mg:445 >> #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x32057b0)= > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= >larm/ratsql/src/TableMonitor.mg:393 >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x230aca0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x230aca0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #11 0x9713885d in _pthread_start () >> #12 0x971386e2 in thread_start () >> >> Thread 41 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x2301860= >=2C mutex=3D0x230ab40=2C m3timeout=3D1294537044.8138311) at ../src/thread/P= >THREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x230aba0=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x32= >059a8) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= >a/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x230aba0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x230aba0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 40 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a6b= >9c=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= >25 >> #5 0x000bd587 in DBTable_gcoms_ordr_statusMonitor__DbNow (db=3D0x26602c4)= > at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mika/t/c= >alarm/ratsql/src/TableMonitor.mg:456 >> #6 0x000bd76e in DBTable_gcoms_ordr_statusMonitor__CheckForNew (cl=3D0x32= >05390) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mi= >ka/t/calarm/ratsql/src/TableMonitor.mg:467 >> #7 0x000bd4b0 in DBTable_gcoms_ordr_statusMonitor__Sync (cl=3D0x3205390) = >at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mika/t/ca= >larm/ratsql/src/TableMonitor.mg:445 >> #8 0x000bd037 in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=3D0x3205390= >) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mika/t/= >calarm/ratsql/src/TableMonitor.mg:393 >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1621f10) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1621f10) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #11 0x9713885d in _pthread_start () >> #12 0x971386e2 in thread_start () >> >> Thread 39 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x16242f0= >=2C mutex=3D0x1621ee0=2C m3timeout=3D1294537044.8137701) at ../src/thread/P= >THREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x1622280=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000bf010 in DBTable_gcoms_ordr_statusMonitor__CleanerApply (cl=3D0x3= >205588) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/m= >ika/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1622280) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1622280) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 38 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a31= >44=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= >25 >> #5 0x000adb3f in DBTable_gcoms_strategyMonitor__DbNow (db=3D0x26602c4) at= > ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/calarm/= >ratsql/src/TableMonitor.mg:456 >> #6 0x000add46 in DBTable_gcoms_strategyMonitor__CheckForNew (cl=3D0x2660b= >88) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/c= >alarm/ratsql/src/TableMonitor.mg:467 >> #7 0x000ada68 in DBTable_gcoms_strategyMonitor__Sync (cl=3D0x2660b88) at = >../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/calarm/r= >atsql/src/TableMonitor.mg:445 >> #8 0x000ad5ef in DBTable_gcoms_strategyMonitor__ApplyC (cl=3D0x2660b88) a= >t ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/calarm= >/ratsql/src/TableMonitor.mg:393 >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161b820) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161b820) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #11 0x9713885d in _pthread_start () >> #12 0x971386e2 in thread_start () >> >> Thread 37 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x2306160= >=2C mutex=3D0x2305f70=2C m3timeout=3D1294537044.6482379) at ../src/thread/P= >THREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x2306100=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000af60a in DBTable_gcoms_strategyMonitor__CleanerApply (cl=3D0x2660= >d78) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/= >calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2306100) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2306100) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 36 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a15= >9c=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= >25 >> #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=3D0x26602c4) = >at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cal= >arm/ratsql/src/TableMonitor.mg:456 >> #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=3D0x266= >08c0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika= >/t/calarm/ratsql/src/TableMonitor.mg:467 >> #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=3D0x26608c0) a= >t ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cala= >rm/ratsql/src/TableMonitor.mg:445 >> #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x26608c0)= > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= >larm/ratsql/src/TableMonitor.mg:393 >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2305e30) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2305e30) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #11 0x9713885d in _pthread_start () >> #12 0x971386e2 in thread_start () >> >> Thread 35 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x2305dd0= >=2C mutex=3D0x2305c40=2C m3timeout=3D1294537044.6481991) at ../src/thread/P= >THREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x2305d70=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x26= >60ab0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= >a/t/calarm/ratsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2305d70) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2305d70) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 34 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3b40) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= >.m3:1345 >> #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=3D32=2C dataAlignment= >=3D4=2C thread=3D0x1623e04) at ../src/runtime/common/RTAllocator.m3:363 >> #5 0x0038f2c7 in RTAllocator__GetTracedObj (def=3D0x5c87d4) at ../src/run= >time/common/RTAllocator.m3:224 >> #6 0x0038ed60 in RTHooks__AllocateTracedObj (defn=3D0x5c87d4) at ../src/r= >untime/common/RTAllocator.m3:122 >> #7 0x00260a50 in DatabaseUtils__FilterUnprintable (t=3D0x4aa228) at ../sr= >c/DatabaseUtils.m3:124 >> #8 0x0026b6ae in UnsafeDatabase__ExecM (t=3D0x2660178=2C query=3D0x4aa228= >=2C busyWait=3D0 '\0'=2C abortConnectionOnFail=3D1 '\001') at ../src/Unsafe= >Database.m3:217 >> #9 0x0026baa5 in UnsafeDatabase__TExecM (t=3D0x2660178=2C query=3D0x4aa22= >8=2C busyWait=3D0 '\0'=2C abortConnectionOnFail=3D1 '\001') at ../src/Unsaf= >eDatabase.m3:258 >> #10 0x002587f9 in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4aa= >228=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:= >126 >> #11 0x000cb8aa in DBTable_gcoms_fillMonitor__DbNow (db=3D0x26602c4) at ..= >/I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/= >src/TableMonitor.mg:456 >> #12 0x000cbbf5 in DBTable_gcoms_fillMonitor__CheckForNew (cl=3D0x26605f8)= > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= >atsql/src/TableMonitor.mg:467 >> #13 0x000cb7d3 in DBTable_gcoms_fillMonitor__Sync (cl=3D0x26605f8) at ../= >I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/s= >rc/TableMonitor.mg:445 >> #14 0x000cb35a in DBTable_gcoms_fillMonitor__ApplyC (cl=3D0x26605f8) at .= >./I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql= >/src/TableMonitor.mg:393 >> #15 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623dc0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #16 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623dc0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #17 0x9713885d in _pthread_start () >> #18 0x971386e2 in thread_start () >> >> Thread 33 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x1623da0= >=2C mutex=3D0x1623640=2C m3timeout=3D1294537044.6482589) at ../src/thread/P= >THREAD/ThreadPThreadC.c:431 >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x1623d40=2C n=3D1=2C aler= >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= >read.m3:567 >> #6 0x000cd5e3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=3D0x26607e8)= > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= >atsql/src/TableMonitor.mg:699 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623d40) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623d40) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 32 (process 67010): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D9=2C read=3D1=2C m3timeout=3D= >1) at ../src/thread/Common/ThreadInternal.c:57 >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x1623c00=2C fd=3D9=2C re= >ad=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001'= >) at ../src/thread/PTHREAD/ThreadPThread.m3:627 >> #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=3D9=2C read=3D1 '\001'= >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 >> #4 0x003344ff in TCP__GetBytesFD (t=3D0x267015c=2C arr=3D0x2690040=2C tim= >eout=3D-1) at ../src/POSIX/TCP.m3:326 >> #5 0x003365ce in ConnRW__RdSeek (rd=3D0x2690010=2C pos=3D0=2C dontBlock= >=3D0 '\0') at ../src/common/ConnRW.m3:69 >> #6 0x003424e3 in Rd__GetLine (rd=3D0x2690010) at ../src/rw/Rd.m3:426 >> #7 0x00256bb0 in UpdateMonitor__InApplyP (cl=3D0x269204c) at ../src/Updat= >eMonitor.m3:240 >> #8 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623c00) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #9 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623c00) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #10 0x9713885d in _pthread_start () >> #11 0x971386e2 in thread_start () >> >> Thread 31 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x1623470=2C j=3D0= >x1623ba0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x1623b40=2C m=3D0x2670220= >=2C c=3D0x267022c=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2670220=2C c=3D0x267022c) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002567b1 in UpdateMonitor__OutApplyP (p=3D0x267017c) at ../src/Updat= >eMonitor.m3:178 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623b40) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623b40) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 30 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23016c0=2C j=3D0= >x2305a80) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2305a20=2C m=3D0x2660378= >=2C c=3D0x26603ac=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2660378=2C c=3D0x26603ac) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x00259145 in DesynchronizedDB__PApply (p=3D0x26603bc) at ../src/Desyn= >chronizedDB.m3:216 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2305a20) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2305a20) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 29 (process 67010): >> #0 0x9716c1d6 in __wait4 () >> #1 0x9716c1c9 in waitpid$UNIX2003 () >> #2 0x003add58 in Uexec__waitpid (i=3D67040=2C j=3D0xb0e36b4c=2C k=3D0) at= > ../src/unix/Common/Uexec.c:67 >> #3 0x003aaa51 in SchedulerPosix__WaitProcess (pid=3D67040=2C status=3D0xb= >0e36b4c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 >> #4 0x0033ca19 in Process__Wait (p=3D0x2650590) at ../src/os/POSIX/Process= >PosixCommon.m3:275 >> #5 0x002ffdf6 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:18= >5 >> #6 0x003007c1 in ProcUtils__Apply (self=3D0x2640284) at ../src/ProcUtils.= >m3:274 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x16233b0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x16233b0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 28 (process 67010): >> #0 0x9719ea7e in poll$UNIX2003 () >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D7=2C read=3D1=2C m3timeout=3D= >1) at ../src/thread/Common/ThreadInternal.c:57 >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x1623300=2C fd=3D7=2C re= >ad=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001'= >) at ../src/thread/PTHREAD/ThreadPThread.m3:627 >> #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=3D7=2C read=3D1 '\001'= >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 >> #4 0x003344ff in TCP__GetBytesFD (t=3D0x26402c4=2C arr=3D0x2642358=2C tim= >eout=3D-1) at ../src/POSIX/TCP.m3:326 >> #5 0x003365ce in ConnRW__RdSeek (rd=3D0x2642328=2C pos=3D0=2C dontBlock= >=3D0 '\0') at ../src/common/ConnRW.m3:69 >> #6 0x0033f64d in Rd__DoSeek (rd=3D0x2642328) at ../src/rw/Rd.m3:54 >> #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=3D0x2642328) at ../src/rw/Rd.m= >3:43 >> #8 0x0033f32d in Rd__GetChar (rd=3D0x2642328) at ../src/rw/Rd.m3:34 >> #9 0x002b26e9 in ReadLine__ReadALine (t=3D0x264000c) at ../src/ReadLine.m= >3:151 >> #10 0x002b4a56 in ReadLine__ReadLine (t=3D0x264000c) at ../src/ReadLine.m= >3:411 >> #11 0x0022a383 in SchemeReadLine__GetCh (p=3D0x2644364) at ../src/SchemeR= >eadLine.m3:80 >> #12 0x0024e942 in SchemeInputPort__NextToken (t=3D0x2644364=2C wx=3D0x264= >43e8) at ../src/SchemeInputPort.m3:309 >> #13 0x0024e0bb in SchemeInputPort__Read (t=3D0x2644364) at ../src/SchemeI= >nputPort.m3:177 >> #14 0x0022abaa in SchemeReadLine__MainLoop (rl=3D0x264000c=2C scm=3D0x256= >b9e4) at ../src/SchemeReadLine.m3:146 >> #15 0x00006bb7 in Main__SCApply (c=3D0x263fed0) at ../src/Main.m3:92 >> #16 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623300) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #17 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623300) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #18 0x9713885d in _pthread_start () >> #19 0x971386e2 in thread_start () >> >> Thread 27 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x161bd50) at ../= >src/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x25400a4) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:119 >> #4 0x002c77db in SXLongReal__Update (v=3D0x2540010=2C newValue=3D12937197= >75.9374268=2C when=3D1293719775.9374378) at ../I386_DARWIN/SXLongReal.m3 = >=3D> ../src/SXType.mg:79 >> #5 0x002c7abe in SXLongReal__SetVar (v=3D0x2540010=2C newValue=3D12937197= >75.9374268=2C when=3D1293719775.9374378) at ../I386_DARWIN/SXLongReal.m3 = >=3D> ../src/SXType.mg:98 >> #6 0x002eaaf7 in SXTimer__Loop (cl=3D0x21e11cc) at ../src/SXTimer.m3:64 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161b610) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161b610) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 26 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23016a0=2C j=3D0= >x2301670) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2301610=2C m=3D0x2114828= >=2C c=3D0x2114858=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2114828=2C c=3D0x2114858) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x000974c8 in GCOMSOrderStatus__Apply (cl=3D0x2114868) at ../src/GCOMS= >OrderStatus.m3:166 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2301610) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2301610) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 25 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300540=2C j=3D0= >x2301580) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x23015b0=2C m=3D0x211476c= >=2C c=3D0x2114778=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x211476c=2C c=3D0x2114778) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x0009d268 in GCOMSBusyOrders__Apply (cl=3D0x2114788) at ../src/GCOMSB= >usyOrders.m3:63 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23015b0) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23015b0) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 24 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300d90=2C j=3D0= >x2300d60) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300d00=2C m=3D0x21d0044= >=2C c=3D0x21d0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x21d0044=2C c=3D0x21d0050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0bace84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0bace84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2111418) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2111548) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300d00) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300d00) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 23 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300ce0=2C j=3D0= >x2300cb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300c50=2C m=3D0x21c0044= >=2C c=3D0x21c0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x21c0044=2C c=3D0x21c0050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0b2ae84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0b2ae84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2111288) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x21113b8) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300c50) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300c50) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 22 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300c30=2C j=3D0= >x2300c00) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300ba0=2C m=3D0x21b0044= >=2C c=3D0x21b0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x21b0044=2C c=3D0x21b0050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0aa8e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0aa8e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110fd8) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2111108) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300ba0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300ba0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 21 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300b80=2C j=3D0= >x2300b50) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300af0=2C m=3D0x21a0044= >=2C c=3D0x21a0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x21a0044=2C c=3D0x21a0050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0a26e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0a26e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110e50) at ../src/SX.m3:151 >> #9 0x00163596 in CurrencySXProxy__Apply (cl=3D0x2110f78) at ../I386_DARWI= >N/CurrencySXProxy.m3 =3D> /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300af0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300af0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 20 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300a10=2C j=3D0= >x23009e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300980=2C m=3D0x2190044= >=2C c=3D0x2190050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2190044=2C c=3D0x2190050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb09a4e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb09a4e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110b48) at ../src/SX.m3:151 >> #9 0x002bf3d5 in BoolSXProxy__Apply (cl=3D0x2110c70) at ../I386_DARWIN/Bo= >olSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300980) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300980) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 19 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300960=2C j=3D0= >x2300930) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x23008d0=2C m=3D0x2180044= >=2C c=3D0x2180050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2180044=2C c=3D0x2180050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0922e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0922e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x21109b8) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2110ae8) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23008d0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23008d0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 18 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23008b0=2C j=3D0= >x2300880) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300820=2C m=3D0x2170044= >=2C c=3D0x2170050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2170044=2C c=3D0x2170050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb08a0e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb08a0e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110828) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2110958) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300820) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300820) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 17 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300800=2C j=3D0= >x23007d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300770=2C m=3D0x2160044= >=2C c=3D0x2160050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2160044=2C c=3D0x2160050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb081ee84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb081ee84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110698) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x21107c8) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300770) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300770) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 16 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300750=2C j=3D0= >x2300720) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x23006c0=2C m=3D0x2150044= >=2C c=3D0x2150050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2150044=2C c=3D0x2150050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb079ce84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb079ce84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110508) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2110638) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23006c0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23006c0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 15 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23006a0=2C j=3D0= >x2300670) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300610=2C m=3D0x2140044= >=2C c=3D0x2140050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2140044=2C c=3D0x2140050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb071ae84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb071ae84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110378) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x21104a8) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300610) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300610) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 14 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161af10=2C j=3D0= >x161aee0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161ae80=2C m=3D0x2130044= >=2C c=3D0x2130050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2130044=2C c=3D0x2130050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0698e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0698e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x21101e8) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2110318) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161ae80) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161ae80) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 13 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23005f0=2C j=3D0= >x23005c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300560=2C m=3D0x2120044= >=2C c=3D0x2120050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2120044=2C c=3D0x2120050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0616e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0616e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20c0c40) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x21100ac) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300560) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300560) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 12 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23004c0=2C j=3D0= >x2300490) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300430=2C m=3D0x2080044= >=2C c=3D0x2080050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2080044=2C c=3D0x2080050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0594e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0594e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20c0ab0) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x20c0be0) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300430) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300430) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 11 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300410=2C j=3D0= >x23003e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300380=2C m=3D0x20f0044= >=2C c=3D0x20f0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x20f0044=2C c=3D0x20f0050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0512e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0512e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20c0920) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x20c0a50) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300380) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300380) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 10 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161aad0=2C j=3D0= >x161aaa0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161aa40=2C m=3D0x20b0044= >=2C c=3D0x20b0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x20b0044=2C c=3D0x20b0050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0490e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0490e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020e88) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020fb8) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161aa40) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161aa40) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 9 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23002a0=2C j=3D0= >x2300270) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300210=2C m=3D0x2090044= >=2C c=3D0x2090050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2090044=2C c=3D0x2090050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb040ee84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb040ee84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020cf8) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020e28) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300210) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300210) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 8 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a9c0=2C j=3D0= >x161a990) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a930=2C m=3D0x20e0034= >=2C c=3D0x20e0040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x20e0034=2C c=3D0x20e0040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb038ce84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb038ce84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020a48) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020b78) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a930) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a930) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 7 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a910=2C j=3D0= >x161a8e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a880=2C m=3D0x20a0034= >=2C c=3D0x20a0040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x20a0034=2C c=3D0x20a0040) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb030ae84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb030ae84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20208c0) at ../src/SX.m3:151 >> #9 0x00163596 in CurrencySXProxy__Apply (cl=3D0x20209e8) at ../I386_DARWI= >N/CurrencySXProxy.m3 =3D> /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a880) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a880) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 6 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a860=2C j=3D0= >x161a830) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a7d0=2C m=3D0x2050044= >=2C c=3D0x2050050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2050044=2C c=3D0x2050050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0288e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0288e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020658) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020788) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a7d0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a7d0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 5 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a7b0=2C j=3D0= >x161a780) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a720=2C m=3D0x2040044= >=2C c=3D0x2040050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2040044=2C c=3D0x2040050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0206e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0206e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20204c8) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x20205f8) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a720) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a720) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 4 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a290=2C j=3D0= >x161a6f0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a690=2C m=3D0x2030044= >=2C c=3D0x2030050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x2030044=2C c=3D0x2030050) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0184e84=2C except=3D0x0=2C touc= >hed=3D0x0) at ../src/SX.m3:239 >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0184e84=2C touched=3D0x0) at ../= >src/SX.m3:149 >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020338) at ../src/SX.m3:151 >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020468) at ../I386_DARWI= >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a690) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a690) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #12 0x9713885d in _pthread_start () >> #13 0x971386e2 in thread_start () >> >> Thread 3 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x1619840=2C j=3D0= >x161a600) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a230=2C m=3D0x202008c= >=2C c=3D0x202007c=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003a853e in Thread__Wait (m=3D0x202008c=2C c=3D0x202007c) at ../src/= >thread/PTHREAD/ThreadPThread.m3:204 >> #6 0x002ba948 in VarProxyDefs__NotifyApply (cl=3D0x2020098) at ../src/Var= >ProxyDefs.m3:55 >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a230) at ../src/thre= >ad/PTHREAD/ThreadPThread.m3:450 >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a230) at ../src/= >thread/PTHREAD/ThreadPThread.m3:422 >> #9 0x9713885d in _pthread_start () >> #10 0x971386e2 in thread_start () >> >> Thread 2 (process 67010): >> #0 0x9710b142 in semaphore_wait_signal_trap () >> #1 0x97110c46 in pthread_mutex_lock () >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= >rc/thread/PTHREAD/ThreadPThreadC.c:463 >> #3 0x003a7ebe in ThreadPThread__InitMutex (m=3D0x20100ac=2C root=3D0x2010= >0a8=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >> #4 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x20100a8) at ../src/threa= >d/PTHREAD/ThreadPThread.m3:117 >> #5 0x0033f30b in Rd__GetChar (rd=3D0x20100a8) at ../src/rw/Rd.m3:33 >> #6 0x0034dffd in Lex__Skip (rd=3D0x20100a8=2C cs=3D0x548018) at ../src/fm= >tlex/Lex.m3:46 >> #7 0x003503c3 in Lex__ReadReal (rd=3D0x20100a8=2C sign=3D0xb00809e3=2C di= >gits=3D0xb00809fc=2C digCnt=3D0xb00809e8=2C exp=3D0xb00809ec) at ../src/fmt= >lex/Lex.m3:569 >> #8 0x00350ef5 in Lex__LongReal (rd=3D0x20100a8) at ../src/fmtlex/Lex.m3:6= >62 >> #9 0x003518f1 in Scan__LongReal (txt=3D0x201007c) at ../src/fmtlex/Scan.m= >3:77 >> #10 0x0030ef75 in XTime__ClApply (cl=3D0x2004624) at ../src/XTime.m3:185 >> #11 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a0b0) at ../src/thr= >ead/PTHREAD/ThreadPThread.m3:450 >> #12 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a0b0) at ../src= >/thread/PTHREAD/ThreadPThread.m3:422 >> #13 0x9713885d in _pthread_start () >> #14 0x971386e2 in thread_start () >> >> Thread 1 (process 67010): >> #0 0x971390a6 in __semwait_signal () >> #1 0x97138d62 in _pthread_cond_wait () >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x16076f0=2C j=3D0= >x16076c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x1607660=2C m=3D0x2000084= >=2C c=3D0x30eb8bc=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= >read.m3:182 >> #5 0x003aa1f3 in ThreadPThread__XJoin (self=3D0x1607660=2C t=3D0x30eb8a0= >=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:513 >> #6 0x003aa2f5 in Thread__Join (t=3D0x30eb8a0) at ../src/thread/PTHREAD/Th= >readPThread.m3:525 >> #7 0x002ff2b8 in ProcUtils__Wait (c=3D0x30eb800) at ../src/ProcUtils.m3:3= >18 >> #8 0x00234ebd in SchemeCommandRunner__RealRunTimeoutCommandApply (proc=3D= >0x21e0b44=2C interp=3D0x3241ec4=2C args=3D0x30e775c) at ../src/SchemeComman= >dRunner.m3:164 >> #9 0x00234b4f in SchemeCommandRunner__RunTimeoutCommandApply (proc=3D0x21= >e0b44=2C interp=3D0x3241ec4=2C args=3D0x30e775c) at ../src/SchemeCommandRun= >ner.m3:129 >> #10 0x00234217 in SchemeCommandRunner__RunCommandApply (proc=3D0x21e0b44= >=2C interp=3D0x3241ec4=2C args=3D0x30e7744) at ../src/SchemeCommandRunner.m= >3:23 >> #11 0x0024b81b in SchemePrimitive__EDApply (ed=3D0x21e01c0=2C t=3D0x32458= >44=2C interp=3D0x3241ec4=2C args=3D0x30e7744) at ../src/SchemePrimitive.m3:= >207 >> #12 0x00246509 in SchemePrimitive__Prims (t=3D0x3245844=2C interp=3D0x324= >1ec4=2C args=3D0x30e7744=2C x=3D0x30e5cfc=2C y=3D0x30e7730=2C free=3D0xbfff= >ea1f) at ../src/SchemePrimitive.m3:580 >> #13 0x0024b1cb in SchemePrimitive__Apply2 (t=3D0x3245844=2C interp=3D0x32= >41ec4=2C a1=3D0x30e5cfc=2C a2=3D0x30e7730) at ../src/SchemePrimitive.m3:549 >> #14 0x0023c16f in Scheme__EvalInternal (t=3D0x3241ec4=2C x=3D0x30e5c5c=2C= > env=3D0x30e76b4) at ../src/Scheme.m3:585 >> #15 0x0023bedf in Scheme__EvalInternal (t=3D0x3241ec4=2C x=3D0x30e5bac=2C= > env=3D0x30e76b4) at ../src/Scheme.m3:582 >> #16 0x0023c35e in Scheme__Eval (t=3D0x3241ec4=2C x=3D0x30e6a6c=2C envP=3D= >0x3241f0c) at ../src/Scheme.m3:353 >> #17 0x00239bcf in Scheme__EvalInGlobalEnv (t=3D0x3241ec4=2C x=3D0x30e6a6c= >) at ../src/Scheme.m3:603 >> #18 0x0002972b in SchemeCalculator__Calc (t=3D0x3241eb4=2C arr=3D0xbfffee= >3c) at ../src/SchemeCalculator.m3:61 >> #19 0x0000c8af in EuroDriver__Loop (t=3D0x3205a80) at ../src/EuroDriver.m= >3:289 >> #20 0x00008781 in Main_M3 (mode=3D1) at ../src/Main.m3:268 >> #21 0x0039d83d in RTLinker__RunMainBody (m=3D0x55e420) at ../src/runtime/= >common/RTLinker.m3:406 >> #22 0x0039cc99 in RTLinker__AddUnitI (m=3D0x55e420) at ../src/runtime/com= >mon/RTLinker.m3:113 >> #23 0x0039cd1a in RTLinker__AddUnit (b=3D0x6be3) at ../src/runtime/common= >/RTLinker.m3:122 >> #24 0x0000528c in main (argc=3D19=2C argv=3D0xbffff330=2C envp=3D0xbffff3= >80) at _m3main.c:16 > = From jay.krell at cornell.edu Sun Jan 9 02:52:35 2011 From: jay.krell at cornell.edu (Jay K) Date: Sun, 9 Jan 2011 01:52:35 +0000 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: <20110109015040.F196E1A205B@async.async.caltech.edu> References: <0A37C595-C896-4B66-9EDF-61BB30645321@cs.purdue.edu> , , <20110109014355.0A01F1A205B@async.async.caltech.edu>, , <20110109015040.F196E1A205B@async.async.caltech.edu> Message-ID: -march=i686 vs. i586 I assume helped. The int32 vs. int64 problems should remain. ?- Jay ---------------------------------------- > To: jay.krell at cornell.edu > Date: Sat, 8 Jan 2011 17:50:40 -0800 > From: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > On the plus side, the compiler bug you thought you had fixed has indeed disappeared. > > Mika > > Jay K writes: > > > >Tony raised legit issue w/ my fix. I will try another very soon (tonight). > > > > > >Index: ThreadPThread.m3 > >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= > >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= > >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > >RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3= > >=2Cv > >retrieving revision 1.247 > >diff -u -r1.247 ThreadPThread.m3 > >--- ThreadPThread.m3=A0=A0=A0 9 Jan 2011 00:36:07 -0000=A0=A0=A0 1.247 > >+++ ThreadPThread.m3=A0=A0=A0 9 Jan 2011 01:14:16 -0000 > >@@ -1283=2C10 +1283=2C10 @@ > >=A0=A0=A0=A0=A0=A0 cond: Condition=3B > >=A0=A0 BEGIN > >=A0=A0=A0=A0 Acquire(joinMu)=3B > >-=A0=A0=A0 LockHeap()=3B > >=A0=A0=A0=A0 FOR i :=3D FIRST(locks) TO LAST(locks) DO > >=A0=A0=A0=A0=A0=A0 PThreadLockMutex(locks[i]=2C ThisLine()=2C i)=3B > >=A0=A0=A0=A0 END=3B > >+=A0=A0=A0 LockHeap()=3B > >=A0=A0=A0=A0 (* Walk activations and lock all threads=2C conditions. > >=A0=A0=A0=A0=A0 * NOTE: We have initMu=2C activeMu=2C so slots > >=A0=A0=A0=A0=A0 * won't change=2C conditions and mutexes > > > > > > > >=A0- Jay > > > >---------------------------------------- > >> To: hosking at cs.purdue.edu > >> Date: Sat=2C 8 Jan 2011 17:43:55 -0800 > >> From: mika at async.caltech.edu > >> CC: m3devel at elegosoft.com > >> Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > >> > >> > >> Well I spent the whole day figuring out how to update the compiler.. > >> finally got everything working and I think this is with the very latest > >> version (Jay just committed something two hours ago and it's in here). > >> > >> Or... wait.. did he go back a version and re-introduce the deadlock? > >> That would explain why it's behaving the same way as it was before... > >> > >> Mika > >> > >> > >> > >> Thread 68 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613c20) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=3D0x613c20=2C lin= > >e=3D1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > >> #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD= > >/ThreadPThread.m3:1279 > >> #5 0x97137217 in _cthread_fork_prepare () > >> #6 0x97137155 in fork () > >> #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=3D0x242c2ac=2C = > >params=3D0x242c3ac=2C env=3D0x0=2C wd=3D0x57bf44=2C stdin=3D0x0=2C stdout= > >=3D0x239f9a4=2C stderr=3D0x2433508) at ../src/os/POSIX/ProcessPosixCommon.m= > >3:75 > >> #8 0x00353de5 in Process__Create (cmd=3D0x242c2ac=2C params=3D0x242c3ac= > >=2C env=3D0x0=2C wd=3D0x57bf44=2C stdin=3D0x0=2C stdout=3D0x239f9a4=2C stde= > >rr=3D0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > >> #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:18= > >0 > >> #10 0x00316d6e in ProcUtils__Apply (self=3D0x242f160) at ../src/ProcUtils= > >.m3:274 > >> #11 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2009600) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2009600) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #13 0x9713885d in _pthread_start () > >> #14 0x971386e2 in thread_start () > >> > >> Thread 67 (process 32362): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D13=2C read=3D1=2C m3timeout= > >=3D-1) at ../src/thread/Common/ThreadInternal.c:31 > >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x2009550=2C fd=3D13=2C r= > >ead=3D1 '\001'=2C interval=3D-1=2C alertable=3D0 '\0') at ../src/thread/PTH= > >READ/ThreadPThread.m3:627 > >> #3 0x003c19a4 in SchedulerPosix__IOWait (fd=3D13=2C read=3D1 '\001'=2C ti= > >meoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 > >> #4 0x0034f862 in FilePosix__IntermittentRead (h=3D0x24334f8=2C b=3D0xb1df= > >4cd0=2C mayBlock=3D1 '\001') at ../src/os/POSIX/FilePosix.m3:220 > >> #5 0x0035e935 in FileRd__Seek (rd=3D0x2433518=2C pos=3D0=2C dontBlock=3D0= > > '\0') at ../src/rw/FileRd.m3:83 > >> #6 0x00356338 in Rd__DoSeek (rd=3D0x2433518) at ../src/rw/Rd.m3:54 > >> #7 0x003560c1 in UnsafeRd__FastGetChar (rd=3D0x2433518) at ../src/rw/Rd.m= > >3:43 > >> #8 0x00356018 in Rd__GetChar (rd=3D0x2433518) at ../src/rw/Rd.m3:34 > >> #9 0x00316fbc in ProcUtils__SSApply (self=3D0x242f128) at ../src/ProcUtil= > >s.m3:54 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2009550) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2009550) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 66 (process 32362): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D11=2C read=3D1=2C m3timeout= > >=3D-1) at ../src/thread/Common/ThreadInternal.c:31 > >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x20094a0=2C fd=3D11=2C r= > >ead=3D1 '\001'=2C interval=3D-1=2C alertable=3D0 '\0') at ../src/thread/PTH= > >READ/ThreadPThread.m3:627 > >> #3 0x003c19a4 in SchedulerPosix__IOWait (fd=3D11=2C read=3D1 '\001'=2C ti= > >meoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 > >> #4 0x0034f862 in FilePosix__IntermittentRead (h=3D0x239f994=2C b=3D0xb1d7= > >2cd0=2C mayBlock=3D1 '\001') at ../src/os/POSIX/FilePosix.m3:220 > >> #5 0x0035e935 in FileRd__Seek (rd=3D0x239f9b4=2C pos=3D0=2C dontBlock=3D0= > > '\0') at ../src/rw/FileRd.m3:83 > >> #6 0x00356338 in Rd__DoSeek (rd=3D0x239f9b4) at ../src/rw/Rd.m3:54 > >> #7 0x003560c1 in UnsafeRd__FastGetChar (rd=3D0x239f9b4) at ../src/rw/Rd.m= > >3:43 > >> #8 0x00356018 in Rd__GetChar (rd=3D0x239f9b4) at ../src/rw/Rd.m3:34 > >> #9 0x00316fbc in ProcUtils__SSApply (self=3D0x242f0f0) at ../src/ProcUtil= > >s.m3:54 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20094a0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20094a0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 65 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613c20) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003beefd in ThreadPThread__InitMutex (m=3D0x242a6f8=2C root=3D0x242a= > >6f4=2C Clean=3D0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >> #4 0x003befce in ThreadPThread__LockMutex (m=3D0x242a6f4) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #5 0x00355ff6 in Rd__GetChar (rd=3D0x242a6f4) at ../src/rw/Rd.m3:33 > >> #6 0x00364b5d in Lex__Skip (rd=3D0x242a6f4=2C cs=3D0x587ff8) at ../src/fm= > >tlex/Lex.m3:46 > >> #7 0x00366e53 in Lex__ReadReal (rd=3D0x242a6f4=2C sign=3D0xb1cf0603=2C di= > >gits=3D0xb1cf061c=2C digCnt=3D0xb1cf0608=2C exp=3D0xb1cf060c) at ../src/fmt= > >lex/Lex.m3:569 > >> #8 0x003678f0 in Lex__LongReal (rd=3D0x242a6f4) at ../src/fmtlex/Lex.m3:6= > >62 > >> #9 0x0036834e in Scan__LongReal (txt=3D0x1753494) at ../src/fmtlex/Scan.m= > >3:77 > >> #10 0x002603f5 in SchemeInputPort__NextToken (t=3D0x2380de4=2C wx=3D0x242= > >a4a8) at ../src/SchemeInputPort.m3:439 > >> #11 0x00260756 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x242= > >a4a8) at ../src/SchemeInputPort.m3:240 > >> #12 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= > >nputPort.m3:179 > >> #13 0x0025edad in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= > >nputPort.m3:191 > >> #14 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x242= > >a40c) at ../src/SchemeInputPort.m3:240 > >> #15 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= > >nputPort.m3:179 > >> #16 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x239= > >ddc4) at ../src/SchemeInputPort.m3:240 > >> #17 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= > >nputPort.m3:179 > >> #18 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x239= > >dc4c) at ../src/SchemeInputPort.m3:240 > >> #19 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= > >nputPort.m3:179 > >> #20 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x239= > >da8c) at ../src/SchemeInputPort.m3:240 > >> #21 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= > >nputPort.m3:179 > >> #22 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x2380de4=2C wx=3D0x239= > >d9b4) at ../src/SchemeInputPort.m3:240 > >> #23 0x0025ebdd in SchemeInputPort__Read (t=3D0x2380de4) at ../src/SchemeI= > >nputPort.m3:179 > >> #24 0x0024db82 in Scheme__LoadPort (t=3D0x237018c=2C in=3D0x2380de4) at .= > >./src/Scheme.m3:317 > >> #25 0x0024ae56 in Scheme__LoadRd (t=3D0x237018c=2C rd=3D0x2379cfc=2C fn= > >=3D0x0) at ../src/Scheme.m3:174 > >> #26 0x0024e659 in Scheme__ReadInitialFiles (t=3D0x237018c=2C files=3D0x4a= > >fc8c) at ../src/Scheme.m3:134 > >> #27 0x0024ea46 in Scheme__Init2 (t=3D0x237018c=2C input=3D0x15ac4ec=2C ou= > >tput=3D0x15ac514=2C files=3D0x4afc8c=2C env=3D0x0) at ../src/Scheme.m3:127 > >> #28 0x0024a89a in Scheme__Init (t=3D0x237018c=2C files=3D0x4afc8c=2C env= > >=3D0x0) at ../src/Scheme.m3:102 > >> #29 0x0002abbc in SchemeCalculator__Init (t=3D0x237017c=2C code=3D0x22554= > >1c) at ../src/SchemeCalculator.m3:28 > >> #30 0x0000e373 in EuroDriver__OApply (cl=3D0x2367b70) at ../src/EuroDrive= > >r.m3:865 > >> #31 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2008b80) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #32 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2008b80) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #33 0x9713885d in _pthread_start () > >> #34 0x971386e2 in thread_start () > >> > >> Thread 64 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613ca0) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= > >.m3:1336 > >> #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=3D0x2430f38=2C p=3D0x= > >3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > >> #5 0x003bef65 in ThreadPThread__InitMutex (m=3D0x2430f3c=2C root=3D0x2430= > >f38=2C Clean=3D0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > >> #6 0x003befce in ThreadPThread__LockMutex (m=3D0x2430f38) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #7 0x00355ff6 in Rd__GetChar (rd=3D0x2430f38) at ../src/rw/Rd.m3:33 > >> #8 0x00364b5d in Lex__Skip (rd=3D0x2430f38=2C cs=3D0x587ff8) at ../src/fm= > >tlex/Lex.m3:46 > >> #9 0x00366e53 in Lex__ReadReal (rd=3D0x2430f38=2C sign=3D0xb1c6e7c3=2C di= > >gits=3D0xb1c6e7dc=2C digCnt=3D0xb1c6e7c8=2C exp=3D0xb1c6e7cc) at ../src/fmt= > >lex/Lex.m3:569 > >> #10 0x003678f0 in Lex__LongReal (rd=3D0x2430f38) at ../src/fmtlex/Lex.m3:= > >662 > >> #11 0x0036834e in Scan__LongReal (txt=3D0x1753494) at ../src/fmtlex/Scan.= > >m3:77 > >> #12 0x002603f5 in SchemeInputPort__NextToken (t=3D0x237ede4=2C wx=3D0x243= > >0e44) at ../src/SchemeInputPort.m3:439 > >> #13 0x00260756 in SchemeInputPort__ReadTail2 (t=3D0x237ede4=2C wx=3D0x243= > >0e44) at ../src/SchemeInputPort.m3:240 > >> #14 0x0025ebdd in SchemeInputPort__Read (t=3D0x237ede4) at ../src/SchemeI= > >nputPort.m3:179 > >> #15 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x237ede4=2C wx=3D0x243= > >0db0) at ../src/SchemeInputPort.m3:240 > >> #16 0x0025ebdd in SchemeInputPort__Read (t=3D0x237ede4) at ../src/SchemeI= > >nputPort.m3:179 > >> #17 0x00260738 in SchemeInputPort__ReadTail2 (t=3D0x237ede4=2C wx=3D0x243= > >0cd8) at ../src/SchemeInputPort.m3:240 > >> #18 0x0025ebdd in SchemeInputPort__Read (t=3D0x237ede4) at ../src/SchemeI= > >nputPort.m3:179 > >> #19 0x0024db82 in Scheme__LoadPort (t=3D0x236e18c=2C in=3D0x237ede4) at .= > >./src/Scheme.m3:317 > >> #20 0x0024ae56 in Scheme__LoadRd (t=3D0x236e18c=2C rd=3D0x2377cfc=2C fn= > >=3D0x0) at ../src/Scheme.m3:174 > >> #21 0x0024e659 in Scheme__ReadInitialFiles (t=3D0x236e18c=2C files=3D0x4a= > >fc8c) at ../src/Scheme.m3:134 > >> #22 0x0024ea46 in Scheme__Init2 (t=3D0x236e18c=2C input=3D0x15ac4ec=2C ou= > >tput=3D0x15ac514=2C files=3D0x4afc8c=2C env=3D0x0) at ../src/Scheme.m3:127 > >> #23 0x0024a89a in Scheme__Init (t=3D0x236e18c=2C files=3D0x4afc8c=2C env= > >=3D0x0) at ../src/Scheme.m3:102 > >> #24 0x0002abbc in SchemeCalculator__Init (t=3D0x236e17c=2C code=3D0x22554= > >1c) at ../src/SchemeCalculator.m3:28 > >> #25 0x0000e373 in EuroDriver__OApply (cl=3D0x2367ad8) at ../src/EuroDrive= > >r.m3:865 > >> #26 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2008af0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #27 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2008af0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #28 0x9713885d in _pthread_start () > >> #29 0x971386e2 in thread_start () > >> > >> Thread 60 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x2006bc0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003befff in ThreadPThread__LockMutex (m=3D0x22cc724) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x003bed47 in Thread__Acquire (m=3D0x22cc724) at ../src/thread/PTHREAD= > >/ThreadPThread.m3:81 > >> #5 0x002d9fb9 in SX__Lock (arr=3D0x235a9a4) at ../src/SX.m3:318 > >> #6 0x002d983f in SXSelect__WaitE (on=3D0xb1beccd8=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:241 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb1beccd8=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDrive= > >r.m3:832 > >> #9 0x0000e830 in EuroDriver__OApply (cl=3D0x22aad10) at ../src/EuroDriver= > >.m3:892 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2007080) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2007080) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 59 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613c20) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003beefd in ThreadPThread__InitMutex (m=3D0x2354a24=2C root=3D0x2354= > >a20=2C Clean=3D0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >> #4 0x003befce in ThreadPThread__LockMutex (m=3D0x2354a20) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #5 0x003bed47 in Thread__Acquire (m=3D0x2354a20) at ../src/thread/PTHREAD= > >/ThreadPThread.m3:81 > >> #6 0x00359e60 in RdClass__Lock (rd=3D0x2354a20) at ../src/rw/Rd.m3:521 > >> #7 0x0025e4c4 in SchemeInputPort__Lock (t=3D0x2354b08) at ../src/SchemeIn= > >putPort.m3:72 > >> #8 0x0025f3dc in SchemeInputPort__NextToken (t=3D0x2354b08=2C wx=3D0x2354= > >b28) at ../src/SchemeInputPort.m3:299 > >> #9 0x0025eb94 in SchemeInputPort__Read (t=3D0x2354b08) at ../src/SchemeIn= > >putPort.m3:177 > >> #10 0x0024aea9 in Scheme__LoadEval (t=3D0x224418c=2C rd=3D0x2354a20) at .= > >./src/Scheme.m3:291 > >> #11 0x0024af22 in Scheme__LoadEvalText (t=3D0x224418c=2C txt=3D0x225541c)= > > at ../src/Scheme.m3:306 > >> #12 0x0002ad28 in SchemeCalculator__Calc (t=3D0x224417c=2C arr=3D0xb1b6ab= > >04) at ../src/SchemeCalculator.m3:47 > >> #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/Eur= > >oDriver.m3:564 > >> #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/E= > >uroDriver.m3:507 > >> #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriv= > >er.m3:795 > >> #16 0x0000e830 in EuroDriver__OApply (cl=3D0x22aac78) at ../src/EuroDrive= > >r.m3:892 > >> #17 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2007020) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #18 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2007020) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #19 0x9713885d in _pthread_start () > >> #20 0x971386e2 in thread_start () > >> > >> Thread 54 (process 32362): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D10=2C read=3D1=2C m3timeout= > >=3D1) at ../src/thread/Common/ThreadInternal.c:31 > >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x161dfc0=2C fd=3D10=2C r= > >ead=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001= > >') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > >> #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=3D10=2C read=3D1 '\001'= > >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > >> #4 0x00346693 in TCP__GetBytesFD (t=3D0x22211d8=2C arr=3D0x22f400c=2C tim= > >eout=3D-1) at ../src/POSIX/TCP.m3:326 > >> #5 0x00348786 in ConnRW__RdSeek (rd=3D0x2221260=2C pos=3D267=2C dontBlock= > >=3D0 '\0') at ../src/common/ConnRW.m3:69 > >> #6 0x003591ce in Rd__GetLine (rd=3D0x2221260) at ../src/rw/Rd.m3:426 > >> #7 0x002b2826 in TWSTester__RApply (cl=3D0x2221290) at ../src/TWSTester.m= > >3:382 > >> #8 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161dfc0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #9 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161dfc0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #10 0x9713885d in _pthread_start () > >> #11 0x971386e2 in thread_start () > >> > >> Thread 53 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161deb0= > >=2C mutex=3D0x161e1c0=2C m3timeout=3D1294411605.506855) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161e160=2C n=3D0.5=2C al= > >ertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D0.5) at ../src/thread/PTHREAD/ThreadP= > >Thread.m3:567 > >> #6 0x00297efc in PMTWS__TSCApply (cl=3D0x2221088) at ../src/PMTWS.m3:229 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161e160) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161e160) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 52 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613ca0) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= > >.m3:1336 > >> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=3D24=2C dataAlignment= > >=3D4=2C thread=3D0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > >> #5 0x003a5a99 in RTAllocator__GetTracedObj (def=3D0x616d54) at ../src/run= > >time/common/RTAllocator.m3:224 > >> #6 0x003a550f in RTHooks__AllocateTracedObj (defn=3D0x616d54) at ../src/r= > >untime/common/RTAllocator.m3:122 > >> #7 0x003d3c0e in RTHooks__Concat (t=3D0x23669ec=2C u=3D0x56c460) at ../sr= > >c/text/TextCat.m3:28 > >> #8 0x002b0dc2 in TWSTester__MakeString (contract=3D0xb19e4dc0) at ../src/= > >TWSTester.m3:92 > >> #9 0x002b11ac in TWSTester__ReqMktData (t=3D0x2220800=2C tickerId=3D3=2C = > >contract=3D0xb19e4dc0) at ../src/TWSTester.m3:136 > >> #10 0x002bccaf in TWSTestBridge__MreqMktData (t=3D0x2220800=2C tickerId= > >=3D3=2C contract=3D0xb19e4dc0) at ../src/TWSTestBridge.m3 =3D> ../src/TWSBr= > >idgeG.mg:580 > >> #11 0x002978ec in PMTWS__TSCApply (cl=3D0x2221044) at ../src/PMTWS.m3:210 > >> #12 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161e100) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161e100) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #14 0x9713885d in _pthread_start () > >> #15 0x971386e2 in thread_start () > >> > >> Thread 51 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613ca0) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= > >.m3:1336 > >> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=3D136=2C dataAlignmen= > >t=3D8=2C thread=3D0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > >> #5 0x003a581e in RTAllocator__GetTracedRef (def=3D0x5b1280) at ../src/run= > >time/common/RTAllocator.m3:202 > >> #6 0x003a54da in RTHooks__AllocateTracedRef (defn=3D0x5b1280) at ../src/r= > >untime/common/RTAllocator.m3:115 > >> #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=3D0x235f464=2C = > >key=3D0xb1962d7c=2C val=3D0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_in= > >strumentTbl.m3 =3D> /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > >> #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=3D0x228c080= > >=2C res=3D0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 = > >=3D> /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > >> #9 0x0008c6de in GCOMSPortfolio__Lock (t=3D0x2255cd8) at ../src/GCOMSPort= > >folio.m3:94 > >> #10 0x00029faa in SXPortfolio__Scan (t=3D0x229a888) at ../src/SXPortfolio= > >.m3:47 > >> #11 0x0002a998 in SXPortfolio__Apply (cl=3D0x222057c) at ../src/SXPortfol= > >io.m3:113 > >> #12 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x1626560) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x1626560) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #14 0x9713885d in _pthread_start () > >> #15 0x971386e2 in thread_start () > >> > >> Thread 50 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2005ac0= > >=2C mutex=3D0x20059b0=2C m3timeout=3D1294411629.006319) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2005a60=2C n=3D50=2C ale= > >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= > >eadPThread.m3:573 > >> #6 0x000e162d in DBTable_gcoms_aux_ordrMonitor__ApplyC (cl=3D0x229a528) a= > >t ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/calarm= > >/ratsql/src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2005a60) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2005a60) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 49 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2005a40= > >=2C mutex=3D0x20058e0=2C m3timeout=3D1294411606.0014169) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x20059e0=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000e357e in DBTable_gcoms_aux_ordrMonitor__CleanerApply (cl=3D0x229a= > >720) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/= > >calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20059e0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20059e0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 48 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161de60= > >=2C mutex=3D0x161aa50=2C m3timeout=3D1294411629.003248) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161aae0=2C n=3D50=2C ale= > >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= > >eadPThread.m3:573 > >> #6 0x000d2f00 in DBTable_gcoms_fillMonitor__ApplyC (cl=3D0x229a258) at ..= > >/I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/= > >src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161aae0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161aae0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 47 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161ac10= > >=2C mutex=3D0x1625c10=2C m3timeout=3D1294411605.9982891) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161aa80=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000d50b3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=3D0x229a450)= > > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= > >atsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161aa80) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161aa80) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 46 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2004440= > >=2C mutex=3D0x2004410=2C m3timeout=3D1294411678.997467) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x20043b0=2C n=3D100=2C al= > >ertable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D100) at ../src/thread/PTHREAD/Th= > >readPThread.m3:573 > >> #6 0x000da48e in DBTable_gcoms_aux_instrumentMonitor__ApplyC (cl=3D0x1711= > >268) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Users/m= > >ika/t/calarm/ratsql/src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20043b0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20043b0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 45 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x20038d0= > >=2C mutex=3D0x2004380=2C m3timeout=3D1294411605.9944479) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2004320=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000dc415 in DBTable_gcoms_aux_instrumentMonitor__CleanerApply (cl=3D= > >0x1711460) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /U= > >sers/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2004320) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2004320) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 44 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x20071d0= > >=2C mutex=3D0x20070e0=2C m3timeout=3D1294411678.9916439) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2007170=2C n=3D100=2C al= > >ertable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D100) at ../src/thread/PTHREAD/Th= > >readPThread.m3:573 > >> #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x224daf0)= > > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= > >larm/ratsql/src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2007170) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2007170) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 43 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x20046e0= > >=2C mutex=3D0x2006f50=2C m3timeout=3D1294411605.83337) at ../src/thread/PTH= > >READ/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2007110=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x22= > >4dce8) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= > >a/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2007110) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2007110) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 42 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161d830= > >=2C mutex=3D0x161d780=2C m3timeout=3D1294411678.981461) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161dae0=2C n=3D100=2C al= > >ertable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D100) at ../src/thread/PTHREAD/Th= > >readPThread.m3:573 > >> #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x224d768)= > > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= > >larm/ratsql/src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161dae0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161dae0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 41 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161d7e0= > >=2C mutex=3D0x161da50=2C m3timeout=3D1294411605.8302381) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161da80=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x22= > >4d960) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= > >a/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161da80) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161da80) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 40 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x161d940= > >=2C mutex=3D0x161d910=2C m3timeout=3D1294411678.8294799) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161d8b0=2C n=3D100=2C al= > >ertable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D100) at ../src/thread/PTHREAD/Th= > >readPThread.m3:573 > >> #6 0x000c4b88 in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=3D0x224d348= > >) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mika/t/= > >calarm/ratsql/src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161d8b0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161d8b0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 39 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x16262c0= > >=2C mutex=3D0x161d750=2C m3timeout=3D1294411605.8264539) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x161d850=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000c6a9a in DBTable_gcoms_ordr_statusMonitor__CleanerApply (cl=3D0x2= > >24d540) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/m= > >ika/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161d850) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161d850) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 38 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2003bc0= > >=2C mutex=3D0x2003cd0=2C m3timeout=3D1294411628.744529) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2003c70=2C n=3D50=2C ale= > >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= > >eadPThread.m3:573 > >> #6 0x000b4d70 in DBTable_gcoms_strategyMonitor__ApplyC (cl=3D0x228c348) a= > >t ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/calarm= > >/ratsql/src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2003c70) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2003c70) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 37 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2003ba0= > >=2C mutex=3D0x2003be0=2C m3timeout=3D1294411605.7216971) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2003c10=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000b6cc1 in DBTable_gcoms_strategyMonitor__CleanerApply (cl=3D0x228c= > >538) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/= > >calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2003c10) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2003c10) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 36 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x16256b0= > >=2C mutex=3D0x16255a0=2C m3timeout=3D1294411628.815861) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x1625650=2C n=3D50=2C ale= > >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= > >eadPThread.m3:573 > >> #6 0x000ad6b0 in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x228c080)= > > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= > >larm/ratsql/src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x1625650) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x1625650) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 35 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x1625630= > >=2C mutex=3D0x1625570=2C m3timeout=3D1294411605.7159209) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x16255d0=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000afa3d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x22= > >8c270) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= > >a/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x16255d0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x16255d0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 34 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x2003a30= > >=2C mutex=3D0x20031e0=2C m3timeout=3D1294411628.7167931) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x20039d0=2C n=3D50=2C ale= > >rtable=3D1 '\001') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c1886 in Thread__AlertPause (n=3D50) at ../src/thread/PTHREAD/Thr= > >eadPThread.m3:573 > >> #6 0x000d2f00 in DBTable_gcoms_fillMonitor__ApplyC (cl=3D0x2255d40) at ..= > >/I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/= > >src/TableMonitor.mg:416 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20039d0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20039d0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 33 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003c4993 in ThreadPThread__pthread_cond_timedwait (cond=3D0x20034c0= > >=2C mutex=3D0x20038a0=2C m3timeout=3D1294411605.7081449) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:413 > >> #4 0x003c1763 in ThreadPThread__XPause (self=3D0x2003970=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003c183a in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000d50b3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=3D0x2255f30)= > > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= > >atsql/src/TableMonitor.mg:699 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2003970) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2003970) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 32 (process 32362): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D9=2C read=3D1=2C m3timeout=3D= > >1) at ../src/thread/Common/ThreadInternal.c:31 > >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x2003780=2C fd=3D9=2C re= > >ad=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001'= > >) at ../src/thread/PTHREAD/ThreadPThread.m3:627 > >> #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=3D9=2C read=3D1 '\001'= > >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > >> #4 0x00346693 in TCP__GetBytesFD (t=3D0x227c15c=2C arr=3D0x227600c=2C tim= > >eout=3D-1) at ../src/POSIX/TCP.m3:326 > >> #5 0x00348786 in ConnRW__RdSeek (rd=3D0x227a010=2C pos=3D0=2C dontBlock= > >=3D0 '\0') at ../src/common/ConnRW.m3:69 > >> #6 0x003591ce in Rd__GetLine (rd=3D0x227a010) at ../src/rw/Rd.m3:426 > >> #7 0x002678d9 in UpdateMonitor__InApplyP (cl=3D0x227a040) at ../src/Updat= > >eMonitor.m3:240 > >> #8 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2003780) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #9 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2003780) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #10 0x9713885d in _pthread_start () > >> #11 0x971386e2 in thread_start () > >> > >> Thread 31 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2003420=2C j=3D0= > >x2003720) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x20036c0=2C m=3D0x227c220= > >=2C c=3D0x227c22c=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x227c220=2C c=3D0x227c22c) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002674cc in UpdateMonitor__OutApplyP (p=3D0x227c17c) at ../src/Updat= > >eMonitor.m3:178 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20036c0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20036c0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 30 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x161a290=2C j=3D0= > >x1625020) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x1624fc0=2C m=3D0x2255ac0= > >=2C c=3D0x2255af4=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x2255ac0=2C c=3D0x2255af4) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x0026a003 in DesynchronizedDB__PApply (p=3D0x2255b04) at ../src/Desyn= > >chronizedDB.m3:216 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x1624fc0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x1624fc0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 29 (process 32362): > >> #0 0x9716c1d6 in __wait4 () > >> #1 0x9716c1c9 in waitpid$UNIX2003 () > >> #2 0x003c50d5 in Uexec__waitpid (i=3D32392=2C j=3D0xb0e36b7c=2C k=3D0) at= > > ../src/unix/Common/Uexec.c:66 > >> #3 0x003c1d31 in SchedulerPosix__WaitProcess (pid=3D32392=2C status=3D0xb= > >0e36b7c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 > >> #4 0x003536dc in Process__Wait (p=3D0x22585fc) at ../src/os/POSIX/Process= > >PosixCommon.m3:275 > >> #5 0x003163ad in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:18= > >5 > >> #6 0x00316d6e in ProcUtils__Apply (self=3D0x2256284) at ../src/ProcUtils.= > >m3:274 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x16251a0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x16251a0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 28 (process 32362): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003beb7e in ThreadInternal__Poll (fd=3D8=2C read=3D1=2C m3timeout=3D= > >1) at ../src/thread/Common/ThreadInternal.c:31 > >> #2 0x003c1bd5 in ThreadPThread__XIOWait (self=3D0x20030c0=2C fd=3D8=2C re= > >ad=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001'= > >) at ../src/thread/PTHREAD/ThreadPThread.m3:627 > >> #3 0x003c1aa8 in SchedulerPosix__IOAlertWait (fd=3D8=2C read=3D1 '\001'= > >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > >> #4 0x00346693 in TCP__GetBytesFD (t=3D0x22562c4=2C arr=3D0x225e00c=2C tim= > >eout=3D-1) at ../src/POSIX/TCP.m3:326 > >> #5 0x00348786 in ConnRW__RdSeek (rd=3D0x2256318=2C pos=3D0=2C dontBlock= > >=3D0 '\0') at ../src/common/ConnRW.m3:69 > >> #6 0x00356338 in Rd__DoSeek (rd=3D0x2256318) at ../src/rw/Rd.m3:54 > >> #7 0x003560c1 in UnsafeRd__FastGetChar (rd=3D0x2256318) at ../src/rw/Rd.m= > >3:43 > >> #8 0x00356018 in Rd__GetChar (rd=3D0x2256318) at ../src/rw/Rd.m3:34 > >> #9 0x002c62c5 in ReadLine__ReadALine (t=3D0x225600c) at ../src/ReadLine.m= > >3:151 > >> #10 0x002c877e in ReadLine__ReadLine (t=3D0x225600c) at ../src/ReadLine.m= > >3:411 > >> #11 0x0023b1fb in SchemeReadLine__GetCh (p=3D0x2256348) at ../src/SchemeR= > >eadLine.m3:80 > >> #12 0x0025f4b3 in SchemeInputPort__NextToken (t=3D0x2256348=2C wx=3D0x225= > >63cc) at ../src/SchemeInputPort.m3:309 > >> #13 0x0025eb94 in SchemeInputPort__Read (t=3D0x2256348) at ../src/SchemeI= > >nputPort.m3:177 > >> #14 0x0023ba70 in SchemeReadLine__MainLoop (rl=3D0x225600c=2C scm=3D0x223= > >40d0) at ../src/SchemeReadLine.m3:146 > >> #15 0x00006c23 in Main__SCApply (c=3D0x2255620) at ../src/Main.m3:92 > >> #16 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20030c0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #17 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20030c0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #18 0x9713885d in _pthread_start () > >> #19 0x971386e2 in thread_start () > >> > >> Thread 27 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x161e470) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003befff in ThreadPThread__LockMutex (m=3D0x22440a4) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x002dbd63 in SXLongReal__Update (v=3D0x2244010=2C newValue=3D12937212= > >30.087589=2C when=3D1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 =3D>= > > ../src/SXType.mg:79 > >> #5 0x002dc086 in SXLongReal__SetVar (v=3D0x2244010=2C newValue=3D12937212= > >30.087589=2C when=3D1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 =3D>= > > ../src/SXType.mg:98 > >> #6 0x00300c16 in SXTimer__Loop (cl=3D0x173934c) at ../src/SXTimer.m3:64 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2001ec0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2001ec0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 26 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20011c0=2C j=3D0= > >x2001e10) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2001db0=2C m=3D0x1738078= > >=2C c=3D0x17380a8=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1738078=2C c=3D0x17380a8) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x0009e3d6 in GCOMSOrderStatus__Apply (cl=3D0x17380b8) at ../src/GCOMS= > >OrderStatus.m3:166 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2001db0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2001db0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 25 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x1619840=2C j=3D0= > >x1619920) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x161a170=2C m=3D0x15aab74= > >=2C c=3D0x15aab80=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15aab74=2C c=3D0x15aab80) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x000a4482 in GCOMSBusyOrders__Apply (cl=3D0x15aab90) at ../src/GCOMSB= > >usyOrders.m3:63 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161a170) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161a170) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 24 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20011a0=2C j=3D0= > >x2001170) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2001110=2C m=3D0x173e044= > >=2C c=3D0x173e050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x173e044=2C c=3D0x173e050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0bace84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0bace84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1594280) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15943b0) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2001110) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2001110) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 23 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20010f0=2C j=3D0= > >x20010c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2001060=2C m=3D0x1724034= > >=2C c=3D0x1724040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1724034=2C c=3D0x1724040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0b2ae84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0b2ae84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15940f0) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1594220) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2001060) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2001060) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 22 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2001040=2C j=3D0= > >x2001010) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000fb0=2C m=3D0x1722034= > >=2C c=3D0x1722040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1722034=2C c=3D0x1722040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0aa8e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0aa8e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15adb40) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad7cc) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000fb0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000fb0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 21 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000f90=2C j=3D0= > >x2000f60) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000f00=2C m=3D0x1720034= > >=2C c=3D0x1720040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1720034=2C c=3D0x1720040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0a26e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0a26e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15adae0) at ../src/SX.m3:151 > >> #9 0x0016017c in CurrencySXProxy__Apply (cl=3D0x15ad7b0) at ../I386_DARWI= > >N/CurrencySXProxy.m3 =3D> /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000f00) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000f00) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 20 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000ee0=2C j=3D0= > >x2000eb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000e50=2C m=3D0x173c044= > >=2C c=3D0x173c050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x173c044=2C c=3D0x173c050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb09a4e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb09a4e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad450) at ../src/SX.m3:151 > >> #9 0x002d3613 in BoolSXProxy__Apply (cl=3D0x15ad794) at ../I386_DARWIN/Bo= > >olSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000e50) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000e50) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 19 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000e30=2C j=3D0= > >x2000e00) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000da0=2C m=3D0x171e034= > >=2C c=3D0x171e040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x171e034=2C c=3D0x171e040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0922e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0922e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad3e8) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad778) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000da0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000da0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 18 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000d80=2C j=3D0= > >x2000d50) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000cf0=2C m=3D0x1740044= > >=2C c=3D0x1740050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1740044=2C c=3D0x1740050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb08a0e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb08a0e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad380) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad75c) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000cf0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000cf0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 17 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000cd0=2C j=3D0= > >x2000ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000c40=2C m=3D0x1704044= > >=2C c=3D0x1704050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1704044=2C c=3D0x1704050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb081ee84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb081ee84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad318) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad740) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000c40) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000c40) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 16 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000c20=2C j=3D0= > >x2000bf0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000b90=2C m=3D0x1702044= > >=2C c=3D0x1702050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1702044=2C c=3D0x1702050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb079ce84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb079ce84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad2b0) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad724) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000b90) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000b90) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 15 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000b70=2C j=3D0= > >x2000b40) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000ae0=2C m=3D0x173a044= > >=2C c=3D0x173a050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x173a044=2C c=3D0x173a050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb071ae84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb071ae84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad248) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad708) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000ae0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000ae0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 14 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000ac0=2C j=3D0= > >x2000a90) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000a30=2C m=3D0x171a034= > >=2C c=3D0x171a040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x171a034=2C c=3D0x171a040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0698e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0698e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad1e0) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad6ec) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000a30) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000a30) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 13 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000a10=2C j=3D0= > >x20009e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000980=2C m=3D0x1718034= > >=2C c=3D0x1718040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1718034=2C c=3D0x1718040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0616e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0616e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad618) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad6d0) at ../I386_DARWI= > N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000980) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000980) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 12 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000960=2C j=3D0= > >x2000930) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x20008d0=2C m=3D0x1716034= > >=2C c=3D0x1716040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1716034=2C c=3D0x1716040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0594e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0594e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad5b0) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad6b4) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20008d0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20008d0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 11 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20008b0=2C j=3D0= > >x2000880) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000820=2C m=3D0x1714034= > >=2C c=3D0x1714040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1714034=2C c=3D0x1714040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0512e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0512e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15ad548) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad698) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000820) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000820) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 10 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000800=2C j=3D0= > >x20007d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000770=2C m=3D0x1712034= > >=2C c=3D0x1712040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x1712034=2C c=3D0x1712040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0490e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0490e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15acea8) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15ad67c) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000770) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000770) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 9 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000750=2C j=3D0= > >x2000720) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x20006c0=2C m=3D0x15b6034= > >=2C c=3D0x15b6040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15b6034=2C c=3D0x15b6040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb040ee84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb040ee84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591ea8) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1591fd8) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20006c0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20006c0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 8 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20006a0=2C j=3D0= > >x2000670) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000610=2C m=3D0x15b4034= > >=2C c=3D0x15b4040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15b4034=2C c=3D0x15b4040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb038ce84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb038ce84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591bf8) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1591d28) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000610) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000610) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 7 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20005f0=2C j=3D0= > >x20005c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000560=2C m=3D0x15b2034= > >=2C c=3D0x15b2040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15b2034=2C c=3D0x15b2040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb030ae84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb030ae84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591a70) at ../src/SX.m3:151 > >> #9 0x0016017c in CurrencySXProxy__Apply (cl=3D0x1591b98) at ../I386_DARWI= > >N/CurrencySXProxy.m3 =3D> /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000560) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000560) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 6 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000540=2C j=3D0= > >x2000510) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x20004b0=2C m=3D0x171c0c0= > >=2C c=3D0x171c0cc=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x171c0c0=2C c=3D0x171c0cc) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0288e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0288e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591808) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1591938) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x20004b0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x20004b0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 5 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000490=2C j=3D0= > >x2000460) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000400=2C m=3D0x15b0034= > >=2C c=3D0x15b0040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15b0034=2C c=3D0x15b0040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0206e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0206e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x1591678) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x15917a8) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000400) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000400) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 4 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x20003e0=2C j=3D0= > >x20003b0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000350=2C m=3D0x15ae034= > >=2C c=3D0x15ae040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x15ae034=2C c=3D0x15ae040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002d9828 in SXSelect__WaitE (on=3D0xb0184e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002d8e0d in SXSelect__Wait (on=3D0xb0184e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002d8e66 in SXSelect__Wait1 (on=3D0x15914e8) at ../src/SX.m3:151 > >> #9 0x002d4515 in LongRealSXProxy__Apply (cl=3D0x1591618) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000350) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000350) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 3 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x2000150=2C j=3D0= > >x20002c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x2000260=2C m=3D0x159123c= > >=2C c=3D0x159122c=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003bf5c8 in Thread__Wait (m=3D0x159123c=2C c=3D0x159122c) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002ce79c in VarProxyDefs__NotifyApply (cl=3D0x1591248) at ../src/Var= > >ProxyDefs.m3:55 > >> #7 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x2000260) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x2000260) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 2 (process 32362): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=3D0x613c20) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:452 > >> #3 0x003beefd in ThreadPThread__InitMutex (m=3D0x23480ac=2C root=3D0x2348= > >0a8=2C Clean=3D0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >> #4 0x003befce in ThreadPThread__LockMutex (m=3D0x23480a8) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #5 0x00355ff6 in Rd__GetChar (rd=3D0x23480a8) at ../src/rw/Rd.m3:33 > >> #6 0x00364b5d in Lex__Skip (rd=3D0x23480a8=2C cs=3D0x587ff8) at ../src/fm= > >tlex/Lex.m3:46 > >> #7 0x00366e53 in Lex__ReadReal (rd=3D0x23480a8=2C sign=3D0xb0080ca3=2C di= > >gits=3D0xb0080cbc=2C digCnt=3D0xb0080ca8=2C exp=3D0xb0080cac) at ../src/fmt= > >lex/Lex.m3:569 > >> #8 0x003678f0 in Lex__LongReal (rd=3D0x23480a8) at ../src/fmtlex/Lex.m3:6= > >62 > >> #9 0x0036834e in Scan__LongReal (txt=3D0x234807c) at ../src/fmtlex/Scan.m= > >3:77 > >> #10 0x003260a0 in XTime__ClApply (cl=3D0x15971b8) at ../src/XTime.m3:185 > >> #11 0x003c0ea5 in ThreadPThread__RunThread (me=3D0x161a0b0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=3D0x161a0b0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #13 0x9713885d in _pthread_start () > >> #14 0x971386e2 in thread_start () > >> > >> Thread 1 (process 32362): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003c48d4 in ThreadPThread__pthread_cond_wait (i=3D0x16076f0=2C j=3D0= > >x16076c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:396 > >> #4 0x003bf4bf in ThreadPThread__XWait (self=3D0x1607660=2C m=3D0x15ac4b0= > >=2C c=3D0x242f190=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003c1499 in ThreadPThread__XJoin (self=3D0x1607660=2C t=3D0x242f174= > >=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:513 > >> #6 0x003c15ae in Thread__Join (t=3D0x242f174) at ../src/thread/PTHREAD/Th= > >readPThread.m3:525 > >> #7 0x003158c9 in ProcUtils__Wait (c=3D0x242f0d4) at ../src/ProcUtils.m3:3= > >18 > >> #8 0x0024618a in SchemeCommandRunner__RealRunTimeoutCommandApply (proc=3D= > >0x1738cc4=2C interp=3D0x2367eac=2C args=3D0x239bd88) at ../src/SchemeComman= > >dRunner.m3:164 > >> #9 0x00245e07 in SchemeCommandRunner__RunTimeoutCommandApply (proc=3D0x17= > >38cc4=2C interp=3D0x2367eac=2C args=3D0x239bd88) at ../src/SchemeCommandRun= > >ner.m3:129 > >> #10 0x00245405 in SchemeCommandRunner__RunCommandApply (proc=3D0x1738cc4= > >=2C interp=3D0x2367eac=2C args=3D0x239bd70) at ../src/SchemeCommandRunner.m= > >3:23 > >> #11 0x0025c183 in SchemePrimitive__EDApply (ed=3D0x1738340=2C t=3D0x236b5= > >40=2C interp=3D0x2367eac=2C args=3D0x239bd70) at ../src/SchemePrimitive.m3:= > >207 > >> #12 0x00256d12 in SchemePrimitive__Prims (t=3D0x236b540=2C interp=3D0x236= > >7eac=2C args=3D0x239bd70=2C x=3D0x239a328=2C y=3D0x239bd5c=2C free=3D0xbfff= > >e82f) at ../src/SchemePrimitive.m3:580 > >> #13 0x0025bb2b in SchemePrimitive__Apply2 (t=3D0x236b540=2C interp=3D0x23= > >67eac=2C a1=3D0x239a328=2C a2=3D0x239bd5c) at ../src/SchemePrimitive.m3:549 > >> #14 0x0024d640 in Scheme__EvalInternal (t=3D0x2367eac=2C x=3D0x239a288=2C= > > env=3D0x239bce0) at ../src/Scheme.m3:585 > >> #15 0x0024d3a8 in Scheme__EvalInternal (t=3D0x2367eac=2C x=3D0x239a1d8=2C= > > env=3D0x239bce0) at ../src/Scheme.m3:582 > >> #16 0x0024d82d in Scheme__Eval (t=3D0x2367eac=2C x=3D0x239b098=2C envP=3D= > >0x2367ef4) at ../src/Scheme.m3:353 > >> #17 0x0024b005 in Scheme__EvalInGlobalEnv (t=3D0x2367eac=2C x=3D0x239b098= > >) at ../src/Scheme.m3:603 > >> #18 0x0002aebc in SchemeCalculator__Calc (t=3D0x2367e9c=2C arr=3D0xbfffec= > >dc) at ../src/SchemeCalculator.m3:61 > >> #19 0x0000cbd3 in EuroDriver__Loop (t=3D0x224da38) at ../src/EuroDriver.m= > >3:289 > >> #20 0x00008820 in Main_M3 (mode=3D1) at ../src/Main.m3:268 > >> #21 0x003b465a in RTLinker__RunMainBody (m=3D0x59e4c0) at ../src/runtime/= > >common/RTLinker.m3:406 > >> #22 0x003b3a8f in RTLinker__AddUnitI (m=3D0x59e4c0) at ../src/runtime/com= > >mon/RTLinker.m3:113 > >> #23 0x003b3b13 in RTLinker__AddUnit (b=3D0x6c5d) at ../src/runtime/common= > >/RTLinker.m3:122 > >> #24 0x000052ec in main (argc=3D19=2C argv=3D0xbffff1b4=2C envp=3D0xbffff2= > >04) at _m3main.c:16 > >> > >> Thread 75 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003ac2e3 in ThreadPThread__PThreadLockMutex (mutex=3D0x5d3ac0=2C lin= > >e=3D1288=2C index=3D2) at ../src/thread/PTHREAD/ThreadPThread.m3:1262 > >> #4 0x003ac409 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD= > >/ThreadPThread.m3:1288 > >> #5 0x97137217 in _cthread_fork_prepare () > >> #6 0x97137155 in fork () > >> #7 0x0033bc4d in ProcessPosixCommon__Create_ForkExec (cmd=3D0x31e02ac=2C = > >params=3D0x31e03c8=2C env=3D0x0=2C wd=3D0x53bf44=2C stdin=3D0x0=2C stdout= > >=3D0x30e91cc=2C stderr=3D0x30ea700) at ../src/os/POSIX/ProcessPosixCommon.m= > >3:75 > >> #8 0x0033d137 in Process__Create (cmd=3D0x31e02ac=2C params=3D0x31e03c8= > >=2C env=3D0x0=2C wd=3D0x53bf44=2C stdin=3D0x0=2C stdout=3D0x30e91cc=2C stde= > >rr=3D0x30ea700) at ../src/os/POSIX/ProcessPosix.m3:21 > >> #9 0x002ffdbc in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:18= > >0 > >> #10 0x003007c1 in ProcUtils__Apply (self=3D0x30eb88c) at ../src/ProcUtils= > >.m3:274 > >> #11 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161dd00) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #12 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161dd00) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #13 0x9713885d in _pthread_start () > >> #14 0x971386e2 in thread_start () > >> > >> Thread 74 (process 67010): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D13=2C read=3D1=2C m3timeout= > >=3D-1) at ../src/thread/Common/ThreadInternal.c:57 > >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x161dc50=2C fd=3D13=2C r= > >ead=3D1 '\001'=2C interval=3D-1=2C alertable=3D0 '\0') at ../src/thread/PTH= > >READ/ThreadPThread.m3:627 > >> #3 0x003aa6dc in SchedulerPosix__IOWait (fd=3D13=2C read=3D1 '\001'=2C ti= > >meoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 > >> #4 0x00338b5f in FilePosix__IntermittentRead (h=3D0x30ea6f0=2C b=3D0xb1ef= > >8cf0=2C mayBlock=3D1 '\001') at ../src/os/POSIX/FilePosix.m3:220 > >> #5 0x00347c68 in FileRd__Seek (rd=3D0x30ea710=2C pos=3D0=2C dontBlock=3D0= > > '\0') at ../src/rw/FileRd.m3:83 > >> #6 0x0033f64d in Rd__DoSeek (rd=3D0x30ea710) at ../src/rw/Rd.m3:54 > >> #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=3D0x30ea710) at ../src/rw/Rd.m= > >3:43 > >> #8 0x0033f32d in Rd__GetChar (rd=3D0x30ea710) at ../src/rw/Rd.m3:34 > >> #9 0x00300a0b in ProcUtils__SSApply (self=3D0x30eb854) at ../src/ProcUtil= > >s.m3:54 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161dc50) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161dc50) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 73 (process 67010): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D11=2C read=3D1=2C m3timeout= > >=3D-1) at ../src/thread/Common/ThreadInternal.c:57 > >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x161dbc0=2C fd=3D11=2C r= > >ead=3D1 '\001'=2C interval=3D-1=2C alertable=3D0 '\0') at ../src/thread/PTH= > >READ/ThreadPThread.m3:627 > >> #3 0x003aa6dc in SchedulerPosix__IOWait (fd=3D11=2C read=3D1 '\001'=2C ti= > >meoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:590 > >> #4 0x00338b5f in FilePosix__IntermittentRead (h=3D0x30e91bc=2C b=3D0xb1e7= > >6cf0=2C mayBlock=3D1 '\001') at ../src/os/POSIX/FilePosix.m3:220 > >> #5 0x00347c68 in FileRd__Seek (rd=3D0x30e91dc=2C pos=3D0=2C dontBlock=3D0= > > '\0') at ../src/rw/FileRd.m3:83 > >> #6 0x0033f64d in Rd__DoSeek (rd=3D0x30e91dc) at ../src/rw/Rd.m3:54 > >> #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=3D0x30e91dc) at ../src/rw/Rd.m= > >3:43 > >> #8 0x0033f32d in Rd__GetChar (rd=3D0x30e91dc) at ../src/rw/Rd.m3:34 > >> #9 0x00300a0b in ProcUtils__SSApply (self=3D0x30eb81c) at ../src/ProcUtil= > >s.m3:54 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161dbc0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161dbc0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 72 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7ebe in ThreadPThread__InitMutex (m=3D0x31339fc=2C root=3D0x3133= > >9f8=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >> #4 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x31339f8) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #5 0x0033f30b in Rd__GetChar (rd=3D0x31339f8) at ../src/rw/Rd.m3:33 > >> #6 0x0034dffd in Lex__Skip (rd=3D0x31339f8=2C cs=3D0x548018) at ../src/fm= > >tlex/Lex.m3:46 > >> #7 0x003503c3 in Lex__ReadReal (rd=3D0x31339f8=2C sign=3D0xb1df47c3=2C di= > >gits=3D0xb1df47dc=2C digCnt=3D0xb1df47c8=2C exp=3D0xb1df47cc) at ../src/fmt= > >lex/Lex.m3:569 > >> #8 0x00350ef5 in Lex__LongReal (rd=3D0x31339f8) at ../src/fmtlex/Lex.m3:6= > >62 > >> #9 0x003518f1 in Scan__LongReal (txt=3D0x25768e8) at ../src/fmtlex/Scan.m= > >3:77 > >> #10 0x0024f849 in SchemeInputPort__NextToken (t=3D0x30d4aec=2C wx=3D0x313= > >37e8) at ../src/SchemeInputPort.m3:439 > >> #11 0x0024fb9c in SchemeInputPort__ReadTail2 (t=3D0x30d4aec=2C wx=3D0x313= > >37e8) at ../src/SchemeInputPort.m3:240 > >> #12 0x0024e100 in SchemeInputPort__Read (t=3D0x30d4aec) at ../src/SchemeI= > >nputPort.m3:179 > >> #13 0x0024e2bc in SchemeInputPort__Read (t=3D0x30d4aec) at ../src/SchemeI= > >nputPort.m3:191 > >> #14 0x0024fb73 in SchemeInputPort__ReadTail2 (t=3D0x30d4aec=2C wx=3D0x313= > >3620) at ../src/SchemeInputPort.m3:240 > >> #15 0x0024e100 in SchemeInputPort__Read (t=3D0x30d4aec) at ../src/SchemeI= > >nputPort.m3:179 > >> #16 0x0024fb73 in SchemeInputPort__ReadTail2 (t=3D0x30d4aec=2C wx=3D0x313= > >3548) at ../src/SchemeInputPort.m3:240 > >> #17 0x0024e100 in SchemeInputPort__Read (t=3D0x30d4aec) at ../src/SchemeI= > >nputPort.m3:179 > >> #18 0x0023c6cd in Scheme__LoadPort (t=3D0x30d018c=2C in=3D0x30d4aec) at .= > >./src/Scheme.m3:317 > >> #19 0x002399e3 in Scheme__LoadRd (t=3D0x30d018c=2C rd=3D0x30d3cf0=2C fn= > >=3D0x0) at ../src/Scheme.m3:174 > >> #20 0x0023d255 in Scheme__ReadInitialFiles (t=3D0x30d018c=2C files=3D0x46= > >fc8c) at ../src/Scheme.m3:134 > >> #21 0x0023d5e7 in Scheme__Init2 (t=3D0x30d018c=2C input=3D0x20003b4=2C ou= > >tput=3D0x20013e8=2C files=3D0x46fc8c=2C env=3D0x0) at ../src/Scheme.m3:127 > >> #22 0x00239461 in Scheme__Init (t=3D0x30d018c=2C files=3D0x46fc8c=2C env= > >=3D0x0) at ../src/Scheme.m3:102 > >> #23 0x00029420 in SchemeCalculator__Init (t=3D0x30d017c=2C code=3D0x263fc= > >cc) at ../src/SchemeCalculator.m3:28 > >> #24 0x0000deef in EuroDriver__OApply (cl=3D0x3241b88) at ../src/EuroDrive= > >r.m3:865 > >> #25 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2307650) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #26 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2307650) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #27 0x9713885d in _pthread_start () > >> #28 0x971386e2 in thread_start () > >> > >> Thread 71 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3b40) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= > >.m3:1345 > >> #4 0x003995a6 in RTHeapRep__RegisterFinalCleanup (r=3D0x31239f8=2C p=3D0x= > >3a7d52) at ../src/runtime/common/RTCollector.m3:2148 > >> #5 0x003a7f1e in ThreadPThread__InitMutex (m=3D0x31239fc=2C root=3D0x3123= > >9f8=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > >> #6 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x31239f8) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #7 0x0033f30b in Rd__GetChar (rd=3D0x31239f8) at ../src/rw/Rd.m3:33 > >> #8 0x0034dffd in Lex__Skip (rd=3D0x31239f8=2C cs=3D0x548018) at ../src/fm= > >tlex/Lex.m3:46 > >> #9 0x003503c3 in Lex__ReadReal (rd=3D0x31239f8=2C sign=3D0xb1d727c3=2C di= > >gits=3D0xb1d727dc=2C digCnt=3D0xb1d727c8=2C exp=3D0xb1d727cc) at ../src/fmt= > >lex/Lex.m3:569 > >> #10 0x00350ef5 in Lex__LongReal (rd=3D0x31239f8) at ../src/fmtlex/Lex.m3:= > >662 > >> #11 0x003518f1 in Scan__LongReal (txt=3D0x25768e8) at ../src/fmtlex/Scan.= > >m3:77 > >> #12 0x0024f849 in SchemeInputPort__NextToken (t=3D0x3264aec=2C wx=3D0x312= > >37e8) at ../src/SchemeInputPort.m3:439 > >> #13 0x0024fb9c in SchemeInputPort__ReadTail2 (t=3D0x3264aec=2C wx=3D0x312= > >37e8) at ../src/SchemeInputPort.m3:240 > >> #14 0x0024e100 in SchemeInputPort__Read (t=3D0x3264aec) at ../src/SchemeI= > >nputPort.m3:179 > >> #15 0x0024e2bc in SchemeInputPort__Read (t=3D0x3264aec) at ../src/SchemeI= > >nputPort.m3:191 > >> #16 0x0024fb73 in SchemeInputPort__ReadTail2 (t=3D0x3264aec=2C wx=3D0x312= > >3620) at ../src/SchemeInputPort.m3:240 > >> #17 0x0024e100 in SchemeInputPort__Read (t=3D0x3264aec) at ../src/SchemeI= > >nputPort.m3:179 > >> #18 0x0024fb73 in SchemeInputPort__ReadTail2 (t=3D0x3264aec=2C wx=3D0x312= > >3548) at ../src/SchemeInputPort.m3:240 > >> #19 0x0024e100 in SchemeInputPort__Read (t=3D0x3264aec) at ../src/SchemeI= > >nputPort.m3:179 > >> #20 0x0023c6cd in Scheme__LoadPort (t=3D0x326018c=2C in=3D0x3264aec) at .= > >./src/Scheme.m3:317 > >> #21 0x002399e3 in Scheme__LoadRd (t=3D0x326018c=2C rd=3D0x3263cf0=2C fn= > >=3D0x0) at ../src/Scheme.m3:174 > >> #22 0x0023d255 in Scheme__ReadInitialFiles (t=3D0x326018c=2C files=3D0x46= > >fc8c) at ../src/Scheme.m3:134 > >> #23 0x0023d5e7 in Scheme__Init2 (t=3D0x326018c=2C input=3D0x20003b4=2C ou= > >tput=3D0x20013e8=2C files=3D0x46fc8c=2C env=3D0x0) at ../src/Scheme.m3:127 > >> #24 0x00239461 in Scheme__Init (t=3D0x326018c=2C files=3D0x46fc8c=2C env= > >=3D0x0) at ../src/Scheme.m3:102 > >> #25 0x00029420 in SchemeCalculator__Init (t=3D0x326017c=2C code=3D0x263fc= > >cc) at ../src/SchemeCalculator.m3:28 > >> #26 0x0000deef in EuroDriver__OApply (cl=3D0x3241af0) at ../src/EuroDrive= > >r.m3:865 > >> #27 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23075c0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #28 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23075c0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #29 0x9713885d in _pthread_start () > >> #30 0x971386e2 in thread_start () > >> > >> Thread 67 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7ebe in ThreadPThread__InitMutex (m=3D0x2686284=2C root=3D0x2686= > >280=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >> #4 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x2686280) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #5 0x003a7d30 in Thread__Acquire (m=3D0x2686280) at ../src/thread/PTHREAD= > >/ThreadPThread.m3:81 > >> #6 0x00343175 in RdClass__Lock (rd=3D0x2686280) at ../src/rw/Rd.m3:521 > >> #7 0x0024d9ef in SchemeInputPort__Lock (t=3D0x2686368) at ../src/SchemeIn= > >putPort.m3:72 > >> #8 0x0024e87d in SchemeInputPort__NextToken (t=3D0x2686368=2C wx=3D0x2686= > >388) at ../src/SchemeInputPort.m3:299 > >> #9 0x0024e0bb in SchemeInputPort__Read (t=3D0x2686368) at ../src/SchemeIn= > >putPort.m3:177 > >> #10 0x00239a38 in Scheme__LoadEval (t=3D0x254018c=2C rd=3D0x2686280) at .= > >./src/Scheme.m3:291 > >> #11 0x00239abd in Scheme__LoadEvalText (t=3D0x254018c=2C txt=3D0x263fccc)= > > at ../src/Scheme.m3:306 > >> #12 0x00029574 in SchemeCalculator__Calc (t=3D0x254017c=2C arr=3D0xb1cf09= > >e4) at ../src/SchemeCalculator.m3:47 > >> #13 0x0000ee50 in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/Eur= > >oDriver.m3:564 > >> #14 0x0000e7d6 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/E= > >uroDriver.m3:507 > >> #15 0x000103ca in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriv= > >er.m3:795 > >> #16 0x0000e3a2 in EuroDriver__OApply (cl=3D0x3018bb0) at ../src/EuroDrive= > >r.m3:892 > >> #17 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23054a0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #18 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23054a0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #19 0x9713885d in _pthread_start () > >> #20 0x971386e2 in thread_start () > >> > >> Thread 66 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x230d020=2C j=3D0= > >x2305470) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2305410=2C m=3D0x311a158= > >=2C c=3D0x311a164=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x311a158=2C c=3D0x311a164) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb1c6ecb8=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb1c6ecb8=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x0001063a in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDrive= > >r.m3:832 > >> #9 0x0000e3a2 in EuroDriver__OApply (cl=3D0x3018b18) at ../src/EuroDriver= > >.m3:892 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2305410) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2305410) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 62 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x23019d0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x31b1584) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x003a7d30 in Thread__Acquire (m=3D0x31b1584) at ../src/thread/PTHREAD= > >/ThreadPThread.m3:81 > >> #5 0x002c5bb6 in SX__Lock (arr=3D0x327c430) at ../src/SX.m3:318 > >> #6 0x002c5496 in SXSelect__WaitE (on=3D0xb1beccb8=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:241 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb1beccb8=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x0001063a in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDrive= > >r.m3:832 > >> #9 0x0000e3a2 in EuroDriver__OApply (cl=3D0x21fcc00) at ../src/EuroDriver= > >.m3:892 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1626040) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1626040) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 61 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7ebe in ThreadPThread__InitMutex (m=3D0x252c4b4=2C root=3D0x252c= > >4b0=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >> #4 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x252c4b0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #5 0x003a7d30 in Thread__Acquire (m=3D0x252c4b0) at ../src/thread/PTHREAD= > >/ThreadPThread.m3:81 > >> #6 0x00343175 in RdClass__Lock (rd=3D0x252c4b0) at ../src/rw/Rd.m3:521 > >> #7 0x0024d9ef in SchemeInputPort__Lock (t=3D0x252c598) at ../src/SchemeIn= > >putPort.m3:72 > >> #8 0x0024e87d in SchemeInputPort__NextToken (t=3D0x252c598=2C wx=3D0x252c= > >5b8) at ../src/SchemeInputPort.m3:299 > >> #9 0x0024e0bb in SchemeInputPort__Read (t=3D0x252c598) at ../src/SchemeIn= > >putPort.m3:177 > >> #10 0x00239a38 in Scheme__LoadEval (t=3D0x26f018c=2C rd=3D0x252c4b0) at .= > >./src/Scheme.m3:291 > >> #11 0x00239abd in Scheme__LoadEvalText (t=3D0x26f018c=2C txt=3D0x263fccc)= > > at ../src/Scheme.m3:306 > >> #12 0x00029574 in SchemeCalculator__Calc (t=3D0x26f017c=2C arr=3D0xb1b6a8= > >64) at ../src/SchemeCalculator.m3:47 > >> #13 0x0000ee50 in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/Eur= > >oDriver.m3:564 > >> #14 0x0000e7d6 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/E= > >uroDriver.m3:507 > >> #15 0x000103ca in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriv= > >er.m3:795 > >> #16 0x0000e3a2 in EuroDriver__OApply (cl=3D0x21fcb68) at ../src/EuroDrive= > >r.m3:892 > >> #17 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1625f80) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #18 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1625f80) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #19 0x9713885d in _pthread_start () > >> #20 0x971386e2 in thread_start () > >> > >> Thread 54 (process 67010): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D10=2C read=3D1=2C m3timeout= > >=3D1) at ../src/thread/Common/ThreadInternal.c:57 > >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x23071d0=2C fd=3D10=2C r= > >ead=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001= > >') at ../src/thread/PTHREAD/ThreadPThread.m3:627 > >> #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=3D10=2C read=3D1 '\001'= > >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > >> #4 0x003344ff in TCP__GetBytesFD (t=3D0x3050f80=2C arr=3D0x3053048=2C tim= > >eout=3D-1) at ../src/POSIX/TCP.m3:326 > >> #5 0x003365ce in ConnRW__RdSeek (rd=3D0x3053018=2C pos=3D390=2C dontBlock= > >=3D0 '\0') at ../src/common/ConnRW.m3:69 > >> #6 0x003424e3 in Rd__GetLine (rd=3D0x3053018) at ../src/rw/Rd.m3:426 > >> #7 0x002a00d4 in TWSTester__RApply (cl=3D0x3055054) at ../src/TWSTester.m= > >3:382 > >> #8 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23071d0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #9 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23071d0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #10 0x9713885d in _pthread_start () > >> #11 0x971386e2 in thread_start () > >> > >> Thread 53 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x1621150= > >=2C mutex=3D0x1621120=2C m3timeout=3D1294537044.5119109) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x16210c0=2C n=3D0.5=2C al= > >ertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D0.5) at ../src/thread/PTHREAD/ThreadP= > >Thread.m3:567 > >> #6 0x00286610 in PMTWS__TSCApply (cl=3D0x3050e30) at ../src/PMTWS.m3:229 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x16210c0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x16210c0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 52 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3b40) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= > >.m3:1345 > >> #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=3D24=2C dataAlignment= > >=3D4=2C thread=3D0x1621054) at ../src/runtime/common/RTAllocator.m3:363 > >> #5 0x0038f2c7 in RTAllocator__GetTracedObj (def=3D0x5d6bf4) at ../src/run= > >time/common/RTAllocator.m3:224 > >> #6 0x0038ed60 in RTHooks__AllocateTracedObj (defn=3D0x5d6bf4) at ../src/r= > >untime/common/RTAllocator.m3:122 > >> #7 0x003bc686 in RTHooks__Concat (t=3D0x3240a08=2C u=3D0x52c460) at ../sr= > >c/text/TextCat.m3:28 > >> #8 0x0029e655 in TWSTester__MakeString (contract=3D0xb19e4dc0) at ../src/= > >TWSTester.m3:92 > >> #9 0x0029ea07 in TWSTester__ReqMktData (t=3D0x30505a8=2C tickerId=3D4=2C = > >contract=3D0xb19e4dc0) at ../src/TWSTester.m3:136 > >> #10 0x002aa233 in TWSTestBridge__MreqMktData (t=3D0x30505a8=2C tickerId= > >=3D4=2C contract=3D0xb19e4dc0) at ../src/TWSTestBridge.m3 =3D> ../src/TWSBr= > >idgeG.mg:580 > >> #11 0x00286034 in PMTWS__TSCApply (cl=3D0x3050dec) at ../src/PMTWS.m3:210 > >> #12 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1621010) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #13 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1621010) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #14 0x9713885d in _pthread_start () > >> #15 0x971386e2 in thread_start () > >> > >> Thread 51 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3b40) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= > >.m3:1345 > >> #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=3D136=2C dataAlignmen= > >t=3D8=2C thread=3D0x1620ed4) at ../src/runtime/common/RTAllocator.m3:363 > >> #5 0x0038f048 in RTAllocator__GetTracedRef (def=3D0x5711e0) at ../src/run= > >time/common/RTAllocator.m3:202 > >> #6 0x0038ed2f in RTHooks__AllocateTracedRef (defn=3D0x5711e0) at ../src/r= > >untime/common/RTAllocator.m3:115 > >> #7 0x000a8f49 in IntDBTable_gcoms_instrumentTbl__Put (tbl=3D0x328f110=2C = > >key=3D0xb1962d7c=2C val=3D0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_in= > >strumentTbl.m3 =3D> /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > >> #8 0x000a5ecc in DBTable_gcoms_instrumentMonitor__CopyC (cl=3D0x26608c0= > >=2C res=3D0x328f110) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 = > >=3D> /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > >> #9 0x00085c9f in GCOMSPortfolio__Lock (t=3D0x2660590) at ../src/GCOMSPort= > >folio.m3:94 > >> #10 0x000288d9 in SXPortfolio__Scan (t=3D0x300c578) at ../src/SXPortfolio= > >.m3:47 > >> #11 0x0002920d in SXPortfolio__Apply (cl=3D0x3050324) at ../src/SXPortfol= > >io.m3:113 > >> #12 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620e90) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #13 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620e90) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #14 0x9713885d in _pthread_start () > >> #15 0x971386e2 in thread_start () > >> > >> Thread 50 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4ad9= > >44=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= > >25 > >> #5 0x000d9ad8 in DBTable_gcoms_aux_ordrMonitor__DbNow (db=3D0x26602c4) at= > > ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/calarm/= > >ratsql/src/TableMonitor.mg:456 > >> #6 0x000d9cdf in DBTable_gcoms_aux_ordrMonitor__CheckForNew (cl=3D0x300c2= > >18) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/c= > >alarm/ratsql/src/TableMonitor.mg:467 > >> #7 0x000d9a01 in DBTable_gcoms_aux_ordrMonitor__Sync (cl=3D0x300c218) at = > >../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/calarm/r= > >atsql/src/TableMonitor.mg:445 > >> #8 0x000d9588 in DBTable_gcoms_aux_ordrMonitor__ApplyC (cl=3D0x300c218) a= > >t ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/calarm= > >/ratsql/src/TableMonitor.mg:393 > >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620d80) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620d80) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #11 0x9713885d in _pthread_start () > >> #12 0x971386e2 in thread_start () > >> > >> Thread 49 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x1620d60= > >=2C mutex=3D0x1620cd0=2C m3timeout=3D1294537044.970454) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x1620d00=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000db5a3 in DBTable_gcoms_aux_ordrMonitor__CleanerApply (cl=3D0x300c= > >410) at ../I386_DARWIN/DBTable_gcoms_aux_ordrMonitor.m3 =3D> /Users/mika/t/= > >calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620d00) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620d00) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 48 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4aa2= > >28=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= > >25 > >> #5 0x000cb8aa in DBTable_gcoms_fillMonitor__DbNow (db=3D0x26602c4) at ../= > >I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/s= > >rc/TableMonitor.mg:456 > >> #6 0x000cbbf5 in DBTable_gcoms_fillMonitor__CheckForNew (cl=3D0x300bf48) = > >at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ra= > >tsql/src/TableMonitor.mg:467 > >> #7 0x000cb7d3 in DBTable_gcoms_fillMonitor__Sync (cl=3D0x300bf48) at ../I= > >386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/sr= > >c/TableMonitor.mg:445 > >> #8 0x000cb35a in DBTable_gcoms_fillMonitor__ApplyC (cl=3D0x300bf48) at ..= > >/I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/= > >src/TableMonitor.mg:393 > >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620b50) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620b50) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #11 0x9713885d in _pthread_start () > >> #12 0x971386e2 in thread_start () > >> > >> Thread 47 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x16243d0= > >=2C mutex=3D0x1620ac0=2C m3timeout=3D1294537044.9675839) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x1620af0=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000cd5e3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=3D0x300c140)= > > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= > >atsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1620af0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1620af0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 46 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4abd= > >98=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= > >25 > >> #5 0x000d2b9a in DBTable_gcoms_aux_instrumentMonitor__DbNow (db=3D0x26602= > >c4) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Users/mi= > >ka/t/calarm/ratsql/src/TableMonitor.mg:456 > >> #6 0x000d2dbf in DBTable_gcoms_aux_instrumentMonitor__CheckForNew (cl=3D0= > >x30091c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Us= > >ers/mika/t/calarm/ratsql/src/TableMonitor.mg:467 > >> #7 0x000d2ac3 in DBTable_gcoms_aux_instrumentMonitor__Sync (cl=3D0x30091c= > >8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Users/mik= > >a/t/calarm/ratsql/src/TableMonitor.mg:445 > >> #8 0x000d264a in DBTable_gcoms_aux_instrumentMonitor__ApplyC (cl=3D0x3009= > >1c8) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /Users/m= > >ika/t/calarm/ratsql/src/TableMonitor.mg:393 > >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2306710) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2306710) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #11 0x9713885d in _pthread_start () > >> #12 0x971386e2 in thread_start () > >> > >> Thread 45 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x230b2d0= > >=2C mutex=3D0x2306680=2C m3timeout=3D1294537044.960629) at ../src/thread/PT= > >HREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x23066b0=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000d469b in DBTable_gcoms_aux_instrumentMonitor__CleanerApply (cl=3D= > >0x30093c0) at ../I386_DARWIN/DBTable_gcoms_aux_instrumentMonitor.m3 =3D> /U= > >sers/mika/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23066b0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23066b0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 44 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a15= > >9c=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= > >25 > >> #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=3D0x26602c4) = > >at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cal= > >arm/ratsql/src/TableMonitor.mg:456 > >> #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=3D0x320= > >5b38) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika= > >/t/calarm/ratsql/src/TableMonitor.mg:467 > >> #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=3D0x3205b38) a= > >t ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cala= > >rm/ratsql/src/TableMonitor.mg:445 > >> #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x3205b38)= > > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= > >larm/ratsql/src/TableMonitor.mg:393 > >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x230b000) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x230b000) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #11 0x9713885d in _pthread_start () > >> #12 0x971386e2 in thread_start () > >> > >> Thread 43 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x230afe0= > >=2C mutex=3D0x230af20=2C m3timeout=3D1294537044.8138101) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x230af80=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x32= > >05d30) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= > >a/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x230af80) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x230af80) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 42 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a15= > >9c=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= > >25 > >> #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=3D0x26602c4) = > >at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cal= > >arm/ratsql/src/TableMonitor.mg:456 > >> #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=3D0x320= > >57b0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika= > >/t/calarm/ratsql/src/TableMonitor.mg:467 > >> #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=3D0x32057b0) a= > >t ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cala= > >rm/ratsql/src/TableMonitor.mg:445 > >> #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x32057b0)= > > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= > >larm/ratsql/src/TableMonitor.mg:393 > >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x230aca0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x230aca0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #11 0x9713885d in _pthread_start () > >> #12 0x971386e2 in thread_start () > >> > >> Thread 41 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x2301860= > >=2C mutex=3D0x230ab40=2C m3timeout=3D1294537044.8138311) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x230aba0=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x32= > >059a8) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= > >a/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x230aba0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x230aba0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 40 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a6b= > >9c=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= > >25 > >> #5 0x000bd587 in DBTable_gcoms_ordr_statusMonitor__DbNow (db=3D0x26602c4)= > > at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mika/t/c= > >alarm/ratsql/src/TableMonitor.mg:456 > >> #6 0x000bd76e in DBTable_gcoms_ordr_statusMonitor__CheckForNew (cl=3D0x32= > >05390) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mi= > >ka/t/calarm/ratsql/src/TableMonitor.mg:467 > >> #7 0x000bd4b0 in DBTable_gcoms_ordr_statusMonitor__Sync (cl=3D0x3205390) = > >at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mika/t/ca= > >larm/ratsql/src/TableMonitor.mg:445 > >> #8 0x000bd037 in DBTable_gcoms_ordr_statusMonitor__ApplyC (cl=3D0x3205390= > >) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/mika/t/= > >calarm/ratsql/src/TableMonitor.mg:393 > >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1621f10) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1621f10) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #11 0x9713885d in _pthread_start () > >> #12 0x971386e2 in thread_start () > >> > >> Thread 39 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x16242f0= > >=2C mutex=3D0x1621ee0=2C m3timeout=3D1294537044.8137701) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x1622280=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000bf010 in DBTable_gcoms_ordr_statusMonitor__CleanerApply (cl=3D0x3= > >205588) at ../I386_DARWIN/DBTable_gcoms_ordr_statusMonitor.m3 =3D> /Users/m= > >ika/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1622280) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1622280) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 38 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a31= > >44=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= > >25 > >> #5 0x000adb3f in DBTable_gcoms_strategyMonitor__DbNow (db=3D0x26602c4) at= > > ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/calarm/= > >ratsql/src/TableMonitor.mg:456 > >> #6 0x000add46 in DBTable_gcoms_strategyMonitor__CheckForNew (cl=3D0x2660b= > >88) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/c= > >alarm/ratsql/src/TableMonitor.mg:467 > >> #7 0x000ada68 in DBTable_gcoms_strategyMonitor__Sync (cl=3D0x2660b88) at = > >../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/calarm/r= > >atsql/src/TableMonitor.mg:445 > >> #8 0x000ad5ef in DBTable_gcoms_strategyMonitor__ApplyC (cl=3D0x2660b88) a= > >t ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/calarm= > >/ratsql/src/TableMonitor.mg:393 > >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161b820) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161b820) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #11 0x9713885d in _pthread_start () > >> #12 0x971386e2 in thread_start () > >> > >> Thread 37 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x2306160= > >=2C mutex=3D0x2305f70=2C m3timeout=3D1294537044.6482379) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x2306100=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000af60a in DBTable_gcoms_strategyMonitor__CleanerApply (cl=3D0x2660= > >d78) at ../I386_DARWIN/DBTable_gcoms_strategyMonitor.m3 =3D> /Users/mika/t/= > >calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2306100) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2306100) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 36 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x2305bb0) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x26602f0) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x0025877b in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4a15= > >9c=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:1= > >25 > >> #5 0x000a66ee in DBTable_gcoms_instrumentMonitor__DbNow (db=3D0x26602c4) = > >at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cal= > >arm/ratsql/src/TableMonitor.mg:456 > >> #6 0x000a6b33 in DBTable_gcoms_instrumentMonitor__CheckForNew (cl=3D0x266= > >08c0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika= > >/t/calarm/ratsql/src/TableMonitor.mg:467 > >> #7 0x000a6617 in DBTable_gcoms_instrumentMonitor__Sync (cl=3D0x26608c0) a= > >t ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/cala= > >rm/ratsql/src/TableMonitor.mg:445 > >> #8 0x000a619e in DBTable_gcoms_instrumentMonitor__ApplyC (cl=3D0x26608c0)= > > at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mika/t/ca= > >larm/ratsql/src/TableMonitor.mg:393 > >> #9 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2305e30) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #10 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2305e30) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #11 0x9713885d in _pthread_start () > >> #12 0x971386e2 in thread_start () > >> > >> Thread 35 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x2305dd0= > >=2C mutex=3D0x2305c40=2C m3timeout=3D1294537044.6481991) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x2305d70=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000a860d in DBTable_gcoms_instrumentMonitor__CleanerApply (cl=3D0x26= > >60ab0) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 =3D> /Users/mik= > >a/t/calarm/ratsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2305d70) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2305d70) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 34 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3b40) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003ac7d5 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread= > >.m3:1345 > >> #4 0x0038ff14 in RTAllocator__AllocTraced (dataSize=3D32=2C dataAlignment= > >=3D4=2C thread=3D0x1623e04) at ../src/runtime/common/RTAllocator.m3:363 > >> #5 0x0038f2c7 in RTAllocator__GetTracedObj (def=3D0x5c87d4) at ../src/run= > >time/common/RTAllocator.m3:224 > >> #6 0x0038ed60 in RTHooks__AllocateTracedObj (defn=3D0x5c87d4) at ../src/r= > >untime/common/RTAllocator.m3:122 > >> #7 0x00260a50 in DatabaseUtils__FilterUnprintable (t=3D0x4aa228) at ../sr= > >c/DatabaseUtils.m3:124 > >> #8 0x0026b6ae in UnsafeDatabase__ExecM (t=3D0x2660178=2C query=3D0x4aa228= > >=2C busyWait=3D0 '\0'=2C abortConnectionOnFail=3D1 '\001') at ../src/Unsafe= > >Database.m3:217 > >> #9 0x0026baa5 in UnsafeDatabase__TExecM (t=3D0x2660178=2C query=3D0x4aa22= > >8=2C busyWait=3D0 '\0'=2C abortConnectionOnFail=3D1 '\001') at ../src/Unsaf= > >eDatabase.m3:258 > >> #10 0x002587f9 in DesynchronizedDB__SExec (t=3D0x26602c4=2C query=3D0x4aa= > >228=2C busyWait=3D0 '\0'=2C acof=3D1 '\001') at ../src/DesynchronizedDB.m3:= > >126 > >> #11 0x000cb8aa in DBTable_gcoms_fillMonitor__DbNow (db=3D0x26602c4) at ..= > >/I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/= > >src/TableMonitor.mg:456 > >> #12 0x000cbbf5 in DBTable_gcoms_fillMonitor__CheckForNew (cl=3D0x26605f8)= > > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= > >atsql/src/TableMonitor.mg:467 > >> #13 0x000cb7d3 in DBTable_gcoms_fillMonitor__Sync (cl=3D0x26605f8) at ../= > >I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql/s= > >rc/TableMonitor.mg:445 > >> #14 0x000cb35a in DBTable_gcoms_fillMonitor__ApplyC (cl=3D0x26605f8) at .= > >./I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/ratsql= > >/src/TableMonitor.mg:393 > >> #15 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623dc0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #16 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623dc0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #17 0x9713885d in _pthread_start () > >> #18 0x971386e2 in thread_start () > >> > >> Thread 33 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > >> #3 0x003ad59f in ThreadPThread__pthread_cond_timedwait (cond=3D0x1623da0= > >=2C mutex=3D0x1623640=2C m3timeout=3D1294537044.6482589) at ../src/thread/P= > >THREAD/ThreadPThreadC.c:431 > >> #4 0x003aa4a2 in ThreadPThread__XPause (self=3D0x1623d40=2C n=3D1=2C aler= > >table=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > >> #5 0x003aa572 in Thread__Pause (n=3D1) at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:567 > >> #6 0x000cd5e3 in DBTable_gcoms_fillMonitor__CleanerApply (cl=3D0x26607e8)= > > at ../I386_DARWIN/DBTable_gcoms_fillMonitor.m3 =3D> /Users/mika/t/calarm/r= > >atsql/src/TableMonitor.mg:699 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623d40) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623d40) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 32 (process 67010): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D9=2C read=3D1=2C m3timeout=3D= > >1) at ../src/thread/Common/ThreadInternal.c:57 > >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x1623c00=2C fd=3D9=2C re= > >ad=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001'= > >) at ../src/thread/PTHREAD/ThreadPThread.m3:627 > >> #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=3D9=2C read=3D1 '\001'= > >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > >> #4 0x003344ff in TCP__GetBytesFD (t=3D0x267015c=2C arr=3D0x2690040=2C tim= > >eout=3D-1) at ../src/POSIX/TCP.m3:326 > >> #5 0x003365ce in ConnRW__RdSeek (rd=3D0x2690010=2C pos=3D0=2C dontBlock= > >=3D0 '\0') at ../src/common/ConnRW.m3:69 > >> #6 0x003424e3 in Rd__GetLine (rd=3D0x2690010) at ../src/rw/Rd.m3:426 > >> #7 0x00256bb0 in UpdateMonitor__InApplyP (cl=3D0x269204c) at ../src/Updat= > >eMonitor.m3:240 > >> #8 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623c00) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #9 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623c00) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #10 0x9713885d in _pthread_start () > >> #11 0x971386e2 in thread_start () > >> > >> Thread 31 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x1623470=2C j=3D0= > >x1623ba0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x1623b40=2C m=3D0x2670220= > >=2C c=3D0x267022c=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2670220=2C c=3D0x267022c) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002567b1 in UpdateMonitor__OutApplyP (p=3D0x267017c) at ../src/Updat= > >eMonitor.m3:178 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623b40) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623b40) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 30 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23016c0=2C j=3D0= > >x2305a80) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2305a20=2C m=3D0x2660378= > >=2C c=3D0x26603ac=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2660378=2C c=3D0x26603ac) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x00259145 in DesynchronizedDB__PApply (p=3D0x26603bc) at ../src/Desyn= > >chronizedDB.m3:216 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2305a20) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2305a20) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 29 (process 67010): > >> #0 0x9716c1d6 in __wait4 () > >> #1 0x9716c1c9 in waitpid$UNIX2003 () > >> #2 0x003add58 in Uexec__waitpid (i=3D67040=2C j=3D0xb0e36b4c=2C k=3D0) at= > > ../src/unix/Common/Uexec.c:67 > >> #3 0x003aaa51 in SchedulerPosix__WaitProcess (pid=3D67040=2C status=3D0xb= > >0e36b4c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 > >> #4 0x0033ca19 in Process__Wait (p=3D0x2650590) at ../src/os/POSIX/Process= > >PosixCommon.m3:275 > >> #5 0x002ffdf6 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:18= > >5 > >> #6 0x003007c1 in ProcUtils__Apply (self=3D0x2640284) at ../src/ProcUtils.= > >m3:274 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x16233b0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x16233b0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 28 (process 67010): > >> #0 0x9719ea7e in poll$UNIX2003 () > >> #1 0x003a7b74 in ThreadInternal__Poll (fd=3D7=2C read=3D1=2C m3timeout=3D= > >1) at ../src/thread/Common/ThreadInternal.c:57 > >> #2 0x003aa8f1 in ThreadPThread__XIOWait (self=3D0x1623300=2C fd=3D7=2C re= > >ad=3D1 '\001'=2C interval=3D1.7976931348623157e+308=2C alertable=3D1 '\001'= > >) at ../src/thread/PTHREAD/ThreadPThread.m3:627 > >> #3 0x003aa7db in SchedulerPosix__IOAlertWait (fd=3D7=2C read=3D1 '\001'= > >=2C timeoutInterval=3D-1) at ../src/thread/PTHREAD/ThreadPThread.m3:603 > >> #4 0x003344ff in TCP__GetBytesFD (t=3D0x26402c4=2C arr=3D0x2642358=2C tim= > >eout=3D-1) at ../src/POSIX/TCP.m3:326 > >> #5 0x003365ce in ConnRW__RdSeek (rd=3D0x2642328=2C pos=3D0=2C dontBlock= > >=3D0 '\0') at ../src/common/ConnRW.m3:69 > >> #6 0x0033f64d in Rd__DoSeek (rd=3D0x2642328) at ../src/rw/Rd.m3:54 > >> #7 0x0033f3d6 in UnsafeRd__FastGetChar (rd=3D0x2642328) at ../src/rw/Rd.m= > >3:43 > >> #8 0x0033f32d in Rd__GetChar (rd=3D0x2642328) at ../src/rw/Rd.m3:34 > >> #9 0x002b26e9 in ReadLine__ReadALine (t=3D0x264000c) at ../src/ReadLine.m= > >3:151 > >> #10 0x002b4a56 in ReadLine__ReadLine (t=3D0x264000c) at ../src/ReadLine.m= > >3:411 > >> #11 0x0022a383 in SchemeReadLine__GetCh (p=3D0x2644364) at ../src/SchemeR= > >eadLine.m3:80 > >> #12 0x0024e942 in SchemeInputPort__NextToken (t=3D0x2644364=2C wx=3D0x264= > >43e8) at ../src/SchemeInputPort.m3:309 > >> #13 0x0024e0bb in SchemeInputPort__Read (t=3D0x2644364) at ../src/SchemeI= > >nputPort.m3:177 > >> #14 0x0022abaa in SchemeReadLine__MainLoop (rl=3D0x264000c=2C scm=3D0x256= > >b9e4) at ../src/SchemeReadLine.m3:146 > >> #15 0x00006bb7 in Main__SCApply (c=3D0x263fed0) at ../src/Main.m3:92 > >> #16 0x003a9c5b in ThreadPThread__RunThread (me=3D0x1623300) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #17 0x003a998a in ThreadPThread__ThreadBase (param=3D0x1623300) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #18 0x9713885d in _pthread_start () > >> #19 0x971386e2 in thread_start () > >> > >> Thread 27 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x161bd50) at ../= > >src/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7faf in ThreadPThread__LockMutex (m=3D0x25400a4) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:119 > >> #4 0x002c77db in SXLongReal__Update (v=3D0x2540010=2C newValue=3D12937197= > >75.9374268=2C when=3D1293719775.9374378) at ../I386_DARWIN/SXLongReal.m3 = > >=3D> ../src/SXType.mg:79 > >> #5 0x002c7abe in SXLongReal__SetVar (v=3D0x2540010=2C newValue=3D12937197= > >75.9374268=2C when=3D1293719775.9374378) at ../I386_DARWIN/SXLongReal.m3 = > >=3D> ../src/SXType.mg:98 > >> #6 0x002eaaf7 in SXTimer__Loop (cl=3D0x21e11cc) at ../src/SXTimer.m3:64 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161b610) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161b610) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 26 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23016a0=2C j=3D0= > >x2301670) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2301610=2C m=3D0x2114828= > >=2C c=3D0x2114858=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2114828=2C c=3D0x2114858) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x000974c8 in GCOMSOrderStatus__Apply (cl=3D0x2114868) at ../src/GCOMS= > >OrderStatus.m3:166 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2301610) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2301610) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 25 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300540=2C j=3D0= > >x2301580) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x23015b0=2C m=3D0x211476c= > >=2C c=3D0x2114778=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x211476c=2C c=3D0x2114778) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x0009d268 in GCOMSBusyOrders__Apply (cl=3D0x2114788) at ../src/GCOMSB= > >usyOrders.m3:63 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23015b0) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23015b0) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 24 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300d90=2C j=3D0= > >x2300d60) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300d00=2C m=3D0x21d0044= > >=2C c=3D0x21d0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x21d0044=2C c=3D0x21d0050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0bace84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0bace84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2111418) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2111548) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300d00) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300d00) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 23 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300ce0=2C j=3D0= > >x2300cb0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300c50=2C m=3D0x21c0044= > >=2C c=3D0x21c0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x21c0044=2C c=3D0x21c0050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0b2ae84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0b2ae84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2111288) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x21113b8) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300c50) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300c50) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 22 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300c30=2C j=3D0= > >x2300c00) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300ba0=2C m=3D0x21b0044= > >=2C c=3D0x21b0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x21b0044=2C c=3D0x21b0050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0aa8e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0aa8e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110fd8) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2111108) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300ba0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300ba0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 21 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300b80=2C j=3D0= > >x2300b50) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300af0=2C m=3D0x21a0044= > >=2C c=3D0x21a0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x21a0044=2C c=3D0x21a0050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0a26e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0a26e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110e50) at ../src/SX.m3:151 > >> #9 0x00163596 in CurrencySXProxy__Apply (cl=3D0x2110f78) at ../I386_DARWI= > >N/CurrencySXProxy.m3 =3D> /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300af0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300af0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 20 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300a10=2C j=3D0= > >x23009e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300980=2C m=3D0x2190044= > >=2C c=3D0x2190050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2190044=2C c=3D0x2190050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb09a4e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb09a4e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110b48) at ../src/SX.m3:151 > >> #9 0x002bf3d5 in BoolSXProxy__Apply (cl=3D0x2110c70) at ../I386_DARWIN/Bo= > >olSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300980) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300980) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 19 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300960=2C j=3D0= > >x2300930) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x23008d0=2C m=3D0x2180044= > >=2C c=3D0x2180050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2180044=2C c=3D0x2180050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0922e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0922e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x21109b8) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2110ae8) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23008d0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23008d0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 18 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23008b0=2C j=3D0= > >x2300880) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300820=2C m=3D0x2170044= > >=2C c=3D0x2170050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2170044=2C c=3D0x2170050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb08a0e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb08a0e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110828) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2110958) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300820) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300820) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 17 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300800=2C j=3D0= > >x23007d0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300770=2C m=3D0x2160044= > >=2C c=3D0x2160050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2160044=2C c=3D0x2160050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb081ee84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb081ee84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110698) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x21107c8) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300770) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300770) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 16 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300750=2C j=3D0= > >x2300720) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x23006c0=2C m=3D0x2150044= > >=2C c=3D0x2150050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2150044=2C c=3D0x2150050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb079ce84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb079ce84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110508) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2110638) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x23006c0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x23006c0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 15 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23006a0=2C j=3D0= > >x2300670) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300610=2C m=3D0x2140044= > >=2C c=3D0x2140050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2140044=2C c=3D0x2140050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb071ae84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb071ae84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2110378) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x21104a8) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300610) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300610) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 14 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161af10=2C j=3D0= > >x161aee0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161ae80=2C m=3D0x2130044= > >=2C c=3D0x2130050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2130044=2C c=3D0x2130050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0698e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0698e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x21101e8) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2110318) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161ae80) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161ae80) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 13 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23005f0=2C j=3D0= > >x23005c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300560=2C m=3D0x2120044= > >=2C c=3D0x2120050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2120044=2C c=3D0x2120050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0616e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0616e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20c0c40) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x21100ac) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300560) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300560) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 12 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23004c0=2C j=3D0= > >x2300490) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300430=2C m=3D0x2080044= > >=2C c=3D0x2080050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2080044=2C c=3D0x2080050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0594e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0594e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20c0ab0) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x20c0be0) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300430) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300430) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 11 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x2300410=2C j=3D0= > >x23003e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300380=2C m=3D0x20f0044= > >=2C c=3D0x20f0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x20f0044=2C c=3D0x20f0050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0512e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0512e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20c0920) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x20c0a50) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300380) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300380) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 10 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161aad0=2C j=3D0= > >x161aaa0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161aa40=2C m=3D0x20b0044= > >=2C c=3D0x20b0050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x20b0044=2C c=3D0x20b0050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0490e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0490e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020e88) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020fb8) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161aa40) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161aa40) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 9 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x23002a0=2C j=3D0= > >x2300270) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x2300210=2C m=3D0x2090044= > >=2C c=3D0x2090050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2090044=2C c=3D0x2090050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb040ee84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb040ee84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020cf8) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020e28) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x2300210) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x2300210) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 8 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a9c0=2C j=3D0= > >x161a990) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a930=2C m=3D0x20e0034= > >=2C c=3D0x20e0040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x20e0034=2C c=3D0x20e0040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb038ce84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb038ce84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020a48) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020b78) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a930) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a930) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 7 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a910=2C j=3D0= > >x161a8e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a880=2C m=3D0x20a0034= > >=2C c=3D0x20a0040=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x20a0034=2C c=3D0x20a0040) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb030ae84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb030ae84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20208c0) at ../src/SX.m3:151 > >> #9 0x00163596 in CurrencySXProxy__Apply (cl=3D0x20209e8) at ../I386_DARWI= > >N/CurrencySXProxy.m3 =3D> /Users/mika/t/calarm/m3readline/src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a880) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a880) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 6 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a860=2C j=3D0= > >x161a830) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a7d0=2C m=3D0x2050044= > >=2C c=3D0x2050050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2050044=2C c=3D0x2050050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0288e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0288e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020658) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020788) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a7d0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a7d0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 5 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a7b0=2C j=3D0= > >x161a780) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a720=2C m=3D0x2040044= > >=2C c=3D0x2040050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2040044=2C c=3D0x2040050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0206e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0206e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x20204c8) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x20205f8) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a720) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a720) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 4 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x161a290=2C j=3D0= > >x161a6f0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a690=2C m=3D0x2030044= > >=2C c=3D0x2030050=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x2030044=2C c=3D0x2030050) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002c5482 in SXSelect__WaitE (on=3D0xb0184e84=2C except=3D0x0=2C touc= > >hed=3D0x0) at ../src/SX.m3:239 > >> #7 0x002c4acd in SXSelect__Wait (on=3D0xb0184e84=2C touched=3D0x0) at ../= > >src/SX.m3:149 > >> #8 0x002c4b21 in SXSelect__Wait1 (on=3D0x2020338) at ../src/SX.m3:151 > >> #9 0x002c01db in LongRealSXProxy__Apply (cl=3D0x2020468) at ../I386_DARWI= > >N/LongRealSXProxy.m3 =3D> ../src/SXProxy.mg:74 > >> #10 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a690) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #11 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a690) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #12 0x9713885d in _pthread_start () > >> #13 0x971386e2 in thread_start () > >> > >> Thread 3 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x1619840=2C j=3D0= > >x161a600) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x161a230=2C m=3D0x202008c= > >=2C c=3D0x202007c=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003a853e in Thread__Wait (m=3D0x202008c=2C c=3D0x202007c) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:204 > >> #6 0x002ba948 in VarProxyDefs__NotifyApply (cl=3D0x2020098) at ../src/Var= > >ProxyDefs.m3:55 > >> #7 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a230) at ../src/thre= > >ad/PTHREAD/ThreadPThread.m3:450 > >> #8 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a230) at ../src/= > >thread/PTHREAD/ThreadPThread.m3:422 > >> #9 0x9713885d in _pthread_start () > >> #10 0x971386e2 in thread_start () > >> > >> Thread 2 (process 67010): > >> #0 0x9710b142 in semaphore_wait_signal_trap () > >> #1 0x97110c46 in pthread_mutex_lock () > >> #2 0x003ad616 in ThreadPThread__pthread_mutex_lock (i=3D0x5d3ac0) at ../s= > >rc/thread/PTHREAD/ThreadPThreadC.c:463 > >> #3 0x003a7ebe in ThreadPThread__InitMutex (m=3D0x20100ac=2C root=3D0x2010= > >0a8=2C Clean=3D0x3a7d52) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > >> #4 0x003a7f82 in ThreadPThread__LockMutex (m=3D0x20100a8) at ../src/threa= > >d/PTHREAD/ThreadPThread.m3:117 > >> #5 0x0033f30b in Rd__GetChar (rd=3D0x20100a8) at ../src/rw/Rd.m3:33 > >> #6 0x0034dffd in Lex__Skip (rd=3D0x20100a8=2C cs=3D0x548018) at ../src/fm= > >tlex/Lex.m3:46 > >> #7 0x003503c3 in Lex__ReadReal (rd=3D0x20100a8=2C sign=3D0xb00809e3=2C di= > >gits=3D0xb00809fc=2C digCnt=3D0xb00809e8=2C exp=3D0xb00809ec) at ../src/fmt= > >lex/Lex.m3:569 > >> #8 0x00350ef5 in Lex__LongReal (rd=3D0x20100a8) at ../src/fmtlex/Lex.m3:6= > >62 > >> #9 0x003518f1 in Scan__LongReal (txt=3D0x201007c) at ../src/fmtlex/Scan.m= > >3:77 > >> #10 0x0030ef75 in XTime__ClApply (cl=3D0x2004624) at ../src/XTime.m3:185 > >> #11 0x003a9c5b in ThreadPThread__RunThread (me=3D0x161a0b0) at ../src/thr= > >ead/PTHREAD/ThreadPThread.m3:450 > >> #12 0x003a998a in ThreadPThread__ThreadBase (param=3D0x161a0b0) at ../src= > >/thread/PTHREAD/ThreadPThread.m3:422 > >> #13 0x9713885d in _pthread_start () > >> #14 0x971386e2 in thread_start () > >> > >> Thread 1 (process 67010): > >> #0 0x971390a6 in __semwait_signal () > >> #1 0x97138d62 in _pthread_cond_wait () > >> #2 0x9713a9f8 in pthread_cond_wait$UNIX2003 () > >> #3 0x003ad4ce in ThreadPThread__pthread_cond_wait (i=3D0x16076f0=2C j=3D0= > >x16076c0) at ../src/thread/PTHREAD/ThreadPThreadC.c:415 > >> #4 0x003a842f in ThreadPThread__XWait (self=3D0x1607660=2C m=3D0x2000084= > >=2C c=3D0x30eb8bc=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPTh= > >read.m3:182 > >> #5 0x003aa1f3 in ThreadPThread__XJoin (self=3D0x1607660=2C t=3D0x30eb8a0= > >=2C alertable=3D0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:513 > >> #6 0x003aa2f5 in Thread__Join (t=3D0x30eb8a0) at ../src/thread/PTHREAD/Th= > >readPThread.m3:525 > >> #7 0x002ff2b8 in ProcUtils__Wait (c=3D0x30eb800) at ../src/ProcUtils.m3:3= > >18 > >> #8 0x00234ebd in SchemeCommandRunner__RealRunTimeoutCommandApply (proc=3D= > >0x21e0b44=2C interp=3D0x3241ec4=2C args=3D0x30e775c) at ../src/SchemeComman= > >dRunner.m3:164 > >> #9 0x00234b4f in SchemeCommandRunner__RunTimeoutCommandApply (proc=3D0x21= > >e0b44=2C interp=3D0x3241ec4=2C args=3D0x30e775c) at ../src/SchemeCommandRun= > >ner.m3:129 > >> #10 0x00234217 in SchemeCommandRunner__RunCommandApply (proc=3D0x21e0b44= > >=2C interp=3D0x3241ec4=2C args=3D0x30e7744) at ../src/SchemeCommandRunner.m= > >3:23 > >> #11 0x0024b81b in SchemePrimitive__EDApply (ed=3D0x21e01c0=2C t=3D0x32458= > >44=2C interp=3D0x3241ec4=2C args=3D0x30e7744) at ../src/SchemePrimitive.m3:= > >207 > >> #12 0x00246509 in SchemePrimitive__Prims (t=3D0x3245844=2C interp=3D0x324= > >1ec4=2C args=3D0x30e7744=2C x=3D0x30e5cfc=2C y=3D0x30e7730=2C free=3D0xbfff= > >ea1f) at ../src/SchemePrimitive.m3:580 > >> #13 0x0024b1cb in SchemePrimitive__Apply2 (t=3D0x3245844=2C interp=3D0x32= > >41ec4=2C a1=3D0x30e5cfc=2C a2=3D0x30e7730) at ../src/SchemePrimitive.m3:549 > >> #14 0x0023c16f in Scheme__EvalInternal (t=3D0x3241ec4=2C x=3D0x30e5c5c=2C= > > env=3D0x30e76b4) at ../src/Scheme.m3:585 > >> #15 0x0023bedf in Scheme__EvalInternal (t=3D0x3241ec4=2C x=3D0x30e5bac=2C= > > env=3D0x30e76b4) at ../src/Scheme.m3:582 > >> #16 0x0023c35e in Scheme__Eval (t=3D0x3241ec4=2C x=3D0x30e6a6c=2C envP=3D= > >0x3241f0c) at ../src/Scheme.m3:353 > >> #17 0x00239bcf in Scheme__EvalInGlobalEnv (t=3D0x3241ec4=2C x=3D0x30e6a6c= > >) at ../src/Scheme.m3:603 > >> #18 0x0002972b in SchemeCalculator__Calc (t=3D0x3241eb4=2C arr=3D0xbfffee= > >3c) at ../src/SchemeCalculator.m3:61 > >> #19 0x0000c8af in EuroDriver__Loop (t=3D0x3205a80) at ../src/EuroDriver.m= > >3:289 > >> #20 0x00008781 in Main_M3 (mode=3D1) at ../src/Main.m3:268 > >> #21 0x0039d83d in RTLinker__RunMainBody (m=3D0x55e420) at ../src/runtime/= > >common/RTLinker.m3:406 > >> #22 0x0039cc99 in RTLinker__AddUnitI (m=3D0x55e420) at ../src/runtime/com= > >mon/RTLinker.m3:113 > >> #23 0x0039cd1a in RTLinker__AddUnit (b=3D0x6be3) at ../src/runtime/common= > >/RTLinker.m3:122 > >> #24 0x0000528c in main (argc=3D19=2C argv=3D0xbffff330=2C envp=3D0xbffff3= > >80) at _m3main.c:16 > > = From mika at async.caltech.edu Sun Jan 9 10:35:33 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Sun, 09 Jan 2011 01:35:33 -0800 Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <20110109023648.2344ACC37A@birch.elegosoft.com> References: <20110109023648.2344ACC37A@birch.elegosoft.com> Message-ID: <20110109093533.74F061A205B@async.async.caltech.edu> Jay did you expect this to fix things? I'm still seeing the same problems... Jay Krell writes: >CVSROOT: /usr/cvs >Changes by: jkrell at birch. 11/01/09 03:36: >46 > >Modified files: > cm3/m3-libs/m3core/src/thread/PTHREAD/: > ThreadPThread.m3 > >Log message: > LockHeap later in ForkPrepare, try to f >ix deadlock with mutex initialization From hosking at cs.purdue.edu Sun Jan 9 10:52:27 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 9 Jan 2011 04:52:27 -0500 Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <20110109093533.74F061A205B@async.async.caltech.edu> References: <20110109023648.2344ACC37A@birch.elegosoft.com> <20110109093533.74F061A205B@async.async.caltech.edu> Message-ID: <166140D0-E5D0-43D3-BF61-BDB3604B7A6D@cs.purdue.edu> Jay, don't you need to order your unlocks in AtForkParent in reverse order to AtForkPrepare? That means you'd need to UnlockHeap before unlocking the other mutexes. On Jan 9, 2011, at 4:35 AM, Mika Nystrom wrote: > Jay did you expect this to fix things? > > I'm still seeing the same problems... > > > > Jay Krell writes: >> CVSROOT: /usr/cvs >> Changes by: jkrell at birch. 11/01/09 03:36: >> 46 >> >> Modified files: >> cm3/m3-libs/m3core/src/thread/PTHREAD/: >> ThreadPThread.m3 >> >> Log message: >> LockHeap later in ForkPrepare, try to f >> ix deadlock with mutex initialization From hosking at cs.purdue.edu Sun Jan 9 11:27:20 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 9 Jan 2011 05:27:20 -0500 Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <166140D0-E5D0-43D3-BF61-BDB3604B7A6D@cs.purdue.edu> References: <20110109023648.2344ACC37A@birch.elegosoft.com> <20110109093533.74F061A205B@async.async.caltech.edu> <166140D0-E5D0-43D3-BF61-BDB3604B7A6D@cs.purdue.edu> Message-ID: Jay, In order to support AtForkPrepare I think we will need to rework LockHeap. I'm working on it now. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 9, 2011, at 4:52 AM, Tony Hosking wrote: > Jay, don't you need to order your unlocks in AtForkParent in reverse order to AtForkPrepare? > That means you'd need to UnlockHeap before unlocking the other mutexes. > > On Jan 9, 2011, at 4:35 AM, Mika Nystrom wrote: > >> Jay did you expect this to fix things? >> >> I'm still seeing the same problems... >> >> >> >> Jay Krell writes: >>> CVSROOT: /usr/cvs >>> Changes by: jkrell at birch. 11/01/09 03:36: >>> 46 >>> >>> Modified files: >>> cm3/m3-libs/m3core/src/thread/PTHREAD/: >>> ThreadPThread.m3 >>> >>> Log message: >>> LockHeap later in ForkPrepare, try to f >>> ix deadlock with mutex initialization > From jay.krell at cornell.edu Sun Jan 9 22:03:15 2011 From: jay.krell at cornell.edu (Jay K) Date: Sun, 9 Jan 2011 21:03:15 +0000 Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: References: <20110109023648.2344ACC37A@birch.elegosoft.com>, <20110109093533.74F061A205B@async.async.caltech.edu>, <166140D0-E5D0-43D3-BF61-BDB3604B7A6D@cs.purdue.edu>, Message-ID: Right, oops, sorry, obvious error on my part? to leave the unlock order the same. I don't know what rework LockHeap needs though. Maybe there is a problem with it allowing recursion? i.e. ForkPrepare should assert that the lock count is 1? ?- Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Sun, 9 Jan 2011 05:27:20 -0500 > To: hosking at cs.purdue.edu > CC: jkrell at elego.de; m3devel at elegosoft.com > Subject: Re: [M3devel] [M3commit] CVS Update: cm3 > > Jay, > > In order to support AtForkPrepare I think we will need to rework LockHeap. > I'm working on it now. > > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 | Mobile +1 765 427 5484 > > > > > On Jan 9, 2011, at 4:52 AM, Tony Hosking wrote: > > > Jay, don't you need to order your unlocks in AtForkParent in reverse order to AtForkPrepare? > > That means you'd need to UnlockHeap before unlocking the other mutexes. > > > > On Jan 9, 2011, at 4:35 AM, Mika Nystrom wrote: > > > >> Jay did you expect this to fix things? > >> > >> I'm still seeing the same problems... > >> > >> > >> > >> Jay Krell writes: > >>> CVSROOT: /usr/cvs > >>> Changes by: jkrell at birch. 11/01/09 03:36: > >>> 46 > >>> > >>> Modified files: > >>> cm3/m3-libs/m3core/src/thread/PTHREAD/: > >>> ThreadPThread.m3 > >>> > >>> Log message: > >>> LockHeap later in ForkPrepare, try to f > >>> ix deadlock with mutex initialization > > > From rcolebur at SCIRES.COM Tue Jan 11 03:11:34 2011 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Mon, 10 Jan 2011 21:11:34 -0500 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: References: <20110107151412.026651A205B@async.async.caltech.edu>, <10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu> Message-ID: Yes, if you are going to hold multiple locks, need to define a partial lock order to avoid deadlock. Also, recall that I committed some test programs a while back to test multiple threads. These may prove helpful in debugging what is going on. Regards, Randy -----Original Message----- From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K Sent: Friday, January 07, 2011 3:31 PM To: Tony; Mika Nystrom Cc: m3devel Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? We need a lock order. I guessed. Maybe poorly. I/we should study the code and these stacks more and determine its validity. Here is the code, *slightly* altered just now for debuggability. VAR locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; PROCEDURE AtForkPrepare() = VAR me := GetActivation(); act: Activation; cond: Condition; BEGIN Acquire(joinMu); LockHeap(); FOR i := FIRST(locks) TO LAST(locks) DO PThreadLockMutex(locks[i], ThisLine(), i); END; (* Walk activations and lock all threads, conditions. * NOTE: We have initMu, activeMu, so slots * won't change, conditions and mutexes * won't be initialized on-demand. *) act := me; REPEAT PThreadLockMutex(act.mutex, ThisLine(), -1); (*PThreadLockMutex(act.waitingOn, ThisLine());*) cond := slots[act.slot].join; IF cond # NIL THEN PThreadLockMutex(cond.mutex, ThisLine(), -2) END; act := act.next; UNTIL act = me; END AtForkPrepare; Mika, if this easy to reproduce, please try again from head. The problem is not fixed, but there's a little more information that will appear. - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Fri, 7 Jan 2011 10:42:38 -0500 > To: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > This has something to do with the fork handlers Jay introduced, which run when a process is forked. They invoke LockHeap in the parent before the fork, and UnlockHeap in the parent after the fork. It appears that your threads are stuck waiting on LockHeap. Also, we have two threads in your trace trying to acquire initMu. Jay, I think we have a deadlock caused by AtForkPrepare. Ideas? > > On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: > > > Hi m3devel (especially Tony), > > > > I'm having a problem with a Modula-3 program that seems to deadlock > > with one of my 60+ threads stuck in Process.Create. Is it possible > > there is a bug in ThreadPThread.m3? (Would be really nice to have a > > deadlock detector here, you know... rather than have the program go > > catatonic when there's a deadlock. Deadlock is stable so the detector > > could run very infrequently---i.e., be very inefficient---and still be > > extremely useful....) > > > > I don't think there is anything I ought to be able to do from "user > > code" that would cause Process.Create to be part of a deadlock cycle. > > Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) > > possibly exhibit itself as a failure of Process.Create to complete?? > > > > Below are backtraces of the threads stuck in some sort of locking > > activity, platform is I386_DARWIN at head as of a couple of weeks ago. > > (I deleted the threads that are up to other things than locking.) > > > > Mika > > > > Thread 68 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 > > #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 > > #5 0x97137217 in _cthread_fork_prepare () > > #6 0x97137155 in fork () > > #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC > > ommon.m3:75 > > #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 > > #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 > > #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 > > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #13 0x9713885d in _pthread_start () > > #14 0x971386e2 in thread_start () > > > > Thread 65 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 > > #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 > > #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 > > #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > > #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 > > #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 > > #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 > > #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 > > #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 > > #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 > > #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 > > #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 > > #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 > > #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 > > #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 > > #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 > > #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > > #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > > #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > > #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 > > #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #33 0x9713885d in _pthread_start () > > #34 0x971386e2 in thread_start () > > > > Thread 64 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 > > #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 > > #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 > > #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 > > #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 > > #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 > > #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 > > #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 > > #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 > > #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 > > #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 > > #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 > > #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 > > #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 > > #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 > > #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 > > #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 > > #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 > > #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #28 0x9713885d in _pthread_start () > > #29 0x971386e2 in thread_start () > > > > Thread 60 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > > #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > > #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 > > #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 > > #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 > > #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 > > #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 > > #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #12 0x9713885d in _pthread_start () > > #13 0x971386e2 in thread_start () > > > > Thread 59 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 > > #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 > > #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 > > #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 > > #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 > > #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 > > #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 > > #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 > > #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 > > #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 > > #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 > > #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 > > #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #19 0x9713885d in _pthread_start () > > #20 0x971386e2 in thread_start () > > > > Thread 52 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 > > #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 > > #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 > > #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 > > #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 > > #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 > > #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 > > #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 > > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #14 0x9713885d in _pthread_start () > > #15 0x971386e2 in thread_start () > > > > Thread 51 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 > > #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 > > #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 > > #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 > > #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 > > #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 > > #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 > > #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 > > #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 > > #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #14 0x9713885d in _pthread_start () > > #15 0x971386e2 in thread_start () > > > > Thread 27 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 > > #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 > > #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 > > #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 > > #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #9 0x9713885d in _pthread_start () > > #10 0x971386e2 in thread_start () > > > > Thread 2 (process 32362): > > #0 0x9710b142 in semaphore_wait_signal_trap () > > #1 0x97110c46 in pthread_mutex_lock () > > #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 > > #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > > #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > > #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 > > #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 > > #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 > > #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 > > #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 > > #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 > > #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > > #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > > #13 0x9713885d in _pthread_start () > > #14 0x971386e2 in thread_start () > > > > > From hosking at cs.purdue.edu Tue Jan 11 04:49:04 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 10 Jan 2011 22:49:04 -0500 Subject: [M3devel] deadlock... in ThreadPThread.m3? In-Reply-To: References: <20110107151412.026651A205B@async.async.caltech.edu>, <10EF74CE-C2C3-478F-8DED-49CC62A6260F@cs.purdue.edu> Message-ID: I'm reworking it. On Jan 10, 2011, at 9:11 PM, Coleburn, Randy wrote: > Yes, if you are going to hold multiple locks, need to define a partial lock order to avoid deadlock. > Also, recall that I committed some test programs a while back to test multiple threads. These may prove helpful in debugging what is going on. > Regards, > Randy > > -----Original Message----- > From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K > Sent: Friday, January 07, 2011 3:31 PM > To: Tony; Mika Nystrom > Cc: m3devel > Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? > > > We need a lock order. I guessed. Maybe poorly. I/we should study the code and these stacks more and determine its validity. > > > Here is the code, *slightly* altered just now for debuggability. > > > VAR > locks := ARRAY [0..3] OF pthread_mutex_t{activeMu, slotsMu, initMu, perfMu}; > > > > PROCEDURE AtForkPrepare() = > VAR me := GetActivation(); > act: Activation; > cond: Condition; > BEGIN > Acquire(joinMu); > LockHeap(); > FOR i := FIRST(locks) TO LAST(locks) DO > PThreadLockMutex(locks[i], ThisLine(), i); > END; > (* Walk activations and lock all threads, conditions. > * NOTE: We have initMu, activeMu, so slots > * won't change, conditions and mutexes > * won't be initialized on-demand. > *) > act := me; > REPEAT > PThreadLockMutex(act.mutex, ThisLine(), -1); > (*PThreadLockMutex(act.waitingOn, ThisLine());*) > cond := slots[act.slot].join; > IF cond # NIL THEN PThreadLockMutex(cond.mutex, ThisLine(), -2) END; > act := act.next; > UNTIL act = me; > END AtForkPrepare; > > > > Mika, if this easy to reproduce, please try again from head. > The problem is not fixed, but there's a little more information that will appear. > > > - Jay > > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Fri, 7 Jan 2011 10:42:38 -0500 >> To: mika at async.caltech.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] deadlock... in ThreadPThread.m3? >> >> This has something to do with the fork handlers Jay introduced, which run when a process is forked. They invoke LockHeap in the parent before the fork, and UnlockHeap in the parent after the fork. It appears that your threads are stuck waiting on LockHeap. Also, we have two threads in your trace trying to acquire initMu. Jay, I think we have a deadlock caused by AtForkPrepare. Ideas? >> >> On Jan 7, 2011, at 10:14 AM, Mika Nystrom wrote: >> >>> Hi m3devel (especially Tony), >>> >>> I'm having a problem with a Modula-3 program that seems to deadlock >>> with one of my 60+ threads stuck in Process.Create. Is it possible >>> there is a bug in ThreadPThread.m3? (Would be really nice to have a >>> deadlock detector here, you know... rather than have the program go >>> catatonic when there's a deadlock. Deadlock is stable so the detector >>> could run very infrequently---i.e., be very inefficient---and still be >>> extremely useful....) >>> >>> I don't think there is anything I ought to be able to do from "user >>> code" that would cause Process.Create to be part of a deadlock cycle. >>> Or could a "user code" deadlock cycle (cycle of Modula-3 MUTEXes) >>> possibly exhibit itself as a failure of Process.Create to complete?? >>> >>> Below are backtraces of the threads stuck in some sort of locking >>> activity, platform is I386_DARWIN at head as of a couple of weeks ago. >>> (I deleted the threads that are up to other things than locking.) >>> >>> Mika >>> >>> Thread 68 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003c36e1 in ThreadPThread__PThreadLockMutex (mutex=0x613c20, line=1279) at ../src/thread/PTHREAD/ThreadPThread.m3:1256 >>> #4 0x003c37e3 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1279 >>> #5 0x97137217 in _cthread_fork_prepare () >>> #6 0x97137155 in fork () >>> #7 0x00352910 in ProcessPosixCommon__Create_ForkExec (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosixC >>> ommon.m3:75 >>> #8 0x00353de5 in Process__Create (cmd=0x242c2ac, params=0x242c3ac, env=0x0, wd=0x57bf44, stdin=0x0, stdout=0x239f9a4, stderr=0x2433508) at ../src/os/POSIX/ProcessPosix.m3:21 >>> #9 0x00316384 in ProcUtils__Apply__Exec.1072 () at ../src/ProcUtils.m3:180 >>> #10 0x00316d6e in ProcUtils__Apply (self=0x242f160) at ../src/ProcUtils.m3:274 >>> #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2009600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #13 0x9713885d in _pthread_start () >>> #14 0x971386e2 in thread_start () >>> >>> Thread 65 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x242a6f8, root=0x242a6f4, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >>> #4 0x003befce in ThreadPThread__LockMutex (m=0x242a6f4) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >>> #5 0x00355ff6 in Rd__GetChar (rd=0x242a6f4) at ../src/rw/Rd.m3:33 >>> #6 0x00364b5d in Lex__Skip (rd=0x242a6f4, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 >>> #7 0x00366e53 in Lex__ReadReal (rd=0x242a6f4, sign=0xb1cf0603, digits=0xb1cf061c, digCnt=0xb1cf0608, exp=0xb1cf060c) at ../src/fmtlex/Lex.m3:569 >>> #8 0x003678f0 in Lex__LongReal (rd=0x242a6f4) at ../src/fmtlex/Lex.m3:662 >>> #9 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 >>> #10 0x002603f5 in SchemeInputPort__NextToken (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:439 >>> #11 0x00260756 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a4a8) at ../src/SchemeInputPort.m3:240 >>> #12 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>> #13 0x0025edad in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:191 >>> #14 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x242a40c) at ../src/SchemeInputPort.m3:240 >>> #15 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>> #16 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239ddc4) at ../src/SchemeInputPort.m3:240 >>> #17 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>> #18 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239dc4c) at ../src/SchemeInputPort.m3:240 >>> #19 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>> #20 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239da8c) at ../src/SchemeInputPort.m3:240 >>> #21 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>> #22 0x00260738 in SchemeInputPort__ReadTail2 (t=0x2380de4, wx=0x239d9b4) at ../src/SchemeInputPort.m3:240 >>> #23 0x0025ebdd in SchemeInputPort__Read (t=0x2380de4) at ../src/SchemeInputPort.m3:179 >>> #24 0x0024db82 in Scheme__LoadPort (t=0x237018c, in=0x2380de4) at ../src/Scheme.m3:317 >>> #25 0x0024ae56 in Scheme__LoadRd (t=0x237018c, rd=0x2379cfc, fn=0x0) at ../src/Scheme.m3:174 >>> #26 0x0024e659 in Scheme__ReadInitialFiles (t=0x237018c, files=0x4afc8c) at ../src/Scheme.m3:134 >>> #27 0x0024ea46 in Scheme__Init2 (t=0x237018c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 >>> #28 0x0024a89a in Scheme__Init (t=0x237018c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 >>> #29 0x0002abbc in SchemeCalculator__Init (t=0x237017c, code=0x225541c) at ../src/SchemeCalculator.m3:28 >>> #30 0x0000e373 in EuroDriver__OApply (cl=0x2367b70) at ../src/EuroDriver.m3:865 >>> #31 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #32 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008b80) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #33 0x9713885d in _pthread_start () >>> #34 0x971386e2 in thread_start () >>> >>> Thread 64 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 >>> #4 0x003b023b in RTHeapRep__RegisterFinalCleanup (r=0x2430f38, p=0x3bed6f) at ../src/runtime/common/RTCollector.m3:2148 >>> #5 0x003bef65 in ThreadPThread__InitMutex (m=0x2430f3c, root=0x2430f38, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:106 >>> #6 0x003befce in ThreadPThread__LockMutex (m=0x2430f38) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >>> #7 0x00355ff6 in Rd__GetChar (rd=0x2430f38) at ../src/rw/Rd.m3:33 >>> #8 0x00364b5d in Lex__Skip (rd=0x2430f38, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 >>> #9 0x00366e53 in Lex__ReadReal (rd=0x2430f38, sign=0xb1c6e7c3, digits=0xb1c6e7dc, digCnt=0xb1c6e7c8, exp=0xb1c6e7cc) at ../src/fmtlex/Lex.m3:569 >>> #10 0x003678f0 in Lex__LongReal (rd=0x2430f38) at ../src/fmtlex/Lex.m3:662 >>> #11 0x0036834e in Scan__LongReal (txt=0x1753494) at ../src/fmtlex/Scan.m3:77 >>> #12 0x002603f5 in SchemeInputPort__NextToken (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:439 >>> #13 0x00260756 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430e44) at ../src/SchemeInputPort.m3:240 >>> #14 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 >>> #15 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430db0) at ../src/SchemeInputPort.m3:240 >>> #16 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 >>> #17 0x00260738 in SchemeInputPort__ReadTail2 (t=0x237ede4, wx=0x2430cd8) at ../src/SchemeInputPort.m3:240 >>> #18 0x0025ebdd in SchemeInputPort__Read (t=0x237ede4) at ../src/SchemeInputPort.m3:179 >>> #19 0x0024db82 in Scheme__LoadPort (t=0x236e18c, in=0x237ede4) at ../src/Scheme.m3:317 >>> #20 0x0024ae56 in Scheme__LoadRd (t=0x236e18c, rd=0x2377cfc, fn=0x0) at ../src/Scheme.m3:174 >>> #21 0x0024e659 in Scheme__ReadInitialFiles (t=0x236e18c, files=0x4afc8c) at ../src/Scheme.m3:134 >>> #22 0x0024ea46 in Scheme__Init2 (t=0x236e18c, input=0x15ac4ec, output=0x15ac514, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:127 >>> #23 0x0024a89a in Scheme__Init (t=0x236e18c, files=0x4afc8c, env=0x0) at ../src/Scheme.m3:102 >>> #24 0x0002abbc in SchemeCalculator__Init (t=0x236e17c, code=0x225541c) at ../src/SchemeCalculator.m3:28 >>> #25 0x0000e373 in EuroDriver__OApply (cl=0x2367ad8) at ../src/EuroDriver.m3:865 >>> #26 0x003c0ea5 in ThreadPThread__RunThread (me=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #27 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2008af0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #28 0x9713885d in _pthread_start () >>> #29 0x971386e2 in thread_start () >>> >>> Thread 60 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x2006bc0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003befff in ThreadPThread__LockMutex (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:119 >>> #4 0x003bed47 in Thread__Acquire (m=0x22cc724) at ../src/thread/PTHREAD/ThreadPThread.m3:81 >>> #5 0x002d9fb9 in SX__Lock (arr=0x235a9a4) at ../src/SX.m3:318 >>> #6 0x002d983f in SXSelect__WaitE (on=0xb1beccd8, except=0x0, touched=0x0) at ../src/SX.m3:241 >>> #7 0x002d8e0d in SXSelect__Wait (on=0xb1beccd8, touched=0x0) at ../src/SX.m3:149 >>> #8 0x00010c7d in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:832 >>> #9 0x0000e830 in EuroDriver__OApply (cl=0x22aad10) at ../src/EuroDriver.m3:892 >>> #10 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #11 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007080) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #12 0x9713885d in _pthread_start () >>> #13 0x971386e2 in thread_start () >>> >>> Thread 59 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x2354a24, root=0x2354a20, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >>> #4 0x003befce in ThreadPThread__LockMutex (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >>> #5 0x003bed47 in Thread__Acquire (m=0x2354a20) at ../src/thread/PTHREAD/ThreadPThread.m3:81 >>> #6 0x00359e60 in RdClass__Lock (rd=0x2354a20) at ../src/rw/Rd.m3:521 >>> #7 0x0025e4c4 in SchemeInputPort__Lock (t=0x2354b08) at ../src/SchemeInputPort.m3:72 >>> #8 0x0025f3dc in SchemeInputPort__NextToken (t=0x2354b08, wx=0x2354b28) at ../src/SchemeInputPort.m3:299 >>> #9 0x0025eb94 in SchemeInputPort__Read (t=0x2354b08) at ../src/SchemeInputPort.m3:177 >>> #10 0x0024aea9 in Scheme__LoadEval (t=0x224418c, rd=0x2354a20) at ../src/Scheme.m3:291 >>> #11 0x0024af22 in Scheme__LoadEvalText (t=0x224418c, txt=0x225541c) at ../src/Scheme.m3:306 >>> #12 0x0002ad28 in SchemeCalculator__Calc (t=0x224417c, arr=0xb1b6ab04) at ../src/SchemeCalculator.m3:47 >>> #13 0x0000f37c in EuroDriver__OApply__CalcOrderSize.1137 () at ../src/EuroDriver.m3:564 >>> #14 0x0000ece1 in EuroDriver__OApply__SafetyViolation.1126 () at ../src/EuroDriver.m3:507 >>> #15 0x00010a04 in EuroDriver__OApply__MainLoop.1174 () at ../src/EuroDriver.m3:795 >>> #16 0x0000e830 in EuroDriver__OApply (cl=0x22aac78) at ../src/EuroDriver.m3:892 >>> #17 0x003c0ea5 in ThreadPThread__RunThread (me=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #18 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2007020) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #19 0x9713885d in _pthread_start () >>> #20 0x971386e2 in thread_start () >>> >>> Thread 52 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 >>> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=24, dataAlignment=4, thread=0x161e144) at ../src/runtime/common/RTAllocator.m3:363 >>> #5 0x003a5a99 in RTAllocator__GetTracedObj (def=0x616d54) at ../src/runtime/common/RTAllocator.m3:224 >>> #6 0x003a550f in RTHooks__AllocateTracedObj (defn=0x616d54) at ../src/runtime/common/RTAllocator.m3:122 >>> #7 0x003d3c0e in RTHooks__Concat (t=0x23669ec, u=0x56c460) at ../src/text/TextCat.m3:28 >>> #8 0x002b0dc2 in TWSTester__MakeString (contract=0xb19e4dc0) at ../src/TWSTester.m3:92 >>> #9 0x002b11ac in TWSTester__ReqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTester.m3:136 >>> #10 0x002bccaf in TWSTestBridge__MreqMktData (t=0x2220800, tickerId=3, contract=0xb19e4dc0) at ../src/TWSTestBridge.m3 => ../src/TWSBridgeG.mg:580 >>> #11 0x002978ec in PMTWS__TSCApply (cl=0x2221044) at ../src/PMTWS.m3:210 >>> #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161e100) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #14 0x9713885d in _pthread_start () >>> #15 0x971386e2 in thread_start () >>> >>> Thread 51 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613ca0) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003c3bb3 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1336 >>> #4 0x003a66fc in RTAllocator__AllocTraced (dataSize=136, dataAlignment=8, thread=0x16265a4) at ../src/runtime/common/RTAllocator.m3:363 >>> #5 0x003a581e in RTAllocator__GetTracedRef (def=0x5b1280) at ../src/runtime/common/RTAllocator.m3:202 >>> #6 0x003a54da in RTHooks__AllocateTracedRef (defn=0x5b1280) at ../src/runtime/common/RTAllocator.m3:115 >>> #7 0x000b03d0 in IntDBTable_gcoms_instrumentTbl__Put (tbl=0x235f464, key=0xb1962d7c, val=0xb1962d00) at ../I386_DARWIN/IntDBTable_gcoms_instrumentTbl.m3 => /usr/local/cm3/pkg/libm3/src/table/Table.mg:126 >>> #8 0x000ad244 in DBTable_gcoms_instrumentMonitor__CopyC (cl=0x228c080, res=0x235f464) at ../I386_DARWIN/DBTable_gcoms_instrumentMonitor.m3 => /Users/mika/t/calarm/ratsql/src/TableMonitor.mg:362 >>> #9 0x0008c6de in GCOMSPortfolio__Lock (t=0x2255cd8) at ../src/GCOMSPortfolio.m3:94 >>> #10 0x00029faa in SXPortfolio__Scan (t=0x229a888) at ../src/SXPortfolio.m3:47 >>> #11 0x0002a998 in SXPortfolio__Apply (cl=0x222057c) at ../src/SXPortfolio.m3:113 >>> #12 0x003c0ea5 in ThreadPThread__RunThread (me=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #13 0x003c0b9a in ThreadPThread__ThreadBase (param=0x1626560) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #14 0x9713885d in _pthread_start () >>> #15 0x971386e2 in thread_start () >>> >>> Thread 27 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x161e470) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003befff in ThreadPThread__LockMutex (m=0x22440a4) at ../src/thread/PTHREAD/ThreadPThread.m3:119 >>> #4 0x002dbd63 in SXLongReal__Update (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:79 >>> #5 0x002dc086 in SXLongReal__SetVar (v=0x2244010, newValue=1293721230.087589, when=1293721230.087605) at ../I386_DARWIN/SXLongReal.m3 => ../src/SXType.mg:98 >>> #6 0x00300c16 in SXTimer__Loop (cl=0x173934c) at ../src/SXTimer.m3:64 >>> #7 0x003c0ea5 in ThreadPThread__RunThread (me=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #8 0x003c0b9a in ThreadPThread__ThreadBase (param=0x2001ec0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #9 0x9713885d in _pthread_start () >>> #10 0x971386e2 in thread_start () >>> >>> Thread 2 (process 32362): >>> #0 0x9710b142 in semaphore_wait_signal_trap () >>> #1 0x97110c46 in pthread_mutex_lock () >>> #2 0x003c4a0a in ThreadPThread__pthread_mutex_lock (i=0x613c20) at ../src/thread/PTHREAD/ThreadPThreadC.c:452 >>> #3 0x003beefd in ThreadPThread__InitMutex (m=0x23480ac, root=0x23480a8, Clean=0x3bed6f) at ../src/thread/PTHREAD/ThreadPThread.m3:101 >>> #4 0x003befce in ThreadPThread__LockMutex (m=0x23480a8) at ../src/thread/PTHREAD/ThreadPThread.m3:117 >>> #5 0x00355ff6 in Rd__GetChar (rd=0x23480a8) at ../src/rw/Rd.m3:33 >>> #6 0x00364b5d in Lex__Skip (rd=0x23480a8, cs=0x587ff8) at ../src/fmtlex/Lex.m3:46 >>> #7 0x00366e53 in Lex__ReadReal (rd=0x23480a8, sign=0xb0080ca3, digits=0xb0080cbc, digCnt=0xb0080ca8, exp=0xb0080cac) at ../src/fmtlex/Lex.m3:569 >>> #8 0x003678f0 in Lex__LongReal (rd=0x23480a8) at ../src/fmtlex/Lex.m3:662 >>> #9 0x0036834e in Scan__LongReal (txt=0x234807c) at ../src/fmtlex/Scan.m3:77 >>> #10 0x003260a0 in XTime__ClApply (cl=0x15971b8) at ../src/XTime.m3:185 >>> #11 0x003c0ea5 in ThreadPThread__RunThread (me=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 >>> #12 0x003c0b9a in ThreadPThread__ThreadBase (param=0x161a0b0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 >>> #13 0x9713885d in _pthread_start () >>> #14 0x971386e2 in thread_start () >>> >>> >> > From hosking at cs.purdue.edu Tue Jan 11 06:58:35 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 11 Jan 2011 00:58:35 -0500 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: References: <20110106002615.77E782474003@birch.elegosoft.com>, , , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu> Message-ID: I know what the problem is. The fix is not particularly pretty, and will entail tracking the stack types for integers (Int32 or Int64) throughout code generation. This all leads me to wonder why we don't simply back LONGINT out of the language. [I had mentioned my increasing unease with LONGINT in a prior e-mail a long time ago.] We can replace LONGINT with Longint and Longword: Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] and define signed operations in Longint and unsigned operations in Longword. These can be implemented efficiently as wrappers to appropriate C routines operating on "long long" or inlined if performance is a particular concern. We can provide conversion routines to/from INTEGER as needs. Other than handling 64-bit file offsets, etc., does anyone really make use of LONGINT that argues convincingly for it to be retained? On Jan 8, 2011, at 6:55 PM, Jay K wrote: > > Thank you much. Please notice there are 2 or 3 similar problems. This shows only 1. > See test p250. > > > MODULE Main; > > PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; > > PROCEDURE F2() = > <*UNUSED*>VAR x: [0L..0L]; > BEGIN > END F2; > > PROCEDURE F3() = > VAR x: [0L..0L]; > BEGIN > F1(x); > END F3; > > BEGIN > F1(0L); > F2(); > F3(); > END Main. > > i.e. initializing local 0L..0L. > Passing 0L..0L parameter. > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Sat, 8 Jan 2011 16:59:33 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] codegen error (from Mika, new test p250) >> >> I'll look into this one. >> >> Antony Hosking | Associate Professor | Computer Science | Purdue University >> 305 N. University Street | West Lafayette | IN 47907 | USA >> Office +1 765 494 6001 | Mobile +1 765 427 5484 >> >> >> >> >> On Jan 8, 2011, at 12:17 AM, Jay K wrote: >> >>> >>> fyi, small repro: >>> >>> >>> MODULE Main; >>> >>> VAR x: [0L..0L]; >>> >>> PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; >>> >>> BEGIN >>> F2(x); >>> END Main. >>> >>> (32) start_call_direct procedure:0x4 level:0 >>> (33) load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 >>> (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] >>> (35) pop_param type:int_64 >>> >>> >>> - Jay >>> >>> >>> ________________________________ >>>> From: jay.krell at cornell.edu >>>> To: m3devel at elegosoft.com; mika at async.caltech.edu >>>> Subject: RE: codegen error (from Mika, new test p250) >>>> Date: Thu, 6 Jan 2011 01:21:00 +0000 >>>> >>>> fyi: >>>> >>>> jbook2:p250 jay$ rm -rf I386_DARWIN/ >>>> jbook2:p250 jay$ cm3 -keep >>>> --- building in I386_DARWIN --- >>>> >>>> new source -> compiling Main.m3 >>>> "../Main.m3", line 1: 1 code generation error >>>> 1 error encountered >>>> compilation failed => not building program "pgm" >>>> Fatal Error: package build failed >>>> jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment >>>> (4) comment comment:module global constants >>>> (6) comment comment:module global data >>>> (27) comment comment:F1 >>>> (34) comment comment:********* M3CG_Check ERROR >>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] >>>> (43) comment comment:F2 >>>> (73) comment comment:Main_M3 >>>> (74) comment comment:module main body Main_M3 >>>> (83) comment comment:global constant type descriptor >>>> (85) comment comment:global data type descriptor >>>> (87) comment comment:module global constants >>>> (90) comment comment:procedure names >>>> (94) comment comment:procedure table >>>> (101) comment comment:file name >>>> (103) comment comment:type map for _t0174bdf4 >>>> (106) comment comment:type description for _t0174bdf4 >>>> (110) comment comment:module global data >>>> (120) comment comment:typecell for _t0174bdf4 >>>> (141) comment comment:load map >>>> (4) comment comment:module global constants >>>> (6) comment comment:module global data >>>> (27) comment comment:F1 >>>> (34) comment comment:********* M3CG_Check ERROR >>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] >>>> (43) comment comment:F2 >>>> (73) comment comment:Main_M3 >>>> (74) comment comment:module main body Main_M3 >>>> (83) comment comment:global constant type descriptor >>>> (85) comment comment:global data type descriptor >>>> (87) comment comment:module global constants >>>> (90) comment comment:procedure names >>>> (94) comment comment:procedure table >>>> (101) comment comment:file name >>>> (103) comment comment:type map for _t0174bdf4 >>>> (106) comment comment:type description for _t0174bdf4 >>>> (110) comment comment:module global data >>>> (120) comment comment:typecell for _t0174bdf4 >>>> (141) comment comment:load map >>>> >>>> >>>> - Jay >>>> >>>> >>>>> Date: Thu, 6 Jan 2011 01:26:15 +0000 >>>>> To: m3commit at elegosoft.com >>>>> From: jkrell at elego.de >>>>> Subject: [M3commit] CVS Update: cm3 >>>>> >>>>> CVSROOT: /usr/cvs >>>>> Changes by: jkrell at birch. 11/01/06 01:26:15 >>>>> >>>>> Modified files: >>>>> cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 >>>>> >>>>> Log message: >>>>> slightly simpler, same error >>>>> >>> >> > From jay.krell at cornell.edu Tue Jan 11 08:33:57 2011 From: jay.krell at cornell.edu (Jay K) Date: Tue, 11 Jan 2011 07:33:57 +0000 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: References: <20110106002615.77E782474003@birch.elegosoft.com>, , , , , , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu>, , Message-ID: Quibbling with the details: Is this legal, on a 32bit system? Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] And even if it is legal, it is of dubious correctness, eh? For implementation of this in Modula-3, you want the low word to be unsigned and the high word to be signed. Granted, you want full range unsigned, so, like, Word.T, but you want 32 bits. There should therefore be, like, interfaces Word32 and Word64 (ok, you already have Long). As well, the implementation on 64bit targets will perhaps suffer. As well, does it work for 64bit targets? Isn't [00000...FFFFFFFF] 64 bits? Maybe you'd say: Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF BITS 32 FOR [16_00000000..16_FFFFFFFF] And then, *really*, you want the order/significance of the words to be endian-specific. So, you'd want perhaps 3 implementations: 64bit: Longint.T = INTEGER 32bit big endian: Longint.T = RECORD high: INTEGER; low: Word.T; END; 32bit little endian: Longint.T = RECORD low: Word.T; high: INTEGER; END; or maybe just two: ?big endian: Longint.T = RECORD high: some-32bit-signed-type; low: some-32bit-psuedo-unsigned-type; END; ?little endian: Longint.T = RECORD low some-32bit-psuedo-unsigned-type; low: some-32bit-signed-type; END; Ultimately, the very very very general true point is: ? extension via library is probably generally easier ? BUT only makes for good results in an adequate language, e.g. one with operator overloading! Surely surely the compiler isn't so unmalleable? ie. we aren't stuck with the language asis because the compiler is too hard to change? I can't argue too strongly in favor of LONGINT. But..definitely there should be some reasonable convenient efficient way for dealing with 64bit integers. ? 32bit C implementations have had very good mechanisms for 25+ years. ? It does seem a shame we seemingly can't/won't compete. And still. interface Rd/Wr I believe still need work.. Probably to add a parallel set of functions ending in "L". ?- Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Tue, 11 Jan 2011 00:58:35 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] codegen error (from Mika, new test p250) > > I know what the problem is. The fix is not particularly pretty, and will entail tracking the stack types for integers (Int32 or Int64) throughout code generation. > > This all leads me to wonder why we don't simply back LONGINT out of the language. > [I had mentioned my increasing unease with LONGINT in a prior e-mail a long time ago.] > > We can replace LONGINT with Longint and Longword: > > Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] > > and define signed operations in Longint and unsigned operations in Longword. > These can be implemented efficiently as wrappers to appropriate C routines operating on "long long" or inlined if performance is a particular concern. We can provide conversion routines to/from INTEGER as needs. > > Other than handling 64-bit file offsets, etc., does anyone really make use of LONGINT that argues convincingly for it to be retained? > > On Jan 8, 2011, at 6:55 PM, Jay K wrote: > > > > > Thank you much. Please notice there are 2 or 3 similar problems. This shows only 1. > > See test p250. > > > > > > MODULE Main; > > > > PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; > > > > PROCEDURE F2() = > > <*UNUSED*>VAR x: [0L..0L]; > > BEGIN > > END F2; > > > > PROCEDURE F3() = > > VAR x: [0L..0L]; > > BEGIN > > F1(x); > > END F3; > > > > BEGIN > > F1(0L); > > F2(); > > F3(); > > END Main. > > > > i.e. initializing local 0L..0L. > > Passing 0L..0L parameter. > > > > - Jay > > > > > > ---------------------------------------- > >> From: hosking at cs.purdue.edu > >> Date: Sat, 8 Jan 2011 16:59:33 -0500 > >> To: jay.krell at cornell.edu > >> CC: m3devel at elegosoft.com > >> Subject: Re: [M3devel] codegen error (from Mika, new test p250) > >> > >> I'll look into this one. > >> > >> Antony Hosking | Associate Professor | Computer Science | Purdue University > >> 305 N. University Street | West Lafayette | IN 47907 | USA > >> Office +1 765 494 6001 | Mobile +1 765 427 5484 > >> > >> > >> > >> > >> On Jan 8, 2011, at 12:17 AM, Jay K wrote: > >> > >>> > >>> fyi, small repro: > >>> > >>> > >>> MODULE Main; > >>> > >>> VAR x: [0L..0L]; > >>> > >>> PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; > >>> > >>> BEGIN > >>> F2(x); > >>> END Main. > >>> > >>> (32) start_call_direct procedure:0x4 level:0 > >>> (33) load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 > >>> (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] > >>> (35) pop_param type:int_64 > >>> > >>> > >>> - Jay > >>> > >>> > >>> ________________________________ > >>>> From: jay.krell at cornell.edu > >>>> To: m3devel at elegosoft.com; mika at async.caltech.edu > >>>> Subject: RE: codegen error (from Mika, new test p250) > >>>> Date: Thu, 6 Jan 2011 01:21:00 +0000 > >>>> > >>>> fyi: > >>>> > >>>> jbook2:p250 jay$ rm -rf I386_DARWIN/ > >>>> jbook2:p250 jay$ cm3 -keep > >>>> --- building in I386_DARWIN --- > >>>> > >>>> new source -> compiling Main.m3 > >>>> "../Main.m3", line 1: 1 code generation error > >>>> 1 error encountered > >>>> compilation failed => not building program "pgm" > >>>> Fatal Error: package build failed > >>>> jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment > >>>> (4) comment comment:module global constants > >>>> (6) comment comment:module global data > >>>> (27) comment comment:F1 > >>>> (34) comment comment:********* M3CG_Check ERROR > >>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] > >>>> (43) comment comment:F2 > >>>> (73) comment comment:Main_M3 > >>>> (74) comment comment:module main body Main_M3 > >>>> (83) comment comment:global constant type descriptor > >>>> (85) comment comment:global data type descriptor > >>>> (87) comment comment:module global constants > >>>> (90) comment comment:procedure names > >>>> (94) comment comment:procedure table > >>>> (101) comment comment:file name > >>>> (103) comment comment:type map for _t0174bdf4 > >>>> (106) comment comment:type description for _t0174bdf4 > >>>> (110) comment comment:module global data > >>>> (120) comment comment:typecell for _t0174bdf4 > >>>> (141) comment comment:load map > >>>> (4) comment comment:module global constants > >>>> (6) comment comment:module global data > >>>> (27) comment comment:F1 > >>>> (34) comment comment:********* M3CG_Check ERROR > >>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] > >>>> (43) comment comment:F2 > >>>> (73) comment comment:Main_M3 > >>>> (74) comment comment:module main body Main_M3 > >>>> (83) comment comment:global constant type descriptor > >>>> (85) comment comment:global data type descriptor > >>>> (87) comment comment:module global constants > >>>> (90) comment comment:procedure names > >>>> (94) comment comment:procedure table > >>>> (101) comment comment:file name > >>>> (103) comment comment:type map for _t0174bdf4 > >>>> (106) comment comment:type description for _t0174bdf4 > >>>> (110) comment comment:module global data > >>>> (120) comment comment:typecell for _t0174bdf4 > >>>> (141) comment comment:load map > >>>> > >>>> > >>>> - Jay > >>>> > >>>> > >>>>> Date: Thu, 6 Jan 2011 01:26:15 +0000 > >>>>> To: m3commit at elegosoft.com > >>>>> From: jkrell at elego.de > >>>>> Subject: [M3commit] CVS Update: cm3 > >>>>> > >>>>> CVSROOT: /usr/cvs > >>>>> Changes by: jkrell at birch. 11/01/06 01:26:15 > >>>>> > >>>>> Modified files: > >>>>> cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > >>>>> > >>>>> Log message: > >>>>> slightly simpler, same error > >>>>> > >>> > >> > > > From jay.krell at cornell.edu Tue Jan 11 08:36:06 2011 From: jay.krell at cornell.edu (Jay K) Date: Tue, 11 Jan 2011 07:36:06 +0000 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: References: <20110106002615.77E782474003@birch.elegosoft.com>, , , , , , , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu>, , , Message-ID: ps: can M3CG_Check be pushed into service to do the work? You know, it is already tracking everything and where the detection/error is currently. Can we make it, like, required, and have it cast/loophole as needed? Or is this too late and it might miss problems, such as incorrect/unchecked narrowing? ?- Jay ---------------------------------------- > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: RE: [M3devel] codegen error (from Mika, new test p250) > Date: Tue, 11 Jan 2011 07:33:57 +0000 > > > Quibbling with the details: > > Is this legal, on a 32bit system? > > Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] > > And even if it is legal, it is of dubious correctness, eh? > For implementation of this in Modula-3, you want the low word to be unsigned and the high word to be signed. > Granted, you want full range unsigned, so, like, Word.T, but you want 32 bits. > > There should therefore be, like, interfaces Word32 and Word64 (ok, you already have Long). > > As well, the implementation on 64bit targets will perhaps suffer. > > As well, does it work for 64bit targets? Isn't [00000...FFFFFFFF] 64 bits? > Maybe you'd say: > Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF BITS 32 FOR [16_00000000..16_FFFFFFFF] > > > And then, *really*, you want the order/significance of the words to be endian-specific. > > So, you'd want perhaps 3 implementations: > > 64bit: Longint.T = INTEGER > 32bit big endian: Longint.T = RECORD high: INTEGER; low: Word.T; END; > 32bit little endian: Longint.T = RECORD low: Word.T; high: INTEGER; END; > > > > or maybe just two: > > big endian: Longint.T = RECORD high: some-32bit-signed-type; low: some-32bit-psuedo-unsigned-type; END; > little endian: Longint.T = RECORD low some-32bit-psuedo-unsigned-type; low: some-32bit-signed-type; END; > > > > Ultimately, the very very very general true point is: > extension via library is probably generally easier > BUT only makes for good results in an adequate language, e.g. one with operator overloading! > > > Surely surely the compiler isn't so unmalleable? > ie. we aren't stuck with the language asis because the compiler is too hard to change? > > > I can't argue too strongly in favor of LONGINT. > > > But..definitely there should be some reasonable convenient efficient way for dealing with 64bit integers. > 32bit C implementations have had very good mechanisms for 25+ years. > It does seem a shame we seemingly can't/won't compete. > > > And still. interface Rd/Wr I believe still need work.. > Probably to add a parallel set of functions ending in "L". > > - Jay > > > ---------------------------------------- > > From: hosking at cs.purdue.edu > > Date: Tue, 11 Jan 2011 00:58:35 -0500 > > To: jay.krell at cornell.edu > > CC: m3devel at elegosoft.com > > Subject: Re: [M3devel] codegen error (from Mika, new test p250) > > > > I know what the problem is. The fix is not particularly pretty, and will entail tracking the stack types for integers (Int32 or Int64) throughout code generation. > > > > This all leads me to wonder why we don't simply back LONGINT out of the language. > > [I had mentioned my increasing unease with LONGINT in a prior e-mail a long time ago.] > > > > We can replace LONGINT with Longint and Longword: > > > > Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] > > > > and define signed operations in Longint and unsigned operations in Longword. > > These can be implemented efficiently as wrappers to appropriate C routines operating on "long long" or inlined if performance is a particular concern. We can provide conversion routines to/from INTEGER as needs. > > > > Other than handling 64-bit file offsets, etc., does anyone really make use of LONGINT that argues convincingly for it to be retained? > > > > On Jan 8, 2011, at 6:55 PM, Jay K wrote: > > > > > > > > Thank you much. Please notice there are 2 or 3 similar problems. This shows only 1. > > > See test p250. > > > > > > > > > MODULE Main; > > > > > > PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; > > > > > > PROCEDURE F2() = > > > <*UNUSED*>VAR x: [0L..0L]; > > > BEGIN > > > END F2; > > > > > > PROCEDURE F3() = > > > VAR x: [0L..0L]; > > > BEGIN > > > F1(x); > > > END F3; > > > > > > BEGIN > > > F1(0L); > > > F2(); > > > F3(); > > > END Main. > > > > > > i.e. initializing local 0L..0L. > > > Passing 0L..0L parameter. > > > > > > - Jay > > > > > > > > > ---------------------------------------- > > >> From: hosking at cs.purdue.edu > > >> Date: Sat, 8 Jan 2011 16:59:33 -0500 > > >> To: jay.krell at cornell.edu > > >> CC: m3devel at elegosoft.com > > >> Subject: Re: [M3devel] codegen error (from Mika, new test p250) > > >> > > >> I'll look into this one. > > >> > > >> Antony Hosking | Associate Professor | Computer Science | Purdue University > > >> 305 N. University Street | West Lafayette | IN 47907 | USA > > >> Office +1 765 494 6001 | Mobile +1 765 427 5484 > > >> > > >> > > >> > > >> > > >> On Jan 8, 2011, at 12:17 AM, Jay K wrote: > > >> > > >>> > > >>> fyi, small repro: > > >>> > > >>> > > >>> MODULE Main; > > >>> > > >>> VAR x: [0L..0L]; > > >>> > > >>> PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; > > >>> > > >>> BEGIN > > >>> F2(x); > > >>> END Main. > > >>> > > >>> (32) start_call_direct procedure:0x4 level:0 > > >>> (33) load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 > > >>> (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] > > >>> (35) pop_param type:int_64 > > >>> > > >>> > > >>> - Jay > > >>> > > >>> > > >>> ________________________________ > > >>>> From: jay.krell at cornell.edu > > >>>> To: m3devel at elegosoft.com; mika at async.caltech.edu > > >>>> Subject: RE: codegen error (from Mika, new test p250) > > >>>> Date: Thu, 6 Jan 2011 01:21:00 +0000 > > >>>> > > >>>> fyi: > > >>>> > > >>>> jbook2:p250 jay$ rm -rf I386_DARWIN/ > > >>>> jbook2:p250 jay$ cm3 -keep > > >>>> --- building in I386_DARWIN --- > > >>>> > > >>>> new source -> compiling Main.m3 > > >>>> "../Main.m3", line 1: 1 code generation error > > >>>> 1 error encountered > > >>>> compilation failed => not building program "pgm" > > >>>> Fatal Error: package build failed > > >>>> jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment > > >>>> (4) comment comment:module global constants > > >>>> (6) comment comment:module global data > > >>>> (27) comment comment:F1 > > >>>> (34) comment comment:********* M3CG_Check ERROR > > >>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] > > >>>> (43) comment comment:F2 > > >>>> (73) comment comment:Main_M3 > > >>>> (74) comment comment:module main body Main_M3 > > >>>> (83) comment comment:global constant type descriptor > > >>>> (85) comment comment:global data type descriptor > > >>>> (87) comment comment:module global constants > > >>>> (90) comment comment:procedure names > > >>>> (94) comment comment:procedure table > > >>>> (101) comment comment:file name > > >>>> (103) comment comment:type map for _t0174bdf4 > > >>>> (106) comment comment:type description for _t0174bdf4 > > >>>> (110) comment comment:module global data > > >>>> (120) comment comment:typecell for _t0174bdf4 > > >>>> (141) comment comment:load map > > >>>> (4) comment comment:module global constants > > >>>> (6) comment comment:module global data > > >>>> (27) comment comment:F1 > > >>>> (34) comment comment:********* M3CG_Check ERROR > > >>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] > > >>>> (43) comment comment:F2 > > >>>> (73) comment comment:Main_M3 > > >>>> (74) comment comment:module main body Main_M3 > > >>>> (83) comment comment:global constant type descriptor > > >>>> (85) comment comment:global data type descriptor > > >>>> (87) comment comment:module global constants > > >>>> (90) comment comment:procedure names > > >>>> (94) comment comment:procedure table > > >>>> (101) comment comment:file name > > >>>> (103) comment comment:type map for _t0174bdf4 > > >>>> (106) comment comment:type description for _t0174bdf4 > > >>>> (110) comment comment:module global data > > >>>> (120) comment comment:typecell for _t0174bdf4 > > >>>> (141) comment comment:load map > > >>>> > > >>>> > > >>>> - Jay > > >>>> > > >>>> > > >>>>> Date: Thu, 6 Jan 2011 01:26:15 +0000 > > >>>>> To: m3commit at elegosoft.com > > >>>>> From: jkrell at elego.de > > >>>>> Subject: [M3commit] CVS Update: cm3 > > >>>>> > > >>>>> CVSROOT: /usr/cvs > > >>>>> Changes by: jkrell at birch. 11/01/06 01:26:15 > > >>>>> > > >>>>> Modified files: > > >>>>> cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > > >>>>> > > >>>>> Log message: > > >>>>> slightly simpler, same error > > >>>>> > > >>> > > >> > > > > > > From jay.krell at cornell.edu Tue Jan 11 09:06:58 2011 From: jay.krell at cornell.edu (Jay K) Date: Tue, 11 Jan 2011 08:06:58 +0000 Subject: [M3devel] debugability of AtForkPrepare? Message-ID: ? This makes AtForkPrepare more debuggable, by sometimes indicating mutexes by index instead of pointer. It doesn't otherwise change it. Good/bad? Index: ThreadPThread.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3,v retrieving revision 1.252 diff -u -w -r1.252 ThreadPThread.m3 --- ThreadPThread.m3??? 11 Jan 2011 05:13:59 -0000??? 1.252 +++ ThreadPThread.m3??? 11 Jan 2011 08:03:22 -0000 @@ -1250,23 +1250,26 @@ ?VAR locks := ARRAY [0..4] OF pthread_mutex_t ?? { initMu, heapMu, activeMu, slotsMu, perfMu }; ? -PROCEDURE PThreadLockMutex(mutex: pthread_mutex_t; line: INTEGER) = +PROCEDURE PThreadLockMutex(mutex: pthread_mutex_t; +?????????????????????????? line: INTEGER; +?????????????????????????? index: INTEGER := -1) = ?? BEGIN -??? IF mutex # NIL THEN +??? IF index >= 0 THEN <*ASSERT mutex = NIL*> mutex := locks[index]; END; +??? IF mutex = NIL THEN RETURN; END; ?????? WITH r = pthread_mutex_lock(mutex) DO ???????? IF r # 0 THEN DieI(line, r) END; ?????? END; -??? END; ?? END PThreadLockMutex; ? ?PROCEDURE PThreadUnlockMutex(mutex: pthread_mutex_t; -???????????????????????????? line: INTEGER) = +???????????????????????????? line: INTEGER; +???????????????????????????? index: INTEGER := -1) = ?? BEGIN -??? IF mutex # NIL THEN +??? IF index >= 0 THEN <*ASSERT mutex = NIL*> mutex := locks[index]; END; +??? IF mutex = NIL THEN RETURN; END; ?????? WITH r = pthread_mutex_unlock(mutex) DO ???????? IF r # 0 THEN DieI(line, r) END; ?????? END; -??? END; ?? END PThreadUnlockMutex; ? ?PROCEDURE AtForkPrepare() = @@ -1276,7 +1279,7 @@ ?? BEGIN ???? Acquire(joinMu); ???? FOR i := FIRST(locks) TO LAST(locks) DO -????? PThreadLockMutex(locks[i], ThisLine()); +????? PThreadLockMutex(NIL, ThisLine(), i); ???? END; ???? (* Walk activations and lock all threads, conditions. ????? * NOTE: We have initMu, activeMu, so slots @@ -1308,7 +1311,7 @@ ?????? act := act.next; ???? UNTIL act = me; ???? FOR i := LAST(locks) TO FIRST(locks) BY -1 DO -????? PThreadUnlockMutex(locks[i], ThisLine()); +????? PThreadUnlockMutex(NIL, ThisLine(), i); ???? END; ???? Release(joinMu); ?? END AtForkParent; From mika at async.caltech.edu Tue Jan 11 11:29:23 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Tue, 11 Jan 2011 02:29:23 -0800 Subject: [M3devel] Thread testing program Message-ID: <20110111102923.AF8001A205B@async.async.caltech.edu> Hello everyone, After studying failure modes and implementation of the current threading implementation in CM3, I've developed a little stress-testing program, attached. Currently it crashes in various ways. It takes one command-line argument, the approximate number of threads to create (e.g., 100). It creates threads of three types: reader (reads a file), forker (forks a process), allocator (allocates memory that constantly goes out of scope). Files attached below. Happy 1/11/11. Mika My m3makefile: import ("libm3") implementation ("Main") program ("threadtest") My m3overrides (optional): if defined("CM3_VERSION") /* Critical Mass Modula-3 */ % see http://www.elegosoft.com/cm3/doc/help/cm3/cm3.html % not sure about this: build_standalone() m3_optimize("") end My Main.m3: (* $Id: Main.m3,v 1.1 2011/01/11 10:06:21 mika Exp $ *) MODULE Main; (* threading stress-test *) IMPORT Params, Scan, Thread, Rd, FileRd, Wr, FileWr, Process; VAR n := Scan.Int(Params.Get(1)); PROCEDURE MakeReaderThread() = BEGIN EVAL Thread.Fork(NEW(Thread.Closure, apply := RApply)) END MakeReaderThread; PROCEDURE MakeForkerThread() = BEGIN EVAL Thread.Fork(NEW(Thread.Closure, apply := FApply)) END MakeForkerThread; PROCEDURE MakeAllocatorThread() = BEGIN EVAL Thread.Fork(NEW(Thread.Closure, apply := AApply)) END MakeAllocatorThread; (**********************************************************************) PROCEDURE RApply(cl : Thread.Closure) : REFANY = BEGIN LOOP WITH rd = FileRd.Open(Filename) DO TRY LOOP VAR c := Rd.GetChar(rd); BEGIN END END EXCEPT Rd.EndOfFile => Rd.Close(rd) END END END END RApply; PROCEDURE FApply(cl : Thread.Closure) : REFANY = BEGIN LOOP WITH proc = Process.Create("sleep", ARRAY OF TEXT { "1" }) DO EVAL Process.Wait(proc) END END END FApply; PROCEDURE AApply(cl : Thread.Closure) : REFANY = BEGIN LOOP VAR arr := NEW(REF ARRAY OF INTEGER, 1025); BEGIN FOR i := FIRST(arr^)+1 TO LAST(arr^) DO arr[i] := arr[i] - arr[i-1] END END END END AApply; CONST Filename = "hohum"; PROCEDURE WriteAFile() = BEGIN WITH wr = FileWr.Open(Filename) DO FOR i := 1 TO 256 DO FOR j := 1 TO i DO Wr.PutChar(wr, VAL(ORD('A') + i MOD 25, CHAR)) END; Wr.PutChar(wr, '\n') END END END WriteAFile; BEGIN WriteAFile(); FOR i := 1 TO n DIV 3 DO MakeReaderThread() END; FOR i := 1 TO n DIV 3 DO MakeForkerThread() END; FOR i := 1 TO n DIV 3 DO MakeAllocatorThread() END; LOOP Thread.Pause(1.0d0) END END Main. From mika at async.caltech.edu Tue Jan 11 11:39:41 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Tue, 11 Jan 2011 02:39:41 -0800 Subject: [M3devel] Thread testing program In-Reply-To: <20110111102923.AF8001A205B@async.async.caltech.edu> References: <20110111102923.AF8001A205B@async.async.caltech.edu> Message-ID: <20110111103941.587FD1A205B@async.async.caltech.edu> Hmm, to make that program really useful it needs two enhancements: 1. check that the threads are indeed created (on AMD64_LINUX, the system deadlocks for me after 50) 2. check that the running threads are, indeed, making some sort of progress... As it is it is useful in a debugger but not for any kind of automated or foolproof testing, yet. Mika Mika Nystrom writes: > >Hello everyone, > >After studying failure modes and implementation of the current >threading implementation in CM3, I've developed a little stress-testing >program, attached. Currently it crashes in various ways. > >It takes one command-line argument, the approximate number of threads >to create (e.g., 100). It creates threads of three types: >reader (reads a file), forker (forks a process), allocator (allocates >memory that constantly goes out of scope). > >Files attached below. Happy 1/11/11. > > Mika > >My m3makefile: > >import ("libm3") > >implementation ("Main") > >program ("threadtest") > >My m3overrides (optional): > > if defined("CM3_VERSION") > /* Critical Mass Modula-3 */ >% see http://www.elegosoft.com/cm3/doc/help/cm3/cm3.html > >% not sure about this: > build_standalone() > > m3_optimize("") >end > >My Main.m3: > > >(* $Id: Main.m3,v 1.1 2011/01/11 10:06:21 mika Exp $ *) > >MODULE Main; > >(* threading stress-test *) > >IMPORT Params, Scan, Thread, Rd, FileRd, Wr, FileWr, Process; > >VAR n := Scan.Int(Params.Get(1)); > >PROCEDURE MakeReaderThread() = > BEGIN > EVAL Thread.Fork(NEW(Thread.Closure, apply := RApply)) > END MakeReaderThread; > >PROCEDURE MakeForkerThread() = > BEGIN > EVAL Thread.Fork(NEW(Thread.Closure, apply := FApply)) > END MakeForkerThread; > >PROCEDURE MakeAllocatorThread() = > BEGIN > EVAL Thread.Fork(NEW(Thread.Closure, apply := AApply)) > END MakeAllocatorThread; > >(**********************************************************************) > >PROCEDURE RApply(cl : Thread.Closure) : REFANY = > BEGIN > LOOP > WITH rd = FileRd.Open(Filename) DO > TRY > LOOP > VAR c := Rd.GetChar(rd); BEGIN END > END > EXCEPT > Rd.EndOfFile => Rd.Close(rd) > END > END > END > END RApply; > >PROCEDURE FApply(cl : Thread.Closure) : REFANY = > BEGIN > LOOP > WITH proc = Process.Create("sleep", > ARRAY OF TEXT { "1" }) DO > EVAL Process.Wait(proc) > END > END > END FApply; > >PROCEDURE AApply(cl : Thread.Closure) : REFANY = > BEGIN > LOOP > VAR > arr := NEW(REF ARRAY OF INTEGER, 1025); > BEGIN > FOR i := FIRST(arr^)+1 TO LAST(arr^) DO > arr[i] := arr[i] - arr[i-1] > END > END > END > END AApply; > > >CONST Filename = "hohum"; > >PROCEDURE WriteAFile() = > BEGIN > WITH wr = FileWr.Open(Filename) DO > FOR i := 1 TO 256 DO > FOR j := 1 TO i DO > Wr.PutChar(wr, VAL(ORD('A') + i MOD 25, CHAR)) > END; > Wr.PutChar(wr, '\n') > END > END > END WriteAFile; > >BEGIN > WriteAFile(); > FOR i := 1 TO n DIV 3 DO > MakeReaderThread() > END; > FOR i := 1 TO n DIV 3 DO > MakeForkerThread() > END; > FOR i := 1 TO n DIV 3 DO > MakeAllocatorThread() > END; > > LOOP > Thread.Pause(1.0d0) > END >END Main. > From mika at async.caltech.edu Tue Jan 11 16:53:34 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Tue, 11 Jan 2011 07:53:34 -0800 Subject: [M3devel] thread testing program in CM3 Message-ID: <20110111155334.498471A205B@async.async.caltech.edu> Hi again, I added the thread "stress tester" to the CM3 repository in the following location: m3-libs/m3core/tests/thread It no longer takes any command-line arguments, and now it prints friendly diagnostics. On FreeBSD4 under PM3, I see the following output: (82)pluto:~/t/threadtest/src>../FreeBSD4/threadtest Writing file...done Creating reader threads...done Creating forker threads...done Creating allocator threads...done running... laziest thread is 1294760062 seconds behind laziest thread is 11 seconds behind laziest thread is 9 seconds behind laziest thread is 9 seconds behind laziest thread is 9 seconds behind laziest thread is 9 seconds behind laziest thread is 8 seconds behind laziest thread is 10 seconds behind laziest thread is 7 seconds behind laziest thread is 8 seconds behind (83)pluto:~/t/threadtest/src>m3build -version m3build: PM3 Version 1.1.15 (Tue Sep 5 17:16:07 EDT 2000) (84)pluto:~/t/threadtest/src>uname -a FreeBSD pluto.gcapltd.com 5.5-RELEASE FreeBSD 5.5-RELEASE #0: Mon Sep 24 13:34:44 CDT 2007 root at pluto.gcapltd.com:/usr/src/sys/i386/compile/PLUTO i386 10 seconds is about right for 100 threads and a 0.1-second time quantum (if memory serves, that's what PM3 user threads use?) Mika From rodney_bates at lcwb.coop Tue Jan 11 18:53:00 2011 From: rodney_bates at lcwb.coop (Rodney M. Bates) Date: Tue, 11 Jan 2011 11:53:00 -0600 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: References: <20110106002615.77E782474003@birch.elegosoft.com>, , , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu> Message-ID: <4D2C98FC.4030104@lcwb.coop> Tony Hosking wrote: > I know what the problem is. The fix is not particularly pretty, and will entail tracking the stack types for integers (Int32 or Int64) throughout code generation. > > This all leads me to wonder why we don't simply back LONGINT out of the language. > [I had mentioned my increasing unease with LONGINT in a prior e-mail a long time ago.] > > We can replace LONGINT with Longint and Longword: > > Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] Hmm, this is tricky. I think the BITS 64 FOR is not what we would want. First, it has no effect at all except when a Longint.T is a field of a record or object or an element of an array. Second, even in those cases, it would force the compiler _not_ to put any alignment padding ahead of the Longint.T field. The compiler could only choose between letting it be misaligned and generating code that would work on it that way, or, more likely, refusing to compile it. It does not force 64-bit alignment. This is all by existing rules of the language. Another thought would be: ARRAY [0..1] OF BITS 32 FOR [16_00000000..16_FFFFFFFF] This would lead to alignment within the array being as wanted, on both 32- and 64-bit machines. But as for the alignment of the entire array, it would not force anything. The alignment of an array type is naturally the alignment of its element type, but a Modula-3 BITS type has no alignment restriction at all, otherwise it could not be used as intended to allow programmer-controlled memory layout. There is another problem here. It stems from the fact that So-called "little endian" is an inconsistent system. It's only partly little-endian. To be consistently little-endian, it would have to read/write i/o streams into/from decreasing memory addresses and fetch instruction streams from decreasing addresses. It would then naturally result in the successively declared fields of records and elements of arrays (of increasing subscripts) being stored in decreasing addresses. So as it is, for either of these array types, we have: MSB LSB 0 1 2 3 4 5 6 7 <- big endian byte numbers in memory 7 6 5 4 3 2 1 0 <- hypothetical true little-endian 3 2 1 0 7 6 5 4 <- actual "little-endian" Actual little-endian numbers right-to-left only within each 32-bit piece, but left-to-right for the elements of the array. If this were a single scalar, instead of an array, the actual little-endian byte numbering would be the same as the middle line above. This means the array type, on a little-endian machine could not be passed to a normally-represented scalar formal parameter in any language. We could have a convention that the 32-bit words in the array were least significant in element zero, but that would just move the problem over to the big-endian machines. We could just require explicit conversion functions to be coded, but what type would they convert to? Note that we have to keep the semantics of BITS n FOR and [lb .. ub] consistent with the existing language, because these type constructors will be used for other purposes than just constructing Longint.T and Longword.T and surly are in lots of preexisting code. I don't see any way to both preserve language semantics and construct a longer integer type with decent properties using only preexisting types. I think we would have to say something like: "The types Longint.T and Longword.T are _just like_ " (but not equal to , so they could have unique rules). This would parallel the existing definition of CARDINAL as "just like [0 .. LAST(INTEGER)]" (but it's nevertheless a distinct type, so it pickles can do size adjustments on it, they way they do with INTEGER.) But once we resort to that and defining operators on it, I doubt it could be any cleaner or simpler than LONGINT. And I doubt it would simplify the subject compilation problem either. > > and define signed operations in Longint and unsigned operations in Longword. > These can be implemented efficiently as wrappers to appropriate C routines operating on "long long" or inlined if performance is a particular concern. We can provide conversion routines to/from INTEGER as needs. > > Other than handling 64-bit file offsets, etc., does anyone really make use of LONGINT that argues convincingly for it to be retained? > From hosking at cs.purdue.edu Tue Jan 11 20:29:09 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 11 Jan 2011 14:29:09 -0500 Subject: [M3devel] Thread testing program In-Reply-To: <20110111102923.AF8001A205B@async.async.caltech.edu> References: <20110111102923.AF8001A205B@async.async.caltech.edu> Message-ID: Did you stress test any older versions of M3? I believe we have had a number of regressions lately. On Jan 11, 2011, at 5:29 AM, Mika Nystrom wrote: > > Hello everyone, > > After studying failure modes and implementation of the current > threading implementation in CM3, I've developed a little stress-testing > program, attached. Currently it crashes in various ways. > > It takes one command-line argument, the approximate number of threads > to create (e.g., 100). It creates threads of three types: > reader (reads a file), forker (forks a process), allocator (allocates > memory that constantly goes out of scope). > > Files attached below. Happy 1/11/11. > > Mika > > My m3makefile: > > import ("libm3") > > implementation ("Main") > > program ("threadtest") > > My m3overrides (optional): > > if defined("CM3_VERSION") > /* Critical Mass Modula-3 */ > % see http://www.elegosoft.com/cm3/doc/help/cm3/cm3.html > > % not sure about this: > build_standalone() > > m3_optimize("") > end > > My Main.m3: > > > (* $Id: Main.m3,v 1.1 2011/01/11 10:06:21 mika Exp $ *) > > MODULE Main; > > (* threading stress-test *) > > IMPORT Params, Scan, Thread, Rd, FileRd, Wr, FileWr, Process; > > VAR n := Scan.Int(Params.Get(1)); > > PROCEDURE MakeReaderThread() = > BEGIN > EVAL Thread.Fork(NEW(Thread.Closure, apply := RApply)) > END MakeReaderThread; > > PROCEDURE MakeForkerThread() = > BEGIN > EVAL Thread.Fork(NEW(Thread.Closure, apply := FApply)) > END MakeForkerThread; > > PROCEDURE MakeAllocatorThread() = > BEGIN > EVAL Thread.Fork(NEW(Thread.Closure, apply := AApply)) > END MakeAllocatorThread; > > (**********************************************************************) > > PROCEDURE RApply(cl : Thread.Closure) : REFANY = > BEGIN > LOOP > WITH rd = FileRd.Open(Filename) DO > TRY > LOOP > VAR c := Rd.GetChar(rd); BEGIN END > END > EXCEPT > Rd.EndOfFile => Rd.Close(rd) > END > END > END > END RApply; > > PROCEDURE FApply(cl : Thread.Closure) : REFANY = > BEGIN > LOOP > WITH proc = Process.Create("sleep", > ARRAY OF TEXT { "1" }) DO > EVAL Process.Wait(proc) > END > END > END FApply; > > PROCEDURE AApply(cl : Thread.Closure) : REFANY = > BEGIN > LOOP > VAR > arr := NEW(REF ARRAY OF INTEGER, 1025); > BEGIN > FOR i := FIRST(arr^)+1 TO LAST(arr^) DO > arr[i] := arr[i] - arr[i-1] > END > END > END > END AApply; > > > CONST Filename = "hohum"; > > PROCEDURE WriteAFile() = > BEGIN > WITH wr = FileWr.Open(Filename) DO > FOR i := 1 TO 256 DO > FOR j := 1 TO i DO > Wr.PutChar(wr, VAL(ORD('A') + i MOD 25, CHAR)) > END; > Wr.PutChar(wr, '\n') > END > END > END WriteAFile; > > BEGIN > WriteAFile(); > FOR i := 1 TO n DIV 3 DO > MakeReaderThread() > END; > FOR i := 1 TO n DIV 3 DO > MakeForkerThread() > END; > FOR i := 1 TO n DIV 3 DO > MakeAllocatorThread() > END; > > LOOP > Thread.Pause(1.0d0) > END > END Main. > From rcolebur at SCIRES.COM Tue Jan 11 20:39:28 2011 From: rcolebur at SCIRES.COM (Coleburn, Randy) Date: Tue, 11 Jan 2011 14:39:28 -0500 Subject: [M3devel] thread testing program in CM3 In-Reply-To: <20110111155334.498471A205B@async.async.caltech.edu> References: <20110111155334.498471A205B@async.async.caltech.edu> Message-ID: Thought I would give Mika's test program a try on Windows7, but ran into a glitch. I first tried updating everything from HEAD and rebuilding. During 2nd stage of rebuild, I get a failure on creating the DLL for m3core. See below. Jay, any ideas on what is wrong? --Randy Microsoft (R) Incremental Linker Version 10.00.30319.01 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 RealFloat.io LongFloat.io ExtendedFloat.io IEEESpecial.io IEEESpecial.mo Real.mo LongReal.mo Extended.mo DragonInt.io DragonInt.mo DragonT.io DragonT.mo Real.io LongReal.io Extended.io RealFloat.mo LongFloat.mo ExtendedFloat.mo RealRep.io LongRealRep.io FPU.io FPU.mo FloatMode.io FloatMode.mo 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 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 Creating library m3core.lib and object m3core.exp LINK : warning LNK4199: /DELAYLOAD:advapi32.dll ignored; no imports found from advapi32.dll LINK : warning LNK4199: /DELAYLOAD:netapi32.dll ignored; no imports found from netapi32.dll LINK : warning LNK4199: /DELAYLOAD:rpcrt4.dll ignored; no imports found from rpcrt4.dll LINK : warning LNK4199: /DELAYLOAD:iphlpapid.dll ignored; no imports found from iphlpapid.dll RuntimeError.mo : error LNK2001: unresolved external symbol __alloca m3core.dll : fatal error LNK1120: 1 unresolved externals -----Original Message----- From: Mika Nystrom [mailto:mika at async.caltech.edu] Sent: Tuesday, January 11, 2011 10:54 AM To: m3devel at elegosoft.com Cc: jkrell at elego.de Subject: [M3devel] thread testing program in CM3 Hi again, I added the thread "stress tester" to the CM3 repository in the following location: m3-libs/m3core/tests/thread It no longer takes any command-line arguments, and now it prints friendly diagnostics. On FreeBSD4 under PM3, I see the following output: (82)pluto:~/t/threadtest/src>../FreeBSD4/threadtest Writing file...done Creating reader threads...done Creating forker threads...done Creating allocator threads...done running... laziest thread is 1294760062 seconds behind laziest thread is 11 seconds behind laziest thread is 9 seconds behind laziest thread is 9 seconds behind laziest thread is 9 seconds behind laziest thread is 9 seconds behind laziest thread is 8 seconds behind laziest thread is 10 seconds behind laziest thread is 7 seconds behind laziest thread is 8 seconds behind (83)pluto:~/t/threadtest/src>m3build -version m3build: PM3 Version 1.1.15 (Tue Sep 5 17:16:07 EDT 2000) (84)pluto:~/t/threadtest/src>uname -a FreeBSD pluto.gcapltd.com 5.5-RELEASE FreeBSD 5.5-RELEASE #0: Mon Sep 24 13:34:44 CDT 2007 root at pluto.gcapltd.com:/usr/src/sys/i386/compile/PLUTO i386 10 seconds is about right for 100 threads and a 0.1-second time quantum (if memory serves, that's what PM3 user threads use?) Mika From hosking at cs.purdue.edu Tue Jan 11 21:19:32 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 11 Jan 2011 15:19:32 -0500 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: References: <20110106002615.77E782474003@birch.elegosoft.com>, , , , , , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu>, , Message-ID: <0446FCD5-D75A-4D43-89E4-D69BE6208362@cs.purdue.edu> The point is that we want to have an opaque type. One that can only meaningfully be manipulated by predefined library routines. What the bits look like would be immaterial. On Jan 11, 2011, at 2:33 AM, Jay K wrote: > > Quibbling with the details: > > Is this legal, on a 32bit system? > > Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] > > And even if it is legal, it is of dubious correctness, eh? > For implementation of this in Modula-3, you want the low word to be unsigned and the high word to be signed. > Granted, you want full range unsigned, so, like, Word.T, but you want 32 bits. > > There should therefore be, like, interfaces Word32 and Word64 (ok, you already have Long). > > As well, the implementation on 64bit targets will perhaps suffer. > > As well, does it work for 64bit targets? Isn't [00000...FFFFFFFF] 64 bits? > Maybe you'd say: > Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF BITS 32 FOR [16_00000000..16_FFFFFFFF] > > > And then, *really*, you want the order/significance of the words to be endian-specific. > > So, you'd want perhaps 3 implementations: > > 64bit: Longint.T = INTEGER > 32bit big endian: Longint.T = RECORD high: INTEGER; low: Word.T; END; > 32bit little endian: Longint.T = RECORD low: Word.T; high: INTEGER; END; > > > > or maybe just two: > > big endian: Longint.T = RECORD high: some-32bit-signed-type; low: some-32bit-psuedo-unsigned-type; END; > little endian: Longint.T = RECORD low some-32bit-psuedo-unsigned-type; low: some-32bit-signed-type; END; > > > > Ultimately, the very very very general true point is: > extension via library is probably generally easier > BUT only makes for good results in an adequate language, e.g. one with operator overloading! > > > Surely surely the compiler isn't so unmalleable? > ie. we aren't stuck with the language asis because the compiler is too hard to change? > > > I can't argue too strongly in favor of LONGINT. > > > But..definitely there should be some reasonable convenient efficient way for dealing with 64bit integers. > 32bit C implementations have had very good mechanisms for 25+ years. > It does seem a shame we seemingly can't/won't compete. > > > And still. interface Rd/Wr I believe still need work.. > Probably to add a parallel set of functions ending in "L". > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Tue, 11 Jan 2011 00:58:35 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] codegen error (from Mika, new test p250) >> >> I know what the problem is. The fix is not particularly pretty, and will entail tracking the stack types for integers (Int32 or Int64) throughout code generation. >> >> This all leads me to wonder why we don't simply back LONGINT out of the language. >> [I had mentioned my increasing unease with LONGINT in a prior e-mail a long time ago.] >> >> We can replace LONGINT with Longint and Longword: >> >> Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] >> >> and define signed operations in Longint and unsigned operations in Longword. >> These can be implemented efficiently as wrappers to appropriate C routines operating on "long long" or inlined if performance is a particular concern. We can provide conversion routines to/from INTEGER as needs. >> >> Other than handling 64-bit file offsets, etc., does anyone really make use of LONGINT that argues convincingly for it to be retained? >> >> On Jan 8, 2011, at 6:55 PM, Jay K wrote: >> >>> >>> Thank you much. Please notice there are 2 or 3 similar problems. This shows only 1. >>> See test p250. >>> >>> >>> MODULE Main; >>> >>> PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; >>> >>> PROCEDURE F2() = >>> <*UNUSED*>VAR x: [0L..0L]; >>> BEGIN >>> END F2; >>> >>> PROCEDURE F3() = >>> VAR x: [0L..0L]; >>> BEGIN >>> F1(x); >>> END F3; >>> >>> BEGIN >>> F1(0L); >>> F2(); >>> F3(); >>> END Main. >>> >>> i.e. initializing local 0L..0L. >>> Passing 0L..0L parameter. >>> >>> - Jay >>> >>> >>> ---------------------------------------- >>>> From: hosking at cs.purdue.edu >>>> Date: Sat, 8 Jan 2011 16:59:33 -0500 >>>> To: jay.krell at cornell.edu >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] codegen error (from Mika, new test p250) >>>> >>>> I'll look into this one. >>>> >>>> Antony Hosking | Associate Professor | Computer Science | Purdue University >>>> 305 N. University Street | West Lafayette | IN 47907 | USA >>>> Office +1 765 494 6001 | Mobile +1 765 427 5484 >>>> >>>> >>>> >>>> >>>> On Jan 8, 2011, at 12:17 AM, Jay K wrote: >>>> >>>>> >>>>> fyi, small repro: >>>>> >>>>> >>>>> MODULE Main; >>>>> >>>>> VAR x: [0L..0L]; >>>>> >>>>> PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; >>>>> >>>>> BEGIN >>>>> F2(x); >>>>> END Main. >>>>> >>>>> (32) start_call_direct procedure:0x4 level:0 >>>>> (33) load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 >>>>> (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] >>>>> (35) pop_param type:int_64 >>>>> >>>>> >>>>> - Jay >>>>> >>>>> >>>>> ________________________________ >>>>>> From: jay.krell at cornell.edu >>>>>> To: m3devel at elegosoft.com; mika at async.caltech.edu >>>>>> Subject: RE: codegen error (from Mika, new test p250) >>>>>> Date: Thu, 6 Jan 2011 01:21:00 +0000 >>>>>> >>>>>> fyi: >>>>>> >>>>>> jbook2:p250 jay$ rm -rf I386_DARWIN/ >>>>>> jbook2:p250 jay$ cm3 -keep >>>>>> --- building in I386_DARWIN --- >>>>>> >>>>>> new source -> compiling Main.m3 >>>>>> "../Main.m3", line 1: 1 code generation error >>>>>> 1 error encountered >>>>>> compilation failed => not building program "pgm" >>>>>> Fatal Error: package build failed >>>>>> jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment >>>>>> (4) comment comment:module global constants >>>>>> (6) comment comment:module global data >>>>>> (27) comment comment:F1 >>>>>> (34) comment comment:********* M3CG_Check ERROR >>>>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] >>>>>> (43) comment comment:F2 >>>>>> (73) comment comment:Main_M3 >>>>>> (74) comment comment:module main body Main_M3 >>>>>> (83) comment comment:global constant type descriptor >>>>>> (85) comment comment:global data type descriptor >>>>>> (87) comment comment:module global constants >>>>>> (90) comment comment:procedure names >>>>>> (94) comment comment:procedure table >>>>>> (101) comment comment:file name >>>>>> (103) comment comment:type map for _t0174bdf4 >>>>>> (106) comment comment:type description for _t0174bdf4 >>>>>> (110) comment comment:module global data >>>>>> (120) comment comment:typecell for _t0174bdf4 >>>>>> (141) comment comment:load map >>>>>> (4) comment comment:module global constants >>>>>> (6) comment comment:module global data >>>>>> (27) comment comment:F1 >>>>>> (34) comment comment:********* M3CG_Check ERROR >>>>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] >>>>>> (43) comment comment:F2 >>>>>> (73) comment comment:Main_M3 >>>>>> (74) comment comment:module main body Main_M3 >>>>>> (83) comment comment:global constant type descriptor >>>>>> (85) comment comment:global data type descriptor >>>>>> (87) comment comment:module global constants >>>>>> (90) comment comment:procedure names >>>>>> (94) comment comment:procedure table >>>>>> (101) comment comment:file name >>>>>> (103) comment comment:type map for _t0174bdf4 >>>>>> (106) comment comment:type description for _t0174bdf4 >>>>>> (110) comment comment:module global data >>>>>> (120) comment comment:typecell for _t0174bdf4 >>>>>> (141) comment comment:load map >>>>>> >>>>>> >>>>>> - Jay >>>>>> >>>>>> >>>>>>> Date: Thu, 6 Jan 2011 01:26:15 +0000 >>>>>>> To: m3commit at elegosoft.com >>>>>>> From: jkrell at elego.de >>>>>>> Subject: [M3commit] CVS Update: cm3 >>>>>>> >>>>>>> CVSROOT: /usr/cvs >>>>>>> Changes by: jkrell at birch. 11/01/06 01:26:15 >>>>>>> >>>>>>> Modified files: >>>>>>> cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 >>>>>>> >>>>>>> Log message: >>>>>>> slightly simpler, same error >>>>>>> >>>>> >>>> >>> >> > From hosking at cs.purdue.edu Tue Jan 11 21:21:23 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 11 Jan 2011 15:21:23 -0500 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: <4D2C98FC.4030104@lcwb.coop> References: <20110106002615.77E782474003@birch.elegosoft.com>, , , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu> <4D2C98FC.4030104@lcwb.coop> Message-ID: <90FDA6E2-5ACF-429E-B870-CF9941545028@cs.purdue.edu> Sigh. OK, for now I will fix the compiler to track the widths of values on the stack. On Jan 11, 2011, at 12:53 PM, Rodney M. Bates wrote: > > > Tony Hosking wrote: >> I know what the problem is. The fix is not particularly pretty, and will entail tracking the stack types for integers (Int32 or Int64) throughout code generation. >> This all leads me to wonder why we don't simply back LONGINT out of the language. >> [I had mentioned my increasing unease with LONGINT in a prior e-mail a long time ago.] >> We can replace LONGINT with Longint and Longword: >> Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] > > Hmm, this is tricky. I think the BITS 64 FOR is not what we would want. First, it has > no effect at all except when a Longint.T is a field of a record or object or an element > of an array. Second, even in those cases, it would force the compiler _not_ to put any > alignment padding ahead of the Longint.T field. The compiler could only choose between > letting it be misaligned and generating code that would work on it that way, or, more > likely, refusing to compile it. It does not force 64-bit alignment. This is all by > existing rules of the language. > > Another thought would be: > > ARRAY [0..1] OF BITS 32 FOR [16_00000000..16_FFFFFFFF] > > This would lead to alignment within the array being as wanted, on both 32- and 64-bit > machines. But as for the alignment of the entire array, it would not force anything. > The alignment of an array type is naturally the alignment of its element type, but a > Modula-3 BITS type has no alignment restriction at all, otherwise it could not be used > as intended to allow programmer-controlled memory layout. > > There is another problem here. It stems from the fact that > > > So-called "little endian" is an inconsistent system. It's only partly little-endian. > To be consistently little-endian, it would have to read/write i/o streams into/from > decreasing memory addresses and fetch instruction streams from decreasing addresses. > It would then naturally result in the successively declared fields of records and > elements of arrays (of increasing subscripts) being stored in decreasing addresses. > > > So as it is, for either of these array types, we have: > > MSB LSB > 0 1 2 3 4 5 6 7 <- big endian byte numbers in memory > 7 6 5 4 3 2 1 0 <- hypothetical true little-endian > 3 2 1 0 7 6 5 4 <- actual "little-endian" > > Actual little-endian numbers right-to-left only within each 32-bit piece, but > left-to-right for the elements of the array. If this were a single scalar, > instead of an array, the actual little-endian byte numbering would be the > same as the middle line above. > > This means the array type, on a little-endian machine could not be passed to a > normally-represented scalar formal parameter in any language. We could have a > convention that the 32-bit words in the array were least significant in element > zero, but that would just move the problem over to the big-endian machines. > We could just require explicit conversion functions to be coded, but what > type would they convert to? > > Note that we have to keep the semantics of BITS n FOR and [lb .. ub] consistent > with the existing language, because these type constructors will be used for other > purposes than just constructing Longint.T and Longword.T and surly are in lots of > preexisting code. > > I don't see any way to both preserve language semantics and construct a longer > integer type with decent properties using only preexisting types. I think we > would have to say something like: > > "The types Longint.T and Longword.T are _just like_ " > (but not equal to , so they could have unique rules). > > This would parallel the existing definition of CARDINAL as > > "just like [0 .. LAST(INTEGER)]" > (but it's nevertheless a distinct type, so it pickles can do size adjustments > on it, they way they do with INTEGER.) > > But once we resort to that and defining operators on it, I doubt it could be > any cleaner or simpler than LONGINT. And I doubt it would simplify the subject > compilation problem either. > > >> and define signed operations in Longint and unsigned operations in Longword. >> These can be implemented efficiently as wrappers to appropriate C routines operating on "long long" or inlined if performance is a particular concern. We can provide conversion routines to/from INTEGER as needs. >> Other than handling 64-bit file offsets, etc., does anyone really make use of LONGINT that argues convincingly for it to be retained? From hosking at cs.purdue.edu Tue Jan 11 21:18:09 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 11 Jan 2011 15:18:09 -0500 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: References: <20110106002615.77E782474003@birch.elegosoft.com>, , , , , , , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu>, , , Message-ID: <535DF907-85F2-469C-8447-9D7A70B5EF0D@cs.purdue.edu> No, that would be too late. I certainly don't want automatic loopholing in the code generator. I want explicit, checked types, as we currently have, to avoid the sorts of errors it has now thrown up. I do know what the problem is. On Jan 11, 2011, at 2:36 AM, Jay K wrote: > > ps: can M3CG_Check be pushed into service to do the work? > You know, it is already tracking everything and where the detection/error is currently. > Can we make it, like, required, and have it cast/loophole as needed? > Or is this too late and it might miss problems, such as incorrect/unchecked narrowing? > > > - Jay > > > ---------------------------------------- >> From: jay.krell at cornell.edu >> To: hosking at cs.purdue.edu >> CC: m3devel at elegosoft.com >> Subject: RE: [M3devel] codegen error (from Mika, new test p250) >> Date: Tue, 11 Jan 2011 07:33:57 +0000 >> >> >> Quibbling with the details: >> >> Is this legal, on a 32bit system? >> >> Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] >> >> And even if it is legal, it is of dubious correctness, eh? >> For implementation of this in Modula-3, you want the low word to be unsigned and the high word to be signed. >> Granted, you want full range unsigned, so, like, Word.T, but you want 32 bits. >> >> There should therefore be, like, interfaces Word32 and Word64 (ok, you already have Long). >> >> As well, the implementation on 64bit targets will perhaps suffer. >> >> As well, does it work for 64bit targets? Isn't [00000...FFFFFFFF] 64 bits? >> Maybe you'd say: >> Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF BITS 32 FOR [16_00000000..16_FFFFFFFF] >> >> >> And then, *really*, you want the order/significance of the words to be endian-specific. >> >> So, you'd want perhaps 3 implementations: >> >> 64bit: Longint.T = INTEGER >> 32bit big endian: Longint.T = RECORD high: INTEGER; low: Word.T; END; >> 32bit little endian: Longint.T = RECORD low: Word.T; high: INTEGER; END; >> >> >> >> or maybe just two: >> >> big endian: Longint.T = RECORD high: some-32bit-signed-type; low: some-32bit-psuedo-unsigned-type; END; >> little endian: Longint.T = RECORD low some-32bit-psuedo-unsigned-type; low: some-32bit-signed-type; END; >> >> >> >> Ultimately, the very very very general true point is: >> extension via library is probably generally easier >> BUT only makes for good results in an adequate language, e.g. one with operator overloading! >> >> >> Surely surely the compiler isn't so unmalleable? >> ie. we aren't stuck with the language asis because the compiler is too hard to change? >> >> >> I can't argue too strongly in favor of LONGINT. >> >> >> But..definitely there should be some reasonable convenient efficient way for dealing with 64bit integers. >> 32bit C implementations have had very good mechanisms for 25+ years. >> It does seem a shame we seemingly can't/won't compete. >> >> >> And still. interface Rd/Wr I believe still need work.. >> Probably to add a parallel set of functions ending in "L". >> >> - Jay >> >> >> ---------------------------------------- >>> From: hosking at cs.purdue.edu >>> Date: Tue, 11 Jan 2011 00:58:35 -0500 >>> To: jay.krell at cornell.edu >>> CC: m3devel at elegosoft.com >>> Subject: Re: [M3devel] codegen error (from Mika, new test p250) >>> >>> I know what the problem is. The fix is not particularly pretty, and will entail tracking the stack types for integers (Int32 or Int64) throughout code generation. >>> >>> This all leads me to wonder why we don't simply back LONGINT out of the language. >>> [I had mentioned my increasing unease with LONGINT in a prior e-mail a long time ago.] >>> >>> We can replace LONGINT with Longint and Longword: >>> >>> Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] >>> >>> and define signed operations in Longint and unsigned operations in Longword. >>> These can be implemented efficiently as wrappers to appropriate C routines operating on "long long" or inlined if performance is a particular concern. We can provide conversion routines to/from INTEGER as needs. >>> >>> Other than handling 64-bit file offsets, etc., does anyone really make use of LONGINT that argues convincingly for it to be retained? >>> >>> On Jan 8, 2011, at 6:55 PM, Jay K wrote: >>> >>>> >>>> Thank you much. Please notice there are 2 or 3 similar problems. This shows only 1. >>>> See test p250. >>>> >>>> >>>> MODULE Main; >>>> >>>> PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; >>>> >>>> PROCEDURE F2() = >>>> <*UNUSED*>VAR x: [0L..0L]; >>>> BEGIN >>>> END F2; >>>> >>>> PROCEDURE F3() = >>>> VAR x: [0L..0L]; >>>> BEGIN >>>> F1(x); >>>> END F3; >>>> >>>> BEGIN >>>> F1(0L); >>>> F2(); >>>> F3(); >>>> END Main. >>>> >>>> i.e. initializing local 0L..0L. >>>> Passing 0L..0L parameter. >>>> >>>> - Jay >>>> >>>> >>>> ---------------------------------------- >>>>> From: hosking at cs.purdue.edu >>>>> Date: Sat, 8 Jan 2011 16:59:33 -0500 >>>>> To: jay.krell at cornell.edu >>>>> CC: m3devel at elegosoft.com >>>>> Subject: Re: [M3devel] codegen error (from Mika, new test p250) >>>>> >>>>> I'll look into this one. >>>>> >>>>> Antony Hosking | Associate Professor | Computer Science | Purdue University >>>>> 305 N. University Street | West Lafayette | IN 47907 | USA >>>>> Office +1 765 494 6001 | Mobile +1 765 427 5484 >>>>> >>>>> >>>>> >>>>> >>>>> On Jan 8, 2011, at 12:17 AM, Jay K wrote: >>>>> >>>>>> >>>>>> fyi, small repro: >>>>>> >>>>>> >>>>>> MODULE Main; >>>>>> >>>>>> VAR x: [0L..0L]; >>>>>> >>>>>> PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; >>>>>> >>>>>> BEGIN >>>>>> F2(x); >>>>>> END Main. >>>>>> >>>>>> (32) start_call_direct procedure:0x4 level:0 >>>>>> (33) load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 >>>>>> (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] >>>>>> (35) pop_param type:int_64 >>>>>> >>>>>> >>>>>> - Jay >>>>>> >>>>>> >>>>>> ________________________________ >>>>>>> From: jay.krell at cornell.edu >>>>>>> To: m3devel at elegosoft.com; mika at async.caltech.edu >>>>>>> Subject: RE: codegen error (from Mika, new test p250) >>>>>>> Date: Thu, 6 Jan 2011 01:21:00 +0000 >>>>>>> >>>>>>> fyi: >>>>>>> >>>>>>> jbook2:p250 jay$ rm -rf I386_DARWIN/ >>>>>>> jbook2:p250 jay$ cm3 -keep >>>>>>> --- building in I386_DARWIN --- >>>>>>> >>>>>>> new source -> compiling Main.m3 >>>>>>> "../Main.m3", line 1: 1 code generation error >>>>>>> 1 error encountered >>>>>>> compilation failed => not building program "pgm" >>>>>>> Fatal Error: package build failed >>>>>>> jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment >>>>>>> (4) comment comment:module global constants >>>>>>> (6) comment comment:module global data >>>>>>> (27) comment comment:F1 >>>>>>> (34) comment comment:********* M3CG_Check ERROR >>>>>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] >>>>>>> (43) comment comment:F2 >>>>>>> (73) comment comment:Main_M3 >>>>>>> (74) comment comment:module main body Main_M3 >>>>>>> (83) comment comment:global constant type descriptor >>>>>>> (85) comment comment:global data type descriptor >>>>>>> (87) comment comment:module global constants >>>>>>> (90) comment comment:procedure names >>>>>>> (94) comment comment:procedure table >>>>>>> (101) comment comment:file name >>>>>>> (103) comment comment:type map for _t0174bdf4 >>>>>>> (106) comment comment:type description for _t0174bdf4 >>>>>>> (110) comment comment:module global data >>>>>>> (120) comment comment:typecell for _t0174bdf4 >>>>>>> (141) comment comment:load map >>>>>>> (4) comment comment:module global constants >>>>>>> (6) comment comment:module global data >>>>>>> (27) comment comment:F1 >>>>>>> (34) comment comment:********* M3CG_Check ERROR >>>>>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] >>>>>>> (43) comment comment:F2 >>>>>>> (73) comment comment:Main_M3 >>>>>>> (74) comment comment:module main body Main_M3 >>>>>>> (83) comment comment:global constant type descriptor >>>>>>> (85) comment comment:global data type descriptor >>>>>>> (87) comment comment:module global constants >>>>>>> (90) comment comment:procedure names >>>>>>> (94) comment comment:procedure table >>>>>>> (101) comment comment:file name >>>>>>> (103) comment comment:type map for _t0174bdf4 >>>>>>> (106) comment comment:type description for _t0174bdf4 >>>>>>> (110) comment comment:module global data >>>>>>> (120) comment comment:typecell for _t0174bdf4 >>>>>>> (141) comment comment:load map >>>>>>> >>>>>>> >>>>>>> - Jay >>>>>>> >>>>>>> >>>>>>>> Date: Thu, 6 Jan 2011 01:26:15 +0000 >>>>>>>> To: m3commit at elegosoft.com >>>>>>>> From: jkrell at elego.de >>>>>>>> Subject: [M3commit] CVS Update: cm3 >>>>>>>> >>>>>>>> CVSROOT: /usr/cvs >>>>>>>> Changes by: jkrell at birch. 11/01/06 01:26:15 >>>>>>>> >>>>>>>> Modified files: >>>>>>>> cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 >>>>>>>> >>>>>>>> Log message: >>>>>>>> slightly simpler, same error >>>>>>>> >>>>>> >>>>> >>>> >>> >> > From jay.krell at cornell.edu Tue Jan 11 21:48:31 2011 From: jay.krell at cornell.edu (Jay K) Date: Tue, 11 Jan 2011 20:48:31 +0000 Subject: [M3devel] codegen error (from Mika, new test p250) In-Reply-To: <535DF907-85F2-469C-8447-9D7A70B5EF0D@cs.purdue.edu> References: <20110106002615.77E782474003@birch.elegosoft.com>, , , ,,, ,,, , , <8EFEAB19-1B0D-4944-880D-3A2E1006C03C@cs.purdue.edu>, , , , , , , , <535DF907-85F2-469C-8447-9D7A70B5EF0D@cs.purdue.edu> Message-ID: > The point is that we want to have an opaque type I find there is a frequent natural tension between opacity and ease and efficiency of implementation of the functions that do understand and manipulate the type. If the type is heap allocated and only ever passed around by pointer, the tension is fairly cheap to resolve with one pointer-to-pointer cast/loophole. If the type is potentially stack allocated and passed by value, the tension is less cheap to resolve -- the client still needs to know the size. And the code that does know the type inevitably will introduce an indirection in going through the opacity. Fully revealing the type to clients is also not great, as it allows breaking through the abstraction boundary. I can think of a few "good" examples. Word.T for example is easily mis-used. It would be nice if a client could not so easily use operator < on Word.T. However, Word.T's transparency does have some good properties. Another example in C++ is std::vector::iterator. std::vector::iterator is nearly the exact same interface as T*, except that it isn't guaranteed to be assignable/mixable with T*. Some older implementations made it T*, allowing for such accidental mixing. Newer implementations wrap the T* in an arbitrary struct just make it a different type. There is a bit of inconvenience in the implementation therefore, but probably no inefficiency, esp. due to heavy inlinability. This is probably an area that multiple languages could use improvement. Another thing to consider is ABI compatibility with C. Can I pass LONGINT to/from C and map it to "long long" or "__int64"? And alignment as was pointed out -- should alignment be 32 bits or 64 bits on 32bit targets? Generally, 32bit is actually ok. But maybe not for atomic operations. I'd kind of rather the alignment be 64bits, but this is a controversial area, related to how much target-dependent code we have and how we interface with C -- ie: cloning third party headers or cloning our own headers. Can the frontend be better structured to allow for an arbitrary number of integer and floating point types? So that adding "int128" and "float256" won't be difficult? You know -- replace series of ifs or case statements with loops over arrays? - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Tue, 11 Jan 2011 15:18:09 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] codegen error (from Mika, new test p250) > > No, that would be too late. I certainly don't want automatic loopholing in the code generator. I want explicit, checked types, as we currently have, to avoid the sorts of errors it has now thrown up. > > I do know what the problem is. > > On Jan 11, 2011, at 2:36 AM, Jay K wrote: > > > > > ps: can M3CG_Check be pushed into service to do the work? > > You know, it is already tracking everything and where the detection/error is currently. > > Can we make it, like, required, and have it cast/loophole as needed? > > Or is this too late and it might miss problems, such as incorrect/unchecked narrowing? > > > > > > - Jay > > > > > > ---------------------------------------- > >> From: jay.krell at cornell.edu > >> To: hosking at cs.purdue.edu > >> CC: m3devel at elegosoft.com > >> Subject: RE: [M3devel] codegen error (from Mika, new test p250) > >> Date: Tue, 11 Jan 2011 07:33:57 +0000 > >> > >> > >> Quibbling with the details: > >> > >> Is this legal, on a 32bit system? > >> > >> Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] > >> > >> And even if it is legal, it is of dubious correctness, eh? > >> For implementation of this in Modula-3, you want the low word to be unsigned and the high word to be signed. > >> Granted, you want full range unsigned, so, like, Word.T, but you want 32 bits. > >> > >> There should therefore be, like, interfaces Word32 and Word64 (ok, you already have Long). > >> > >> As well, the implementation on 64bit targets will perhaps suffer. > >> > >> As well, does it work for 64bit targets? Isn't [00000...FFFFFFFF] 64 bits? > >> Maybe you'd say: > >> Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF BITS 32 FOR [16_00000000..16_FFFFFFFF] > >> > >> > >> And then, *really*, you want the order/significance of the words to be endian-specific. > >> > >> So, you'd want perhaps 3 implementations: > >> > >> 64bit: Longint.T = INTEGER > >> 32bit big endian: Longint.T = RECORD high: INTEGER; low: Word.T; END; > >> 32bit little endian: Longint.T = RECORD low: Word.T; high: INTEGER; END; > >> > >> > >> > >> or maybe just two: > >> > >> big endian: Longint.T = RECORD high: some-32bit-signed-type; low: some-32bit-psuedo-unsigned-type; END; > >> little endian: Longint.T = RECORD low some-32bit-psuedo-unsigned-type; low: some-32bit-signed-type; END; > >> > >> > >> > >> Ultimately, the very very very general true point is: > >> extension via library is probably generally easier > >> BUT only makes for good results in an adequate language, e.g. one with operator overloading! > >> > >> > >> Surely surely the compiler isn't so unmalleable? > >> ie. we aren't stuck with the language asis because the compiler is too hard to change? > >> > >> > >> I can't argue too strongly in favor of LONGINT. > >> > >> > >> But..definitely there should be some reasonable convenient efficient way for dealing with 64bit integers. > >> 32bit C implementations have had very good mechanisms for 25+ years. > >> It does seem a shame we seemingly can't/won't compete. > >> > >> > >> And still. interface Rd/Wr I believe still need work.. > >> Probably to add a parallel set of functions ending in "L". > >> > >> - Jay > >> > >> > >> ---------------------------------------- > >>> From: hosking at cs.purdue.edu > >>> Date: Tue, 11 Jan 2011 00:58:35 -0500 > >>> To: jay.krell at cornell.edu > >>> CC: m3devel at elegosoft.com > >>> Subject: Re: [M3devel] codegen error (from Mika, new test p250) > >>> > >>> I know what the problem is. The fix is not particularly pretty, and will entail tracking the stack types for integers (Int32 or Int64) throughout code generation. > >>> > >>> This all leads me to wonder why we don't simply back LONGINT out of the language. > >>> [I had mentioned my increasing unease with LONGINT in a prior e-mail a long time ago.] > >>> > >>> We can replace LONGINT with Longint and Longword: > >>> > >>> Longint.T = Longword.T = BITS 64 FOR ARRAY [0..1] OF [16_00000000..16_FFFFFFFF] > >>> > >>> and define signed operations in Longint and unsigned operations in Longword. > >>> These can be implemented efficiently as wrappers to appropriate C routines operating on "long long" or inlined if performance is a particular concern. We can provide conversion routines to/from INTEGER as needs. > >>> > >>> Other than handling 64-bit file offsets, etc., does anyone really make use of LONGINT that argues convincingly for it to be retained? > >>> > >>> On Jan 8, 2011, at 6:55 PM, Jay K wrote: > >>> > >>>> > >>>> Thank you much. Please notice there are 2 or 3 similar problems. This shows only 1. > >>>> See test p250. > >>>> > >>>> > >>>> MODULE Main; > >>>> > >>>> PROCEDURE F1(<*UNUSED*>x: LONGINT) = BEGIN END F1; > >>>> > >>>> PROCEDURE F2() = > >>>> <*UNUSED*>VAR x: [0L..0L]; > >>>> BEGIN > >>>> END F2; > >>>> > >>>> PROCEDURE F3() = > >>>> VAR x: [0L..0L]; > >>>> BEGIN > >>>> F1(x); > >>>> END F3; > >>>> > >>>> BEGIN > >>>> F1(0L); > >>>> F2(); > >>>> F3(); > >>>> END Main. > >>>> > >>>> i.e. initializing local 0L..0L. > >>>> Passing 0L..0L parameter. > >>>> > >>>> - Jay > >>>> > >>>> > >>>> ---------------------------------------- > >>>>> From: hosking at cs.purdue.edu > >>>>> Date: Sat, 8 Jan 2011 16:59:33 -0500 > >>>>> To: jay.krell at cornell.edu > >>>>> CC: m3devel at elegosoft.com > >>>>> Subject: Re: [M3devel] codegen error (from Mika, new test p250) > >>>>> > >>>>> I'll look into this one. > >>>>> > >>>>> Antony Hosking | Associate Professor | Computer Science | Purdue University > >>>>> 305 N. University Street | West Lafayette | IN 47907 | USA > >>>>> Office +1 765 494 6001 | Mobile +1 765 427 5484 > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> On Jan 8, 2011, at 12:17 AM, Jay K wrote: > >>>>> > >>>>>> > >>>>>> fyi, small repro: > >>>>>> > >>>>>> > >>>>>> MODULE Main; > >>>>>> > >>>>>> VAR x: [0L..0L]; > >>>>>> > >>>>>> PROCEDURE F2(<*UNUSED*>x: LONGINT) = BEGIN END F2; > >>>>>> > >>>>>> BEGIN > >>>>>> F2(x); > >>>>>> END Main. > >>>>>> > >>>>>> (32) start_call_direct procedure:0x4 level:0 > >>>>>> (33) load var:0x2 offset:0x1A0(416) src_t:word_8 dst_t:int_32 > >>>>>> (34) comment comment:********* M3CG_Check ERROR *********** bad stack: expected [ Int64 ] got [ Int32 ] > >>>>>> (35) pop_param type:int_64 > >>>>>> > >>>>>> > >>>>>> - Jay > >>>>>> > >>>>>> > >>>>>> ________________________________ > >>>>>>> From: jay.krell at cornell.edu > >>>>>>> To: m3devel at elegosoft.com; mika at async.caltech.edu > >>>>>>> Subject: RE: codegen error (from Mika, new test p250) > >>>>>>> Date: Thu, 6 Jan 2011 01:21:00 +0000 > >>>>>>> > >>>>>>> fyi: > >>>>>>> > >>>>>>> jbook2:p250 jay$ rm -rf I386_DARWIN/ > >>>>>>> jbook2:p250 jay$ cm3 -keep > >>>>>>> --- building in I386_DARWIN --- > >>>>>>> > >>>>>>> new source -> compiling Main.m3 > >>>>>>> "../Main.m3", line 1: 1 code generation error > >>>>>>> 1 error encountered > >>>>>>> compilation failed => not building program "pgm" > >>>>>>> Fatal Error: package build failed > >>>>>>> jbook2:p250 jay$ cm3cg -y I386_DARWIN/Main.mc 2>&1 | grep -i comment > >>>>>>> (4) comment comment:module global constants > >>>>>>> (6) comment comment:module global data > >>>>>>> (27) comment comment:F1 > >>>>>>> (34) comment comment:********* M3CG_Check ERROR > >>>>>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] > >>>>>>> (43) comment comment:F2 > >>>>>>> (73) comment comment:Main_M3 > >>>>>>> (74) comment comment:module main body Main_M3 > >>>>>>> (83) comment comment:global constant type descriptor > >>>>>>> (85) comment comment:global data type descriptor > >>>>>>> (87) comment comment:module global constants > >>>>>>> (90) comment comment:procedure names > >>>>>>> (94) comment comment:procedure table > >>>>>>> (101) comment comment:file name > >>>>>>> (103) comment comment:type map for _t0174bdf4 > >>>>>>> (106) comment comment:type description for _t0174bdf4 > >>>>>>> (110) comment comment:module global data > >>>>>>> (120) comment comment:typecell for _t0174bdf4 > >>>>>>> (141) comment comment:load map > >>>>>>> (4) comment comment:module global constants > >>>>>>> (6) comment comment:module global data > >>>>>>> (27) comment comment:F1 > >>>>>>> (34) comment comment:********* M3CG_Check ERROR > >>>>>>> *********** bad stack: expected [ Int64 ] got [ Int32 ] > >>>>>>> (43) comment comment:F2 > >>>>>>> (73) comment comment:Main_M3 > >>>>>>> (74) comment comment:module main body Main_M3 > >>>>>>> (83) comment comment:global constant type descriptor > >>>>>>> (85) comment comment:global data type descriptor > >>>>>>> (87) comment comment:module global constants > >>>>>>> (90) comment comment:procedure names > >>>>>>> (94) comment comment:procedure table > >>>>>>> (101) comment comment:file name > >>>>>>> (103) comment comment:type map for _t0174bdf4 > >>>>>>> (106) comment comment:type description for _t0174bdf4 > >>>>>>> (110) comment comment:module global data > >>>>>>> (120) comment comment:typecell for _t0174bdf4 > >>>>>>> (141) comment comment:load map > >>>>>>> > >>>>>>> > >>>>>>> - Jay > >>>>>>> > >>>>>>> > >>>>>>>> Date: Thu, 6 Jan 2011 01:26:15 +0000 > >>>>>>>> To: m3commit at elegosoft.com > >>>>>>>> From: jkrell at elego.de > >>>>>>>> Subject: [M3commit] CVS Update: cm3 > >>>>>>>> > >>>>>>>> CVSROOT: /usr/cvs > >>>>>>>> Changes by: jkrell at birch. 11/01/06 01:26:15 > >>>>>>>> > >>>>>>>> Modified files: > >>>>>>>> cm3/m3-sys/m3tests/src/p2/p250/: Main.m3 > >>>>>>>> > >>>>>>>> Log message: > >>>>>>>> slightly simpler, same error > >>>>>>>> > >>>>>> > >>>>> > >>>> > >>> > >> > > > From jay.krell at cornell.edu Tue Jan 11 21:51:15 2011 From: jay.krell at cornell.edu (Jay K) Date: Tue, 11 Jan 2011 20:51:15 +0000 Subject: [M3devel] thread testing program in CM3 In-Reply-To: References: <20110111155334.498471A205B@async.async.caltech.edu>, Message-ID: > RuntimeError.mo : error LNK2001: unresolved external symbol __alloca Understood. Due to last week's significant change to no longer know jmp_buf size in the compiler. Not yet fixed. - Jay ---------------------------------------- > From: rcolebur at SCIRES.COM > To: m3devel at elegosoft.com > Date: Tue, 11 Jan 2011 14:39:28 -0500 > Subject: Re: [M3devel] thread testing program in CM3 > > Thought I would give Mika's test program a try on Windows7, but ran into a glitch. > I first tried updating everything from HEAD and rebuilding. During 2nd stage of rebuild, I get a failure on creating the DLL for m3core. See below. Jay, any ideas on what is wrong? > --Randy > > Microsoft (R) Incremental Linker Version 10.00.30319.01 > 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 > RealFloat.io > LongFloat.io > ExtendedFloat.io > IEEESpecial.io > IEEESpecial.mo > Real.mo > LongReal.mo > Extended.mo > DragonInt.io > DragonInt.mo > DragonT.io > DragonT.mo > Real.io > LongReal.io > Extended.io > RealFloat.mo > LongFloat.mo > ExtendedFloat.mo > RealRep.io > LongRealRep.io > FPU.io > FPU.mo > FloatMode.io > FloatMode.mo > 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 > 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 > Creating library m3core.lib and object m3core.exp > LINK : warning LNK4199: /DELAYLOAD:advapi32.dll ignored; no imports found from advapi32.dll > LINK : warning LNK4199: /DELAYLOAD:netapi32.dll ignored; no imports found from netapi32.dll > LINK : warning LNK4199: /DELAYLOAD:rpcrt4.dll ignored; no imports found from rpcrt4.dll > LINK : warning LNK4199: /DELAYLOAD:iphlpapid.dll ignored; no imports found from iphlpapid.dll > RuntimeError.mo : error LNK2001: unresolved external symbol __alloca > m3core.dll : fatal error LNK1120: 1 unresolved externals > > -----Original Message----- > From: Mika Nystrom [mailto:mika at async.caltech.edu] > Sent: Tuesday, January 11, 2011 10:54 AM > To: m3devel at elegosoft.com > Cc: jkrell at elego.de > Subject: [M3devel] thread testing program in CM3 > > Hi again, > > I added the thread "stress tester" to the CM3 repository in the following > location: > > m3-libs/m3core/tests/thread > > It no longer takes any command-line arguments, and now it prints friendly > diagnostics. > > On FreeBSD4 under PM3, I see the following output: > > (82)pluto:~/t/threadtest/src>../FreeBSD4/threadtest > Writing file...done > Creating reader threads...done > Creating forker threads...done > Creating allocator threads...done > running... > laziest thread is 1294760062 seconds behind > laziest thread is 11 seconds behind > laziest thread is 9 seconds behind > laziest thread is 9 seconds behind > laziest thread is 9 seconds behind > laziest thread is 9 seconds behind > laziest thread is 8 seconds behind > laziest thread is 10 seconds behind > laziest thread is 7 seconds behind > laziest thread is 8 seconds behind > (83)pluto:~/t/threadtest/src>m3build -version > m3build: PM3 Version 1.1.15 (Tue Sep 5 17:16:07 EDT 2000) > (84)pluto:~/t/threadtest/src>uname -a > FreeBSD pluto.gcapltd.com 5.5-RELEASE FreeBSD 5.5-RELEASE #0: Mon Sep 24 13:34:44 CDT 2007 root at pluto.gcapltd.com:/usr/src/sys/i386/compile/PLUTO i386 > > > 10 seconds is about right for 100 threads and a 0.1-second time > quantum (if memory serves, that's what PM3 user threads use?) > > Mika From mika at async.caltech.edu Tue Jan 11 22:09:28 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Tue, 11 Jan 2011 13:09:28 -0800 Subject: [M3devel] Thread testing program In-Reply-To: References: <20110111102923.AF8001A205B@async.async.caltech.edu> Message-ID: <20110111210928.697421A205B@async.async.caltech.edu> AMD64_FREEBSD of some time ago (about a year) also doesn't seem to make any progress. But no, I haven't gone through any old versions systematically. The old PM3 is what I use in "production" systems, and it works... but unfortunately my next "production" system is slated to be a new Debian system. Mika Tony Hosking writes: >Did you stress test any older versions of M3? >I believe we have had a number of regressions lately. > >On Jan 11, 2011, at 5:29 AM, Mika Nystrom wrote: > >> >> Hello everyone, >> >> After studying failure modes and implementation of the current >> threading implementation in CM3, I've developed a little stress-testing >> program, attached. Currently it crashes in various ways. >> >> It takes one command-line argument, the approximate number of threads >> to create (e.g., 100). It creates threads of three types: >> reader (reads a file), forker (forks a process), allocator (allocates >> memory that constantly goes out of scope). >> >> Files attached below. Happy 1/11/11. >> >> Mika >> >> My m3makefile: >> >> import ("libm3") >> >> implementation ("Main") >> >> program ("threadtest") >> >> My m3overrides (optional): >> >> if defined("CM3_VERSION") >> /* Critical Mass Modula-3 */ >> % see http://www.elegosoft.com/cm3/doc/help/cm3/cm3.html >> >> % not sure about this: >> build_standalone() >> >> m3_optimize("") >> end >> >> My Main.m3: >> >> >> (* $Id: Main.m3,v 1.1 2011/01/11 10:06:21 mika Exp $ *) >> >> MODULE Main; >> >> (* threading stress-test *) >> >> IMPORT Params, Scan, Thread, Rd, FileRd, Wr, FileWr, Process; >> >> VAR n := Scan.Int(Params.Get(1)); >> >> PROCEDURE MakeReaderThread() = >> BEGIN >> EVAL Thread.Fork(NEW(Thread.Closure, apply := RApply)) >> END MakeReaderThread; >> >> PROCEDURE MakeForkerThread() = >> BEGIN >> EVAL Thread.Fork(NEW(Thread.Closure, apply := FApply)) >> END MakeForkerThread; >> >> PROCEDURE MakeAllocatorThread() = >> BEGIN >> EVAL Thread.Fork(NEW(Thread.Closure, apply := AApply)) >> END MakeAllocatorThread; >> >> (**********************************************************************) >> >> PROCEDURE RApply(cl : Thread.Closure) : REFANY = >> BEGIN >> LOOP >> WITH rd = FileRd.Open(Filename) DO >> TRY >> LOOP >> VAR c := Rd.GetChar(rd); BEGIN END >> END >> EXCEPT >> Rd.EndOfFile => Rd.Close(rd) >> END >> END >> END >> END RApply; >> >> PROCEDURE FApply(cl : Thread.Closure) : REFANY = >> BEGIN >> LOOP >> WITH proc = Process.Create("sleep", >> ARRAY OF TEXT { "1" }) DO >> EVAL Process.Wait(proc) >> END >> END >> END FApply; >> >> PROCEDURE AApply(cl : Thread.Closure) : REFANY = >> BEGIN > LOOP >> VAR >> arr := NEW(REF ARRAY OF INTEGER, 1025); >> BEGIN >> FOR i := FIRST(arr^)+1 TO LAST(arr^) DO >> arr[i] := arr[i] - arr[i-1] >> END >> END >> END >> END AApply; >> >> >> CONST Filename = "hohum"; >> >> PROCEDURE WriteAFile() = >> BEGIN >> WITH wr = FileWr.Open(Filename) DO >> FOR i := 1 TO 256 DO >> FOR j := 1 TO i DO >> Wr.PutChar(wr, VAL(ORD('A') + i MOD 25, CHAR)) >> END; >> Wr.PutChar(wr, '\n') >> END >> END >> END WriteAFile; >> >> BEGIN >> WriteAFile(); >> FOR i := 1 TO n DIV 3 DO >> MakeReaderThread() >> END; >> FOR i := 1 TO n DIV 3 DO >> MakeForkerThread() >> END; >> FOR i := 1 TO n DIV 3 DO >> MakeAllocatorThread() >> END; >> >> LOOP >> Thread.Pause(1.0d0) >> END >> END Main. >> From jay.krell at cornell.edu Tue Jan 11 22:53:48 2011 From: jay.krell at cornell.edu (Jay K) Date: Tue, 11 Jan 2011 21:53:48 +0000 Subject: [M3devel] Thread testing program In-Reply-To: <20110111210928.697421A205B@async.async.caltech.edu> References: <20110111102923.AF8001A205B@async.async.caltech.edu>, , <20110111210928.697421A205B@async.async.caltech.edu> Message-ID: >Did you stress test any older versions of M3? I recently tried to do anything with some older releases and didn't get far. The "most recent older" releases are somewhat lost (i.e. broken links on elegosoft due to crashed machine/disk; probably people should scrounge around and we might restore some of them, if they work much). Yet older releases largely don't work. Older cminstalls are statically linked (even to libc) and have invalid syscalls in them, and don't get anywhere. Older m3core doesn't build, and if you skip that, well, cm3 output doesn't work. I forget what the symptons were. I'm sure they worked on the OS'es of the day, but they were much to version-unportable imho. Granted, the level of incompatibilities in the newer versions of underlying systems is also quite surprising. Free/Open Unix systems don't seem to take binary compatibility seriously. - Jay ---------------------------------------- > To: hosking at cs.purdue.edu > Date: Tue, 11 Jan 2011 13:09:28 -0800 > From: mika at async.caltech.edu > CC: jkrell at elego.de; m3devel at elegosoft.com > Subject: Re: [M3devel] Thread testing program > > > AMD64_FREEBSD of some time ago (about a year) also doesn't seem to > make any progress. But no, I haven't gone through any old versions > systematically. The old PM3 is what I use in "production" systems, > and it works... but unfortunately my next "production" system is slated > to be a new Debian system. > > Mika > > Tony Hosking writes: > >Did you stress test any older versions of M3? > >I believe we have had a number of regressions lately. > > > >On Jan 11, 2011, at 5:29 AM, Mika Nystrom wrote: > > > >> > >> Hello everyone, > >> > >> After studying failure modes and implementation of the current > >> threading implementation in CM3, I've developed a little stress-testing > >> program, attached. Currently it crashes in various ways. > >> > >> It takes one command-line argument, the approximate number of threads > >> to create (e.g., 100). It creates threads of three types: > >> reader (reads a file), forker (forks a process), allocator (allocates > >> memory that constantly goes out of scope). > >> > >> Files attached below. Happy 1/11/11. > >> > >> Mika > >> > >> My m3makefile: > >> > >> import ("libm3") > >> > >> implementation ("Main") > >> > >> program ("threadtest") > >> > >> My m3overrides (optional): > >> > >> if defined("CM3_VERSION") > >> /* Critical Mass Modula-3 */ > >> % see http://www.elegosoft.com/cm3/doc/help/cm3/cm3.html > >> > >> % not sure about this: > >> build_standalone() > >> > >> m3_optimize("") > >> end > >> > >> My Main.m3: > >> > >> > >> (* $Id: Main.m3,v 1.1 2011/01/11 10:06:21 mika Exp $ *) > >> > >> MODULE Main; > >> > >> (* threading stress-test *) > >> > >> IMPORT Params, Scan, Thread, Rd, FileRd, Wr, FileWr, Process; > >> > >> VAR n := Scan.Int(Params.Get(1)); > >> > >> PROCEDURE MakeReaderThread() = > >> BEGIN > >> EVAL Thread.Fork(NEW(Thread.Closure, apply := RApply)) > >> END MakeReaderThread; > >> > >> PROCEDURE MakeForkerThread() = > >> BEGIN > >> EVAL Thread.Fork(NEW(Thread.Closure, apply := FApply)) > >> END MakeForkerThread; > >> > >> PROCEDURE MakeAllocatorThread() = > >> BEGIN > >> EVAL Thread.Fork(NEW(Thread.Closure, apply := AApply)) > >> END MakeAllocatorThread; > >> > >> (**********************************************************************) > >> > >> PROCEDURE RApply(cl : Thread.Closure) : REFANY = > >> BEGIN > >> LOOP > >> WITH rd = FileRd.Open(Filename) DO > >> TRY > >> LOOP > >> VAR c := Rd.GetChar(rd); BEGIN END > >> END > >> EXCEPT > >> Rd.EndOfFile => Rd.Close(rd) > >> END > >> END > >> END > >> END RApply; > >> > >> PROCEDURE FApply(cl : Thread.Closure) : REFANY = > >> BEGIN > >> LOOP > >> WITH proc = Process.Create("sleep", > >> ARRAY OF TEXT { "1" }) DO > >> EVAL Process.Wait(proc) > >> END > >> END > >> END FApply; > >> > >> PROCEDURE AApply(cl : Thread.Closure) : REFANY = > >> BEGIN > > LOOP > >> VAR > >> arr := NEW(REF ARRAY OF INTEGER, 1025); > >> BEGIN > >> FOR i := FIRST(arr^)+1 TO LAST(arr^) DO > >> arr[i] := arr[i] - arr[i-1] > >> END > >> END > >> END > >> END AApply; > >> > >> > >> CONST Filename = "hohum"; > >> > >> PROCEDURE WriteAFile() = > >> BEGIN > >> WITH wr = FileWr.Open(Filename) DO > >> FOR i := 1 TO 256 DO > >> FOR j := 1 TO i DO > >> Wr.PutChar(wr, VAL(ORD('A') + i MOD 25, CHAR)) > >> END; > >> Wr.PutChar(wr, '\n') > >> END > >> END > >> END WriteAFile; > >> > >> BEGIN > >> WriteAFile(); > >> FOR i := 1 TO n DIV 3 DO > >> MakeReaderThread() > >> END; > >> FOR i := 1 TO n DIV 3 DO > >> MakeForkerThread() > >> END; > >> FOR i := 1 TO n DIV 3 DO > >> MakeAllocatorThread() > >> END; > >> > >> LOOP > >> Thread.Pause(1.0d0) > >> END > >> END Main. > >> From hosking at cs.purdue.edu Wed Jan 12 02:43:19 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 11 Jan 2011 20:43:19 -0500 Subject: [M3devel] Thread testing program In-Reply-To: <20110111210928.697421A205B@async.async.caltech.edu> References: <20110111102923.AF8001A205B@async.async.caltech.edu> <20110111210928.697421A205B@async.async.caltech.edu> Message-ID: <6FB19D61-E757-4A06-878F-DA427142CEE9@cs.purdue.edu> Please try the latest commit. On Jan 11, 2011, at 4:09 PM, Mika Nystrom wrote: > > AMD64_FREEBSD of some time ago (about a year) also doesn't seem to > make any progress. But no, I haven't gone through any old versions > systematically. The old PM3 is what I use in "production" systems, > and it works... but unfortunately my next "production" system is slated > to be a new Debian system. > > Mika > > Tony Hosking writes: >> Did you stress test any older versions of M3? >> I believe we have had a number of regressions lately. >> >> On Jan 11, 2011, at 5:29 AM, Mika Nystrom wrote: >> >>> >>> Hello everyone, >>> >>> After studying failure modes and implementation of the current >>> threading implementation in CM3, I've developed a little stress-testing >>> program, attached. Currently it crashes in various ways. >>> >>> It takes one command-line argument, the approximate number of threads >>> to create (e.g., 100). It creates threads of three types: >>> reader (reads a file), forker (forks a process), allocator (allocates >>> memory that constantly goes out of scope). >>> >>> Files attached below. Happy 1/11/11. >>> >>> Mika >>> >>> My m3makefile: >>> >>> import ("libm3") >>> >>> implementation ("Main") >>> >>> program ("threadtest") >>> >>> My m3overrides (optional): >>> >>> if defined("CM3_VERSION") >>> /* Critical Mass Modula-3 */ >>> % see http://www.elegosoft.com/cm3/doc/help/cm3/cm3.html >>> >>> % not sure about this: >>> build_standalone() >>> >>> m3_optimize("") >>> end >>> >>> My Main.m3: >>> >>> >>> (* $Id: Main.m3,v 1.1 2011/01/11 10:06:21 mika Exp $ *) >>> >>> MODULE Main; >>> >>> (* threading stress-test *) >>> >>> IMPORT Params, Scan, Thread, Rd, FileRd, Wr, FileWr, Process; >>> >>> VAR n := Scan.Int(Params.Get(1)); >>> >>> PROCEDURE MakeReaderThread() = >>> BEGIN >>> EVAL Thread.Fork(NEW(Thread.Closure, apply := RApply)) >>> END MakeReaderThread; >>> >>> PROCEDURE MakeForkerThread() = >>> BEGIN >>> EVAL Thread.Fork(NEW(Thread.Closure, apply := FApply)) >>> END MakeForkerThread; >>> >>> PROCEDURE MakeAllocatorThread() = >>> BEGIN >>> EVAL Thread.Fork(NEW(Thread.Closure, apply := AApply)) >>> END MakeAllocatorThread; >>> >>> (**********************************************************************) >>> >>> PROCEDURE RApply(cl : Thread.Closure) : REFANY = >>> BEGIN >>> LOOP >>> WITH rd = FileRd.Open(Filename) DO >>> TRY >>> LOOP >>> VAR c := Rd.GetChar(rd); BEGIN END >>> END >>> EXCEPT >>> Rd.EndOfFile => Rd.Close(rd) >>> END >>> END >>> END >>> END RApply; >>> >>> PROCEDURE FApply(cl : Thread.Closure) : REFANY = >>> BEGIN >>> LOOP >>> WITH proc = Process.Create("sleep", >>> ARRAY OF TEXT { "1" }) DO >>> EVAL Process.Wait(proc) >>> END >>> END >>> END FApply; >>> >>> PROCEDURE AApply(cl : Thread.Closure) : REFANY = >>> BEGIN >> LOOP >>> VAR >>> arr := NEW(REF ARRAY OF INTEGER, 1025); >>> BEGIN >>> FOR i := FIRST(arr^)+1 TO LAST(arr^) DO >>> arr[i] := arr[i] - arr[i-1] >>> END >>> END >>> END >>> END AApply; >>> >>> >>> CONST Filename = "hohum"; >>> >>> PROCEDURE WriteAFile() = >>> BEGIN >>> WITH wr = FileWr.Open(Filename) DO >>> FOR i := 1 TO 256 DO >>> FOR j := 1 TO i DO >>> Wr.PutChar(wr, VAL(ORD('A') + i MOD 25, CHAR)) >>> END; >>> Wr.PutChar(wr, '\n') >>> END >>> END >>> END WriteAFile; >>> >>> BEGIN >>> WriteAFile(); >>> FOR i := 1 TO n DIV 3 DO >>> MakeReaderThread() >>> END; >>> FOR i := 1 TO n DIV 3 DO >>> MakeForkerThread() >>> END; >>> FOR i := 1 TO n DIV 3 DO >>> MakeAllocatorThread() >>> END; >>> >>> LOOP >>> Thread.Pause(1.0d0) >>> END >>> END Main. >>> From jay.krell at cornell.edu Wed Jan 12 07:28:26 2011 From: jay.krell at cornell.edu (Jay K) Date: Wed, 12 Jan 2011 06:28:26 +0000 Subject: [M3devel] cg.alloca Message-ID: I'd like to make alloca a separate operation in m3cg. Instead of a special function name that we check for. More like the atomics. I know how and can do it myself easily enough. ok? (and then I'll fix NT386) ?- Jay From jay.krell at cornell.edu Wed Jan 12 08:24:28 2011 From: jay.krell at cornell.edu (Jay K) Date: Wed, 12 Jan 2011 07:24:28 +0000 Subject: [M3devel] cg.alloca In-Reply-To: References: Message-ID: proposed diff attached ?- Jay ---------------------------------------- > From: jay.krell at cornell.edu > To: m3devel at elegosoft.com > Date: Wed, 12 Jan 2011 06:28:26 +0000 > Subject: [M3devel] cg.alloca > > > I'd like to make alloca a separate operation in m3cg. > Instead of a special function name that we check for. > More like the atomics. > I know how and can do it myself easily enough. > ok? > > > (and then I'll fix NT386) > > > - Jay > > -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: cg_alloca.txt URL: From hosking at cs.purdue.edu Wed Jan 12 18:08:41 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 12 Jan 2011 12:08:41 -0500 Subject: [M3devel] cg.alloca In-Reply-To: References: Message-ID: Why does it need to be a special function in the CG? gcc is perfectly capable of inlining it as a special builtin. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 12, 2011, at 1:28 AM, Jay K wrote: > > I'd like to make alloca a separate operation in m3cg. > Instead of a special function name that we check for. > More like the atomics. > I know how and can do it myself easily enough. > ok? > > > (and then I'll fix NT386) > > > - Jay > > From hosking at cs.purdue.edu Wed Jan 12 18:10:02 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 12 Jan 2011 12:10:02 -0500 Subject: [M3devel] cg.alloca In-Reply-To: References: Message-ID: <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu> I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 12, 2011, at 2:24 AM, Jay K wrote: > > proposed diff attached > > - Jay > > ---------------------------------------- >> From: jay.krell at cornell.edu >> To: m3devel at elegosoft.com >> Date: Wed, 12 Jan 2011 06:28:26 +0000 >> Subject: [M3devel] cg.alloca >> >> >> I'd like to make alloca a separate operation in m3cg. >> Instead of a special function name that we check for. >> More like the atomics. >> I know how and can do it myself easily enough. >> ok? >> >> >> (and then I'll fix NT386) >> >> >> - Jay >> >> > From jay.krell at cornell.edu Wed Jan 12 19:06:53 2011 From: jay.krell at cornell.edu (Jay K) Date: Wed, 12 Jan 2011 18:06:53 +0000 Subject: [M3devel] cg.alloca In-Reply-To: <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu> References: , , <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu> Message-ID: On NT386 the function is _chkstk, number of bytes in eax, return value in esp. Notice how in parse.c I had to strcmp for the function name. A little gross, but it does work. ? And C/C++ work that way. Notice how you implemented atomics. I half agree though. It could be a function call even for NT386. The atomics could be too. ?- Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Wed, 12 Jan 2011 12:10:02 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] cg.alloca > > I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. > > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 | Mobile +1 765 427 5484 > > > > > On Jan 12, 2011, at 2:24 AM, Jay K wrote: > > > > > proposed diff attached > > > > - Jay > > > > ---------------------------------------- > >> From: jay.krell at cornell.edu > >> To: m3devel at elegosoft.com > >> Date: Wed, 12 Jan 2011 06:28:26 +0000 > >> Subject: [M3devel] cg.alloca > >> > >> > >> I'd like to make alloca a separate operation in m3cg. > >> Instead of a special function name that we check for. > >> More like the atomics. > >> I know how and can do it myself easily enough. > >> ok? > >> > >> > >> (and then I'll fix NT386) > >> > >> > >> - Jay > >> > >> > > > From hosking at cs.purdue.edu Wed Jan 12 19:34:16 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 12 Jan 2011 13:34:16 -0500 Subject: [M3devel] cg.alloca In-Reply-To: References: , , <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu> Message-ID: No, the atomics can't be because they don't map directly to a gcc builtin, whereas alloca *does*. On Jan 12, 2011, at 1:06 PM, Jay K wrote: > > On NT386 the function is _chkstk, number of bytes in eax, return value in esp. > Notice how in parse.c I had to strcmp for the function name. A little gross, but it does work. > And C/C++ work that way. > Notice how you implemented atomics. > > I half agree though. It could be a function call even for NT386. > The atomics could be too. > > - Jay > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Wed, 12 Jan 2011 12:10:02 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] cg.alloca >> >> I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. >> >> >> Antony Hosking | Associate Professor | Computer Science | Purdue University >> 305 N. University Street | West Lafayette | IN 47907 | USA >> Office +1 765 494 6001 | Mobile +1 765 427 5484 >> >> >> >> >> On Jan 12, 2011, at 2:24 AM, Jay K wrote: >> >>> >>> proposed diff attached >>> >>> - Jay >>> >>> ---------------------------------------- >>>> From: jay.krell at cornell.edu >>>> To: m3devel at elegosoft.com >>>> Date: Wed, 12 Jan 2011 06:28:26 +0000 >>>> Subject: [M3devel] cg.alloca >>>> >>>> >>>> I'd like to make alloca a separate operation in m3cg. >>>> Instead of a special function name that we check for. >>>> More like the atomics. >>>> I know how and can do it myself easily enough. >>>> ok? >>>> >>>> >>>> (and then I'll fix NT386) >>>> >>>> >>>> - Jay >>>> >>>> >>> >> > From jay.krell at cornell.edu Wed Jan 12 21:09:43 2011 From: jay.krell at cornell.edu (Jay K) Date: Wed, 12 Jan 2011 20:09:43 +0000 Subject: [M3devel] cg.alloca In-Reply-To: References: , , , , <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu>, , Message-ID: - Are you ok with the ugly/inefficient strcmp? - And what will be a more significant but still not huge transform in m3back? alloca will translate to chkstk -- an actual function call, but renamed The parameter that was already pushed on the stack will be be poped into eax, whereas with an m3cg operation, it would have been put into eax more directly. The return sequence will probably mov esp into..either eax specifically, or any register..I don't think leaving it in esp is easy enough for m3back to deal with. Again a special case in the general function call/return path. (In reality, the transform is quite significant in m3cc, but it is below where we work.) It's a funny thing in general, these "built in functions" that get very special handling and aren't necessarily "functions" (as in "call"/"ret"). Not clear in general to me how to model them. It makes one wonder why add/sub/multiply/div aren't builtin functions? i.e. "everything" could be viewed as a function. - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Wed, 12 Jan 2011 13:34:16 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] cg.alloca > > No, the atomics can't be because they don't map directly to a gcc builtin, whereas alloca *does*. > > On Jan 12, 2011, at 1:06 PM, Jay K wrote: > > > > > On NT386 the function is _chkstk, number of bytes in eax, return value in esp. > > Notice how in parse.c I had to strcmp for the function name. A little gross, but it does work. > > And C/C++ work that way. > > Notice how you implemented atomics. > > > > I half agree though. It could be a function call even for NT386. > > The atomics could be too. > > > > - Jay > > > > ---------------------------------------- > >> From: hosking at cs.purdue.edu > >> Date: Wed, 12 Jan 2011 12:10:02 -0500 > >> To: jay.krell at cornell.edu > >> CC: m3devel at elegosoft.com > >> Subject: Re: [M3devel] cg.alloca > >> > >> I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. > >> > >> > >> Antony Hosking | Associate Professor | Computer Science | Purdue University > >> 305 N. University Street | West Lafayette | IN 47907 | USA > >> Office +1 765 494 6001 | Mobile +1 765 427 5484 > >> > >> > >> > >> > >> On Jan 12, 2011, at 2:24 AM, Jay K wrote: > >> > >>> > >>> proposed diff attached > >>> > >>> - Jay > >>> > >>> ---------------------------------------- > >>>> From: jay.krell at cornell.edu > >>>> To: m3devel at elegosoft.com > >>>> Date: Wed, 12 Jan 2011 06:28:26 +0000 > >>>> Subject: [M3devel] cg.alloca > >>>> > >>>> > >>>> I'd like to make alloca a separate operation in m3cg. > >>>> Instead of a special function name that we check for. > >>>> More like the atomics. > >>>> I know how and can do it myself easily enough. > >>>> ok? > >>>> > >>>> > >>>> (and then I'll fix NT386) > >>>> > >>>> > >>>> - Jay > >>>> > >>>> > >>> > >> > > > From hosking at cs.purdue.edu Wed Jan 12 21:13:40 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 12 Jan 2011 15:13:40 -0500 Subject: [M3devel] cg.alloca In-Reply-To: References: , , , , <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu>, , Message-ID: <9AEF5B45-D6A5-4651-944C-415D3EC595F6@cs.purdue.edu> On Jan 12, 2011, at 3:09 PM, Jay K wrote: > > - Are you ok with the ugly/inefficient strcmp? Where? > > - And what will be a more significant but still not huge transform in m3back? > alloca will translate to chkstk -- an actual function call, but renamed That's fine. I don't want to complicate m3middle for m3back, which is designed for speed not performance of the resulting code. > > The parameter that was already pushed on the stack will be be poped into eax, > whereas with an m3cg operation, it would have been put into eax more directly. > > The return sequence will probably mov esp into..either eax specifically, or any register..I don't think leaving it in esp is easy enough for m3back to deal with. Again a special case in the general function call/return path. > > > (In reality, the transform is quite significant in m3cc, but it is below where we work.) Indeed. > > > It's a funny thing in general, these "built in functions" that get very special handling and aren't necessarily "functions" (as in "call"/"ret"). Not clear in general to me how to model them. > > > It makes one wonder why add/sub/multiply/div aren't builtin functions? > i.e. "everything" could be viewed as a function. > > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Wed, 12 Jan 2011 13:34:16 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] cg.alloca >> >> No, the atomics can't be because they don't map directly to a gcc builtin, whereas alloca *does*. >> >> On Jan 12, 2011, at 1:06 PM, Jay K wrote: >> >>> >>> On NT386 the function is _chkstk, number of bytes in eax, return value in esp. >>> Notice how in parse.c I had to strcmp for the function name. A little gross, but it does work. >>> And C/C++ work that way. >>> Notice how you implemented atomics. >>> >>> I half agree though. It could be a function call even for NT386. >>> The atomics could be too. >>> >>> - Jay >>> >>> ---------------------------------------- >>>> From: hosking at cs.purdue.edu >>>> Date: Wed, 12 Jan 2011 12:10:02 -0500 >>>> To: jay.krell at cornell.edu >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] cg.alloca >>>> >>>> I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. >>>> >>>> >>>> Antony Hosking | Associate Professor | Computer Science | Purdue University >>>> 305 N. University Street | West Lafayette | IN 47907 | USA >>>> Office +1 765 494 6001 | Mobile +1 765 427 5484 >>>> >>>> >>>> >>>> >>>> On Jan 12, 2011, at 2:24 AM, Jay K wrote: >>>> >>>>> >>>>> proposed diff attached >>>>> >>>>> - Jay >>>>> >>>>> ---------------------------------------- >>>>>> From: jay.krell at cornell.edu >>>>>> To: m3devel at elegosoft.com >>>>>> Date: Wed, 12 Jan 2011 06:28:26 +0000 >>>>>> Subject: [M3devel] cg.alloca >>>>>> >>>>>> >>>>>> I'd like to make alloca a separate operation in m3cg. >>>>>> Instead of a special function name that we check for. >>>>>> More like the atomics. >>>>>> I know how and can do it myself easily enough. >>>>>> ok? >>>>>> >>>>>> >>>>>> (and then I'll fix NT386) >>>>>> >>>>>> >>>>>> - Jay >>>>>> >>>>>> >>>>> >>>> >>> >> From jay.krell at cornell.edu Wed Jan 12 21:36:18 2011 From: jay.krell at cornell.edu (Jay K) Date: Wed, 12 Jan 2011 20:36:18 +0000 Subject: [M3devel] cg.alloca In-Reply-To: <9AEF5B45-D6A5-4651-944C-415D3EC595F6@cs.purdue.edu> References: , ,,, , , <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu>, , , , , , <9AEF5B45-D6A5-4651-944C-415D3EC595F6@cs.purdue.edu> Message-ID: http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/m3cc/gcc/gcc/m3cg/parse.c I'm sure it is plenty fast, and I could make it faster probably by checking the length first and doing just one strcmp instead of 3, it's just the cleanliness perhaps.. though this is basically what the regular gcc backend does anyway -- map function names to builtins. m3_convert_function_to_builtin (tree p) { tree *slot = (tree *)htab_find_slot (builtins, p, NO_INSERT); if (slot) { p = *slot; } else { const char *name = IDENTIFIER_POINTER (DECL_NAME (p)); if (name[0] == 'a' || name[0] == '_') { if (strcmp(name, "alloca") == 0 || strcmp(name, "_alloca") == 0 || strcmp(name, "__builtin_alloca") == 0) { p = built_in_decls[BUILT_IN_ALLOCA]; } } } return p; } This might not even be needed -- the backend might do it anyway. What I was partly doing here though is giving myself flexibility in what string to use -- ie. I thought I might get away with "_alloca" and have it "just work" in m3back, and then do the translation here, rather than in Target.i3 have an Alloca: TEXT -- more target-dependent code. Given what I know now about NT/x86 though, this is a lost cause -- the function is "chkstk" and has a custom calling convention, so it won't "just work". That is, I can try using __builtin_alloca and try w/o the special casing above. Special casing in m3back is unavoidable, and what string we use is arguably arbitrary, or arguably should be "_chkstk" -- slight additional target-specificity. But heck, I'm also willing to go back to the old scheme for NT/x86 anyway, with the static allocation. Though I probably won't. I really need to fix the for i := 0 to 10 do try finally end thing -- to not alloca 10 times. - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Wed, 12 Jan 2011 15:13:40 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] cg.alloca > > > On Jan 12, 2011, at 3:09 PM, Jay K wrote: > > > > > - Are you ok with the ugly/inefficient strcmp? > > Where? > > > > > - And what will be a more significant but still not huge transform in m3back? > > alloca will translate to chkstk -- an actual function call, but renamed > > That's fine. I don't want to complicate m3middle for m3back, which is designed for speed not performance of the resulting code. > > > > > The parameter that was already pushed on the stack will be be poped into eax, > > whereas with an m3cg operation, it would have been put into eax more directly. > > > > The return sequence will probably mov esp into..either eax specifically, or any register..I don't think leaving it in esp is easy enough for m3back to deal with. Again a special case in the general function call/return path. > > > > > > (In reality, the transform is quite significant in m3cc, but it is below where we work.) > > Indeed. > > > > > > > It's a funny thing in general, these "built in functions" that get very special handling and aren't necessarily "functions" (as in "call"/"ret"). Not clear in general to me how to model them. > > > > > > It makes one wonder why add/sub/multiply/div aren't builtin functions? > > i.e. "everything" could be viewed as a function. > > > > > > - Jay > > > > > > ---------------------------------------- > >> From: hosking at cs.purdue.edu > >> Date: Wed, 12 Jan 2011 13:34:16 -0500 > >> To: jay.krell at cornell.edu > >> CC: m3devel at elegosoft.com > >> Subject: Re: [M3devel] cg.alloca > >> > >> No, the atomics can't be because they don't map directly to a gcc builtin, whereas alloca *does*. > >> > >> On Jan 12, 2011, at 1:06 PM, Jay K wrote: > >> > >>> > >>> On NT386 the function is _chkstk, number of bytes in eax, return value in esp. > >>> Notice how in parse.c I had to strcmp for the function name. A little gross, but it does work. > >>> And C/C++ work that way. > >>> Notice how you implemented atomics. > >>> > >>> I half agree though. It could be a function call even for NT386. > >>> The atomics could be too. > >>> > >>> - Jay > >>> > >>> ---------------------------------------- > >>>> From: hosking at cs.purdue.edu > >>>> Date: Wed, 12 Jan 2011 12:10:02 -0500 > >>>> To: jay.krell at cornell.edu > >>>> CC: m3devel at elegosoft.com > >>>> Subject: Re: [M3devel] cg.alloca > >>>> > >>>> I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. > >>>> > >>>> > >>>> Antony Hosking | Associate Professor | Computer Science | Purdue University > >>>> 305 N. University Street | West Lafayette | IN 47907 | USA > >>>> Office +1 765 494 6001 | Mobile +1 765 427 5484 > >>>> > >>>> > >>>> > >>>> > >>>> On Jan 12, 2011, at 2:24 AM, Jay K wrote: > >>>> > >>>>> > >>>>> proposed diff attached > >>>>> > >>>>> - Jay > >>>>> > >>>>> ---------------------------------------- > >>>>>> From: jay.krell at cornell.edu > >>>>>> To: m3devel at elegosoft.com > >>>>>> Date: Wed, 12 Jan 2011 06:28:26 +0000 > >>>>>> Subject: [M3devel] cg.alloca > >>>>>> > >>>>>> > >>>>>> I'd like to make alloca a separate operation in m3cg. > >>>>>> Instead of a special function name that we check for. > >>>>>> More like the atomics. > >>>>>> I know how and can do it myself easily enough. > >>>>>> ok? > >>>>>> > >>>>>> > >>>>>> (and then I'll fix NT386) > >>>>>> > >>>>>> > >>>>>> - Jay > >>>>>> > >>>>>> > >>>>> > >>>> > >>> > >> > From hosking at cs.purdue.edu Wed Jan 12 22:02:21 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 12 Jan 2011 16:02:21 -0500 Subject: [M3devel] cg.alloca In-Reply-To: References: , , , , , , <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu>, , , , , , <9AEF5B45-D6A5-4651-944C-415D3EC595F6@cs.purdue.edu> Message-ID: I think that's fine. On Jan 12, 2011, at 3:36 PM, Jay K wrote: > > http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/m3cc/gcc/gcc/m3cg/parse.c > > > I'm sure it is plenty fast, and I could make it faster probably by checking the length first and doing just one strcmp instead of 3, it's just the cleanliness perhaps.. though this is basically what the regular gcc backend does anyway -- map function names to builtins. > > > m3_convert_function_to_builtin (tree p) > { > tree *slot = (tree *)htab_find_slot (builtins, p, NO_INSERT); > if (slot) > { > p = *slot; > } > else > { > const char *name = IDENTIFIER_POINTER (DECL_NAME (p)); > if (name[0] == 'a' || name[0] == '_') > { > if (strcmp(name, "alloca") == 0 > || strcmp(name, "_alloca") == 0 > || strcmp(name, "__builtin_alloca") == 0) > { > p = built_in_decls[BUILT_IN_ALLOCA]; > } > } > } > return p; > } > > > This might not even be needed -- the backend might do it anyway. > What I was partly doing here though is giving myself flexibility in what string to use -- ie. I thought I might get away with "_alloca" and have it "just work" in m3back, and then do the translation here, rather than in Target.i3 have an Alloca: TEXT -- more target-dependent code. > > > Given what I know now about NT/x86 though, this is a lost cause -- the function is "chkstk" and has a custom calling convention, so it won't "just work". > > > That is, I can try using __builtin_alloca and try w/o the special casing above. > Special casing in m3back is unavoidable, and what string we use is arguably arbitrary, or arguably should be "_chkstk" -- slight additional target-specificity. > > > But heck, I'm also willing to go back to the old scheme for NT/x86 anyway, with the static allocation. Though I probably won't. > > > I really need to fix the for i := 0 to 10 do try finally end thing -- to not alloca 10 times. > > > > - Jay > > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Wed, 12 Jan 2011 15:13:40 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] cg.alloca >> >> >> On Jan 12, 2011, at 3:09 PM, Jay K wrote: >> >>> >>> - Are you ok with the ugly/inefficient strcmp? >> >> Where? >> >>> >>> - And what will be a more significant but still not huge transform in m3back? >>> alloca will translate to chkstk -- an actual function call, but renamed >> >> That's fine. I don't want to complicate m3middle for m3back, which is designed for speed not performance of the resulting code. >> >>> >>> The parameter that was already pushed on the stack will be be poped into eax, >>> whereas with an m3cg operation, it would have been put into eax more directly. >>> >>> The return sequence will probably mov esp into..either eax specifically, or any register..I don't think leaving it in esp is easy enough for m3back to deal with. Again a special case in the general function call/return path. >>> >>> >>> (In reality, the transform is quite significant in m3cc, but it is below where we work.) >> >> Indeed. >> >>> >>> >>> It's a funny thing in general, these "built in functions" that get very special handling and aren't necessarily "functions" (as in "call"/"ret"). Not clear in general to me how to model them. >>> >>> >>> It makes one wonder why add/sub/multiply/div aren't builtin functions? >>> i.e. "everything" could be viewed as a function. >>> >>> >>> - Jay >>> >>> >>> ---------------------------------------- >>>> From: hosking at cs.purdue.edu >>>> Date: Wed, 12 Jan 2011 13:34:16 -0500 >>>> To: jay.krell at cornell.edu >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] cg.alloca >>>> >>>> No, the atomics can't be because they don't map directly to a gcc builtin, whereas alloca *does*. >>>> >>>> On Jan 12, 2011, at 1:06 PM, Jay K wrote: >>>> >>>>> >>>>> On NT386 the function is _chkstk, number of bytes in eax, return value in esp. >>>>> Notice how in parse.c I had to strcmp for the function name. A little gross, but it does work. >>>>> And C/C++ work that way. >>>>> Notice how you implemented atomics. >>>>> >>>>> I half agree though. It could be a function call even for NT386. >>>>> The atomics could be too. >>>>> >>>>> - Jay >>>>> >>>>> ---------------------------------------- >>>>>> From: hosking at cs.purdue.edu >>>>>> Date: Wed, 12 Jan 2011 12:10:02 -0500 >>>>>> To: jay.krell at cornell.edu >>>>>> CC: m3devel at elegosoft.com >>>>>> Subject: Re: [M3devel] cg.alloca >>>>>> >>>>>> I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. >>>>>> >>>>>> >>>>>> Antony Hosking | Associate Professor | Computer Science | Purdue University >>>>>> 305 N. University Street | West Lafayette | IN 47907 | USA >>>>>> Office +1 765 494 6001 | Mobile +1 765 427 5484 >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Jan 12, 2011, at 2:24 AM, Jay K wrote: >>>>>> >>>>>>> >>>>>>> proposed diff attached >>>>>>> >>>>>>> - Jay >>>>>>> >>>>>>> ---------------------------------------- >>>>>>>> From: jay.krell at cornell.edu >>>>>>>> To: m3devel at elegosoft.com >>>>>>>> Date: Wed, 12 Jan 2011 06:28:26 +0000 >>>>>>>> Subject: [M3devel] cg.alloca >>>>>>>> >>>>>>>> >>>>>>>> I'd like to make alloca a separate operation in m3cg. >>>>>>>> Instead of a special function name that we check for. >>>>>>>> More like the atomics. >>>>>>>> I know how and can do it myself easily enough. >>>>>>>> ok? >>>>>>>> >>>>>>>> >>>>>>>> (and then I'll fix NT386) >>>>>>>> >>>>>>>> >>>>>>>> - Jay >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >> From jay.krell at cornell.edu Wed Jan 12 22:11:29 2011 From: jay.krell at cornell.edu (Jay K) Date: Wed, 12 Jan 2011 21:11:29 +0000 Subject: [M3devel] cg.alloca In-Reply-To: References: , , ,,, , ,,<3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu>, ,,, , , , , , , <9AEF5B45-D6A5-4651-944C-415D3EC595F6@cs.purdue.edu>, , Message-ID: You prefer it asis, using function calls, possibly with special casing at the next level down to change to something else (or further down)? I can try removing the special casing in parse.c, e.g. by using __builtin_alloca in m3front. But you like it asis? No m3cg change? m3back could easily do a slightly better job if m3cg was changed. But granted, it doesn't matter, and if efficiency were paramount, the way it was a week ago was better still. - Jay ---------------------------------------- > From: hosking at cs.purdue.edu > Date: Wed, 12 Jan 2011 16:02:21 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] cg.alloca > > I think that's fine. > > On Jan 12, 2011, at 3:36 PM, Jay K wrote: > > > > > http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/m3cc/gcc/gcc/m3cg/parse.c > > > > > > I'm sure it is plenty fast, and I could make it faster probably by checking the length first and doing just one strcmp instead of 3, it's just the cleanliness perhaps.. though this is basically what the regular gcc backend does anyway -- map function names to builtins. > > > > > > m3_convert_function_to_builtin (tree p) > > { > > tree *slot = (tree *)htab_find_slot (builtins, p, NO_INSERT); > > if (slot) > > { > > p = *slot; > > } > > else > > { > > const char *name = IDENTIFIER_POINTER (DECL_NAME (p)); > > if (name[0] == 'a' || name[0] == '_') > > { > > if (strcmp(name, "alloca") == 0 > > || strcmp(name, "_alloca") == 0 > > || strcmp(name, "__builtin_alloca") == 0) > > { > > p = built_in_decls[BUILT_IN_ALLOCA]; > > } > > } > > } > > return p; > > } > > > > > > This might not even be needed -- the backend might do it anyway. > > What I was partly doing here though is giving myself flexibility in what string to use -- ie. I thought I might get away with "_alloca" and have it "just work" in m3back, and then do the translation here, rather than in Target.i3 have an Alloca: TEXT -- more target-dependent code. > > > > > > Given what I know now about NT/x86 though, this is a lost cause -- the function is "chkstk" and has a custom calling convention, so it won't "just work". > > > > > > That is, I can try using __builtin_alloca and try w/o the special casing above. > > Special casing in m3back is unavoidable, and what string we use is arguably arbitrary, or arguably should be "_chkstk" -- slight additional target-specificity. > > > > > > But heck, I'm also willing to go back to the old scheme for NT/x86 anyway, with the static allocation. Though I probably won't. > > > > > > I really need to fix the for i := 0 to 10 do try finally end thing -- to not alloca 10 times. > > > > > > > > - Jay > > > > > > ---------------------------------------- > >> From: hosking at cs.purdue.edu > >> Date: Wed, 12 Jan 2011 15:13:40 -0500 > >> To: jay.krell at cornell.edu > >> CC: m3devel at elegosoft.com > >> Subject: Re: [M3devel] cg.alloca > >> > >> > >> On Jan 12, 2011, at 3:09 PM, Jay K wrote: > >> > >>> > >>> - Are you ok with the ugly/inefficient strcmp? > >> > >> Where? > >> > >>> > >>> - And what will be a more significant but still not huge transform in m3back? > >>> alloca will translate to chkstk -- an actual function call, but renamed > >> > >> That's fine. I don't want to complicate m3middle for m3back, which is designed for speed not performance of the resulting code. > >> > >>> > >>> The parameter that was already pushed on the stack will be be poped into eax, > >>> whereas with an m3cg operation, it would have been put into eax more directly. > >>> > >>> The return sequence will probably mov esp into..either eax specifically, or any register..I don't think leaving it in esp is easy enough for m3back to deal with. Again a special case in the general function call/return path. > >>> > >>> > >>> (In reality, the transform is quite significant in m3cc, but it is below where we work.) > >> > >> Indeed. > >> > >>> > >>> > >>> It's a funny thing in general, these "built in functions" that get very special handling and aren't necessarily "functions" (as in "call"/"ret"). Not clear in general to me how to model them. > >>> > >>> > >>> It makes one wonder why add/sub/multiply/div aren't builtin functions? > >>> i.e. "everything" could be viewed as a function. > >>> > >>> > >>> - Jay > >>> > >>> > >>> ---------------------------------------- > >>>> From: hosking at cs.purdue.edu > >>>> Date: Wed, 12 Jan 2011 13:34:16 -0500 > >>>> To: jay.krell at cornell.edu > >>>> CC: m3devel at elegosoft.com > >>>> Subject: Re: [M3devel] cg.alloca > >>>> > >>>> No, the atomics can't be because they don't map directly to a gcc builtin, whereas alloca *does*. > >>>> > >>>> On Jan 12, 2011, at 1:06 PM, Jay K wrote: > >>>> > >>>>> > >>>>> On NT386 the function is _chkstk, number of bytes in eax, return value in esp. > >>>>> Notice how in parse.c I had to strcmp for the function name. A little gross, but it does work. > >>>>> And C/C++ work that way. > >>>>> Notice how you implemented atomics. > >>>>> > >>>>> I half agree though. It could be a function call even for NT386. > >>>>> The atomics could be too. > >>>>> > >>>>> - Jay > >>>>> > >>>>> ---------------------------------------- > >>>>>> From: hosking at cs.purdue.edu > >>>>>> Date: Wed, 12 Jan 2011 12:10:02 -0500 > >>>>>> To: jay.krell at cornell.edu > >>>>>> CC: m3devel at elegosoft.com > >>>>>> Subject: Re: [M3devel] cg.alloca > >>>>>> > >>>>>> I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. > >>>>>> > >>>>>> > >>>>>> Antony Hosking | Associate Professor | Computer Science | Purdue University > >>>>>> 305 N. University Street | West Lafayette | IN 47907 | USA > >>>>>> Office +1 765 494 6001 | Mobile +1 765 427 5484 > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> On Jan 12, 2011, at 2:24 AM, Jay K wrote: > >>>>>> > >>>>>>> > >>>>>>> proposed diff attached > >>>>>>> > >>>>>>> - Jay > >>>>>>> > >>>>>>> ---------------------------------------- > >>>>>>>> From: jay.krell at cornell.edu > >>>>>>>> To: m3devel at elegosoft.com > >>>>>>>> Date: Wed, 12 Jan 2011 06:28:26 +0000 > >>>>>>>> Subject: [M3devel] cg.alloca > >>>>>>>> > >>>>>>>> > >>>>>>>> I'd like to make alloca a separate operation in m3cg. > >>>>>>>> Instead of a special function name that we check for. > >>>>>>>> More like the atomics. > >>>>>>>> I know how and can do it myself easily enough. > >>>>>>>> ok? > >>>>>>>> > >>>>>>>> > >>>>>>>> (and then I'll fix NT386) > >>>>>>>> > >>>>>>>> > >>>>>>>> - Jay > >>>>>>>> > >>>>>>>> > >>>>>>> > >>>>>> > >>>>> > >>>> > >> > From hosking at cs.purdue.edu Wed Jan 12 22:33:49 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 12 Jan 2011 16:33:49 -0500 Subject: [M3devel] cg.alloca In-Reply-To: References: , , , , , , , , <3D706DB4-4E2A-4AAF-BD0D-4A6A183682AA@cs.purdue.edu>, , , , , , , , , , <9AEF5B45-D6A5-4651-944C-415D3EC595F6@cs.purdue.edu>, , Message-ID: <4DAF1487-CD07-4890-8D84-288915898241@cs.purdue.edu> Yes, prefer as is. No m3cg change. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 12, 2011, at 4:11 PM, Jay K wrote: > > You prefer it asis, using function calls, possibly with special casing at the next level down to change to something else (or further down)? > > > I can try removing the special casing in parse.c, e.g. by using __builtin_alloca in m3front. > But you like it asis? > No m3cg change? > > > m3back could easily do a slightly better job if m3cg was changed. > But granted, it doesn't matter, and if efficiency were paramount, the way it was a week ago was better still. > > > - Jay > > ---------------------------------------- >> From: hosking at cs.purdue.edu >> Date: Wed, 12 Jan 2011 16:02:21 -0500 >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] cg.alloca >> >> I think that's fine. >> >> On Jan 12, 2011, at 3:36 PM, Jay K wrote: >> >>> >>> http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/m3cc/gcc/gcc/m3cg/parse.c >>> >>> >>> I'm sure it is plenty fast, and I could make it faster probably by checking the length first and doing just one strcmp instead of 3, it's just the cleanliness perhaps.. though this is basically what the regular gcc backend does anyway -- map function names to builtins. >>> >>> >>> m3_convert_function_to_builtin (tree p) >>> { >>> tree *slot = (tree *)htab_find_slot (builtins, p, NO_INSERT); >>> if (slot) >>> { >>> p = *slot; >>> } >>> else >>> { >>> const char *name = IDENTIFIER_POINTER (DECL_NAME (p)); >>> if (name[0] == 'a' || name[0] == '_') >>> { >>> if (strcmp(name, "alloca") == 0 >>> || strcmp(name, "_alloca") == 0 >>> || strcmp(name, "__builtin_alloca") == 0) >>> { >>> p = built_in_decls[BUILT_IN_ALLOCA]; >>> } >>> } >>> } >>> return p; >>> } >>> >>> >>> This might not even be needed -- the backend might do it anyway. >>> What I was partly doing here though is giving myself flexibility in what string to use -- ie. I thought I might get away with "_alloca" and have it "just work" in m3back, and then do the translation here, rather than in Target.i3 have an Alloca: TEXT -- more target-dependent code. >>> >>> >>> Given what I know now about NT/x86 though, this is a lost cause -- the function is "chkstk" and has a custom calling convention, so it won't "just work". >>> >>> >>> That is, I can try using __builtin_alloca and try w/o the special casing above. >>> Special casing in m3back is unavoidable, and what string we use is arguably arbitrary, or arguably should be "_chkstk" -- slight additional target-specificity. >>> >>> >>> But heck, I'm also willing to go back to the old scheme for NT/x86 anyway, with the static allocation. Though I probably won't. >>> >>> >>> I really need to fix the for i := 0 to 10 do try finally end thing -- to not alloca 10 times. >>> >>> >>> >>> - Jay >>> >>> >>> ---------------------------------------- >>>> From: hosking at cs.purdue.edu >>>> Date: Wed, 12 Jan 2011 15:13:40 -0500 >>>> To: jay.krell at cornell.edu >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] cg.alloca >>>> >>>> >>>> On Jan 12, 2011, at 3:09 PM, Jay K wrote: >>>> >>>>> >>>>> - Are you ok with the ugly/inefficient strcmp? >>>> >>>> Where? >>>> >>>>> >>>>> - And what will be a more significant but still not huge transform in m3back? >>>>> alloca will translate to chkstk -- an actual function call, but renamed >>>> >>>> That's fine. I don't want to complicate m3middle for m3back, which is designed for speed not performance of the resulting code. >>>> >>>>> >>>>> The parameter that was already pushed on the stack will be be poped into eax, >>>>> whereas with an m3cg operation, it would have been put into eax more directly. >>>>> >>>>> The return sequence will probably mov esp into..either eax specifically, or any register..I don't think leaving it in esp is easy enough for m3back to deal with. Again a special case in the general function call/return path. >>>>> >>>>> >>>>> (In reality, the transform is quite significant in m3cc, but it is below where we work.) >>>> >>>> Indeed. >>>> >>>>> >>>>> >>>>> It's a funny thing in general, these "built in functions" that get very special handling and aren't necessarily "functions" (as in "call"/"ret"). Not clear in general to me how to model them. >>>>> >>>>> >>>>> It makes one wonder why add/sub/multiply/div aren't builtin functions? >>>>> i.e. "everything" could be viewed as a function. >>>>> >>>>> >>>>> - Jay >>>>> >>>>> >>>>> ---------------------------------------- >>>>>> From: hosking at cs.purdue.edu >>>>>> Date: Wed, 12 Jan 2011 13:34:16 -0500 >>>>>> To: jay.krell at cornell.edu >>>>>> CC: m3devel at elegosoft.com >>>>>> Subject: Re: [M3devel] cg.alloca >>>>>> >>>>>> No, the atomics can't be because they don't map directly to a gcc builtin, whereas alloca *does*. >>>>>> >>>>>> On Jan 12, 2011, at 1:06 PM, Jay K wrote: >>>>>> >>>>>>> >>>>>>> On NT386 the function is _chkstk, number of bytes in eax, return value in esp. >>>>>>> Notice how in parse.c I had to strcmp for the function name. A little gross, but it does work. >>>>>>> And C/C++ work that way. >>>>>>> Notice how you implemented atomics. >>>>>>> >>>>>>> I half agree though. It could be a function call even for NT386. >>>>>>> The atomics could be too. >>>>>>> >>>>>>> - Jay >>>>>>> >>>>>>> ---------------------------------------- >>>>>>>> From: hosking at cs.purdue.edu >>>>>>>> Date: Wed, 12 Jan 2011 12:10:02 -0500 >>>>>>>> To: jay.krell at cornell.edu >>>>>>>> CC: m3devel at elegosoft.com >>>>>>>> Subject: Re: [M3devel] cg.alloca >>>>>>>> >>>>>>>> I don't see the reason for this. If alloca is imported and invoked the gcc backend will happily replace it with inline code. >>>>>>>> >>>>>>>> >>>>>>>> Antony Hosking | Associate Professor | Computer Science | Purdue University >>>>>>>> 305 N. University Street | West Lafayette | IN 47907 | USA >>>>>>>> Office +1 765 494 6001 | Mobile +1 765 427 5484 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Jan 12, 2011, at 2:24 AM, Jay K wrote: >>>>>>>> >>>>>>>>> >>>>>>>>> proposed diff attached >>>>>>>>> >>>>>>>>> - Jay >>>>>>>>> >>>>>>>>> ---------------------------------------- >>>>>>>>>> From: jay.krell at cornell.edu >>>>>>>>>> To: m3devel at elegosoft.com >>>>>>>>>> Date: Wed, 12 Jan 2011 06:28:26 +0000 >>>>>>>>>> Subject: [M3devel] cg.alloca >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> I'd like to make alloca a separate operation in m3cg. >>>>>>>>>> Instead of a special function name that we check for. >>>>>>>>>> More like the atomics. >>>>>>>>>> I know how and can do it myself easily enough. >>>>>>>>>> ok? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> (and then I'll fix NT386) >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> - Jay >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>> >> From hosking at cs.purdue.edu Thu Jan 13 06:56:27 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 13 Jan 2011 00:56:27 -0500 Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <20110113032413.889001A205B@async.async.caltech.edu> References: <20110112183316.3F661CC37B@birch.elegosoft.com> <20110112215850.7E7851A205B@async.async.caltech.edu> <20110113032413.889001A205B@async.async.caltech.edu> Message-ID: In this trace, there are only a few threads not trying to acquire heapMu for allocation. I don't know what the spin_lock threads are doing... We're left with thread 39 stuck in some spin lock. Thread 35 is stuck in fork (in AtForkPrepare) waiting for heapMu. Thread 31 is stuck in InitMutex trying waiting for heapMu. I can't see any thread that actually holds heapMu. Except, now I see that RTCollector also has AtFork routines, which LockHeap/UnlockHeap. I think this means the atfork routines in ThreadPThread must invoke LockHeap/UnlockHeap to avoid deadlocking with itself! Yikes. I'll check in the change and perhaps you can see if that fixes things. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 12, 2011, at 10:24 PM, Mika Nystrom wrote: > > Tony Hosking writes: >> OK, backing right off. Try the latest. > > Hmm, think we're deadlocked again? > > My application goes catatonic almost right away, but the trace below is > from the threadtest program. > > > Continuing. > > Program received signal SIGINT, Interrupt. > 0x9710b136 in semaphore_wait_trap () ... > Thread 67 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 66 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 65 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 64 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 63 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 62 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 61 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 60 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 59 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 58 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 57 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 56 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 55 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 54 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 53 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 52 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 51 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 50 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 49 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 48 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 47 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 46 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 45 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 44 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 43 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 42 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 41 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 40 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 39 (process 86373): > #0 0xffff0279 in __spin_lock () > #1 0x97137203 in _cthread_fork_prepare () > #2 0x97137155 in fork () > #3 0x00007a21 in ProcessPosixCommon__Create_ForkExec (cmd=0x64334, params=0x64344, env=0x0, wd=0x0, stdin=0x0, stdout=0x0, stderr=0x0) at ../src/os/POSIX/ProcessPosixCommon.m3:75 > #4 0x00008f0b in Process__Create (cmd=0x64334, params=0x64344, env=0x0, wd=0x0, stdin=0x0, stdout=0x0, stderr=0x0) at ../src/os/POSIX/ProcessPosix.m3:21 > #5 0x0000329e in Main__FApply (cl=0xb05bc0) at ../src/Main.m3:56 > #6 0x00041068 in ThreadPThread__RunThread (me=0xe018c0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #7 0x00040d97 in ThreadPThread__ThreadBase (param=0xe018c0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #8 0x9713885d in _pthread_start () > #9 0x971386e2 in thread_start () > > Thread 38 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 37 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 36 (process 86373): > #0 0xffff028f in __spin_lock () > #1 0x00000000 in ?? () > > Thread 35 (process 86373): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x00044929 in ThreadPThread__pthread_mutex_lock (i=0x7e920) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 > #3 0x000436d2 in ThreadPThread__PThreadLockMutex (mutex=0x7e920, line=1274) at ../src/thread/PTHREAD/ThreadPThread.m3:1253 > #4 0x000437b1 in ThreadPThread__AtForkPrepare () at ../src/thread/PTHREAD/ThreadPThread.m3:1274 > #5 0x97137217 in _cthread_fork_prepare () > #6 0x97137155 in fork () > #7 0x00007a21 in ProcessPosixCommon__Create_ForkExec (cmd=0x64334, params=0x64344, env=0x0, wd=0x0, stdin=0x0, stdout=0x0, stderr=0x0) at ../src/os/POSIX/ProcessPosixCommon.m3:75 > #8 0x00008f0b in Process__Create (cmd=0x64334, params=0x64344, env=0x0, wd=0x0, stdin=0x0, stdout=0x0, stderr=0x0) at ../src/os/POSIX/ProcessPosix.m3:21 > #9 0x0000329e in Main__FApply (cl=0xb05ae0) at ../src/Main.m3:56 > #10 0x00041068 in ThreadPThread__RunThread (me=0xe01600) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #11 0x00040d97 in ThreadPThread__ThreadBase (param=0xe01600) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #12 0x9713885d in _pthread_start () > #13 0x971386e2 in thread_start () > > Thread 31 (process 86373): > #0 0x9710b136 in semaphore_wait_trap () > #1 0x97110c53 in pthread_mutex_lock () > #2 0x00044929 in ThreadPThread__pthread_mutex_lock (i=0x7e920) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 > #3 0x00043bc4 in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 > #4 0x0003f2e6 in ThreadPThread__InitMutex (m=0x2070010, root=0x207000c, Clean=0x3f1b6) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #5 0x0003f38f in ThreadPThread__LockMutex (m=0x207000c) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #6 0x000091e8 in Rd__GetChar (rd=0x207000c) at ../src/rw/Rd.m3:33 > #7 0x0000314d in Main__RApply (cl=0xb05a00) at ../src/Main.m3:42 > #8 0x00041068 in ThreadPThread__RunThread (me=0xe01340) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #9 0x00040d97 in ThreadPThread__ThreadBase (param=0xe01340) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #10 0x9713885d in _pthread_start () > #11 0x971386e2 in thread_start () From jay.krell at cornell.edu Thu Jan 13 16:14:21 2011 From: jay.krell at cornell.edu (Jay K) Date: Thu, 13 Jan 2011 15:14:21 +0000 Subject: [M3devel] parse.c builtins hashtable needed? In-Reply-To: References: <20110113145829.72EAD2474003@birch.elegosoft.com>, , Message-ID: Um. I don't see the point of the hashtable actually. All the calls except "m3_alloca" are translated "directly". I understand that if there were many things like this new m3_alloca, a hashtable would make sense. I understand as well that __builtin_alloca ought to just work w/o special handling, but I didn't debug why. I'm testing the below and expect it will work. Even if atomics are used much. ? Index: m3-sys/m3cc/gcc/gcc/m3cg/parse.c =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3cc/gcc/gcc/m3cg/parse.c,v retrieving revision 1.478 diff -u -r1.478 parse.c --- m3-sys/m3cc/gcc/gcc/m3cg/parse.c 13 Jan 2011 14:58:29 -0000 1.478 +++ m3-sys/m3cc/gcc/gcc/m3cg/parse.c 13 Jan 2011 15:10:35 -0000 @@ -1535,37 +1535,6 @@ return decl; } -/* Return a definition for a builtin function named NAME and whose data type - is TYPE. TYPE should be a function type with argument types. - FUNCTION_CODE tells later passes how to compile calls to this function. - See tree.h for its possible values. - - If LIBRARY_NAME is nonzero, use that for DECL_ASSEMBLER_NAME, - the name to be called if we can't opencode the function. If - ATTRS is nonzero, use that for the function's attribute list. - - copied from gcc/c-decl.c -*/ - -static GTY ((param_is (union tree_node))) htab_t builtins; - -static hashval_t -htab_hash_builtin (const PTR p) -{ - const_tree t = (const_tree)p; - - return htab_hash_pointer (DECL_NAME (t)); -} - -static int -htab_eq_builtin (const PTR p1, const PTR p2) -{ - const_tree t1 = (const_tree)p1; - const_tree t2 = (const_tree)p2; - - return DECL_NAME (t1) == DECL_NAME (t2); -} - static tree builtin_function (PCSTR name, tree type, #if GCC42 @@ -1595,13 +1564,6 @@ gcc_assert (!library_name); } - if (!builtins) - builtins = htab_create_ggc (1021, htab_hash_builtin, - htab_eq_builtin, NULL); - tree* slot = (tree *)htab_find_slot (builtins, decl, INSERT); - gcc_assert (*slot == NULL); - *slot = decl; - TREE_CHAIN (decl) = global_decls; global_decls = decl; @@ -2979,11 +2941,7 @@ static tree m3_convert_function_to_builtin (tree p) { - tree *slot = (tree *)htab_find_slot (builtins, p, NO_INSERT); - - if (slot) - p = *slot; - else if (DECL_NAME (p) == m3_alloca) + if (DECL_NAME (p) == m3_alloca) p = built_in_decls[BUILT_IN_ALLOCA]; return p; } ? - Jay From: jay.krell at cornell.edu To: jkrell at elego.de; m3commit at elegosoft.com Subject: RE: [M3commit] CVS Update: cm3 Date: Thu, 13 Jan 2011 15:06:37 +0000 Hm. I'll try the hashtable instead. - Jay From: jay.krell at cornell.edu To: jkrell at elego.de; m3commit at elegosoft.com Subject: RE: [M3commit] CVS Update: cm3 Date: Thu, 13 Jan 2011 15:00:24 +0000 Index: m3-sys/m3front/src/misc/Marker.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.m3,v retrieving revision 1.8 diff -u -r1.8 Marker.m3 --- m3-sys/m3front/src/misc/Marker.m3 6 Jan 2011 20:40:16 -0000 1.8 +++ m3-sys/m3front/src/misc/Marker.m3 13 Jan 2011 14:56:53 -0000 @@ -248,7 +248,7 @@ END; (* void* _alloca(size_t); *) IF (alloca = NIL) THEN - alloca := CG.Import_procedure (M3ID.Add ("_alloca"), 1, CG.Type.Addr, + alloca := CG.Import_procedure (M3ID.Add ("m3_alloca"), 1, CG.Type.Addr, Target.DefaultCall, new); IF (new) THEN EVAL CG.Declare_param (M3ID.NoID, Target.Word.size, Target.Word.align, Index: m3-sys/m3cc/gcc/gcc/m3cg/parse.c =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3cc/gcc/gcc/m3cg/parse.c,v retrieving revision 1.477 diff -u -r1.477 parse.c --- m3-sys/m3cc/gcc/gcc/m3cg/parse.c 5 Jan 2011 14:34:53 -0000 1.477 +++ m3-sys/m3cc/gcc/gcc/m3cg/parse.c 13 Jan 2011 14:56:53 -0000 @@ -473,6 +473,8 @@ #define t_void void_type_node static GTY (()) tree t_set; +static tree m3_alloca; + static const struct { UINT32 type_id; tree* t; } builtin_uids[] = { { UID_INTEGER, &t_int }, { UID_LONGINT, &t_longint }, @@ -1750,6 +1752,7 @@ bits_per_integer_tree = build_int_cst (t_word, BITS_PER_INTEGER); bytes_per_integer_tree = build_int_cst (t_word, BITS_PER_INTEGER / BITS_PER_UNIT); tree stdcall = get_identifier_with_length (CONSTANT_STRING_AND_LENGTH ("stdcall")); + m3_alloca = get_identifier_with_length (CONSTANT_STRING_AND_LENGTH ("m3_alloca")); stdcall_list = build_tree_list (stdcall, NULL); t_set = m3_build_pointer_type (t_word); @@ -2979,22 +2982,9 @@ tree *slot = (tree *)htab_find_slot (builtins, p, NO_INSERT); if (slot) - { p = *slot; - } - else - { - const char *name = IDENTIFIER_POINTER (DECL_NAME (p)); - if (name[0] == 'a' || name[0] == '_') - { - if (strcmp(name, "alloca") == 0 - || strcmp(name, "_alloca") == 0 - || strcmp(name, "__builtin_alloca") == 0) - { - p = built_in_decls[BUILT_IN_ALLOCA]; - } - } - } + else if (DECL_NAME (p) == m3_alloca) + p = built_in_decls[BUILT_IN_ALLOCA]; return p; } - Jay > Date: Thu, 13 Jan 2011 15:58:29 +0000 > To: m3commit at elegosoft.com > From: jkrell at elego.de > Subject: [M3commit] CVS Update: cm3 > > CVSROOT: /usr/cvs > Changes by: jkrell at birch. 11/01/13 15:58:29 > > Modified files: > cm3/m3-sys/m3front/src/misc/: Marker.m3 > cm3/m3-sys/m3cc/gcc/gcc/m3cg/: parse.c > > Log message: > __builtin_alloca didn't work w/o translation > among alloca, _alloca, __builtin_alloca, make up our own name, m3_alloca > and do the comparison by pointer equality (since gcc uses > string interning) > I'd also go for _m3_alloca, __m3_alloca, or alloca, or darn near > anything else. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.caltech.edu Fri Jan 14 15:21:05 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Fri, 14 Jan 2011 06:21:05 -0800 Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <7023B2A2-F3A8-4381-9250-117CC632CE66@cs.purdue.edu> References: <20110113055848.D4DF02474003@birch.elegosoft.com> <20110113070302.E7E761A205B@async.async.caltech.edu> <20110113175307.0EB651A2061@async.async.caltech.edu> <7023B2A2-F3A8-4381-9250-117CC632CE66@cs.purdue.edu> Message-ID: <20110114142105.4B37A1A207A@async.async.caltech.edu> Tony, Yes on closer reflection I agree with your statement that it isn't surprising it runs slowly. What I have realized is that the simplicity of the user-threads implementation makes that implementation much more fair than the pthreads implementation appears to be. (Which is of course not a real problem but something that shows up in synthetic applications like the thread tester.) I added code to print the youngest and median thread in each of the three categories and I'd agree that what I see is about what you'd expect. The threads also have very different workloads, so under pthreads it's not surprising that some of them make progress faster than others. Here's the typical output now (99 threads, pthreads): [HAL:tests/thread/src] mika% ../I386_DARWIN/threadtest Writing file...done Creating reader threads...done Creating forker threads...done Creating allocator threads...done running...printing oldest/median age/newest laziest thread is 1295014272/0/0 seconds behind (read 1295014272/1295014272/0 fork 0/0/0 alloc 0/0/0) laziest thread is 1295014282/0/0 seconds behind (read 1295014282/7/0 fork 0/0/0 alloc 0/0/0) laziest thread is 1295014292/0/0 seconds behind (read 1295014292/6/0 fork 0/0/0 alloc 0/0/0) laziest thread is 35/1/0 seconds behind (read 35/9/1 fork 1/1/1 alloc 1/1/0) ... With PM3 user threads, the switching is probably just round-robin, and you get: (110)rover:~/cm3-writable/cm3/m3-libs/m3core/tests/thread/src>../FreeBSD4/threadtest Writing file...done Creating reader threads...done Creating forker threads...done Creating allocator threads...done running...printing oldest/median age/newest laziest thread is 9/4/0 seconds behind (read 9/7/4 fork 4/4/4 alloc 4/2/0) laziest thread is 8/4/0 seconds behind (read 8/7/4 fork 4/4/4 alloc 4/2/0) laziest thread is 8/4/0 seconds behind (read 8/6/4 fork 4/4/4 alloc 4/2/0) ... I only rarely see the assertion failure from the C code. I have not been able to reproduce it with @M3noincremental (yet). However I have seen a "more serious" assertion failure: [HAL:tests/thread/src] mika% ../I386_DARWIN/threadtest Writing file...done Creating reader threads...done Creating forker threads...done Creating allocator threads...done running...printing oldest/median age/newest *** *** runtime error: *** Thread client error: 22 *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 120 *** *** *** runtime error: *** An array subscript was out of range. *** file "../src/runtime/common/RTCollector.m3", line 418 *** Abort This happened with n = 9 threads. I tried it again in the debugger and only got the assertion for RTCollector. Here's the traceback for the crashing thread: Thread 10 (process 2811): #0 0x971784fe in __semwait_signal_nocancel () #1 0x971783e2 in nanosleep$NOCANCEL$UNIX2003 () #2 0x971f32aa in usleep$NOCANCEL$UNIX2003 () #3 0x972149c8 in abort () #4 0x000457a4 in Cstdlib__abort () at ../src/C/Common/CstdlibC.c:21 #5 0x0003de10 in RTOS__Crash () at ../src/runtime/POSIX/RTOS.m3:20 #6 0x00037ea4 in RTProcess__Crash (msg=0x0) at ../src/runtime/common/RTProcess.m3:65 #7 0x000362ed in RTError__EndError (crash=1 '\001') at ../src/runtime/common/RTError.m3:118 #8 0x00036005 in RTError__MsgS (file=0x6baa9, line=418, msgA=0x6c748, msgB=0x69890, msgC=0x6c748) at ../src/runtime/common/RTError.m3:40 #9 0x000366da in RTException__Crash (a=0xb0490a64, raises=0 '\0', rte=0x69740) at ../src/runtime/common/RTException.m3:79 #10 0x00036432 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:39 #11 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25 #12 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85 #13 0x000364c3 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:47 #14 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25 #15 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85 #16 0x0002655a in RTHooks__ReportFault (module=0x7b200, info=13378) at ../src/runtime/common/RTHooks.m3:111 #17 0x00033f2f in _m3_fault (arg=13378) at ../src/runtime/common/RTCollector.m3:393 #18 0x0002afb0 in RTCollector__Move (self=0x213000c, cp=0x2030014) at ../src/runtime/common/RTCollector.m3:418 #19 0x0002987f in RTHeapMap__Walk (x=0x2030014, pc=0x66068, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:202 #20 0x0002902a in RTHeapMap__DoWalkRef (t=0x782f4, a=0x2030014, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:62 #21 0x00029001 in RTHeapMap__DoWalkRef (t=0x786f4, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57 #22 0x00029001 in RTHeapMap__DoWalkRef (t=0x78808, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57 #23 0x00028fb4 in RTHeapMap__WalkRef (h=0x2030008, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:47 #24 0x0002d3ab in RTCollector__CleanBetween (h=0x2030008, he=0x2040000, clean=0 '\0') at ../src/runtime/common/RTCollector.m3:1091 #25 0x0002d1e2 in RTCollector__CleanPage (page=0x2030000) at ../src/runtime/common/RTCollector.m3:1064 #26 0x0002c8f9 in RTCollector__CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:885 #27 0x0002c012 in RTCollector__CollectSome () at ../src/runtime/common/RTCollector.m3:720 #28 0x0002bc54 in RTHeapRep__CollectEnough () at ../src/runtime/common/RTCollector.m3:654 #29 0x00027fd9 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa04794) at ../src/runtime/common/RTAllocator.m3:365 #30 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:294 #31 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:143 #32 0x00004001 in Main__AApply (cl=0xb054bc) at ../src/Main.m3:130 #33 0x0004145c in ThreadPThread__RunThread (me=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #34 0x0004118b in ThreadPThread__ThreadBase (param=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #35 0x9713885d in _pthread_start () #36 0x971386e2 in thread_start () Complete traceback attached below. Again, I modified the program from tests/thread/src/Main.m3 to read "nOver3 = 3" to get this behavior. Mika Tony Hosking writes: >I'm not surprised it runs slowly. There is a lot of contention for = >allocation of pages to satisfy all the allocation requests. Plus GC I = >expect. Can you try running with @M3noincremental and see how it goes? = >Weird about the assertion failure. I think we should be checking for = >EBUSY. > >On Jan 13, 2011, at 12:53 PM, Mika Nystrom wrote: > >> Tony, no, the test program=20 >>=20 >> (1) printed the assertion failure. >>=20 >> (2) did NOT deadlock >>=20 >> (3) ran very very slowly (at least some threads did) >>=20 >> (4) kept running after printing the assertion failure and exited = >normally >>=20 >> The actual application may have behaved differently but there seems to = >be >> enough here to constitute one or two bugs...? >>=20 >> My test program seems very effective, by the way. It has had = >objections >> to every version you've checked in so far... :-) >>=20 >> Mika >>=20 Thread 10 (process 2811): #0 0x971784fe in __semwait_signal_nocancel () #1 0x971783e2 in nanosleep$NOCANCEL$UNIX2003 () #2 0x971f32aa in usleep$NOCANCEL$UNIX2003 () #3 0x972149c8 in abort () #4 0x000457a4 in Cstdlib__abort () at ../src/C/Common/CstdlibC.c:21 #5 0x0003de10 in RTOS__Crash () at ../src/runtime/POSIX/RTOS.m3:20 #6 0x00037ea4 in RTProcess__Crash (msg=0x0) at ../src/runtime/common/RTProcess.m3:65 #7 0x000362ed in RTError__EndError (crash=1 '\001') at ../src/runtime/common/RTError.m3:118 #8 0x00036005 in RTError__MsgS (file=0x6baa9, line=418, msgA=0x6c748, msgB=0x69890, msgC=0x6c748) at ../src/runtime/common/RTError.m3:40 #9 0x000366da in RTException__Crash (a=0xb0490a64, raises=0 '\0', rte=0x69740) at ../src/runtime/common/RTException.m3:79 #10 0x00036432 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:39 #11 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25 #12 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85 #13 0x000364c3 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:47 #14 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25 #15 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85 #16 0x0002655a in RTHooks__ReportFault (module=0x7b200, info=13378) at ../src/runtime/common/RTHooks.m3:111 #17 0x00033f2f in _m3_fault (arg=13378) at ../src/runtime/common/RTCollector.m3:393 #18 0x0002afb0 in RTCollector__Move (self=0x213000c, cp=0x2030014) at ../src/runtime/common/RTCollector.m3:418 #19 0x0002987f in RTHeapMap__Walk (x=0x2030014, pc=0x66068, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:202 #20 0x0002902a in RTHeapMap__DoWalkRef (t=0x782f4, a=0x2030014, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:62 #21 0x00029001 in RTHeapMap__DoWalkRef (t=0x786f4, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57 #22 0x00029001 in RTHeapMap__DoWalkRef (t=0x78808, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57 #23 0x00028fb4 in RTHeapMap__WalkRef (h=0x2030008, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:47 #24 0x0002d3ab in RTCollector__CleanBetween (h=0x2030008, he=0x2040000, clean=0 '\0') at ../src/runtime/common/RTCollector.m3:1091 #25 0x0002d1e2 in RTCollector__CleanPage (page=0x2030000) at ../src/runtime/common/RTCollector.m3:1064 #26 0x0002c8f9 in RTCollector__CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:885 #27 0x0002c012 in RTCollector__CollectSome () at ../src/runtime/common/RTCollector.m3:720 #28 0x0002bc54 in RTHeapRep__CollectEnough () at ../src/runtime/common/RTCollector.m3:654 #29 0x00027fd9 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa04794) at ../src/runtime/common/RTAllocator.m3:365 #30 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:294 #31 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:143 #32 0x00004001 in Main__AApply (cl=0xb054bc) at ../src/Main.m3:130 #33 0x0004145c in ThreadPThread__RunThread (me=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #34 0x0004118b in ThreadPThread__ThreadBase (param=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #35 0x9713885d in _pthread_start () #36 0x971386e2 in thread_start () Thread 9 (process 2811): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 #4 0x00027fd4 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa046e4) at ../src/runtime/common/RTAllocator.m3:363 #5 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb040ee90) at ../src/runtime/common/RTAllocator.m3:294 #6 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb040ee90) at ../src/runtime/common/RTAllocator.m3:143 #7 0x00004001 in Main__AApply (cl=0xb05484) at ../src/Main.m3:130 #8 0x0004145c in ThreadPThread__RunThread (me=0xa046a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #9 0x0004118b in ThreadPThread__ThreadBase (param=0xa046a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #10 0x9713885d in _pthread_start () #11 0x971386e2 in thread_start () Thread 8 (process 2811): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 #4 0x00027fd4 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa04634) at ../src/runtime/common/RTAllocator.m3:363 #5 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb038ce90) at ../src/runtime/common/RTAllocator.m3:294 #6 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb038ce90) at ../src/runtime/common/RTAllocator.m3:143 #7 0x00004001 in Main__AApply (cl=0xb0544c) at ../src/Main.m3:130 #8 0x0004145c in ThreadPThread__RunThread (me=0xa045f0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #9 0x0004118b in ThreadPThread__ThreadBase (param=0xa045f0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #10 0x9713885d in _pthread_start () #11 0x971386e2 in thread_start () Thread 7 (process 2811): #0 0x9716c1d6 in __wait4 () #1 0x9716c1c9 in waitpid$UNIX2003 () #2 0x000453e7 in Uexec__waitpid (i=2843, j=0xb030ad8c, k=0) at ../src/unix/Common/Uexec.c:67 #3 0x00042252 in SchedulerPosix__WaitProcess (pid=2843, status=0xb030ad8c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 #4 0x00009928 in Process__Wait (p=0xb9000c) at ../src/os/POSIX/ProcessPosixCommon.m3:275 #5 0x00003e92 in Main__FApply (cl=0xb05414) at ../src/Main.m3:117 #6 0x0004145c in ThreadPThread__RunThread (me=0xa04590) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #7 0x0004118b in ThreadPThread__ThreadBase (param=0xa04590) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #8 0x9713885d in _pthread_start () #9 0x971386e2 in thread_start () Thread 6 (process 2811): #0 0x9716c1d6 in __wait4 () #1 0x9716c1c9 in waitpid$UNIX2003 () #2 0x000453e7 in Uexec__waitpid (i=2842, j=0xb0288d8c, k=0) at ../src/unix/Common/Uexec.c:67 #3 0x00042252 in SchedulerPosix__WaitProcess (pid=2842, status=0xb0288d8c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 #4 0x00009928 in Process__Wait (p=0xc1000c) at ../src/os/POSIX/ProcessPosixCommon.m3:275 #5 0x00003e92 in Main__FApply (cl=0xb053dc) at ../src/Main.m3:117 #6 0x0004145c in ThreadPThread__RunThread (me=0xa043a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #7 0x0004118b in ThreadPThread__ThreadBase (param=0xa043a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #8 0x9713885d in _pthread_start () #9 0x971386e2 in thread_start () Thread 5 (process 2811): #0 0x9716c1d6 in __wait4 () #1 0x9716c1c9 in waitpid$UNIX2003 () #2 0x000453e7 in Uexec__waitpid (i=2841, j=0xb0206d8c, k=0) at ../src/unix/Common/Uexec.c:67 #3 0x00042252 in SchedulerPosix__WaitProcess (pid=2841, status=0xb0206d8c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 #4 0x00009928 in Process__Wait (p=0xb7000c) at ../src/os/POSIX/ProcessPosixCommon.m3:275 #5 0x00003e92 in Main__FApply (cl=0xb053a4) at ../src/Main.m3:117 #6 0x0004145c in ThreadPThread__RunThread (me=0xa042f0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #7 0x0004118b in ThreadPThread__ThreadBase (param=0xa042f0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #8 0x9713885d in _pthread_start () #9 0x971386e2 in thread_start () Thread 4 (process 2811): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 #4 0x0003f6da in ThreadPThread__InitMutex (m=0x2120010, root=0x212000c, Clean=0x3f5aa) at ../src/thread/PTHREAD/ThreadPThread.m3:101 #5 0x0003f783 in ThreadPThread__LockMutex (m=0x212000c) at ../src/thread/PTHREAD/ThreadPThread.m3:117 #6 0x0000a323 in Rd__GetChar (rd=0x212000c) at ../src/rw/Rd.m3:33 #7 0x00003c2e in Main__RApply (cl=0xb0536c) at ../src/Main.m3:95 #8 0x0004145c in ThreadPThread__RunThread (me=0xa04240) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #9 0x0004118b in ThreadPThread__ThreadBase (param=0xa04240) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #10 0x9713885d in _pthread_start () #11 0x971386e2 in thread_start () Thread 3 (process 2811): #0 ThreadPThread__LockMutex (m=0xd0000c) at ../src/thread/PTHREAD/ThreadPThread.m3:122 #1 0x0000a323 in Rd__GetChar (rd=0xd0000c) at ../src/rw/Rd.m3:33 #2 0x00003c2e in Main__RApply (cl=0xb05334) at ../src/Main.m3:95 #3 0x0004145c in ThreadPThread__RunThread (me=0xa04190) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #4 0x0004118b in ThreadPThread__ThreadBase (param=0xa04190) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #5 0x9713885d in _pthread_start () #6 0x971386e2 in thread_start () Thread 2 (process 2811): #0 0x9710b142 in semaphore_wait_signal_trap () #1 0x97110c46 in pthread_mutex_lock () #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 #4 0x00027fd4 in RTAllocator__AllocTraced (dataSize=12, dataAlignment=4, thread=0xa040a4) at ../src/runtime/common/RTAllocator.m3:363 #5 0x00027387 in RTAllocator__GetTracedObj (def=0x77654) at ../src/runtime/common/RTAllocator.m3:224 #6 0x00026e20 in RTHooks__AllocateTracedObj (defn=0x77654) at ../src/runtime/common/RTAllocator.m3:122 #7 0x00005239 in FilePosix__New (fd=5, ds=1) at ../src/os/POSIX/FilePosix.m3:63 #8 0x000067df in FS__OpenFileReadonly (pn=0x64324) at ../src/os/POSIX/FSPosix.m3:182 #9 0x000103e8 in FileRd__Open (p=0x64324) at ../src/rw/FileRd.m3:16 #10 0x00003b9b in Main__RApply (cl=0xb052fc) at ../src/Main.m3:92 #11 0x0004145c in ThreadPThread__RunThread (me=0xa04060) at ../src/thread/PTHREAD/ThreadPThread.m3:450 #12 0x0004118b in ThreadPThread__ThreadBase (param=0xa04060) at ../src/thread/PTHREAD/ThreadPThread.m3:422 #13 0x9713885d in _pthread_start () #14 0x971386e2 in thread_start () Thread 1 (process 2811): #0 0x971390a6 in __semwait_signal () #1 0x97138d62 in _pthread_cond_wait () #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () #3 0x00044c7c in ThreadPThread__pthread_cond_timedwait (cond=0xa03ca0, mutex=0xa03c70, m3timeout=1295014649.3298399) at ../src/thread/PTHREAD/ThreadPThreadC.c:430 #4 0x00041ca3 in ThreadPThread__XPause (self=0xa03c10, n=10, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 #5 0x00041d73 in Thread__Pause (n=10) at ../src/thread/PTHREAD/ThreadPThread.m3:567 #6 0x000046e2 in Main_M3 (mode=1) at ../src/Main.m3:214 #7 0x00035549 in RTLinker__RunMainBody (m=0x76920) at ../src/runtime/common/RTLinker.m3:406 #8 0x000349a5 in RTLinker__AddUnitI (m=0x76920) at ../src/runtime/common/RTLinker.m3:113 #9 0x00034a26 in RTLinker__AddUnit (b=0x455c) at ../src/runtime/common/RTLinker.m3:122 #10 0x000039fc in main (argc=1, argv=0xbffff5cc, envp=0xbffff5d4) at _m3main.c:16 From hosking at cs.purdue.edu Fri Jan 14 17:08:54 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 14 Jan 2011 11:08:54 -0500 Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <20110114142105.4B37A1A207A@async.async.caltech.edu> References: <20110113055848.D4DF02474003@birch.elegosoft.com> <20110113070302.E7E761A205B@async.async.caltech.edu> <20110113175307.0EB651A2061@async.async.caltech.edu> <7023B2A2-F3A8-4381-9250-117CC632CE66@cs.purdue.edu> <20110114142105.4B37A1A207A@async.async.caltech.edu> Message-ID: <6CC44E59-D16C-452E-B9AC-73C19E51216F@cs.purdue.edu> Can you try to get the crash with @M3paranoidgc and report the result? It would be good to capture any abort that occurs in the debugger and show the traceback. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 14, 2011, at 9:21 AM, Mika Nystrom wrote: > Tony, > > Yes on closer reflection I agree with your statement that it isn't > surprising it runs slowly. What I have realized is that the simplicity of > the user-threads implementation makes that implementation much more fair > than the pthreads implementation appears to be. (Which is of course not > a real problem but something that shows up in synthetic applications like > the thread tester.) I added code to print the youngest and median thread > in each of the three categories and I'd agree that what I see is about > what you'd expect. The threads also have very different workloads, so under > pthreads it's not surprising that some of them make progress faster > than others. > > Here's the typical output now (99 threads, pthreads): > > [HAL:tests/thread/src] mika% ../I386_DARWIN/threadtest > Writing file...done > Creating reader threads...done > Creating forker threads...done > Creating allocator threads...done > running...printing oldest/median age/newest > laziest thread is 1295014272/0/0 seconds behind (read 1295014272/1295014272/0 fork 0/0/0 alloc 0/0/0) > laziest thread is 1295014282/0/0 seconds behind (read 1295014282/7/0 fork 0/0/0 alloc 0/0/0) > laziest thread is 1295014292/0/0 seconds behind (read 1295014292/6/0 fork 0/0/0 alloc 0/0/0) > laziest thread is 35/1/0 seconds behind (read 35/9/1 fork 1/1/1 alloc 1/1/0) > ... > > With PM3 user threads, the switching is probably just round-robin, and you get: > > (110)rover:~/cm3-writable/cm3/m3-libs/m3core/tests/thread/src>../FreeBSD4/threadtest > Writing file...done > Creating reader threads...done > Creating forker threads...done > Creating allocator threads...done > running...printing oldest/median age/newest > laziest thread is 9/4/0 seconds behind (read 9/7/4 fork 4/4/4 alloc 4/2/0) > laziest thread is 8/4/0 seconds behind (read 8/7/4 fork 4/4/4 alloc 4/2/0) > laziest thread is 8/4/0 seconds behind (read 8/6/4 fork 4/4/4 alloc 4/2/0) > ... > > I only rarely see the assertion failure from the C code. I have not been able > to reproduce it with @M3noincremental (yet). However I have seen a "more serious" > assertion failure: > > [HAL:tests/thread/src] mika% ../I386_DARWIN/threadtest > Writing file...done > Creating reader threads...done > Creating forker threads...done > Creating allocator threads...done > running...printing oldest/median age/newest > > > *** > *** runtime error: > *** Thread client error: 22 > *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 120 > *** > > > > *** > *** runtime error: > *** An array subscript was out of range. > *** file "../src/runtime/common/RTCollector.m3", line 418 > *** > > Abort > > This happened with n = 9 threads. > > I tried it again in the debugger and only got the assertion for RTCollector. > > Here's the traceback for the crashing thread: > > Thread 10 (process 2811): > #0 0x971784fe in __semwait_signal_nocancel () > #1 0x971783e2 in nanosleep$NOCANCEL$UNIX2003 () > #2 0x971f32aa in usleep$NOCANCEL$UNIX2003 () > #3 0x972149c8 in abort () > #4 0x000457a4 in Cstdlib__abort () at ../src/C/Common/CstdlibC.c:21 > #5 0x0003de10 in RTOS__Crash () at ../src/runtime/POSIX/RTOS.m3:20 > #6 0x00037ea4 in RTProcess__Crash (msg=0x0) at ../src/runtime/common/RTProcess.m3:65 > #7 0x000362ed in RTError__EndError (crash=1 '\001') at ../src/runtime/common/RTError.m3:118 > #8 0x00036005 in RTError__MsgS (file=0x6baa9, line=418, msgA=0x6c748, msgB=0x69890, msgC=0x6c748) at ../src/runtime/common/RTError.m3:40 > #9 0x000366da in RTException__Crash (a=0xb0490a64, raises=0 '\0', rte=0x69740) at ../src/runtime/common/RTException.m3:79 > #10 0x00036432 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:39 > #11 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25 > #12 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85 > #13 0x000364c3 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:47 > #14 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25 > #15 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85 > #16 0x0002655a in RTHooks__ReportFault (module=0x7b200, info=13378) at ../src/runtime/common/RTHooks.m3:111 > #17 0x00033f2f in _m3_fault (arg=13378) at ../src/runtime/common/RTCollector.m3:393 > #18 0x0002afb0 in RTCollector__Move (self=0x213000c, cp=0x2030014) at ../src/runtime/common/RTCollector.m3:418 > #19 0x0002987f in RTHeapMap__Walk (x=0x2030014, pc=0x66068, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:202 > #20 0x0002902a in RTHeapMap__DoWalkRef (t=0x782f4, a=0x2030014, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:62 > #21 0x00029001 in RTHeapMap__DoWalkRef (t=0x786f4, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57 > #22 0x00029001 in RTHeapMap__DoWalkRef (t=0x78808, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57 > #23 0x00028fb4 in RTHeapMap__WalkRef (h=0x2030008, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:47 > #24 0x0002d3ab in RTCollector__CleanBetween (h=0x2030008, he=0x2040000, clean=0 '\0') at ../src/runtime/common/RTCollector.m3:1091 > #25 0x0002d1e2 in RTCollector__CleanPage (page=0x2030000) at ../src/runtime/common/RTCollector.m3:1064 > #26 0x0002c8f9 in RTCollector__CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:885 > #27 0x0002c012 in RTCollector__CollectSome () at ../src/runtime/common/RTCollector.m3:720 > #28 0x0002bc54 in RTHeapRep__CollectEnough () at ../src/runtime/common/RTCollector.m3:654 > #29 0x00027fd9 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa04794) at ../src/runtime/common/RTAllocator.m3:365 > #30 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:294 > #31 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:143 > #32 0x00004001 in Main__AApply (cl=0xb054bc) at ../src/Main.m3:130 > #33 0x0004145c in ThreadPThread__RunThread (me=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #34 0x0004118b in ThreadPThread__ThreadBase (param=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #35 0x9713885d in _pthread_start () > #36 0x971386e2 in thread_start () > > > Complete traceback attached below. Again, I modified the program from > tests/thread/src/Main.m3 to read "nOver3 = 3" to get this behavior. > > Mika > > > > > Tony Hosking writes: >> I'm not surprised it runs slowly. There is a lot of contention for = >> allocation of pages to satisfy all the allocation requests. Plus GC I = >> expect. Can you try running with @M3noincremental and see how it goes? = >> Weird about the assertion failure. I think we should be checking for = >> EBUSY. >> >> On Jan 13, 2011, at 12:53 PM, Mika Nystrom wrote: >> >>> Tony, no, the test program=20 >>> =20 >>> (1) printed the assertion failure. >>> =20 >>> (2) did NOT deadlock >>> =20 >>> (3) ran very very slowly (at least some threads did) >>> =20 >>> (4) kept running after printing the assertion failure and exited = >> normally >>> =20 >>> The actual application may have behaved differently but there seems to = >> be >>> enough here to constitute one or two bugs...? >>> =20 >>> My test program seems very effective, by the way. It has had = >> objections >>> to every version you've checked in so far... :-) >>> =20 >>> Mika >>> =20 > > > Thread 10 (process 2811): > #0 0x971784fe in __semwait_signal_nocancel () > #1 0x971783e2 in nanosleep$NOCANCEL$UNIX2003 () > #2 0x971f32aa in usleep$NOCANCEL$UNIX2003 () > #3 0x972149c8 in abort () > #4 0x000457a4 in Cstdlib__abort () at ../src/C/Common/CstdlibC.c:21 > #5 0x0003de10 in RTOS__Crash () at ../src/runtime/POSIX/RTOS.m3:20 > #6 0x00037ea4 in RTProcess__Crash (msg=0x0) at ../src/runtime/common/RTProcess.m3:65 > #7 0x000362ed in RTError__EndError (crash=1 '\001') at ../src/runtime/common/RTError.m3:118 > #8 0x00036005 in RTError__MsgS (file=0x6baa9, line=418, msgA=0x6c748, msgB=0x69890, msgC=0x6c748) at ../src/runtime/common/RTError.m3:40 > #9 0x000366da in RTException__Crash (a=0xb0490a64, raises=0 '\0', rte=0x69740) at ../src/runtime/common/RTException.m3:79 > #10 0x00036432 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:39 > #11 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25 > #12 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85 > #13 0x000364c3 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:47 > #14 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25 > #15 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85 > #16 0x0002655a in RTHooks__ReportFault (module=0x7b200, info=13378) at ../src/runtime/common/RTHooks.m3:111 > #17 0x00033f2f in _m3_fault (arg=13378) at ../src/runtime/common/RTCollector.m3:393 > #18 0x0002afb0 in RTCollector__Move (self=0x213000c, cp=0x2030014) at ../src/runtime/common/RTCollector.m3:418 > #19 0x0002987f in RTHeapMap__Walk (x=0x2030014, pc=0x66068, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:202 > #20 0x0002902a in RTHeapMap__DoWalkRef (t=0x782f4, a=0x2030014, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:62 > #21 0x00029001 in RTHeapMap__DoWalkRef (t=0x786f4, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57 > #22 0x00029001 in RTHeapMap__DoWalkRef (t=0x78808, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57 > #23 0x00028fb4 in RTHeapMap__WalkRef (h=0x2030008, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:47 > #24 0x0002d3ab in RTCollector__CleanBetween (h=0x2030008, he=0x2040000, clean=0 '\0') at ../src/runtime/common/RTCollector.m3:1091 > #25 0x0002d1e2 in RTCollector__CleanPage (page=0x2030000) at ../src/runtime/common/RTCollector.m3:1064 > #26 0x0002c8f9 in RTCollector__CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:885 > #27 0x0002c012 in RTCollector__CollectSome () at ../src/runtime/common/RTCollector.m3:720 > #28 0x0002bc54 in RTHeapRep__CollectEnough () at ../src/runtime/common/RTCollector.m3:654 > #29 0x00027fd9 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa04794) at ../src/runtime/common/RTAllocator.m3:365 > #30 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:294 > #31 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:143 > #32 0x00004001 in Main__AApply (cl=0xb054bc) at ../src/Main.m3:130 > #33 0x0004145c in ThreadPThread__RunThread (me=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #34 0x0004118b in ThreadPThread__ThreadBase (param=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #35 0x9713885d in _pthread_start () > #36 0x971386e2 in thread_start () > > Thread 9 (process 2811): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 > #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 > #4 0x00027fd4 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa046e4) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb040ee90) at ../src/runtime/common/RTAllocator.m3:294 > #6 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb040ee90) at ../src/runtime/common/RTAllocator.m3:143 > #7 0x00004001 in Main__AApply (cl=0xb05484) at ../src/Main.m3:130 > #8 0x0004145c in ThreadPThread__RunThread (me=0xa046a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #9 0x0004118b in ThreadPThread__ThreadBase (param=0xa046a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #10 0x9713885d in _pthread_start () > #11 0x971386e2 in thread_start () > > Thread 8 (process 2811): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 > #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 > #4 0x00027fd4 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa04634) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb038ce90) at ../src/runtime/common/RTAllocator.m3:294 > #6 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb038ce90) at ../src/runtime/common/RTAllocator.m3:143 > #7 0x00004001 in Main__AApply (cl=0xb0544c) at ../src/Main.m3:130 > #8 0x0004145c in ThreadPThread__RunThread (me=0xa045f0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #9 0x0004118b in ThreadPThread__ThreadBase (param=0xa045f0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #10 0x9713885d in _pthread_start () > #11 0x971386e2 in thread_start () > > Thread 7 (process 2811): > #0 0x9716c1d6 in __wait4 () > #1 0x9716c1c9 in waitpid$UNIX2003 () > #2 0x000453e7 in Uexec__waitpid (i=2843, j=0xb030ad8c, k=0) at ../src/unix/Common/Uexec.c:67 > #3 0x00042252 in SchedulerPosix__WaitProcess (pid=2843, status=0xb030ad8c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 > #4 0x00009928 in Process__Wait (p=0xb9000c) at ../src/os/POSIX/ProcessPosixCommon.m3:275 > #5 0x00003e92 in Main__FApply (cl=0xb05414) at ../src/Main.m3:117 > #6 0x0004145c in ThreadPThread__RunThread (me=0xa04590) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #7 0x0004118b in ThreadPThread__ThreadBase (param=0xa04590) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #8 0x9713885d in _pthread_start () > #9 0x971386e2 in thread_start () > > Thread 6 (process 2811): > #0 0x9716c1d6 in __wait4 () > #1 0x9716c1c9 in waitpid$UNIX2003 () > #2 0x000453e7 in Uexec__waitpid (i=2842, j=0xb0288d8c, k=0) at ../src/unix/Common/Uexec.c:67 > #3 0x00042252 in SchedulerPosix__WaitProcess (pid=2842, status=0xb0288d8c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 > #4 0x00009928 in Process__Wait (p=0xc1000c) at ../src/os/POSIX/ProcessPosixCommon.m3:275 > #5 0x00003e92 in Main__FApply (cl=0xb053dc) at ../src/Main.m3:117 > #6 0x0004145c in ThreadPThread__RunThread (me=0xa043a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #7 0x0004118b in ThreadPThread__ThreadBase (param=0xa043a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #8 0x9713885d in _pthread_start () > #9 0x971386e2 in thread_start () > > Thread 5 (process 2811): > #0 0x9716c1d6 in __wait4 () > #1 0x9716c1c9 in waitpid$UNIX2003 () > #2 0x000453e7 in Uexec__waitpid (i=2841, j=0xb0206d8c, k=0) at ../src/unix/Common/Uexec.c:67 > #3 0x00042252 in SchedulerPosix__WaitProcess (pid=2841, status=0xb0206d8c) at ../src/thread/PTHREAD/ThreadPThread.m3:657 > #4 0x00009928 in Process__Wait (p=0xb7000c) at ../src/os/POSIX/ProcessPosixCommon.m3:275 > #5 0x00003e92 in Main__FApply (cl=0xb053a4) at ../src/Main.m3:117 > #6 0x0004145c in ThreadPThread__RunThread (me=0xa042f0) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #7 0x0004118b in ThreadPThread__ThreadBase (param=0xa042f0) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #8 0x9713885d in _pthread_start () > #9 0x971386e2 in thread_start () > > Thread 4 (process 2811): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 > #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 > #4 0x0003f6da in ThreadPThread__InitMutex (m=0x2120010, root=0x212000c, Clean=0x3f5aa) at ../src/thread/PTHREAD/ThreadPThread.m3:101 > #5 0x0003f783 in ThreadPThread__LockMutex (m=0x212000c) at ../src/thread/PTHREAD/ThreadPThread.m3:117 > #6 0x0000a323 in Rd__GetChar (rd=0x212000c) at ../src/rw/Rd.m3:33 > #7 0x00003c2e in Main__RApply (cl=0xb0536c) at ../src/Main.m3:95 > #8 0x0004145c in ThreadPThread__RunThread (me=0xa04240) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #9 0x0004118b in ThreadPThread__ThreadBase (param=0xa04240) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #10 0x9713885d in _pthread_start () > #11 0x971386e2 in thread_start () > > Thread 3 (process 2811): > #0 ThreadPThread__LockMutex (m=0xd0000c) at ../src/thread/PTHREAD/ThreadPThread.m3:122 > #1 0x0000a323 in Rd__GetChar (rd=0xd0000c) at ../src/rw/Rd.m3:33 > #2 0x00003c2e in Main__RApply (cl=0xb05334) at ../src/Main.m3:95 > #3 0x0004145c in ThreadPThread__RunThread (me=0xa04190) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #4 0x0004118b in ThreadPThread__ThreadBase (param=0xa04190) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #5 0x9713885d in _pthread_start () > #6 0x971386e2 in thread_start () > > Thread 2 (process 2811): > #0 0x9710b142 in semaphore_wait_signal_trap () > #1 0x97110c46 in pthread_mutex_lock () > #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462 > #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332 > #4 0x00027fd4 in RTAllocator__AllocTraced (dataSize=12, dataAlignment=4, thread=0xa040a4) at ../src/runtime/common/RTAllocator.m3:363 > #5 0x00027387 in RTAllocator__GetTracedObj (def=0x77654) at ../src/runtime/common/RTAllocator.m3:224 > #6 0x00026e20 in RTHooks__AllocateTracedObj (defn=0x77654) at ../src/runtime/common/RTAllocator.m3:122 > #7 0x00005239 in FilePosix__New (fd=5, ds=1) at ../src/os/POSIX/FilePosix.m3:63 > #8 0x000067df in FS__OpenFileReadonly (pn=0x64324) at ../src/os/POSIX/FSPosix.m3:182 > #9 0x000103e8 in FileRd__Open (p=0x64324) at ../src/rw/FileRd.m3:16 > #10 0x00003b9b in Main__RApply (cl=0xb052fc) at ../src/Main.m3:92 > #11 0x0004145c in ThreadPThread__RunThread (me=0xa04060) at ../src/thread/PTHREAD/ThreadPThread.m3:450 > #12 0x0004118b in ThreadPThread__ThreadBase (param=0xa04060) at ../src/thread/PTHREAD/ThreadPThread.m3:422 > #13 0x9713885d in _pthread_start () > #14 0x971386e2 in thread_start () > > Thread 1 (process 2811): > #0 0x971390a6 in __semwait_signal () > #1 0x97138d62 in _pthread_cond_wait () > #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 () > #3 0x00044c7c in ThreadPThread__pthread_cond_timedwait (cond=0xa03ca0, mutex=0xa03c70, m3timeout=1295014649.3298399) at ../src/thread/PTHREAD/ThreadPThreadC.c:430 > #4 0x00041ca3 in ThreadPThread__XPause (self=0xa03c10, n=10, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552 > #5 0x00041d73 in Thread__Pause (n=10) at ../src/thread/PTHREAD/ThreadPThread.m3:567 > #6 0x000046e2 in Main_M3 (mode=1) at ../src/Main.m3:214 > #7 0x00035549 in RTLinker__RunMainBody (m=0x76920) at ../src/runtime/common/RTLinker.m3:406 > #8 0x000349a5 in RTLinker__AddUnitI (m=0x76920) at ../src/runtime/common/RTLinker.m3:113 > #9 0x00034a26 in RTLinker__AddUnit (b=0x455c) at ../src/runtime/common/RTLinker.m3:122 > #10 0x000039fc in main (argc=1, argv=0xbffff5cc, envp=0xbffff5d4) at _m3main.c:16 From dabenavidesd at yahoo.es Sun Jan 16 03:27:40 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sun, 16 Jan 2011 02:27:40 +0000 (GMT) Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <20110116011827.DD31F2474003@birch.elegosoft.com> Message-ID: <19786.44534.qm@web29702.mail.ird.yahoo.com> Hi all: Yes, sure just that we need also for range checks and type checks, I mean, I guess the problem are not the client programs by itself if so why do you think they crashed unsafely? The problem is to test the implementation more deeply, perhaps Tony is the best man to do that part of the job I think. However unsafe code there is guaranteed by others to be right, I tend to feel that in those cases a more detailed test compliance is needed, I mean, we don't guarantee every platform behaves exactly as we think of it. Perhaps Jay could be indicated for that part of the job, I think. Thanks in advance --- El s?b, 15/1/11, Mika Nystrom escribi?: > De: Mika Nystrom > Asunto: [M3commit] CVS Update: cm3 > Para: m3commit at elegosoft.com > Fecha: s?bado, 15 de enero, 2011 21:18 > CVSROOT: /usr/cvs > Changes by: mika at birch. > 11/01/16 02:18:27 > > Modified files: > cm3/m3-libs/m3core/tests/thread/src/: > Main.m3 > > Log message: > give the user something to look at while > the program runs (also shows off deadlock well) > > From dabenavidesd at yahoo.es Sun Jan 16 04:36:23 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sun, 16 Jan 2011 03:36:23 +0000 (GMT) Subject: [M3devel] [M3commit] CVS Update: cm3 In-Reply-To: <19786.44534.qm@web29702.mail.ird.yahoo.com> Message-ID: <878606.72309.qm@web29713.mail.ird.yahoo.com> Hi all: The best source of a check for both cases is a test set for Modula-3 vs C threading programs. I mean what source of it might come to crash if we allow just normal range and type checking by itself on the Modula-3 programs, just C part that we don't have, I assume the Modula-3 parts touching it are thread safe as it's the collector, if a program is to crash badly, it should crash in the Modula-3 version and be unsafely crashed at a certain level on C in some cases (sort of the exceptional cases), I'm more interested that it doesn't crash on both sides, sort of being a good M3 behaved guy, that is, what it would mean is we do have a problem on the threading library implementation (not tested, unmarked exception, or uncaught ones?), given platforms behave well, that sometimes I think they do, but we don't know, that's why we need test some assertions if so (not generate the code if you want to run assembly smoothly sure). Perhaps the best approach here is just to test it right goes into C mode and then is just part of the safe modules to guard type check the bad inputs or outputs ISTYPE() is a good way of doing it if you may allow me say. Thanks in advance. --- El s?b, 15/1/11, Daniel Alejandro Benavides D. escribi?: > De: Daniel Alejandro Benavides D. > Asunto: Re: [M3devel] [M3commit] CVS Update: cm3 > Para: m3commit at elegosoft.com, mika at elego.de, m3devel at elegosoft.com > Fecha: s?bado, 15 de enero, 2011 21:27 > Hi all: > Yes, sure just that we need also for range checks and type > checks, I mean, I guess the problem are not the client > programs by itself if so why do you think they crashed > unsafely? > The problem is to test the implementation more deeply, > perhaps Tony is the best man to do that part of the job I > think. > However unsafe code there is guaranteed by others to be > right, I tend to feel that in those cases a more detailed > test compliance is needed, I mean, we don't guarantee every > platform behaves exactly as we think of it. Perhaps Jay > could be indicated for that part of the job, I think. > Thanks in advance > > --- El s?b, 15/1/11, Mika Nystrom > escribi?: > > > De: Mika Nystrom > > Asunto: [M3commit] CVS Update: cm3 > > Para: m3commit at elegosoft.com > > Fecha: s?bado, 15 de enero, 2011 21:18 > > CVSROOT: /usr/cvs > > Changes by: > mika at birch. > > 11/01/16 02:18:27 > > > > Modified files: > > > cm3/m3-libs/m3core/tests/thread/src/: > > Main.m3 > > > > Log message: > > give the user something to > look at while > > the program runs (also shows off deadlock well) > > > > > > > > From mark at wickensonline.co.uk Mon Jan 17 01:01:36 2011 From: mark at wickensonline.co.uk (Mark Wickens) Date: Mon, 17 Jan 2011 00:01:36 +0000 Subject: [M3devel] Just to prove I've been paying attention for a long time Message-ID: <4D3386E0.20609@wickensonline.co.uk> Thought this might bring a little nostalgia for some - it certainly did for me! Although I only dabbled in Modula-3 I did listen in to the mailing list of the time... From daemon Tue Nov 14 01:36:05 1995 Status: RO X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil] ["2877" "Mon" "13" "November" "1995" "11:58:44" "-0800" "heydon at pa.dec.com" "heydon at pa.dec.com" nil "89" "Re: Modula3 Postcard under Linux Slackware 3.0" "^From:" nil nil "11" nil nil (number " " mark " heydon at pa.dec.com Nov 13 89/2877 " thread-indent "\"Re: Modula3 Postcard under Linux Slackware 3.0\"\n") nil] nil) Received: from jess.luton.ac.uk by ellen.luton.ac.uk; (5.65v3.2/1.1.8.2/09Nov95-0144PM) id AA01562; Tue, 14 Nov 1995 01:36:03 GMT Received: from mail1.digital.com (mail1.digital.com [204.123.2.50]) by jess.luton.ac.uk (8.6.12/8.6.9) with SMTP id BAA01082 for ; Tue, 14 Nov 1995 01:34:41 GMT Received: from src-mail.pa.dec.com by mail1.digital.com; (5.65 EXP 4/12/95 for V3.2/1.0/WV) id AA05303; Mon, 13 Nov 1995 17:20:40 -0800 Received: by src-mail.pa.dec.com; id AA27318; Mon, 13 Nov 95 17:19:14 -0800 Received: by src-news.pa.dec.com; id AA07755; Mon, 13 Nov 95 17:19:13 -0800 Received: by src-news.pa.dec.com; id AA07750; Mon, 13 Nov 95 17:19:12 -0800 Newsgroups: comp.lang.modula3 Path: src.dec.com!heydon Message-Id: <9511131958.AA03371 at juniper.pa.dec.com> In-Reply-To: m3-request at src.dec.com Distribution: world X-Received: by juniper.pa.dec.com; id AA03371; Mon, 13 Nov 1995 11:58:45 -0800 X-Received: by src-news.pa.dec.com; id AA19102; Mon, 13 Nov 95 11:58:46 -0800 X-Mts: smtp Lines: 89 From: heydon at pa.dec.com To: omalley at ics.uci.edu Cc: comp.lang.modula3.usenet at pa.dec.com Subject: Re: Modula3 Postcard under Linux Slackware 3.0 Date: Mon, 13 Nov 95 11:58:44 -0800 Owen, You asked: > However, it is dying in linking Postcard because it can't find > getdirentries. I'm not surprised that the linker can't find it, > because I can't find it either. (There is an extern definition in the > header file, but it doesn't seem to be in any of the libraries.) Am I > missing it somewhere? Is there a newer version of libc that actually > has getdirentries? We've fixed the "getdirentries" problem in the sources at SRC, so it should be included in the next release. In the meantime, you can fix the problem yourself by removing the following declarations from the file named "src/OSUtils.m3" in the "postcard" package: FROM Utypes IMPORT u_short, ino_t; CONST MaxDirNameLen = 64; TYPE DirEntry = RECORD (* directory types somehow missing from Unix.i3 *) d_ino: ino_t; d_reclen: u_short; d_namelen: u_short; d_name: ARRAY [0..MaxDirNameLen-1] OF CHAR; END; <*UNUSED*> PROCEDURE OldEnumerate (path: Text.T): TextList.T RAISES {FileError} = VAR head: TextList.T := NIL; tail, this: TextList.T; t: TEXT; length: int; buffer: ARRAY [0..1023] OF CHAR; de: UNTRACED REF DirEntry; pbase: long; i: INTEGER; p := ConvertPath(path); f := Unix.open(p, Unix.O_RDONLY, 0); BEGIN IF f < 0 THEN RAISE FileError(ErrorMessage(Uerror.errno)); END; TRY LOOP length := Unix.getdirentries( f, ADR(buffer), BYTESIZE(buffer), pbase); IF length < 0 THEN RAISE FileError(ErrorMessage(Uerror.errno)); END; IF length = 0 THEN EXIT; END; i := 0; LOOP de := LOOPHOLE(ADR(buffer[i]), UNTRACED REF DirEntry); IF (de^.d_ino # 0) THEN t := M3toC.CopyStoT (ADR(de^.d_name)); IF NOT (Text.Equal (t, ".") OR Text.Equal (t, "..")) THEN this := TextList.Cons(t, NIL); IF head = NIL THEN head := this; ELSE tail.tail := this; END; tail := this; END; END; INC(i, de^.d_reclen); IF i >= length THEN EXIT; END; END; END; FINALLY EVAL Unix.close(f); END; RETURN head END OldEnumerate; The call to "getdirentries" is in the "OldEnumerate" procedure, but that procedure is never called. The other IMPORT, CONST, and TYPE declarations are only used by "OldEnumerate", so they should be removed to keep the compiler from issuing a warning. Let me know if you apply this patch and still have any problems. - Allan -------------------------------------------------------------------- Allan Heydon Digital Equipment Corporation heydon at pa.dec.com Systems Research Center (415) 853-2142 130 Lytton Avenue (415) 853-2104 (FAX) Palo Alto, CA 94301 From mika at async.caltech.edu Mon Jan 17 18:44:43 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Mon, 17 Jan 2011 09:44:43 -0800 Subject: [M3devel] JSON Message-ID: <20110117174443.B8E3A1A207A@async.async.caltech.edu> Hello m3devel, Does anyone out there have a JSON parser/generator for Modula-3? Mika From dabenavidesd at yahoo.es Tue Jan 18 03:08:14 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Tue, 18 Jan 2011 02:08:14 +0000 (GMT) Subject: [M3devel] JSON In-Reply-To: <20110117174443.B8E3A1A207A@async.async.caltech.edu> Message-ID: <957736.88198.qm@web29718.mail.ird.yahoo.com> Hi all: I think I saw when doing some research on JavaScript, that there was sort or something like an implementation tool from Scheme to JavaScript compiler, however I don't know about exactly what about that. I think it was FOSS, just that didn't fill my purposes (type inference) at that time. Perhaps you can interface easily with JavaScript from the Scheme interpreter if it was written in Scheme (the JavaScript generator I'm talking about). However I must tell you, the next big change in JavaScript is comprehensive, so perhaps you want to look at literature for that. Hope it helps. If not, just don't know what else could be useful than that, thanks in advance --- El lun, 17/1/11, Mika Nystrom escribi?: > De: Mika Nystrom > Asunto: [M3devel] JSON > Para: m3devel at elegosoft.com > Fecha: lunes, 17 de enero, 2011 12:44 > Hello m3devel, > > Does anyone out there have a JSON parser/generator for > Modula-3? > > Mika > From darko at darko.org Tue Jan 18 04:51:43 2011 From: darko at darko.org (Darko) Date: Mon, 17 Jan 2011 19:51:43 -0800 Subject: [M3devel] JSON In-Reply-To: <20110117174443.B8E3A1A207A@async.async.caltech.edu> References: <20110117174443.B8E3A1A207A@async.async.caltech.edu> Message-ID: I have a little programmable expression parser which will take anything you can express in operators (prefix, infix, postfix), function calls and "groupfix" operators, which are basically a comma seperated list between two symbols. Do you have a grammar? On 17/01/2011, at 9:44 AM, Mika Nystrom wrote: > Hello m3devel, > > Does anyone out there have a JSON parser/generator for Modula-3? > > Mika From lemming at henning-thielemann.de Thu Jan 20 13:23:39 2011 From: lemming at henning-thielemann.de (Henning Thielemann) Date: Thu, 20 Jan 2011 13:23:39 +0100 Subject: [M3devel] operator overloading? In-Reply-To: References: Message-ID: <4D38294B.9080705@henning-thielemann.de> Jay K wrote: > Is it really so difficult to add operator overloading to the language? > > From a user's point of view, I know it is very useful in certain > situations. I have a dejavu. This must have been discussed here several times. I remember Rodney Bates' coining "syntactic heroin". "Operator overloading" is actually two extensions: 1. Allowing to write functions in an infix way, preferably using symbols instead of letters. 2. Allow to reuse the same function name depending on context. The first issue is a syntactic one, but a hard one. For infix operators you must define associativity and precedence. If you define it within a module, the parser must adapt to the precedence rules, as it parses them. Alternatively you could define precedence in different syntax descriptions files using a custom language - also bad because you need a new language and management for a new kind of source file. You can no longer just run m3pp from within your editor on a draft of your program, because formatting also depends on precedences. You rather want expressions formatted as long_expresssion + other_long_expression * last_long_expression instead of long_expresssion + other_long_expression * last_long_expression In Haskell precedences are defined by numbers from 0 to 9 and you can declare left-, right- and no associativity. That does not scale well. In PROLOG you have numeric precedences in the range 1-1000 or so, and a little more fine grained associativity rules. In Agda you have numeric precedences also in a quite large range (1-1000 or so) and mixfix notation, that is, a function with three arguments can be written according to a pattern like (if _ then _ else _). I still think that the most natural way to define precedences is by relations like "'-' shall bind as much as '+', whereas '*' should bind stronger than '+'". Those numeric precedences are to maintain, just like line numbers in old BASICs. The second issue is the resolution of ambiguous names. Modula-3 has no support for this, currently. Haskell solves this cleanly using 'type classes', that despite the name do not have much in common with object-oriented classes. But these type classes are based on Hindley-Milner type system that allows e.g. to assert that two operands have the same type, another thing that Modula-3 does not have and that cannot easily be added. In short, I think both infix or mixfix notation and resolution of ambiguous names require fundamental changes to Modula-3. If they are essential for you, it might be easier for you to use a language that supports them well. -- Mit freundlichen Gruessen Henning Thielemann Viele Gruesse Henning Martin-Luther-Universitaet Halle-Wittenberg, Institut fuer Informatik Tel. +49 - 345 - 55 24773 Fax +49 - 345 - 55 27333 From dragisha at m3w.org Thu Jan 20 14:34:02 2011 From: dragisha at m3w.org (=?utf-8?Q?Dragi=C5=A1a_Duri=C4=87?=) Date: Thu, 20 Jan 2011 14:34:02 +0100 Subject: [M3devel] operator overloading? [no, please!] In-Reply-To: <4D38294B.9080705@henning-thielemann.de> References: <4D38294B.9080705@henning-thielemann.de> Message-ID: <16D538BA-8279-4326-B37D-420F8DEC29FE@m3w.org> I hope this subject will die, and fast :). With operator overloading it is not Modula-3 anymore. Not nearly. I have scripting language, developed in-house and influenced by Modula-3 and a need for some more dynamic features, need which arises from time to time. It is extensible extension language, parsed to AST and interpreted from there. When I get time, I'll generate something object from it, but it works as it is. One of my plans is to extend it to used ObjectiveC objects and runtime... All outside of Modula-3 but near enough to be fully useable. Please don't kill Modula-3! On Jan 20, 2011, at 1:23 PM, Henning Thielemann wrote: ... From schlepptop at henning-thielemann.de Thu Jan 20 21:30:17 2011 From: schlepptop at henning-thielemann.de (Henning Thielemann) Date: Thu, 20 Jan 2011 21:30:17 +0100 Subject: [M3devel] operator overloading? In-Reply-To: References: <08B4C568-4EF9-40A5-9144-606D3A5CF1E0@cs.purdue.edu> <20101121192734.DB4761A208C@async.async.caltech.edu> Message-ID: <4D389B59.20009@henning-thielemann.de> Tony Hosking schrieb: > > > On Nov 21, 2010, at 3:11 PM, Jay K wrote: > >> > I'm now starting to wish that we had left LONGINT out, >> >> >> Just now? :) >> (This is another reason I'm somewhat open to tediously using >> Target.Int in frontend, >> in case we do lose LONGINT.) > > What it really suggests is that we need a proper infinite precision > integer library. Do we have one somewhere already? I have coded BigInteger in arithmetic package. It is not tuned in any way (no Fourier transform and such tricks) and may contain bugs. You may better call GNU multi precision library GMP. From dragisha at m3w.org Thu Jan 20 22:46:13 2011 From: dragisha at m3w.org (=?utf-8?Q?Dragi=C5=A1a_Duri=C4=87?=) Date: Thu, 20 Jan 2011 22:46:13 +0100 Subject: [M3devel] operator overloading? In-Reply-To: <4D389B59.20009@henning-thielemann.de> References: <08B4C568-4EF9-40A5-9144-606D3A5CF1E0@cs.purdue.edu> <20101121192734.DB4761A208C@async.async.caltech.edu> <4D389B59.20009@henning-thielemann.de> Message-ID: openssl library implements arbitrary precision integers, and I am using it on Windows, Linux and OSX. My binding is not complete but is useful, and I can submit it to cm3 for use/extending/... dd On Jan 20, 2011, at 9:30 PM, Henning Thielemann wrote: > Tony Hosking schrieb: >> >> >> On Nov 21, 2010, at 3:11 PM, Jay K wrote: >> >>>> I'm now starting to wish that we had left LONGINT out, >>> >>> >>> Just now? :) >>> (This is another reason I'm somewhat open to tediously using >>> Target.Int in frontend, >>> in case we do lose LONGINT.) >> >> What it really suggests is that we need a proper infinite precision >> integer library. Do we have one somewhere already? > > I have coded BigInteger in arithmetic package. It is not tuned in any > way (no Fourier transform and such tricks) and may contain bugs. You may > better call GNU multi precision library GMP. > From dabenavidesd at yahoo.es Fri Jan 21 18:40:54 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Fri, 21 Jan 2011 17:40:54 +0000 (GMT) Subject: [M3devel] operator overloading? In-Reply-To: Message-ID: <982895.94898.qm@web29716.mail.ird.yahoo.com> Hi all: I think besides is a needed feature and is in the Green Book to have arithmetic overflow. The longer I see this, I came to see that we would need to simulate each arithmetic overflow case to see whether is ALU or FPU model we have that. This requires simulation overhead in the compiler but I guess the option would be have this infrastructure for source language compliance, thus allowing not compliant hardware to solve this issues with something like this, see: http://nvl.nist.gov/pub/nistpubs/jres/101/2/j2anut.pdf In any case there might not be too much delay for architectures such as VLSI. Thanks in advance --- El jue, 20/1/11, Dragi?a Duri? escribi?: > De: Dragi?a Duri? > Asunto: Re: [M3devel] operator overloading? > Para: "Henning Thielemann" > CC: "m3devel" > Fecha: jueves, 20 de enero, 2011 16:46 > openssl library implements arbitrary > precision integers, and I am using it on Windows, Linux and > OSX. My binding is not complete but is useful, and I can > submit it to cm3 for use/extending/... > > dd > > On Jan 20, 2011, at 9:30 PM, Henning Thielemann wrote: > > > Tony Hosking schrieb: > >> > >> > >> On Nov 21, 2010, at 3:11 PM, Jay K wrote: > >> > >>>> I'm now starting to wish that we had left > LONGINT out, > >>> > >>> > >>> Just now? :) > >>> (This is another reason I'm somewhat open to > tediously using > >>> Target.Int in frontend, > >>> in case we do lose LONGINT.) > >> > >> What it really suggests is that we need a proper > infinite precision > >> integer library. Do we have one somewhere > already? > > > > I have coded BigInteger in arithmetic package. It is > not tuned in any > > way (no Fourier transform and such tricks) and may > contain bugs. You may > > better call GNU multi precision library GMP. > > > > From dabenavidesd at yahoo.es Fri Jan 21 20:54:05 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Fri, 21 Jan 2011 19:54:05 +0000 (GMT) Subject: [M3devel] operator overloading? In-Reply-To: <982895.94898.qm@web29716.mail.ird.yahoo.com> Message-ID: <989777.56540.qm@web29708.mail.ird.yahoo.com> Hi all: there are some tools already to do that kind of computing like in the Modula-3* (see: http://books.google.com/books?id=D67qFdGbrw0C&lpg=PA276&ots=-0xGnTICFX&dq=vlsi%20modula3&pg=PA276#v=onepage&q&f=false ), Model Language (see: http://www.isys.uni-klu.ac.at/PDF/1996-0020-StBo.pdf ) or the Modula-3D (see: ftp://ftp.cs.caltech.edu/tr/cs-tr-93-15.ps.Z ), indeed for that kind of problems too, which address the source level language part automatically, semi-automatically, or syntactically-oriented correspondingly, they could be managed as like language expression extensions or addressed as special language pragmas, so can be run on any kind or types of machines, like without FPU see Modula-3D report, etc. Besides that there is a source compatible framework which allows to detect such type of programming more comprehensibly and automatically if so that could be extended too, click on Look inside on: http://www.springerlink.com/content/2k65413251m333rp/ We do have the distributed framework CM3-IDE to offer that additional kind service if so Thanks in advance --- El vie, 21/1/11, Daniel Alejandro Benavides D. escribi?: > De: Daniel Alejandro Benavides D. > Asunto: Re: [M3devel] operator overloading? > Para: "Henning Thielemann" , "Dragi?a Duri?" > CC: "m3devel" > Fecha: viernes, 21 de enero, 2011 12:40 > Hi all: > I think besides is a needed feature and is in the Green > Book to have arithmetic overflow. > The longer I see this, I came to see that we would need to > simulate each arithmetic overflow case to see whether is ALU > or FPU model we have that. This requires simulation overhead > in the compiler but I guess the option would be have this > infrastructure for source language compliance, thus allowing > not compliant hardware to solve this issues with something > like this, see: > http://nvl.nist.gov/pub/nistpubs/jres/101/2/j2anut.pdf > In any case there might not be too much delay for > architectures such as VLSI. > Thanks in advance > > --- El jue, 20/1/11, Dragi?a Duri? > escribi?: > > > De: Dragi?a Duri? > > Asunto: Re: [M3devel] operator overloading? > > Para: "Henning Thielemann" > > CC: "m3devel" > > Fecha: jueves, 20 de enero, 2011 16:46 > > openssl library implements arbitrary > > precision integers, and I am using it on Windows, > Linux and > > OSX. My binding is not complete but is useful, and I > can > > submit it to cm3 for use/extending/... > > > > dd > > > > On Jan 20, 2011, at 9:30 PM, Henning Thielemann > wrote: > > > > > Tony Hosking schrieb: > > >> > > >> > > >> On Nov 21, 2010, at 3:11 PM, Jay K wrote: > > >> > > >>>> I'm now starting to wish that we had > left > > LONGINT out, > > >>> > > >>> > > >>> Just now? :) > > >>> (This is another reason I'm somewhat open > to > > tediously using > > >>> Target.Int in frontend, > > >>> in case we do lose LONGINT.) > > >> > > >> What it really suggests is that we need a > proper > > infinite precision > > >> integer library. Do we have one > somewhere > > already? > > > > > > I have coded BigInteger in arithmetic package. It > is > > not tuned in any > > > way (no Fourier transform and such tricks) and > may > > contain bugs. You may > > > better call GNU multi precision library GMP. > > > > > > > > > > > From dabenavidesd at yahoo.es Sat Jan 22 02:27:11 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sat, 22 Jan 2011 01:27:11 +0000 (GMT) Subject: [M3devel] operator overloading? In-Reply-To: <989777.56540.qm@web29708.mail.ird.yahoo.com> Message-ID: <302227.69373.qm@web29711.mail.ird.yahoo.com> Hi all: I think the basic building blocks are ready, just that need assembling. One must see however how it must be the model for each non-compliant hardware platform, the Modula-3 system works in such advanced simulations fortunately, like for cache mechanisms and computer models: http://www.liacs.nl/CS/HPC/apparc-deliverables/PME4a.html and http://www.liacs.nl/CS/HPC/apparc-deliverables/HwA6.html however are not parallel per-se but a later version was to be built to do that. Also to note that there is some work on GPGPU.org, although its in initial state they are pushing for getting the platform running accelerated in it. Thank in advance --- El vie, 21/1/11, Daniel Alejandro Benavides D. escribi?: > De: Daniel Alejandro Benavides D. > Asunto: Re: [M3devel] operator overloading? > Para: "Henning Thielemann" , "Dragi?a Duri?" > CC: "m3devel" > Fecha: viernes, 21 de enero, 2011 14:54 > Hi all: > there are some tools already to do that kind of computing > like in the Modula-3* (see: http://books.google.com/books?id=D67qFdGbrw0C&lpg=PA276&ots=-0xGnTICFX&dq=vlsi%20modula3&pg=PA276#v=onepage&q&f=false > ), Model Language (see: http://www.isys.uni-klu.ac.at/PDF/1996-0020-StBo.pdf ) > or the Modula-3D (see: ftp://ftp.cs.caltech.edu/tr/cs-tr-93-15.ps.Z > ), indeed for that kind of problems too, which address the > source level language part automatically, > semi-automatically, or syntactically-oriented > correspondingly, they could be managed as like language > expression extensions or addressed as special language > pragmas, so can be run on any kind or types of machines, > like without FPU see Modula-3D report, etc. > Besides that there is a source compatible framework which > allows to detect such type of programming more > comprehensibly and automatically if so that could be > extended too, click on Look inside on: > http://www.springerlink.com/content/2k65413251m333rp/ > We do have the distributed framework CM3-IDE to offer that > additional kind service if so > > Thanks in advance > > --- El vie, 21/1/11, Daniel Alejandro Benavides D. > escribi?: > > > De: Daniel Alejandro Benavides D. > > Asunto: Re: [M3devel] operator overloading? > > Para: "Henning Thielemann" , > "Dragi?a Duri?" > > CC: "m3devel" > > Fecha: viernes, 21 de enero, 2011 12:40 > > Hi all: > > I think besides is a needed feature and is in the > Green > > Book to have arithmetic overflow. > > The longer I see this, I came to see that we would > need to > > simulate each arithmetic overflow case to see whether > is ALU > > or FPU model we have that. This requires simulation > overhead > > in the compiler but I guess the option would be have > this > > infrastructure for source language compliance, thus > allowing > > not compliant hardware to solve this issues with > something > > like this, see: > > http://nvl.nist.gov/pub/nistpubs/jres/101/2/j2anut.pdf > > In any case there might not be too much delay for > > architectures such as VLSI. > > Thanks in advance > > > > --- El jue, 20/1/11, Dragi?a Duri? > > escribi?: > > > > > De: Dragi?a Duri? > > > Asunto: Re: [M3devel] operator overloading? > > > Para: "Henning Thielemann" > > > CC: "m3devel" > > > Fecha: jueves, 20 de enero, 2011 16:46 > > > openssl library implements arbitrary > > > precision integers, and I am using it on > Windows, > > Linux and > > > OSX. My binding is not complete but is useful, > and I > > can > > > submit it to cm3 for use/extending/... > > > > > > dd > > > > > > On Jan 20, 2011, at 9:30 PM, Henning Thielemann > > wrote: > > > > > > > Tony Hosking schrieb: > > > >> > > > >> > > > >> On Nov 21, 2010, at 3:11 PM, Jay K > wrote: > > > >> > > > >>>> I'm now starting to wish that we > had > > left > > > LONGINT out, > > > >>> > > > >>> > > > >>> Just now? :) > > > >>> (This is another reason I'm somewhat > open > > to > > > tediously using > > > >>> Target.Int in frontend, > > > >>> in case we do lose LONGINT.) > > > >> > > > >> What it really suggests is that we need > a > > proper > > > infinite precision > > > >> integer library. Do we have one > > somewhere > > > already? > > > > > > > > I have coded BigInteger in arithmetic > package. It > > is > > > not tuned in any > > > > way (no Fourier transform and such tricks) > and > > may > > > contain bugs. You may > > > > better call GNU multi precision library > GMP. > > > > > > > > > > > > > > > > > > > > > > From mika at async.caltech.edu Sat Jan 22 03:15:03 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Fri, 21 Jan 2011 18:15:03 -0800 Subject: [M3devel] compile problem on LINUXLIBC6 Message-ID: <20110122021503.615621A205B@async.async.caltech.edu> On the following system: Linux ballista 2.6.34.7-0.5-desktop #1 SMP PREEMPT 2010-10-25 08:40:12 +0200 i686 i686 i386 GNU/Linux gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/i586-suse-linux/4.5/lto-wrapper Target: i586-suse-linux Configured with: ../configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib --libexecdir=/usr/lib --enable-languages=c,c++,objc,fortran,obj-c++,java,ada --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.5 --enable-ssp --disable-libssp --disable-plugin --with-bugurl=http://bugs.opensuse.org/ --with-pkgversion='SUSE Linux' --disable-libgcj --disable-libmudflap --with-slibdir=/lib --with-system-zlib --enable-__cxa_atexit --enable-libstdcxx-allocator=new --disable-libstdcxx-pch --enable-version-specific-runtime-libs --program-suffix=-4.5 --enable-linux-futex --without-system-libunwind --enable-gold --with-plugin-ld=/usr/bin/gold --with-arch-32=i586 --with-tune=generic --build=i586-suse-linux Thread model: posix gcc version 4.5.0 20100604 [gcc-4_5-branch revision 160292] (SUSE Linux) Installing 5.8.6 from the web and then attempting to compile the CVS head using "upgrade.py" leads to the following: echo ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o ./sha1.o ./alloca.o ./argv.o ./choose-temp.o ./concat.o ./cp-demint.o ./crc32.o ./dyn-string.o ./fdmatch.o ./fibheap.o ./filename_cmp.o ./floatformat.o ./fnmatch.o ./fopen_unlocked.o ./getopt.o ./getopt1.o ./getpwd.o ./getruntime.o ./hashtab.o ./hex.o ./lbasename.o ./lrealpath.o ./make-relative-prefix.o ./make-temp-file.o ./objalloc.o ./obstack.o ./partition.o ./pexecute.o ./physmem.o ./pex-common.o ./pex-one.o ./pex-unix.o ./safe-ctype.o ./sort.o ./spaces.o ./splay-tree.o ./strerror.o ./strsignal.o ./unlink-if-ordinary.o ./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o ./xstrerror.o ./xstrndup.o > required-list make[2]: Entering directory `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' make[1]: Leaving directory `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty' cd . && cd libcpp && make MAKE=make AUTOCONF=: AUTOMAKE=: LEX='touch lex.yy.c' MAKEINFO=: libcpp.a cd . && cd libcpp && make MAKE=make AUTOCONF=: AUTOMAKE=: LEX='touch lex.yy.c' MAKEINFO=: libcpp.a g++ -I../../gcc-4.5/libcpp -I. -I../../gcc-4.5/libcpp/../include -I../../gcc-4.5/libcpp/include -g -O2 -W -Wall -Wwrite-strings -Wmissing-format-attribute -pedantic -Wno-long-long -I../../gcc-4.5/libcpp -I. -I../../gcc-4.5/libcpp/../include -I../../gcc-4.5/libcpp/include -c -o charset.o -MT charset.o -MMD -MP -MF .deps/charset.Tpo ../../gcc-4.5/libcpp/charset.c In file included from ../../gcc-4.5/libcpp/system.h:335:0, from ../../gcc-4.5/libcpp/charset.c:24: ../../gcc-4.5/libcpp/../include/libiberty.h:106:36: error: new declaration ? /usr/include/string.h:601:28: error: ambiguates old declaration ? make: *** [charset.o] Error 1 "/home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile", line 273: quake runtime error: exit 2: cd . && cd libcpp && make MAKE=make AUTOCONF=: AUTOMAKE=: LEX='touch lex.yy.c' MAKEINFO=: libcpp.a --procedure-- -line- -file--- exec -- m3cc_Run 273 /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile include_dir 518 /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile 5 /home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/m3make.args Fatal Error: package build failed *** execution of [, ] failed *** It looks like a clash between a declaration in libiberty.h and one in string.h Mika From dabenavidesd at yahoo.es Sat Jan 22 16:48:59 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sat, 22 Jan 2011 15:48:59 +0000 (GMT) Subject: [M3devel] compile problem on LINUXLIBC6 In-Reply-To: <20110122021503.615621A205B@async.async.caltech.edu> Message-ID: <957815.3691.qm@web29701.mail.ird.yahoo.com> Hi all: I wonder why it's making libcpp, does it some tool use it? just for c this days? anyway it would be good if you can test it just with another compiler version, perhaps the clash is product of incompability of version 4.50, 4.5.1 -><- perhaps you can try to build the gcc trunk to see how it builds, if it builds then you have a problem of compability in your gcc headers, This is why is this C code is sort of not portable, you don't know when you get a compiler error after thinking it is OK. Then if so, try to use gcc trunk instead to build in your cm3 building. Thanks in advance --- El vie, 21/1/11, Mika Nystrom escribi?: > De: Mika Nystrom > Asunto: [M3devel] compile problem on LINUXLIBC6 > Para: m3devel at elegosoft.com > Fecha: viernes, 21 de enero, 2011 21:15 > > On the following system: > > Linux ballista 2.6.34.7-0.5-desktop #1 SMP PREEMPT > 2010-10-25 08:40:12 +0200 i686 i686 i386 GNU/Linux > > gcc -v > Using built-in specs. > COLLECT_GCC=gcc > COLLECT_LTO_WRAPPER=/usr/lib/gcc/i586-suse-linux/4.5/lto-wrapper > Target: i586-suse-linux > Configured with: ../configure --prefix=/usr > --infodir=/usr/share/info --mandir=/usr/share/man > --libdir=/usr/lib --libexecdir=/usr/lib > --enable-languages=c,c++,objc,fortran,obj-c++,java,ada > --enable-checking=release > --with-gxx-include-dir=/usr/include/c++/4.5 --enable-ssp > --disable-libssp --disable-plugin --with-bugurl=http://bugs.opensuse.org/ --with-pkgversion='SUSE > Linux' --disable-libgcj --disable-libmudflap > --with-slibdir=/lib --with-system-zlib --enable-__cxa_atexit > --enable-libstdcxx-allocator=new --disable-libstdcxx-pch > --enable-version-specific-runtime-libs --program-suffix=-4.5 > --enable-linux-futex --without-system-libunwind > --enable-gold --with-plugin-ld=/usr/bin/gold > --with-arch-32=i586 --with-tune=generic > --build=i586-suse-linux > Thread model: posix > gcc version 4.5.0 20100604 [gcc-4_5-branch revision 160292] > (SUSE Linux) > > Installing 5.8.6 from the web and then attempting to > compile the CVS head using "upgrade.py" leads > to the following: > > echo ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o > ./sha1.o ./alloca.o ./argv.o ./choose-temp.o ./concat.o > ./cp-demint.o ./crc32.o ./dyn-string.o ./fdmatch.o > ./fibheap.o ./filename_cmp.o ./floatformat.o ./fnmatch.o > ./fopen_unlocked.o ./getopt.o ./getopt1.o ./getpwd.o > ./getruntime.o ./hashtab.o ./hex.o ./lbasename.o > ./lrealpath.o ./make-relative-prefix.o ./make-temp-file.o > ./objalloc.o ./obstack.o ./partition.o ./pexecute.o > ./physmem.o ./pex-common.o ./pex-one.o ./pex-unix.o > ./safe-ctype.o ./sort.o ./spaces.o ./splay-tree.o > ./strerror.o ./strsignal.o ./unlink-if-ordinary.o > ./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o > ./xstrerror.o ./xstrndup.o > required-list > make[2]: Entering directory > `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' > make[2]: Nothing to be done for `all'. > make[2]: Leaving directory > `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' > make[1]: Leaving directory > `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty' > cd . && cd libcpp && make > MAKE=make AUTOCONF=: AUTOMAKE=: LEX='touch lex.yy.c' > MAKEINFO=: libcpp.a > cd . && cd libcpp && make > MAKE=make AUTOCONF=: AUTOMAKE=: LEX='touch lex.yy.c' > MAKEINFO=: libcpp.a > g++ -I../../gcc-4.5/libcpp -I. > -I../../gcc-4.5/libcpp/../include > -I../../gcc-4.5/libcpp/include -g -O2 -W -Wall > -Wwrite-strings -Wmissing-format-attribute -pedantic > -Wno-long-long -I../../gcc-4.5/libcpp -I. > -I../../gcc-4.5/libcpp/../include > -I../../gcc-4.5/libcpp/include -c -o charset.o -MT > charset.o -MMD -MP -MF .deps/charset.Tpo > ../../gcc-4.5/libcpp/charset.c > In file included from ../../gcc-4.5/libcpp/system.h:335:0, > > from ../../gcc-4.5/libcpp/charset.c:24: > ../../gcc-4.5/libcpp/../include/libiberty.h:106:36: error: > new declaration ? > /usr/include/string.h:601:28: error: ambiguates old > declaration ? > make: *** [charset.o] Error 1 > "/home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile", line > 273: quake runtime error: exit 2: cd . && cd libcpp > && make MAKE=make AUTOCONF=: AUTOMAKE=: > LEX='touch lex.yy.c' MAKEINFO=: libcpp.a > > --procedure-- -line- -file--- > exec > -- > m3cc_Run 273 > /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile > include_dir 518 > /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile > > 5 > /home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/m3make.args > > Fatal Error: package build failed > *** execution of [ 0x814db54>, ] > failed *** > > It looks like a clash between a declaration in libiberty.h > and one in string.h > > Mika > From mika at async.caltech.edu Sat Jan 22 17:31:29 2011 From: mika at async.caltech.edu (Mika Nystrom) Date: Sat, 22 Jan 2011 08:31:29 -0800 Subject: [M3devel] compile problem on LINUXLIBC6 In-Reply-To: <957815.3691.qm@web29701.mail.ird.yahoo.com> References: <957815.3691.qm@web29701.mail.ird.yahoo.com> Message-ID: <20110122163129.927431A205B@async.async.caltech.edu> In order to build m3cc, all I had to do was remove the declaration for basename() from /usr/cvs/cm3/m3-sys/m3cc/gcc-4.5/include/libiberty.h I find it a bit odd since my system uses gcc 4.5.0 but am not quite sure what should be done about it. Mika "Daniel Alejandro Benavides D." writes: >Hi all: >I wonder why it's making libcpp, does it some tool use it? just for c this = >days? anyway it would be good if you can test it just with another compiler= > version, perhaps the clash is product of incompability of version 4.50, 4.= >5.1 -><- perhaps you can try to build the gcc trunk to see how it builds, i= >f it builds then you have a problem of compability in your gcc headers, Thi= >s is why is this C code is sort of not portable, you don't know when you ge= >t a compiler error after thinking it is OK. >Then if so, try to use gcc trunk instead to build in your cm3 building. >Thanks in advance > >--- El vie, 21/1/11, Mika Nystrom escribi=F3: > >> De: Mika Nystrom >> Asunto: [M3devel] compile problem on LINUXLIBC6 >> Para: m3devel at elegosoft.com >> Fecha: viernes, 21 de enero, 2011 21:15 >>=20 >> On the following system: >>=20 >> Linux ballista 2.6.34.7-0.5-desktop #1 SMP PREEMPT >> 2010-10-25 08:40:12 +0200 i686 i686 i386 GNU/Linux >>=20 >> gcc -v >> Using built-in specs. >> COLLECT_GCC=3Dgcc >> COLLECT_LTO_WRAPPER=3D/usr/lib/gcc/i586-suse-linux/4.5/lto-wrapper >> Target: i586-suse-linux >> Configured with: ../configure --prefix=3D/usr >> --infodir=3D/usr/share/info --mandir=3D/usr/share/man >> --libdir=3D/usr/lib --libexecdir=3D/usr/lib >> --enable-languages=3Dc,c++,objc,fortran,obj-c++,java,ada >> --enable-checking=3Drelease >> --with-gxx-include-dir=3D/usr/include/c++/4.5 --enable-ssp >> --disable-libssp --disable-plugin --with-bugurl=3Dhttp://bugs.opensuse.or= >g/ --with-pkgversion=3D'SUSE >> Linux' --disable-libgcj --disable-libmudflap >> --with-slibdir=3D/lib --with-system-zlib --enable-__cxa_atexit >> --enable-libstdcxx-allocator=3Dnew --disable-libstdcxx-pch >> --enable-version-specific-runtime-libs --program-suffix=3D-4.5 >> --enable-linux-futex --without-system-libunwind >> --enable-gold --with-plugin-ld=3D/usr/bin/gold >> --with-arch-32=3Di586 --with-tune=3Dgeneric >> --build=3Di586-suse-linux >> Thread model: posix >> gcc version 4.5.0 20100604 [gcc-4_5-branch revision 160292] >> (SUSE Linux) >>=20 >> Installing 5.8.6 from the web and then attempting to >> compile the CVS head using "upgrade.py" leads >> to the following: >>=20 >> echo ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o >> ./sha1.o ./alloca.o ./argv.o ./choose-temp.o ./concat.o >> ./cp-demint.o ./crc32.o ./dyn-string.o ./fdmatch.o >> ./fibheap.o ./filename_cmp.o ./floatformat.o ./fnmatch.o >> ./fopen_unlocked.o ./getopt.o ./getopt1.o ./getpwd.o >> ./getruntime.o ./hashtab.o ./hex.o ./lbasename.o >> ./lrealpath.o ./make-relative-prefix.o ./make-temp-file.o >> ./objalloc.o ./obstack.o ./partition.o ./pexecute.o >> ./physmem.o ./pex-common.o ./pex-one.o ./pex-unix.o >> ./safe-ctype.o ./sort.o ./spaces.o ./splay-tree.o >> ./strerror.o ./strsignal.o ./unlink-if-ordinary.o >> ./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o >> ./xstrerror.o ./xstrndup.o > required-list >> make[2]: Entering directory >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' >> make[2]: Nothing to be done for `all'. >> make[2]: Leaving directory >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' >> make[1]: Leaving directory >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty' >> cd . && cd libcpp && make=20 >> MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: LEX=3D'touch lex.yy.c' >> MAKEINFO=3D: libcpp.a >> cd . && cd libcpp && make=20 >> MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: LEX=3D'touch lex.yy.c' >> MAKEINFO=3D: libcpp.a >> g++ -I../../gcc-4.5/libcpp -I. >> -I../../gcc-4.5/libcpp/../include >> -I../../gcc-4.5/libcpp/include -g -O2 -W -Wall >> -Wwrite-strings -Wmissing-format-attribute -pedantic >> -Wno-long-long -I../../gcc-4.5/libcpp -I. >> -I../../gcc-4.5/libcpp/../include >> -I../../gcc-4.5/libcpp/include -c -o charset.o -MT >> charset.o -MMD -MP -MF .deps/charset.Tpo >> ../../gcc-4.5/libcpp/charset.c >> In file included from ../../gcc-4.5/libcpp/system.h:335:0, >> =20 >> from ../../gcc-4.5/libcpp/charset.c:24: >> ../../gcc-4.5/libcpp/../include/libiberty.h:106:36: error: >> new declaration =E2 >> /usr/include/string.h:601:28: error: ambiguates old >> declaration =E2 >> make: *** [charset.o] Error 1 >> "/home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile", line >> 273: quake runtime error: exit 2: cd . && cd libcpp >> && make MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: >> LEX=3D'touch lex.yy.c' MAKEINFO=3D: libcpp.a >>=20 >> --procedure-- -line- -file--- >> exec =20 >> -- >> m3cc_Run 273=20 >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile >> include_dir 518=20 >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile >> =20 >> 5=20 >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/m3make.args >>=20 >> Fatal Error: package build failed >> *** execution of [> 0x814db54>, ] >> failed *** >>=20 >> It looks like a clash between a declaration in libiberty.h >> and one in string.h >>=20 >> Mika >> =0A=0A=0A From jay.krell at cornell.edu Sat Jan 22 20:44:58 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 22 Jan 2011 19:44:58 +0000 Subject: [M3devel] compile problem on LINUXLIBC6 In-Reply-To: <20110122163129.927431A205B@async.async.caltech.edu> References: <957815.3691.qm@web29701.mail.ird.yahoo.com>, <20110122163129.927431A205B@async.async.caltech.edu> Message-ID: libcpp is part of any gcc frontend/backend. I have reduced it significantly, but it is still there. Maybe it was caused by this: 2010-12-26 18:50 jkrell * m3-sys/m3cc/src/clean_marker.txt: system.h: all systems have: stddef.h limits.h abort realloc ... anyway, I made a change that should resolve this. Let me know. I'll try to keep up with Hudson, but things have changed semi-permanently very significantly for me..less time on Modula-3 probably forever now... (I'll still try to fix the jumpbuf over-use and maybe stack-walker absence...) - Jay > To: dabenavidesd at yahoo.es > Date: Sat, 22 Jan 2011 08:31:29 -0800 > From: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] compile problem on LINUXLIBC6 > > In order to build m3cc, all I had to do was remove the declaration for > basename() from /usr/cvs/cm3/m3-sys/m3cc/gcc-4.5/include/libiberty.h > > I find it a bit odd since my system uses gcc 4.5.0 but am not quite sure > what should be done about it. > > Mika > > "Daniel Alejandro Benavides D." writes: > >Hi all: > >I wonder why it's making libcpp, does it some tool use it? just for c this = > >days? anyway it would be good if you can test it just with another compiler= > > version, perhaps the clash is product of incompability of version 4.50, 4.= > >5.1 -><- perhaps you can try to build the gcc trunk to see how it builds, i= > >f it builds then you have a problem of compability in your gcc headers, Thi= > >s is why is this C code is sort of not portable, you don't know when you ge= > >t a compiler error after thinking it is OK. > >Then if so, try to use gcc trunk instead to build in your cm3 building. > >Thanks in advance > > > >--- El vie, 21/1/11, Mika Nystrom escribi=F3: > > > >> De: Mika Nystrom > >> Asunto: [M3devel] compile problem on LINUXLIBC6 > >> Para: m3devel at elegosoft.com > >> Fecha: viernes, 21 de enero, 2011 21:15 > >>=20 > >> On the following system: > >>=20 > >> Linux ballista 2.6.34.7-0.5-desktop #1 SMP PREEMPT > >> 2010-10-25 08:40:12 +0200 i686 i686 i386 GNU/Linux > >>=20 > >> gcc -v > >> Using built-in specs. > >> COLLECT_GCC=3Dgcc > >> COLLECT_LTO_WRAPPER=3D/usr/lib/gcc/i586-suse-linux/4.5/lto-wrapper > >> Target: i586-suse-linux > >> Configured with: ../configure --prefix=3D/usr > >> --infodir=3D/usr/share/info --mandir=3D/usr/share/man > >> --libdir=3D/usr/lib --libexecdir=3D/usr/lib > >> --enable-languages=3Dc,c++,objc,fortran,obj-c++,java,ada > >> --enable-checking=3Drelease > >> --with-gxx-include-dir=3D/usr/include/c++/4.5 --enable-ssp > >> --disable-libssp --disable-plugin --with-bugurl=3Dhttp://bugs.opensuse.or= > >g/ --with-pkgversion=3D'SUSE > >> Linux' --disable-libgcj --disable-libmudflap > >> --with-slibdir=3D/lib --with-system-zlib --enable-__cxa_atexit > >> --enable-libstdcxx-allocator=3Dnew --disable-libstdcxx-pch > >> --enable-version-specific-runtime-libs --program-suffix=3D-4.5 > >> --enable-linux-futex --without-system-libunwind > >> --enable-gold --with-plugin-ld=3D/usr/bin/gold > >> --with-arch-32=3Di586 --with-tune=3Dgeneric > >> --build=3Di586-suse-linux > >> Thread model: posix > >> gcc version 4.5.0 20100604 [gcc-4_5-branch revision 160292] > >> (SUSE Linux) > >>=20 > >> Installing 5.8.6 from the web and then attempting to > >> compile the CVS head using "upgrade.py" leads > >> to the following: > >>=20 > >> echo ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o > >> ./sha1.o ./alloca.o ./argv.o ./choose-temp.o ./concat.o > >> ./cp-demint.o ./crc32.o ./dyn-string.o ./fdmatch.o > >> ./fibheap.o ./filename_cmp.o ./floatformat.o ./fnmatch.o > >> ./fopen_unlocked.o ./getopt.o ./getopt1.o ./getpwd.o > >> ./getruntime.o ./hashtab.o ./hex.o ./lbasename.o > >> ./lrealpath.o ./make-relative-prefix.o ./make-temp-file.o > >> ./objalloc.o ./obstack.o ./partition.o ./pexecute.o > >> ./physmem.o ./pex-common.o ./pex-one.o ./pex-unix.o > >> ./safe-ctype.o ./sort.o ./spaces.o ./splay-tree.o > >> ./strerror.o ./strsignal.o ./unlink-if-ordinary.o > >> ./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o > >> ./xstrerror.o ./xstrndup.o > required-list > >> make[2]: Entering directory > >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' > >> make[2]: Nothing to be done for `all'. > >> make[2]: Leaving directory > >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' > >> make[1]: Leaving directory > >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty' > >> cd . && cd libcpp && make=20 > >> MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: LEX=3D'touch lex.yy.c' > >> MAKEINFO=3D: libcpp.a > >> cd . && cd libcpp && make=20 > >> MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: LEX=3D'touch lex.yy.c' > >> MAKEINFO=3D: libcpp.a > >> g++ -I../../gcc-4.5/libcpp -I. > >> -I../../gcc-4.5/libcpp/../include > >> -I../../gcc-4.5/libcpp/include -g -O2 -W -Wall > >> -Wwrite-strings -Wmissing-format-attribute -pedantic > >> -Wno-long-long -I../../gcc-4.5/libcpp -I. > >> -I../../gcc-4.5/libcpp/../include > >> -I../../gcc-4.5/libcpp/include -c -o charset.o -MT > >> charset.o -MMD -MP -MF .deps/charset.Tpo > >> ../../gcc-4.5/libcpp/charset.c > >> In file included from ../../gcc-4.5/libcpp/system.h:335:0, > >> =20 > >> from ../../gcc-4.5/libcpp/charset.c:24: > >> ../../gcc-4.5/libcpp/../include/libiberty.h:106:36: error: > >> new declaration =E2 > >> /usr/include/string.h:601:28: error: ambiguates old > >> declaration =E2 > >> make: *** [charset.o] Error 1 > >> "/home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile", line > >> 273: quake runtime error: exit 2: cd . && cd libcpp > >> && make MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: > >> LEX=3D'touch lex.yy.c' MAKEINFO=3D: libcpp.a > >>=20 > >> --procedure-- -line- -file--- > >> exec =20 > >> -- > >> m3cc_Run 273=20 > >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile > >> include_dir 518=20 > >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile > >> =20 > >> 5=20 > >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/m3make.args > >>=20 > >> Fatal Error: package build failed > >> *** execution of [ >> 0x814db54>, ] > >> failed *** > >>=20 > >> It looks like a clash between a declaration in libiberty.h > >> and one in string.h > >>=20 > >> Mika > >> =0A=0A=0A -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Sun Jan 23 08:08:29 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sun, 23 Jan 2011 07:08:29 +0000 (GMT) Subject: [M3devel] compile problem on LINUXLIBC6 In-Reply-To: Message-ID: <121185.91775.qm@web29703.mail.ird.yahoo.com> hi all: yes I think you are correct in that too, ok. About your time/effort paradigm. Let me tell you something if you allow me: here in my country I was talking with another co partner, here, we have this kind of thinking : "you don't need to be talented, you just need to work hard", and certainly I have read lot of times perhaps that the harder things are, more worth they are. Certainly both of them are surely right, but let me tell you what a "neuro linguist" programmer says about that (I don't remember his name though he gives international conferences): "most of people think that the harder you work the more work you get done, but I tell you something is better to work intelligently than harder, if you are intelligent worker you get things done and are more worth the value, this is a paradigm you need to work your entire life to get something done and you realize how much trouble you can get solve if you are smarter than hard worker". I think also is true, the last point I mean, why we should spend the all night reading other people's code, even if they are worth, we should be better than that. My point is this, ok let's do some hard work in an intelligent way, we will be smarter than others by following the smarter things they had on harder things, but doing hard work on it if you don't need that last thing then you have a point. Then now, in this thing, let's be clear IA prominent guys are working towards making and u turn (maybe just and an "ear" turn here we say too). If I interpret this guys well, without too much knowledge of the ideas I do now something; at some point they should be going a little backwards to start over from where they went to work in fields that are not worth today, you see, a lot of work doesn't imply worth results even if finished, but intelligent work even if not absolutely complete is more worth the value than those they did. So I was reading a Computer magazine, March 1982, a local copy courtesy of somebody here. And what where doing Japanese Fifth Computer Generation Computer Systems plans at those days, planning the according following next decade of computing, the computers fifth generation FGCS. Basically what they were trying to do in order to do the major tasks, to build a complete framework up to a complete stack of technology in some of its subtasks (I know, but why should we worry if others are working nicely on the other parts, tell me if so): technology systematization, which compromised the following points: "Specifically this involve: (1) Modular programming and verification technology (2) A theory to specify description and program synthesis (3) A system for program synthesis, and program verfication and a program base (4) A system to maintain, improve and manage programs (5) A consultant system for program design " ____________SYSTEMATIZATION TECHNOLOGY_________________ Intelligent???????? | Knowledge |? Systematization | Database programming?? | base design | for computer????? | and distributed system?????????????? |? system?????? |?? architecture????? | database system ________________________________________________________________ in [1] Treleaven and Lima, ?Japan's Fifth Generation Computer Systems,? Computer, vol. 15, no. 8, pp. 79-88, 1982. Basically they wanted to build automatic language translators for languages like japanese to english, etc, a system to receive speech, and system to retrieve images. They main problem was that when arrived in the next decade they didn't get the expected rate or objective of efficiency was: 1-10 BIPS with a computer of 1G-10G of memory =? (though first goal was 1200'000.000 logical inferences per second, LIPS. 1 LIPS = [100..300] MIPS) = 400 000 MIPS and in full goal = 333'333.333 LIPS however they got was for first goal: 30.000 LIPS = 100 MIPS. The long term goal was not achieved but because of technical problem in the theory and semantic of concurrent languages. You can read about this on http://en.wikipedia.org/wiki/Fifth_generation_computer and: http://books.google.com/books?id=BlRrHHpoxLgC&lpg=PA14&ots=ArxnlvBiyx&dq=inference%20machine%20-learning&pg=PA15#v=onepage&q&f=false But for the long term project was getting just 200 000 LIPS < 700 MIPS ? Obviously this is not god like 100 times slower than thought, so they stopped funding the project and continue a sequel in another one. And NEC was one of the participants, precisely they wrote back in 1995 a bayesian algorithm in? Modula-3, looking for a chess contest (see http://www.nzdl.org/gsdlmod?e=d-00000-00---off-0tcc--00-0----0-10-0---0---0direct-10---4-------0-1l--11-en-50---20-about---00-0-1-00-0-0-11-1-0utfZz-8-10-0-0-11-1-0utfZz-8-00&a=d&c=tcc&cl=CL2.5&d=HASH01ddef928d9edae8cb47030b.5) Surely you are worried about this kind of issues, but I tell you I think we have a point if so, there are good opportunities they are just waiting for us and good looking for good chance of making it. Thanks in advance --- El s?b, 22/1/11, Jay K escribi?: De: Jay K Asunto: RE: [M3devel] compile problem on LINUXLIBC6 Para: "Mika Nystrom" , dabenavidesd at yahoo.es CC: "m3devel" Fecha: s?bado, 22 de enero, 2011 14:44 libcpp is part of any gcc frontend/backend. I have reduced it significantly, but it is still there. Maybe it was caused by this: 2010-12-26 18:50 jkrell * m3-sys/m3cc/src/clean_marker.txt: system.h: all systems have: stddef.h limits.h abort realloc ... anyway, I made a change that should resolve this. Let me know. I'll try to keep up with Hudson, but things have changed semi-permanently very significantly for me..less time on Modula-3 probably forever now... (I'll still try to fix the jumpbuf over-use and maybe stack-walker absence...) ?- Jay > To: dabenavidesd at yahoo.es > Date: Sat, 22 Jan 2011 08:31:29 -0800 > From: mika at async.caltech.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] compile problem on LINUXLIBC6 > > In order to build m3cc, all I had to do was remove the declaration for > basename() from /usr/cvs/cm3/m3-sys/m3cc/gcc-4.5/include/libiberty.h > > I find it a bit odd since my system uses gcc 4.5.0 but am not quite sure > what should be done about it. > > Mika > > "Daniel Alejandro Benavides D." writes: > >Hi all: > >I wonder why it's making libcpp, does it some tool use it? just for c this = > >days? anyway it would be good if you can test it just with another compiler= > > version, perhaps the clash is product of incompability of version 4.50, 4.= > >5.1 -><- perhaps you can try to build the gcc trunk to see how it builds, i= > >f it builds then you have a problem of compability in your gcc headers, Thi= > >s is why is this C code is sort of not portable, you don't know when you ge= > >t a compiler error after thinking it is OK. > >Then if so, try to use gcc trunk instead to build in your cm3 building. > >Thanks in advance > > > >--- El vie, 21/1/11, Mika Nystrom escribi=F3: > > > >> De: Mika Nystrom > >> Asunto: [M3devel] compile problem on LINUXLIBC6 > >> Para: m3devel at elegosoft.com > >> Fecha: viernes, 21 de enero, 2011 21:15 > >>=20 > >> On the following system: > >>=20 > >> Linux ballista 2.6.34.7-0.5-desktop #1 SMP PREEMPT > >> 2010-10-25 08:40:12 +0200 i686 i686 i386 GNU/Linux > >>=20 > >> gcc -v > >> Using built-in specs. > >> COLLECT_GCC=3Dgcc > >> COLLECT_LTO_WRAPPER=3D/usr/lib/gcc/i586-suse-linux/4.5/lto-wrapper > >> Target: i586-suse-linux > >> Configured with: ../configure --prefix=3D/usr > >> --infodir=3D/usr/share/info --mandir=3D/usr/share/man > >> --libdir=3D/usr/lib --libexecdir=3D/usr/lib > >> --enable-languages=3Dc,c++,objc,fortran,obj-c++,java,ada > >> --enable-checking=3Drelease > >> --with-gxx-include-dir=3D/usr/include/c++/4.5 --enable-ssp > >> --disable-libssp --disable-plugin --with-bugurl=3Dhttp://bugs.opensuse.or= > >g/ --with-pkgversion=3D'SUSE > >> Linux' --disable-libgcj --disable-libmudflap > >> --with-slibdir=3D/lib --with-system-zlib --enable-__cxa_atexit > >> --enable-libstdcxx-allocator=3Dnew --disable-libstdcxx-pch > >> --enable-version-specific-runtime-libs --program-suffix=3D-4.5 > >> --enable-linux-futex --without-system-libunwind > >> --enable-gold --with-plugin-ld=3D/usr/bin/gold > >> --with-arch-32=3Di586 --with-tune=3Dgeneric > >> --build=3Di586-suse-linux > >> Thread model: posix > >> gcc version 4.5.0 20100604 [gcc-4_5-branch revision 160292] > >> (SUSE Linux) > >>=20 > >> Installing 5.8.6 from the web and then attempting to > >> compile the CVS head using "upgrade.py" leads > >> to the following: > >>=20 > >> echo ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o > >> ./sha1.o ./alloca.o ./argv.o ./choose-temp.o ./concat.o > >> ./cp-demint.o ./crc32.o ./dyn-string.o ./fdmatch.o > >> ./fibheap.o ./filename_cmp.o ./floatformat.o ./fnmatch.o > >> ./fopen_unlocked.o ./getopt.o ./getopt1.o ./getpwd.o > >> ./getruntime.o ./hashtab.o ./hex.o ./lbasename.o > >> ./lrealpath.o ./make-relative-prefix.o ./make-temp-file.o > >> ./objalloc.o ./obstack.o ./partition.o ./pexecute.o > >> ./physmem.o ./pex-common.o ./pex-one.o ./pex-unix.o > >> ./safe-ctype.o ./sort.o ./spaces.o ./splay-tree.o > >> ./strerror.o ./strsignal.o ./unlink-if-ordinary.o > >> ./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o > >> ./xstrerror.o ./xstrndup.o > required-list > >> make[2]: Entering directory > >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' > >> make[2]: Nothing to be done for `all'. > >> make[2]: Leaving directory > >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty/testsuite' > >> make[1]: Leaving directory > >> `/home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/libiberty' > >> cd . && cd libcpp && make=20 > >> MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: LEX=3D'touch lex.yy.c' > >> MAKEINFO=3D: libcpp.a > >> cd . && cd libcpp && make=20 > >> MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: LEX=3D'touch lex.yy.c' > >> MAKEINFO=3D: libcpp.a > >> g++ -I../../gcc-4.5/libcpp -I. > >> -I../../gcc-4.5/libcpp/../include > >> -I../../gcc-4.5/libcpp/include -g -O2 -W -Wall > >> -Wwrite-strings -Wmissing-format-attribute -pedantic > >> -Wno-long-long -I../../gcc-4.5/libcpp -I. > >> -I../../gcc-4.5/libcpp/../include > >> -I../../gcc-4.5/libcpp/include -c -o charset.o -MT > >> charset.o -MMD -MP -MF .deps/charset.Tpo > >> ../../gcc-4.5/libcpp/charset.c > >> In file included from ../../gcc-4.5/libcpp/system.h:335:0, > >> =20 > >> from ../../gcc-4.5/libcpp/charset.c:24: > >> ../../gcc-4.5/libcpp/../include/libiberty.h:106:36: error: > >> new declaration =E2 > >> /usr/include/string.h:601:28: error: ambiguates old > >> declaration =E2 > >> make: *** [charset.o] Error 1 > >> "/home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile", line > >> 273: quake runtime error: exit 2: cd . && cd libcpp > >> && make MAKE=3Dmake AUTOCONF=3D: AUTOMAKE=3D: > >> LEX=3D'touch lex.yy.c' MAKEINFO=3D: libcpp.a > >>=20 > >> --procedure-- -line- -file--- > >> exec =20 > >> -- > >> m3cc_Run 273=20 > >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile > >> include_dir 518=20 > >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile > >> =20 > >> 5=20 > >> /home/mika/cm3-cvs/cm3/m3-sys/m3cc/LINUXLIBC6/m3make.args > >>=20 > >> Fatal Error: package build failed > >> *** execution of [ >> 0x814db54>, ] > >> failed *** > >>=20 > >> It looks like a clash between a declaration in libiberty.h > >> and one in string.h > >>=20 > >> Mika > >> =0A=0A=0A -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Jan 29 11:40:42 2011 From: jay.krell at cornell.edu (Jay K) Date: Sat, 29 Jan 2011 10:40:42 +0000 Subject: [M3devel] hardware clearance -- Sparc/solaris Message-ID: http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=120677831684 This was the Solaris/sparc Hudson node for a while. It doesn't seem needed now that we have the opencsw machines, unless we want to be "independent". ? Anyone here can have it for shipping or half shipping. Thanks, - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Sun Jan 30 03:18:37 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sun, 30 Jan 2011 02:18:37 +0000 (GMT) Subject: [M3devel] About Juno-2 and automating debugging software Message-ID: <299610.86962.qm@web29707.mail.ird.yahoo.com> Hi all: I was watching a book, sort of wondering what your ideas you might have about that. The idea behind this book, is sort of the same in some point to what it is ESC/Modula-3. in [1] W. R. Murray, Automatic program debugging for intelligent tutoring systems. Pitman, 1988. A technical report here, get it: ftp://ftp.cs.utexas.edu/pub/AI-Lab/tech-reports/UT-AI-TR-86-27.pdf You will see its rationale is that a program must be capable of catching more bugs and errors from the program, than a syntactical analyzer, which is the idea behind ESC/Modula-3, even if not a fully decidable problem as Greg Neslon says. Well I just put it there so we may see how about such a thing an Automatic debugger in Juno-2, as the Automatic Program Debugger is a declarative language Lisp subset and a subset of Lisp implementation is available, sort of nice thing to have already and Boyer-Moore underneath it theorem prover also available, see on: http://www.cs.utexas.edu/~moore/best-ideas/nqthm/index.html (Unreacheable code, etc like program errors, etc). Sort of nice having strong competence in the arena (see on: http://www.cs.cmu.edu/afs/cs/project/jair/pub/volume4/bhansali96a-html/paper.htm ) with sketchup and stuff, and Juno-2 alternative JVM already written backend and so (not for animations but sort amenable for dynamic code generation?). Only missing thing was just Prolog logical compiler but also being written one for proof of soundness of modula-3 type system typechecking Thanks in advance From dabenavidesd at yahoo.es Sun Jan 30 06:43:13 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sun, 30 Jan 2011 05:43:13 +0000 (GMT) Subject: [M3devel] About Juno-2 and automating debugging software In-Reply-To: <299610.86962.qm@web29707.mail.ird.yahoo.com> Message-ID: <459675.89026.qm@web29709.mail.ird.yahoo.com> Hi all: I think the speed improvement we might have in Juno-2 (to prove the concept) is to develop an interface for the constraint equational non-linear solving, perhaps done in CUDA see: http://en.wikipedia.org/wiki/CUDA like interface or OpenCL if so, and perhaps create a model for it under SOFA, see: http://en.wikipedia.org/wiki/SOFA_(Simulation_Open_Framework_Architecture) like model as some solvers already do that: http://www.sofa-framework.org/docs/sofa-tled-isbms08.pdf Also a FPU model would be needed of it or added to current modes of operation of Float point types, besides tohers like legacy x87 support, and newer ones. In this way we could prove the interface and give a proof of the concept. Indeed is heavy work and might not be reasonable to put first in a TODO list, but be aware this guys of GPGPU are creating so many things like large array of clusters to processing any kind of data, we might try to do that or some of it. And you know time is running for all and every should be keeping the pace. Perhaps this would require some sophistication in the needed machinery like 2 or three GPGPU or so, but still worth the value I think Thanks in advance, PD please if anybody has a CUDA or OpenCL interface design or already in mind or any ideas on this please speak up --- El s?b, 29/1/11, Daniel Alejandro Benavides D. escribi?: > De: Daniel Alejandro Benavides D. > Asunto: [M3devel] About Juno-2 and automating debugging software > Para: m3devel at elegosoft.com > Fecha: s?bado, 29 de enero, 2011 21:18 > Hi all: > I was watching a book, sort of wondering what your ideas > you might have about that. > The idea behind this book, is sort of the same in some > point to what it is ESC/Modula-3. > in > [1] W. R. Murray, Automatic program debugging for > intelligent tutoring systems. Pitman, 1988. > A technical report here, get it: > ftp://ftp.cs.utexas.edu/pub/AI-Lab/tech-reports/UT-AI-TR-86-27.pdf > > You will see its rationale is that a program must be > capable of catching more bugs and errors from the program, > than a syntactical analyzer, which is the idea behind > ESC/Modula-3, even if not a fully decidable problem as Greg > Neslon says. > > Well I just put it there so we may see how about such a > thing an Automatic debugger in Juno-2, as the Automatic > Program Debugger is a declarative language Lisp subset and a > subset of Lisp implementation is available, sort of nice > thing to have already and Boyer-Moore underneath it theorem > prover also available, see on: > http://www.cs.utexas.edu/~moore/best-ideas/nqthm/index.html > (Unreacheable code, etc like program errors, etc). > > Sort of nice having strong competence in the arena (see > on: > http://www.cs.cmu.edu/afs/cs/project/jair/pub/volume4/bhansali96a-html/paper.htm > ) with sketchup and stuff, and Juno-2 alternative JVM > already written backend and so (not for animations but sort > amenable for dynamic code generation?). > Only missing thing was just Prolog logical compiler but > also being written one for proof of soundness of modula-3 > type system typechecking > Thanks in advance > > > > From jay.krell at cornell.edu Sun Jan 30 11:45:17 2011 From: jay.krell at cornell.edu (Jay K) Date: Sun, 30 Jan 2011 10:45:17 +0000 Subject: [M3devel] fixing try/setjmp in a loop? Message-ID: I'm trying to fix the inadvertant change I made where FOR i := 1 TO 10 DO TRY FINALLY END will call alloca 10 times. I'm not familiar with the frontend, and it is hard for me to understand. It seems like it is probably very well factored, written by someone who really knew what they were doing, but it is dense, and not verbosely commented. Something like this?? But this doesn't work. What am I missing? And, we should go the next step and merge the jmpbuf pointer variable with the jmpbuf field in the EF1, right? ? 1.txt Index: src/misc/Marker.i3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.i3,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 Marker.i3 --- src/misc/Marker.i3 14 Jan 2001 13:40:31 -0000 1.1.1.1 +++ src/misc/Marker.i3 30 Jan 2011 10:41:18 -0000 @@ -64,9 +64,12 @@ PROCEDURE SetLock (acquire: BOOLEAN; var: CG.Var; offset: INTEGER); (* generate the call to acquire or release a mutex *) -PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label); +PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label; + jumpbuf: Variable.T); (* call 'setjmp' on 'frame's jmpbuf and branch to 'handler' on re-returns. *) PROCEDURE Reset (); +PROCEDURE NewJumpbuf (): Variable.T; + END Marker. Index: src/misc/Marker.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.m3,v retrieving revision 1.9 diff -u -r1.9 Marker.m3 --- src/misc/Marker.m3 13 Jan 2011 14:58:28 -0000 1.9 +++ src/misc/Marker.m3 30 Jan 2011 10:41:18 -0000 @@ -10,7 +10,7 @@ MODULE Marker; IMPORT CG, Error, Type, Variable, ProcType, ESet, Expr, AssignStmt; -IMPORT M3ID, M3RT, Target, Module, RunTyme, Procedure, Host; +IMPORT M3ID, M3RT, Target, Module, RunTyme, Procedure, Host, Addr; TYPE Kind = { zFINALLY, zFINALLYPROC, zLOCK, zEXIT, zTRY, zTRYELSE, @@ -231,8 +231,10 @@ END; END CallFinallyHandler; -PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label) = +PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label; + jumpbuf: Variable.T) = VAR new: BOOLEAN; + label := CG.Next_label (); BEGIN (* int setjmp(void* ); *) IF (setjmp = NIL) THEN @@ -262,13 +264,33 @@ Target.Word.size, Target.Word.align, Target.Word.cg_type, 0); END; - - (* frame.jmpbuf = alloca(Csetjmp__Jumpbuf_size); *) + + (* IF jumpuf # NIL THEN + * frame.jmpbuf = alloca(Csetjmp__Jumpbuf_size); + * END + *) + + CG.Load_nil (); + Variable.Load (jumpbuf); + CG.If_compare (CG.Type.Addr, CG.Cmp.NE, label, CG.Maybe); + CG.Start_call_direct (alloca, 0, Target.Address.cg_type); CG.Load_int (Target.Word.cg_type, Jumpbuf_size); CG.Pop_param (Target.Word.cg_type); CG.Call_direct (alloca, Target.Address.cg_type); + + (* FUTURE: We should actually have a Variable + * for the entire EF1, including initializing the jumpbuf + * in it. That would save us this extra load/store, + * and save a local variable. + *) + Variable.LoadLValue (jumpbuf); + CG.Swap (); + CG.Store_indirect (CG.Type.Addr, 0, Target.Address.size); + Variable.Load (jumpbuf); + CG.Store_addr (frame, M3RT.EF1_jmpbuf); + CG.Set_label (label); (* setmp(frame.jmpbuf) *) CG.Start_call_direct (setjmp, 0, Target.Integer.cg_type); @@ -806,5 +828,15 @@ tos := 0; END Reset; +PROCEDURE NewJumpbuf (): Variable.T = + VAR jumpbuf: Variable.T; + BEGIN + jumpbuf := Variable.New (M3ID.NoID, TRUE); + Variable.BindType (jumpbuf, Addr.T, indirect := FALSE, + readonly := FALSE, open_array_ok := FALSE, + needs_init := TRUE); + RETURN jumpbuf; + END NewJumpbuf; + BEGIN END Marker. Index: src/stmts/TryFinStmt.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/stmts/TryFinStmt.m3,v retrieving revision 1.6 diff -u -r1.6 TryFinStmt.m3 --- src/stmts/TryFinStmt.m3 5 Jan 2011 14:34:54 -0000 1.6 +++ src/stmts/TryFinStmt.m3 30 Jan 2011 10:41:18 -0000 @@ -10,6 +10,7 @@ IMPORT M3ID, CG, Token, Scanner, Stmt, StmtRep, Marker, Target, Type, Addr; IMPORT RunTyme, Procedure, ProcBody, M3RT, Scope, Fmt, Host, TryStmt, Module; +IMPORT Variable; FROM Stmt IMPORT Outcome; TYPE @@ -20,6 +21,7 @@ viaProc : BOOLEAN; scope : Scope.T; handler : HandlerProc; + jumpbuf : Variable.T := NIL; OVERRIDES check := Check; compile := Compile; @@ -63,6 +65,11 @@ RETURN p; END Parse; +PROCEDURE UsesSetjmp (p: P): BOOLEAN = + BEGIN + RETURN NOT (Target.Has_stack_walker OR p.viaProc); + END UsesSetjmp; + PROCEDURE Check (p: P; VAR cs: Stmt.CheckState) = VAR zz: Scope.T; oc: Stmt.Outcomes; name: INTEGER; BEGIN @@ -95,6 +102,9 @@ END; END; TryStmt.PopHandler (); + IF UsesSetjmp (p) THEN + p.jumpbuf := Marker.NewJumpbuf (); + END; END Check; PROCEDURE HandlerName (uid: INTEGER): TEXT = @@ -106,11 +116,16 @@ END HandlerName; PROCEDURE Compile (p: P): Stmt.Outcomes = + VAR usesSetjmp := FALSE; + result: Stmt.Outcomes; BEGIN - IF Target.Has_stack_walker THEN RETURN Compile1 (p); - ELSIF p.viaProc THEN RETURN Compile2 (p); - ELSE RETURN Compile3 (p); + IF Target.Has_stack_walker THEN result := Compile1 (p); + ELSIF p.viaProc THEN result := Compile2 (p); + ELSE usesSetjmp := TRUE; + result := Compile3 (p); END; + <* ASSERT usesSetjmp = UsesSetjmp (p) *> + RETURN result; END Compile; PROCEDURE Compile1 (p: P): Stmt.Outcomes = @@ -302,7 +317,9 @@ l := CG.Next_label (3); CG.Set_label (l, barrier := TRUE); Marker.PushFrame (frame, M3RT.HandlerClass.Finally); - Marker.CaptureState (frame, l+1); + <* ASSERT UsesSetjmp (p) *> + <* ASSERT p.jumpbuf # NIL *> + Marker.CaptureState (frame, l+1, p.jumpbuf); (* compile the body *) Marker.PushFinally (l, l+1, frame); Index: src/stmts/TryStmt.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/stmts/TryStmt.m3,v retrieving revision 1.3 diff -u -r1.3 TryStmt.m3 --- src/stmts/TryStmt.m3 5 Jan 2011 14:34:54 -0000 1.3 +++ src/stmts/TryStmt.m3 30 Jan 2011 10:41:18 -0000 @@ -22,6 +22,7 @@ hasElse : BOOLEAN; elseBody : Stmt.T; handled : ESet.T; + jumpbuf : Variable.T := NIL; OVERRIDES check := Check; compile := Compile; @@ -153,6 +154,14 @@ p.handles := h3; END ReverseHandlers; +PROCEDURE UsesSetjmp (p: P): BOOLEAN = + BEGIN + IF (p.handles = NIL) AND (NOT p.hasElse) THEN + RETURN FALSE; + END; + RETURN NOT Target.Has_stack_walker; + END UsesSetjmp; + PROCEDURE Check (p: P; VAR cs: Stmt.CheckState) = VAR h: Handler; handled: ESet.T; BEGIN @@ -182,6 +191,10 @@ WHILE (h # NIL) DO CheckHandler (h, cs); h := h.next; END; Stmt.TypeCheck (p.elseBody, cs); PopHandler (); + + IF UsesSetjmp (p) THEN + p.jumpbuf := Marker.NewJumpbuf (); + END; END Check; PROCEDURE CheckLabels (h: Handler; scope: Scope.T; VAR cs: Stmt.CheckState) = @@ -245,14 +258,19 @@ END CheckHandler; PROCEDURE Compile (p: P): Stmt.Outcomes = + VAR usesSetjmp := FALSE; + result: Stmt.Outcomes; BEGIN IF (p.handles = NIL) AND (NOT p.hasElse) THEN - RETURN Stmt.Compile (p.body); - END; - IF Target.Has_stack_walker - THEN RETURN Compile1 (p); - ELSE RETURN Compile2 (p); + result := Stmt.Compile (p.body); + ELSIF Target.Has_stack_walker THEN + result := Compile1 (p); + ELSE + usesSetjmp := TRUE; + result := Compile2 (p); END; + <* ASSERT usesSetjmp = UsesSetjmp (p) *> + RETURN result; END Compile; PROCEDURE Compile1 (p: P): Stmt.Outcomes = @@ -423,7 +441,9 @@ END; (* capture the machine state *) - Marker.CaptureState (frame, l+1); + <* ASSERT UsesSetjmp (p) *> + <* ASSERT p.jumpbuf # NIL *> + Marker.CaptureState (frame, l+1, p.jumpbuf); (* compile the body *) oc := Stmt.Compile (p.body); Thanks, - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Mon Jan 31 05:20:58 2011 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Mon, 31 Jan 2011 04:20:58 +0000 (GMT) Subject: [M3devel] About Juno-2 and automating debugging software In-Reply-To: <459675.89026.qm@web29709.mail.ird.yahoo.com> Message-ID: <22454.41538.qm@web29715.mail.ird.yahoo.com> Hi all: yes, I believe is doable especially if you think this issue comes again in another form, the AI guys thinking what went wrong, well nothing went wrong as I realize now, there is a lot of research certainly, but in the end is just the same thing like before, and you can see this like the reuse of concepts of prior knowledge as is mentioned between other by Dr Andrew Tanenbaum, it just happens when something like this: see, the GPGPU GPU stuff alike is a nother come of the concept of explicit parallelism and its implication in computing fields, surely more developed in terms of the hardware this was I believe, but at the end is just another way of calling Transputers in earlier times, is just like it, then it was not an abandoned thing like before, just a reuse of the concept, and in practical terms this what it is the Occam Occam2 and alike languages; there is one in particular of my interest here the one built for drawing using CSP of Hoare, the language is called Armadillo see a slide show here, specially check for the Computer magazine backcover in p. 6 in: https://lsl.unal.edu.co/fl18/conferencias/09.20_ArmadilloTortugav02.pdf (Also its Armadillo, small, but kind of sweet animal and very nicely armored, it is found here in the wildness parts here in the sea costs of the Atlantic Caribbean sea in the north of south America, but also a kind domestic animal if you live in some country like this here too) I believe I have no seen this animal in any Oreilly front cover book, I believe from the ones I have seen (am I correct?). Well to state this less profound, the called abstraction for machine generation of this sort of derivate of Lisp Logo CSP and Modula-3 uses the Modula-3 structural equivalence type system part of Modula-3 type checking and the most part of it dynamically typecheking of it, so its Object Oriented if you can say that. Still it has records as in Modula-3 and fell like you were there, never the less, all sort of non-imperative forms of the language, like floating point types and sort of Arithmetic ones, well sort of the integer I believe, though It might be expandable if one just arranges that as well I believe in its core runtime. It's not supposed to be interactively run but to be to run semi-interpretable as an Armacode binary representation up to a tree which takes not so much time to build up and run to the execution time, also it has an option to be dynamically interpreted as a core of a JIT inserted calls to runtime functions I think. It serves well for the purpose of checking it with a possible ESC/Armadillo checker but also permits same kind of applicable and beyond Modula-3 optimizations also via an hypothetical super optimizer code generator for Modula-3 language as linker and loader module subsystem. Instead of having if its own interpretation subsystem by itself, it lives and relies on the connection with other parts of the system like m3-ui and function from Modula-3 IO to rightly process nice and fast graphics by its own self extension libraries and data types, like turtle, etc. Well, I just thought this might be helpful to find a better way to analyze a possible upgraded middle end interface for future CUDA or OpenCL platforms in the way it works for Modula-3 threads and types, with such an abstraction which perhaps does allow to create an accurate creative Juno-2 optimizations and stuff from there too that might be useful to speed up it too. It might be useful to note the product mentioned in the slide in the terms it writes as a Multi-transputer, sort of a multi-user high middle-end server which came with open OS soured and customizable processor interconnection and compatibility to other operating systems via LAN NICs. Sort even nicer profilability than one may think, very advanced for this days I still would say, or at least sophisticated for its time (compared to this times), see an explanation of its architecture: http://www-users.cs.york.ac.uk/susan/bib/ss/occam/multit.htm In any sense it is not intended to create a bigger scene just short pictures the bigger problem to dedicate more time to less independent functionality like interoperability between both platforms and stuff alike. Well, hope it's bit of contribution makes a good chance to create workable for real platform for the intent to continue this eventually, some of its last effort was I see: http://books.google.com/books?id=fpKF8r9ithQC&lpg=PP1&pg=PP1#v=onepage&q&f=false which sort of an amenable way of coping with its development research, see for the Transterpreter part or Multi-Transterpreter :) Thanks in advance --- El dom, 30/1/11, Daniel Alejandro Benavides D. escribi?: > De: Daniel Alejandro Benavides D. > Asunto: Re: [M3devel] About Juno-2 and automating debugging software > Para: m3devel at elegosoft.com > Fecha: domingo, 30 de enero, 2011 00:43 > Hi all: > I think the speed improvement we might have in Juno-2 (to > prove the concept) is to develop an interface for the > constraint equational non-linear solving, perhaps done in > CUDA see: > http://en.wikipedia.org/wiki/CUDA > > like interface or OpenCL if so, and perhaps create a model > for it under SOFA, see: > http://en.wikipedia.org/wiki/SOFA_(Simulation_Open_Framework_Architecture) > > like model as some solvers already do that: > http://www.sofa-framework.org/docs/sofa-tled-isbms08.pdf > > Also a FPU model would be needed of it or added to current > modes of operation of Float point types, besides tohers like > legacy x87 support, and newer ones. > In this way we could prove the interface and give a proof > of the concept. > Indeed is heavy work and might not be reasonable to put > first in a TODO list, but be aware this guys of GPGPU are > creating so many things like large array of clusters to > processing any kind of data, we might try to do that or some > of it. And you know time is running for all and every should > be keeping the pace. > Perhaps this would require some sophistication in the > needed machinery like 2 or three GPGPU or so, but still > worth the value I think > Thanks in advance, > > PD please if anybody has a CUDA or OpenCL interface design > or already in mind or any ideas on this please speak up > > --- El s?b, 29/1/11, Daniel Alejandro Benavides D. > escribi?: > > > De: Daniel Alejandro Benavides D. > > Asunto: [M3devel] About Juno-2 and automating > debugging software > > Para: m3devel at elegosoft.com > > Fecha: s?bado, 29 de enero, 2011 21:18 > > Hi all: > > I was watching a book, sort of wondering what your > ideas > > you might have about that. > > The idea behind this book, is sort of the same in > some > > point to what it is ESC/Modula-3. > > in > > [1] W. R. Murray, Automatic program debugging for > > intelligent tutoring systems. Pitman, 1988. > > A technical report here, get it: > > ftp://ftp.cs.utexas.edu/pub/AI-Lab/tech-reports/UT-AI-TR-86-27.pdf > > > > You will see its rationale is that a program must be > > capable of catching more bugs and errors from the > program, > > than a syntactical analyzer, which is the idea behind > > ESC/Modula-3, even if not a fully decidable problem as > Greg > > Neslon says. > > > > Well I just put it there so we may see how about such > a > > thing an Automatic debugger in Juno-2, as the > Automatic > > Program Debugger is a declarative language Lisp subset > and a > > subset of Lisp implementation is available, sort of > nice > > thing to have already and Boyer-Moore underneath it > theorem > > prover also available, see on: > > http://www.cs.utexas.edu/~moore/best-ideas/nqthm/index.html > > (Unreacheable code, etc like program errors, etc). > > > > Sort of nice having strong competence in the arena > (see > > on: > > http://www.cs.cmu.edu/afs/cs/project/jair/pub/volume4/bhansali96a-html/paper.htm > > ) with sketchup and stuff, and Juno-2 > alternative JVM > > already written backend and so (not for animations but > sort > > amenable for dynamic code generation?). > > Only missing thing was just Prolog logical compiler > but > > also being written one for proof of soundness of > modula-3 > > type system typechecking > > Thanks in advance > > > > > > > > > > > > From hosking at cs.purdue.edu Mon Jan 31 18:14:09 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 31 Jan 2011 12:14:09 -0500 Subject: [M3devel] fixing try/setjmp in a loop? In-Reply-To: References: Message-ID: <36BA1892-1828-43A7-B706-AE87B3D98EA1@cs.purdue.edu> Hi Jay, I've not had a chance to digest this, but I do understand the problem. We need the Variable to be entered into the outermost scope of the procedure in which the TRY appears so that it will have initialization code (assigning NIL) generated for it on entry to the procedure. Then your usage of the variable should simply check for NIL and alloca if it is, as you already appear to do here. It would be possible to have the initialization code perform the alloca but then we would have an alloca for every TRY block in a procedure even if they never execute. Probably not the best plan. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 30, 2011, at 5:45 AM, Jay K wrote: > I'm trying to fix the inadvertant change I made where > FOR i := 1 TO 10 DO TRY FINALLY END > > will call alloca 10 times. > > I'm not familiar with the frontend, and it is hard for me to understand. > It seems like it is probably very well factored, written by someone who really knew what they were doing, > but it is dense, and not verbosely commented. > > Something like this?? But this doesn't work. What am I missing? > And, we should go the next step and merge the jmpbuf pointer variable with the jmpbuf field in the EF1, right? > > > ? 1.txt > Index: src/misc/Marker.i3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.i3,v > retrieving revision 1.1.1.1 > diff -u -r1.1.1.1 Marker.i3 > --- src/misc/Marker.i3 14 Jan 2001 13:40:31 -0000 1.1.1.1 > +++ src/misc/Marker.i3 30 Jan 2011 10:41:18 -0000 > @@ -64,9 +64,12 @@ > PROCEDURE SetLock (acquire: BOOLEAN; var: CG.Var; offset: INTEGER); > (* generate the call to acquire or release a mutex *) > > -PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label); > +PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label; > + jumpbuf: Variable.T); > (* call 'setjmp' on 'frame's jmpbuf and branch to 'handler' on re-returns. *) > > PROCEDURE Reset (); > > +PROCEDURE NewJumpbuf (): Variable.T; > + > END Marker. > Index: src/misc/Marker.m3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.m3,v > retrieving revision 1.9 > diff -u -r1.9 Marker.m3 > --- src/misc/Marker.m3 13 Jan 2011 14:58:28 -0000 1.9 > +++ src/misc/Marker.m3 30 Jan 2011 10:41:18 -0000 > @@ -10,7 +10,7 @@ > MODULE Marker; > > IMPORT CG, Error, Type, Variable, ProcType, ESet, Expr, AssignStmt; > -IMPORT M3ID, M3RT, Target, Module, RunTyme, Procedure, Host; > +IMPORT M3ID, M3RT, Target, Module, RunTyme, Procedure, Host, Addr; > > TYPE > Kind = { zFINALLY, zFINALLYPROC, zLOCK, zEXIT, zTRY, zTRYELSE, > @@ -231,8 +231,10 @@ > END; > END CallFinallyHandler; > > -PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label) = > +PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label; > + jumpbuf: Variable.T) = > VAR new: BOOLEAN; > + label := CG.Next_label (); > BEGIN > (* int setjmp(void* ); *) > IF (setjmp = NIL) THEN > @@ -262,13 +264,33 @@ > Target.Word.size, Target.Word.align, > Target.Word.cg_type, 0); > END; > - > - (* frame.jmpbuf = alloca(Csetjmp__Jumpbuf_size); *) > + > + (* IF jumpuf # NIL THEN > + * frame.jmpbuf = alloca(Csetjmp__Jumpbuf_size); > + * END > + *) > + > + CG.Load_nil (); > + Variable.Load (jumpbuf); > + CG.If_compare (CG.Type.Addr, CG.Cmp.NE, label, CG.Maybe); > + > CG.Start_call_direct (alloca, 0, Target.Address.cg_type); > CG.Load_int (Target.Word.cg_type, Jumpbuf_size); > CG.Pop_param (Target.Word.cg_type); > CG.Call_direct (alloca, Target.Address.cg_type); > + > + (* FUTURE: We should actually have a Variable > + * for the entire EF1, including initializing the jumpbuf > + * in it. That would save us this extra load/store, > + * and save a local variable. > + *) > + Variable.LoadLValue (jumpbuf); > + CG.Swap (); > + CG.Store_indirect (CG.Type.Addr, 0, Target.Address.size); > + Variable.Load (jumpbuf); > + > CG.Store_addr (frame, M3RT.EF1_jmpbuf); > + CG.Set_label (label); > > (* setmp(frame.jmpbuf) *) > CG.Start_call_direct (setjmp, 0, Target.Integer.cg_type); > @@ -806,5 +828,15 @@ > tos := 0; > END Reset; > > +PROCEDURE NewJumpbuf (): Variable.T = > + VAR jumpbuf: Variable.T; > + BEGIN > + jumpbuf := Variable.New (M3ID.NoID, TRUE); > + Variable.BindType (jumpbuf, Addr.T, indirect := FALSE, > + readonly := FALSE, open_array_ok := FALSE, > + needs_init := TRUE); > + RETURN jumpbuf; > + END NewJumpbuf; > + > BEGIN > END Marker. > Index: src/stmts/TryFinStmt.m3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-sys/m3front/src/stmts/TryFinStmt.m3,v > retrieving revision 1.6 > diff -u -r1.6 TryFinStmt.m3 > --- src/stmts/TryFinStmt.m3 5 Jan 2011 14:34:54 -0000 1.6 > +++ src/stmts/TryFinStmt.m3 30 Jan 2011 10:41:18 -0000 > @@ -10,6 +10,7 @@ > > IMPORT M3ID, CG, Token, Scanner, Stmt, StmtRep, Marker, Target, Type, Addr; > IMPORT RunTyme, Procedure, ProcBody, M3RT, Scope, Fmt, Host, TryStmt, Module; > +IMPORT Variable; > FROM Stmt IMPORT Outcome; > > TYPE > @@ -20,6 +21,7 @@ > viaProc : BOOLEAN; > scope : Scope.T; > handler : HandlerProc; > + jumpbuf : Variable.T := NIL; > OVERRIDES > check := Check; > compile := Compile; > @@ -63,6 +65,11 @@ > RETURN p; > END Parse; > > +PROCEDURE UsesSetjmp (p: P): BOOLEAN = > + BEGIN > + RETURN NOT (Target.Has_stack_walker OR p.viaProc); > + END UsesSetjmp; > + > PROCEDURE Check (p: P; VAR cs: Stmt.CheckState) = > VAR zz: Scope.T; oc: Stmt.Outcomes; name: INTEGER; > BEGIN > @@ -95,6 +102,9 @@ > END; > END; > TryStmt.PopHandler (); > + IF UsesSetjmp (p) THEN > + p.jumpbuf := Marker.NewJumpbuf (); > + END; > END Check; > > PROCEDURE HandlerName (uid: INTEGER): TEXT = > @@ -106,11 +116,16 @@ > END HandlerName; > > PROCEDURE Compile (p: P): Stmt.Outcomes = > + VAR usesSetjmp := FALSE; > + result: Stmt.Outcomes; > BEGIN > - IF Target.Has_stack_walker THEN RETURN Compile1 (p); > - ELSIF p.viaProc THEN RETURN Compile2 (p); > - ELSE RETURN Compile3 (p); > + IF Target.Has_stack_walker THEN result := Compile1 (p); > + ELSIF p.viaProc THEN result := Compile2 (p); > + ELSE usesSetjmp := TRUE; > + result := Compile3 (p); > END; > + <* ASSERT usesSetjmp = UsesSetjmp (p) *> > + RETURN result; > END Compile; > > PROCEDURE Compile1 (p: P): Stmt.Outcomes = > @@ -302,7 +317,9 @@ > l := CG.Next_label (3); > CG.Set_label (l, barrier := TRUE); > Marker.PushFrame (frame, M3RT.HandlerClass.Finally); > - Marker.CaptureState (frame, l+1); > + <* ASSERT UsesSetjmp (p) *> > + <* ASSERT p.jumpbuf # NIL *> > + Marker.CaptureState (frame, l+1, p.jumpbuf); > > (* compile the body *) > Marker.PushFinally (l, l+1, frame); > Index: src/stmts/TryStmt.m3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-sys/m3front/src/stmts/TryStmt.m3,v > retrieving revision 1.3 > diff -u -r1.3 TryStmt.m3 > --- src/stmts/TryStmt.m3 5 Jan 2011 14:34:54 -0000 1.3 > +++ src/stmts/TryStmt.m3 30 Jan 2011 10:41:18 -0000 > @@ -22,6 +22,7 @@ > hasElse : BOOLEAN; > elseBody : Stmt.T; > handled : ESet.T; > + jumpbuf : Variable.T := NIL; > OVERRIDES > check := Check; > compile := Compile; > @@ -153,6 +154,14 @@ > p.handles := h3; > END ReverseHandlers; > > +PROCEDURE UsesSetjmp (p: P): BOOLEAN = > + BEGIN > + IF (p.handles = NIL) AND (NOT p.hasElse) THEN > + RETURN FALSE; > + END; > + RETURN NOT Target.Has_stack_walker; > + END UsesSetjmp; > + > PROCEDURE Check (p: P; VAR cs: Stmt.CheckState) = > VAR h: Handler; handled: ESet.T; > BEGIN > @@ -182,6 +191,10 @@ > WHILE (h # NIL) DO CheckHandler (h, cs); h := h.next; END; > Stmt.TypeCheck (p.elseBody, cs); > PopHandler (); > + > + IF UsesSetjmp (p) THEN > + p.jumpbuf := Marker.NewJumpbuf (); > + END; > END Check; > > PROCEDURE CheckLabels (h: Handler; scope: Scope.T; VAR cs: Stmt.CheckState) = > @@ -245,14 +258,19 @@ > END CheckHandler; > > PROCEDURE Compile (p: P): Stmt.Outcomes = > + VAR usesSetjmp := FALSE; > + result: Stmt.Outcomes; > BEGIN > IF (p.handles = NIL) AND (NOT p.hasElse) THEN > - RETURN Stmt.Compile (p.body); > - END; > - IF Target.Has_stack_walker > - THEN RETURN Compile1 (p); > - ELSE RETURN Compile2 (p); > + result := Stmt.Compile (p.body); > + ELSIF Target.Has_stack_walker THEN > + result := Compile1 (p); > + ELSE > + usesSetjmp := TRUE; > + result := Compile2 (p); > END; > + <* ASSERT usesSetjmp = UsesSetjmp (p) *> > + RETURN result; > END Compile; > > PROCEDURE Compile1 (p: P): Stmt.Outcomes = > @@ -423,7 +441,9 @@ > END; > > (* capture the machine state *) > - Marker.CaptureState (frame, l+1); > + <* ASSERT UsesSetjmp (p) *> > + <* ASSERT p.jumpbuf # NIL *> > + Marker.CaptureState (frame, l+1, p.jumpbuf); > > (* compile the body *) > oc := Stmt.Compile (p.body); > > Thanks, > - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Jan 31 20:19:51 2011 From: jay.krell at cornell.edu (Jay K) Date: Mon, 31 Jan 2011 19:19:51 +0000 Subject: [M3devel] fixing try/setjmp in a loop? In-Reply-To: <36BA1892-1828-43A7-B706-AE87B3D98EA1@cs.purdue.edu> References: , <36BA1892-1828-43A7-B706-AE87B3D98EA1@cs.purdue.edu> Message-ID: Right..I also tried Scope.Insert, didn't seem to help. But I think I might be doing it too late. I'll try doing it in Parse instead of Check. Though I don't recall if Parse knows enough -- if it knows if CaptureState will be called. I agree/disagree about alloca up front, with the obvious reasons -- it is smaller code to alloca up front, and it somewhat more closely resembles the old pattern: IF Foo() THEN RETURN ELSE TRY FINALLY in the old way would use the stack, so we could too. But the allocation is slower/larger now (alloca possibly aligning up more than needed). Anyway, this point isn't the problem. The problem is my inability to work with m3front. I'll look at it a bit more -- i.e. as I said, moving the code to Parse. The other improvement I'd like to make: currently, if I had it working, what I'm aiming for is: struct EF1{ ... jmpbuf* jb } ef1; jmpbuf* jb = 0; jb = jb ? jb : alloca(sizeof(*jb)); ef1.jb = jb; setjmp(ef1.jb); but it'd be better to have: struct EF1{ ... jmpbuf* jb } ef1; ef1.jb = 0; ef1.jb = ef1.jb ? ef1.jb : alloca(sizeof(*jb)); setjmp(ef1.jb); ie. we don't need the extra pointer variable, the pointer in the record should suffice. [not sure where to put this in email] I tried figuring out how to determine the current vs. topmost-in-current-function scope. I'm not sure if Scope.Top is about in a function or if it is module scope, or even perhaps some outside-all-modules scope. But Scope.Insert doesn't let you specify a scope, so I kinda hoped it'd just use the correct scope. Anyway, I'll look again at introducing the Variable.New and Scope.Insert during Parse. Even if it doesn't get used, that might be ok, since there is tracking of use, and declaring it might not cause any waste if it isn't used. Thanks, - Jay From: hosking at cs.purdue.edu Date: Mon, 31 Jan 2011 12:14:09 -0500 To: jay.krell at cornell.edu CC: m3devel at elegosoft.com Subject: Re: [M3devel] fixing try/setjmp in a loop? Hi Jay, I've not had a chance to digest this, but I do understand the problem. We need the Variable to be entered into the outermost scope of the procedure in which the TRY appears so that it will have initialization code (assigning NIL) generated for it on entry to the procedure. Then your usage of the variable should simply check for NIL and alloca if it is, as you already appear to do here. It would be possible to have the initialization code perform the alloca but then we would have an alloca for every TRY block in a procedure even if they never execute. Probably not the best plan. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On Jan 30, 2011, at 5:45 AM, Jay K wrote: I'm trying to fix the inadvertant change I made where FOR i := 1 TO 10 DO TRY FINALLY END will call alloca 10 times. I'm not familiar with the frontend, and it is hard for me to understand. It seems like it is probably very well factored, written by someone who really knew what they were doing, but it is dense, and not verbosely commented. Something like this?? But this doesn't work. What am I missing? And, we should go the next step and merge the jmpbuf pointer variable with the jmpbuf field in the EF1, right? ? 1.txt Index: src/misc/Marker.i3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.i3,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 Marker.i3 --- src/misc/Marker.i3 14 Jan 2001 13:40:31 -0000 1.1.1.1 +++ src/misc/Marker.i3 30 Jan 2011 10:41:18 -0000 @@ -64,9 +64,12 @@ PROCEDURE SetLock (acquire: BOOLEAN; var: CG.Var; offset: INTEGER); (* generate the call to acquire or release a mutex *) -PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label); +PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label; + jumpbuf: Variable.T); (* call 'setjmp' on 'frame's jmpbuf and branch to 'handler' on re-returns. *) PROCEDURE Reset (); +PROCEDURE NewJumpbuf (): Variable.T; + END Marker. Index: src/misc/Marker.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.m3,v retrieving revision 1.9 diff -u -r1.9 Marker.m3 --- src/misc/Marker.m3 13 Jan 2011 14:58:28 -0000 1.9 +++ src/misc/Marker.m3 30 Jan 2011 10:41:18 -0000 @@ -10,7 +10,7 @@ MODULE Marker; IMPORT CG, Error, Type, Variable, ProcType, ESet, Expr, AssignStmt; -IMPORT M3ID, M3RT, Target, Module, RunTyme, Procedure, Host; +IMPORT M3ID, M3RT, Target, Module, RunTyme, Procedure, Host, Addr; TYPE Kind = { zFINALLY, zFINALLYPROC, zLOCK, zEXIT, zTRY, zTRYELSE, @@ -231,8 +231,10 @@ END; END CallFinallyHandler; -PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label) = +PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label; + jumpbuf: Variable.T) = VAR new: BOOLEAN; + label := CG.Next_label (); BEGIN (* int setjmp(void* ); *) IF (setjmp = NIL) THEN @@ -262,13 +264,33 @@ Target.Word.size, Target.Word.align, Target.Word.cg_type, 0); END; - - (* frame.jmpbuf = alloca(Csetjmp__Jumpbuf_size); *) + + (* IF jumpuf # NIL THEN + * frame.jmpbuf = alloca(Csetjmp__Jumpbuf_size); + * END + *) + + CG.Load_nil (); + Variable.Load (jumpbuf); + CG.If_compare (CG.Type.Addr, CG.Cmp.NE, label, CG.Maybe); + CG.Start_call_direct (alloca, 0, Target.Address.cg_type); CG.Load_int (Target.Word.cg_type, Jumpbuf_size); CG.Pop_param (Target.Word.cg_type); CG.Call_direct (alloca, Target.Address.cg_type); + + (* FUTURE: We should actually have a Variable + * for the entire EF1, including initializing the jumpbuf + * in it. That would save us this extra load/store, + * and save a local variable. + *) + Variable.LoadLValue (jumpbuf); + CG.Swap (); + CG.Store_indirect (CG.Type.Addr, 0, Target.Address.size); + Variable.Load (jumpbuf); + CG.Store_addr (frame, M3RT.EF1_jmpbuf); + CG.Set_label (label); (* setmp(frame.jmpbuf) *) CG.Start_call_direct (setjmp, 0, Target.Integer.cg_type); @@ -806,5 +828,15 @@ tos := 0; END Reset; +PROCEDURE NewJumpbuf (): Variable.T = + VAR jumpbuf: Variable.T; + BEGIN + jumpbuf := Variable.New (M3ID.NoID, TRUE); + Variable.BindType (jumpbuf, Addr.T, indirect := FALSE, + readonly := FALSE, open_array_ok := FALSE, + needs_init := TRUE); + RETURN jumpbuf; + END NewJumpbuf; + BEGIN END Marker. Index: src/stmts/TryFinStmt.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/stmts/TryFinStmt.m3,v retrieving revision 1.6 diff -u -r1.6 TryFinStmt.m3 --- src/stmts/TryFinStmt.m3 5 Jan 2011 14:34:54 -0000 1.6 +++ src/stmts/TryFinStmt.m3 30 Jan 2011 10:41:18 -0000 @@ -10,6 +10,7 @@ IMPORT M3ID, CG, Token, Scanner, Stmt, StmtRep, Marker, Target, Type, Addr; IMPORT RunTyme, Procedure, ProcBody, M3RT, Scope, Fmt, Host, TryStmt, Module; +IMPORT Variable; FROM Stmt IMPORT Outcome; TYPE @@ -20,6 +21,7 @@ viaProc : BOOLEAN; scope : Scope.T; handler : HandlerProc; + jumpbuf : Variable.T := NIL; OVERRIDES check := Check; compile := Compile; @@ -63,6 +65,11 @@ RETURN p; END Parse; +PROCEDURE UsesSetjmp (p: P): BOOLEAN = + BEGIN + RETURN NOT (Target.Has_stack_walker OR p.viaProc); + END UsesSetjmp; + PROCEDURE Check (p: P; VAR cs: Stmt.CheckState) = VAR zz: Scope.T; oc: Stmt.Outcomes; name: INTEGER; BEGIN @@ -95,6 +102,9 @@ END; END; TryStmt.PopHandler (); + IF UsesSetjmp (p) THEN + p.jumpbuf := Marker.NewJumpbuf (); + END; END Check; PROCEDURE HandlerName (uid: INTEGER): TEXT = @@ -106,11 +116,16 @@ END HandlerName; PROCEDURE Compile (p: P): Stmt.Outcomes = + VAR usesSetjmp := FALSE; + result: Stmt.Outcomes; BEGIN - IF Target.Has_stack_walker THEN RETURN Compile1 (p); - ELSIF p.viaProc THEN RETURN Compile2 (p); - ELSE RETURN Compile3 (p); + IF Target.Has_stack_walker THEN result := Compile1 (p); + ELSIF p.viaProc THEN result := Compile2 (p); + ELSE usesSetjmp := TRUE; + result := Compile3 (p); END; + <* ASSERT usesSetjmp = UsesSetjmp (p) *> + RETURN result; END Compile; PROCEDURE Compile1 (p: P): Stmt.Outcomes = @@ -302,7 +317,9 @@ l := CG.Next_label (3); CG.Set_label (l, barrier := TRUE); Marker.PushFrame (frame, M3RT.HandlerClass.Finally); - Marker.CaptureState (frame, l+1); + <* ASSERT UsesSetjmp (p) *> + <* ASSERT p.jumpbuf # NIL *> + Marker.CaptureState (frame, l+1, p.jumpbuf); (* compile the body *) Marker.PushFinally (l, l+1, frame); Index: src/stmts/TryStmt.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3front/src/stmts/TryStmt.m3,v retrieving revision 1.3 diff -u -r1.3 TryStmt.m3 --- src/stmts/TryStmt.m3 5 Jan 2011 14:34:54 -0000 1.3 +++ src/stmts/TryStmt.m3 30 Jan 2011 10:41:18 -0000 @@ -22,6 +22,7 @@ hasElse : BOOLEAN; elseBody : Stmt.T; handled : ESet.T; + jumpbuf : Variable.T := NIL; OVERRIDES check := Check; compile := Compile; @@ -153,6 +154,14 @@ p.handles := h3; END ReverseHandlers; +PROCEDURE UsesSetjmp (p: P): BOOLEAN = + BEGIN + IF (p.handles = NIL) AND (NOT p.hasElse) THEN + RETURN FALSE; + END; + RETURN NOT Target.Has_stack_walker; + END UsesSetjmp; + PROCEDURE Check (p: P; VAR cs: Stmt.CheckState) = VAR h: Handler; handled: ESet.T; BEGIN @@ -182,6 +191,10 @@ WHILE (h # NIL) DO CheckHandler (h, cs); h := h.next; END; Stmt.TypeCheck (p.elseBody, cs); PopHandler (); + + IF UsesSetjmp (p) THEN + p.jumpbuf := Marker.NewJumpbuf (); + END; END Check; PROCEDURE CheckLabels (h: Handler; scope: Scope.T; VAR cs: Stmt.CheckState) = @@ -245,14 +258,19 @@ END CheckHandler; PROCEDURE Compile (p: P): Stmt.Outcomes = + VAR usesSetjmp := FALSE; + result: Stmt.Outcomes; BEGIN IF (p.handles = NIL) AND (NOT p.hasElse) THEN - RETURN Stmt.Compile (p.body); - END; - IF Target.Has_stack_walker - THEN RETURN Compile1 (p); - ELSE RETURN Compile2 (p); + result := Stmt.Compile (p.body); + ELSIF Target.Has_stack_walker THEN + result := Compile1 (p); + ELSE + usesSetjmp := TRUE; + result := Compile2 (p); END; + <* ASSERT usesSetjmp = UsesSetjmp (p) *> + RETURN result; END Compile; PROCEDURE Compile1 (p: P): Stmt.Outcomes = @@ -423,7 +441,9 @@ END; (* capture the machine state *) - Marker.CaptureState (frame, l+1); + <* ASSERT UsesSetjmp (p) *> + <* ASSERT p.jumpbuf # NIL *> + Marker.CaptureState (frame, l+1, p.jumpbuf); (* compile the body *) oc := Stmt.Compile (p.body); Thanks, - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Jan 31 21:26:20 2011 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 31 Jan 2011 15:26:20 -0500 Subject: [M3devel] fixing try/setjmp in a loop? In-Reply-To: References: , <36BA1892-1828-43A7-B706-AE87B3D98EA1@cs.purdue.edu> Message-ID: I think we need to have a way to get the scope of the containing procedure. TryStmt.Parse is not the right place. If I get some time soon I can take a look at this. On Jan 31, 2011, at 2:19 PM, Jay K wrote: > Right..I also tried Scope.Insert, didn't seem to help. > > But I think I might be doing it too late. I'll try doing it in Parse instead of Check. > Though I don't recall if Parse knows enough -- if it knows if CaptureState will be called. > I agree/disagree about alloca up front, with the obvious reasons -- it is smaller code to alloca up front, and it somewhat > more closely resembles the old pattern: > > IF Foo() THEN > RETURN > ELSE TRY FINALLY > > in the old way would use the stack, so we could too. > But the allocation is slower/larger now (alloca possibly aligning up more than needed). > Anyway, this point isn't the problem. The problem is my inability to work with m3front. > I'll look at it a bit more -- i.e. as I said, moving the code to Parse. > > The other improvement I'd like to make: > > currently, if I had it working, what I'm aiming for is: > struct EF1{ ... jmpbuf* jb } ef1; > jmpbuf* jb = 0; > > jb = jb ? jb : alloca(sizeof(*jb)); > ef1.jb = jb; > setjmp(ef1.jb); > > but it'd be better to have: > > struct EF1{ ... jmpbuf* jb } ef1; > ef1.jb = 0; > > ef1.jb = ef1.jb ? ef1.jb : alloca(sizeof(*jb)); > setjmp(ef1.jb); > > > ie. we don't need the extra pointer variable, the pointer in the record should suffice. > > > [not sure where to put this in email] > I tried figuring out how to determine the current vs. topmost-in-current-function scope. > I'm not sure if Scope.Top is about in a function or if it is module scope, or even perhaps > some outside-all-modules scope. But Scope.Insert doesn't let you specify a scope, > so I kinda hoped it'd just use the correct scope. > > > Anyway, I'll look again at introducing the Variable.New and Scope.Insert during Parse. > Even if it doesn't get used, that might be ok, since there is tracking of use, and > declaring it might not cause any waste if it isn't used. > > > Thanks, > - Jay > > > From: hosking at cs.purdue.edu > Date: Mon, 31 Jan 2011 12:14:09 -0500 > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] fixing try/setjmp in a loop? > > Hi Jay, > > I've not had a chance to digest this, but I do understand the problem. We need the Variable to be entered into the outermost scope of the procedure in which the TRY appears so that it will have initialization code (assigning NIL) generated for it on entry to the procedure. Then your usage of the variable should simply check for NIL and alloca if it is, as you already appear to do here. It would be possible to have the initialization code perform the alloca but then we would have an alloca for every TRY block in a procedure even if they never execute. Probably not the best plan. > > Antony Hosking | Associate Professor | Computer Science | Purdue University > 305 N. University Street | West Lafayette | IN 47907 | USA > Office +1 765 494 6001 | Mobile +1 765 427 5484 > > > > > On Jan 30, 2011, at 5:45 AM, Jay K wrote: > > I'm trying to fix the inadvertant change I made where > FOR i := 1 TO 10 DO TRY FINALLY END > > will call alloca 10 times. > > I'm not familiar with the frontend, and it is hard for me to understand. > It seems like it is probably very well factored, written by someone who really knew what they were doing, > but it is dense, and not verbosely commented. > > Something like this?? But this doesn't work. What am I missing? > And, we should go the next step and merge the jmpbuf pointer variable with the jmpbuf field in the EF1, right? > > > ? 1.txt > Index: src/misc/Marker.i3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.i3,v > retrieving revision 1.1.1.1 > diff -u -r1.1.1.1 Marker.i3 > --- src/misc/Marker.i3 14 Jan 2001 13:40:31 -0000 1.1.1.1 > +++ src/misc/Marker.i3 30 Jan 2011 10:41:18 -0000 > @@ -64,9 +64,12 @@ > PROCEDURE SetLock (acquire: BOOLEAN; var: CG.Var; offset: INTEGER); > (* generate the call to acquire or release a mutex *) > > -PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label); > +PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label; > + jumpbuf: Variable.T); > (* call 'setjmp' on 'frame's jmpbuf and branch to 'handler' on re-returns. *) > > PROCEDURE Reset (); > > +PROCEDURE NewJumpbuf (): Variable.T; > + > END Marker. > Index: src/misc/Marker.m3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-sys/m3front/src/misc/Marker.m3,v > retrieving revision 1.9 > diff -u -r1.9 Marker.m3 > --- src/misc/Marker.m3 13 Jan 2011 14:58:28 -0000 1.9 > +++ src/misc/Marker.m3 30 Jan 2011 10:41:18 -0000 > @@ -10,7 +10,7 @@ > MODULE Marker; > > IMPORT CG, Error, Type, Variable, ProcType, ESet, Expr, AssignStmt; > -IMPORT M3ID, M3RT, Target, Module, RunTyme, Procedure, Host; > +IMPORT M3ID, M3RT, Target, Module, RunTyme, Procedure, Host, Addr; > > TYPE > Kind = { zFINALLY, zFINALLYPROC, zLOCK, zEXIT, zTRY, zTRYELSE, > @@ -231,8 +231,10 @@ > END; > END CallFinallyHandler; > > -PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label) = > +PROCEDURE CaptureState (frame: CG.Var; handler: CG.Label; > + jumpbuf: Variable.T) = > VAR new: BOOLEAN; > + label := CG.Next_label (); > BEGIN > (* int setjmp(void* ); *) > IF (setjmp = NIL) THEN > @@ -262,13 +264,33 @@ > Target.Word.size, Target.Word.align, > Target.Word.cg_type, 0); > END; > - > - (* frame.jmpbuf = alloca(Csetjmp__Jumpbuf_size); *) > + > + (* IF jumpuf # NIL THEN > + * frame.jmpbuf = alloca(Csetjmp__Jumpbuf_size); > + * END > + *) > + > + CG.Load_nil (); > + Variable.Load (jumpbuf); > + CG.If_compare (CG.Type.Addr, CG.Cmp.NE, label, CG.Maybe); > + > CG.Start_call_direct (alloca, 0, Target.Address.cg_type); > CG.Load_int (Target.Word.cg_type, Jumpbuf_size); > CG.Pop_param (Target.Word.cg_type); > CG.Call_direct (alloca, Target.Address.cg_type); > + > + (* FUTURE: We should actually have a Variable > + * for the entire EF1, including initializing the jumpbuf > + * in it. That would save us this extra load/store, > + * and save a local variable. > + *) > + Variable.LoadLValue (jumpbuf); > + CG.Swap (); > + CG.Store_indirect (CG.Type.Addr, 0, Target.Address.size); > + Variable.Load (jumpbuf); > + > CG.Store_addr (frame, M3RT.EF1_jmpbuf); > + CG.Set_label (label); > > (* setmp(frame.jmpbuf) *) > CG.Start_call_direct (setjmp, 0, Target.Integer.cg_type); > @@ -806,5 +828,15 @@ > tos := 0; > END Reset; > > +PROCEDURE NewJumpbuf (): Variable.T = > + VAR jumpbuf: Variable.T; > + BEGIN > + jumpbuf := Variable.New (M3ID.NoID, TRUE); > + Variable.BindType (jumpbuf, Addr.T, indirect := FALSE, > + readonly := FALSE, open_array_ok := FALSE, > + needs_init := TRUE); > + RETURN jumpbuf; > + END NewJumpbuf; > + > BEGIN > END Marker. > Index: src/stmts/TryFinStmt.m3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-sys/m3front/src/stmts/TryFinStmt.m3,v > retrieving revision 1.6 > diff -u -r1.6 TryFinStmt.m3 > --- src/stmts/TryFinStmt.m3 5 Jan 2011 14:34:54 -0000 1.6 > +++ src/stmts/TryFinStmt.m3 30 Jan 2011 10:41:18 -0000 > @@ -10,6 +10,7 @@ > > IMPORT M3ID, CG, Token, Scanner, Stmt, StmtRep, Marker, Target, Type, Addr; > IMPORT RunTyme, Procedure, ProcBody, M3RT, Scope, Fmt, Host, TryStmt, Module; > +IMPORT Variable; > FROM Stmt IMPORT Outcome; > > TYPE > @@ -20,6 +21,7 @@ > viaProc : BOOLEAN; > scope : Scope.T; > handler : HandlerProc; > + jumpbuf : Variable.T := NIL; > OVERRIDES > check := Check; > compile := Compile; > @@ -63,6 +65,11 @@ > RETURN p; > END Parse; > > +PROCEDURE UsesSetjmp (p: P): BOOLEAN = > + BEGIN > + RETURN NOT (Target.Has_stack_walker OR p.viaProc); > + END UsesSetjmp; > + > PROCEDURE Check (p: P; VAR cs: Stmt.CheckState) = > VAR zz: Scope.T; oc: Stmt.Outcomes; name: INTEGER; > BEGIN > @@ -95,6 +102,9 @@ > END; > END; > TryStmt.PopHandler (); > + IF UsesSetjmp (p) THEN > + p.jumpbuf := Marker.NewJumpbuf (); > + END; > END Check; > > PROCEDURE HandlerName (uid: INTEGER): TEXT = > @@ -106,11 +116,16 @@ > END HandlerName; > > PROCEDURE Compile (p: P): Stmt.Outcomes = > + VAR usesSetjmp := FALSE; > + result: Stmt.Outcomes; > BEGIN > - IF Target.Has_stack_walker THEN RETURN Compile1 (p); > - ELSIF p.viaProc THEN RETURN Compile2 (p); > - ELSE RETURN Compile3 (p); > + IF Target.Has_stack_walker THEN result := Compile1 (p); > + ELSIF p.viaProc THEN result := Compile2 (p); > + ELSE usesSetjmp := TRUE; > + result := Compile3 (p); > END; > + <* ASSERT usesSetjmp = UsesSetjmp (p) *> > + RETURN result; > END Compile; > > PROCEDURE Compile1 (p: P): Stmt.Outcomes = > @@ -302,7 +317,9 @@ > l := CG.Next_label (3); > CG.Set_label (l, barrier := TRUE); > Marker.PushFrame (frame, M3RT.HandlerClass.Finally); > - Marker.CaptureState (frame, l+1); > + <* ASSERT UsesSetjmp (p) *> > + <* ASSERT p.jumpbuf # NIL *> > + Marker.CaptureState (frame, l+1, p.jumpbuf); > > (* compile the body *) > Marker.PushFinally (l, l+1, frame); > Index: src/stmts/TryStmt.m3 > =================================================================== > RCS file: /usr/cvs/cm3/m3-sys/m3front/src/stmts/TryStmt.m3,v > retrieving revision 1.3 > diff -u -r1.3 TryStmt.m3 > --- src/stmts/TryStmt.m3 5 Jan 2011 14:34:54 -0000 1.3 > +++ src/stmts/TryStmt.m3 30 Jan 2011 10:41:18 -0000 > @@ -22,6 +22,7 @@ > hasElse : BOOLEAN; > elseBody : Stmt.T; > handled : ESet.T; > + jumpbuf : Variable.T := NIL; > OVERRIDES > check := Check; > compile := Compile; > @@ -153,6 +154,14 @@ > p.handles := h3; > END ReverseHandlers; > > +PROCEDURE UsesSetjmp (p: P): BOOLEAN = > + BEGIN > + IF (p.handles = NIL) AND (NOT p.hasElse) THEN > + RETURN FALSE; > + END; > + RETURN NOT Target.Has_stack_walker; > + END UsesSetjmp; > + > PROCEDURE Check (p: P; VAR cs: Stmt.CheckState) = > VAR h: Handler; handled: ESet.T; > BEGIN > @@ -182,6 +191,10 @@ > WHILE (h # NIL) DO CheckHandler (h, cs); h := h.next; END; > Stmt.TypeCheck (p.elseBody, cs); > PopHandler (); > + > + IF UsesSetjmp (p) THEN > + p.jumpbuf := Marker.NewJumpbuf (); > + END; > END Check; > > PROCEDURE CheckLabels (h: Handler; scope: Scope.T; VAR cs: Stmt.CheckState) = > @@ -245,14 +258,19 @@ > END CheckHandler; > > PROCEDURE Compile (p: P): Stmt.Outcomes = > + VAR usesSetjmp := FALSE; > + result: Stmt.Outcomes; > BEGIN > IF (p.handles = NIL) AND (NOT p.hasElse) THEN > - RETURN Stmt.Compile (p.body); > - END; > - IF Target.Has_stack_walker > - THEN RETURN Compile1 (p); > - ELSE RETURN Compile2 (p); > + result := Stmt.Compile (p.body); > + ELSIF Target.Has_stack_walker THEN > + result := Compile1 (p); > + ELSE > + usesSetjmp := TRUE; > + result := Compile2 (p); > END; > + <* ASSERT usesSetjmp = UsesSetjmp (p) *> > + RETURN result; > END Compile; > > PROCEDURE Compile1 (p: P): Stmt.Outcomes = > @@ -423,7 +441,9 @@ > END; > > (* capture the machine state *) > - Marker.CaptureState (frame, l+1); > + <* ASSERT UsesSetjmp (p) *> > + <* ASSERT p.jumpbuf # NIL *> > + Marker.CaptureState (frame, l+1, p.jumpbuf); > > (* compile the body *) > oc := Stmt.Compile (p.body); > > Thanks, > - Jay > > -------------- next part -------------- An HTML attachment was scrubbed... URL: